Sharepoint update

17 02 2009

This week I was assigned to Install MOSS (Microsoft Office SharePoint Services) 2007 over WSS (Windows SharePoint Services) 3.0.

The thing i’ve never thought it would be a trouble was the fact that my WSS was english and my MOSS was Portuguese. When I installed MOSS, over WSS, it all look like that was ok, but, when any item of a list went to be edited, the feature was broken. It repeated in all other sites, in all other lists.

To make it useful again, I’ve deactivated the Spell Checker Service. It’s a workaround, and doesn’t solve the problem. When a feature of MOSS 2007 is seen, the name is messy.

Solution: Install the Language Pack feature.

Update: The language pack really makes some critical features to work, but doesn’t solve all the problems. If you are going to create a new site part, you’ll see that the web part names are all messy. In a lack of a better solution, backup all the sites, uninstall SharePoint, install it again correctly, then restore again the sites. This really is gonna work.





Dir by file age

28 01 2009

This is a simple tip. Sometimes is needed to select files in a folder by it’s age. Then (as far as I could see) the dir command can’t do this by a simple command line. I’ve written then a script that can do this by filtering a dir result:


function Get-TodayFiles{
    $day = New-Object System.TimeSpan(1,0,0,0,0)
    $today = Get-Date
    $result = New-Object System.Collections.ArrayList
	for($i = 0; $i -lt $files.Length; $i++){
        if ($today.Subtract($files[$i].LastWriteTime).CompareTo($day) -eq -1) {
            $result.Add($files[$i].FullName)
        }
    }
    return $result
}

This is a very programmer solution. PowerShell.com has made a new solution, easier than mine.

 Filter Select-FileAge {
       param($days)
       # is it a folder? Then omit:
       If ($_.PSisContainer) {
              # do not return folders effectively filtering them out
       } ElseIf ($_.LastWriteTime -lt (Get-Date).AddDays($days * -1)) {
              $_
       }
} 

This new one is used as a filter to the dir command, and is used in this way:

dir $env:windir *.log | Select-FileAge 20





Emails e Powershell

14 01 2009

Para algumas tarefas de manutenção, é chato estar indo nas máquinas e verificando se as tarefas estão sendo realmente feitas. Imagine por exemplo se você tem alguns servidores diferentes pra ficar monitorando algumas vezes no mês ou na semana. É incômodo ir fazendo Remote Desktop na máquina 1, ver o que tem de ser visto, deslogar, e assim por diante.

Um workaround para isso pode ser o envio de e-mails qnd a tarefa for concluída, com algum feedback se a tarefa foi feita com sucesso ou não.

Com o código abaixo, podemos enviar e-mails a partir de um script PowerShell. Este código é um ajuste com relação ao script postado em [1], adicionando as credenciais, e dando forma de função.

function Send-Mail{
	param([string]$to, [string]$subject, [string]$body)
	$smtp = New-Object System.Net.Mail.SmtpClient("your server here");
	$mailMessage = New-Object System.Net.Mail.MailMessage;
	$credential = New-Object System.Net.NetworkCredential("sender username", "sender password", "sender domain");
	$mailMessage.From = "sender mail";
	$mailMessage.To.Add($to);
	$mailMessage.Subject = $subject;
	$mailMessage.Body = $body;
	$smtp.Credentials = $credential;
	$smtp.Send($mailMessage);
}

 

[1] http://www.searchmarked.com/windows/how-to-send-an-email-using-a-windows-powershell-script.php

[2] http://www.brokenhaze.com/article.php?story=20080228214713878

[3] Windows Powershell





Workshop do Grupo MODCS – 2008.2

27 11 2008

A cada semestre, o grupo MoDCS (Modeling of Distributed and Concurrent Systems) se reúne para apresentar em um workshop os trabalhos que se encontram em desenvolvimento pelos estudantes e pesquisadores integrantes. O objetivo principal do workshop é compartilhar conhecimento, discutir idéias, criar oportunidades de interação entre os projetos em desenvolvimento e propor trabalhos futuros. Adicionalmente, é uma excelente oportunidade para maior integração entre os colegas pesquisadores. A grande maioria dos trabalhos em desenvolvimento contemplam a modelagem de aspectos temporais em diversos domínios de aplicação, mais notadamente no projeto e avaliação de desempenho de sistemas embarcados, sistemas de comunicação e sistemas associados à manufatura. O escopo dos trabalhos atualmente em desenvolvimento pelos integrantes do MoDCS estão associados as seguintes áreas de concentração:

- Sistemas Embarcados
- Sistemas de Tempo Real
- Consumo de Energia
- Especificação
- Tolerância a Falhas
- Manufatura
- Sistemas Distribuídos

Data e Local:
Data do Evento: 05/12/2008
Locais: Auditorio CIn(Bloco A – Térreo) e Anfiteatro CIn(Bloco C – Galpão)

Maiores Informações
Julian Menezes  – cjma@cin.ufpe.br
Fábio Chicout – fcfmc@cin.ufpe.br

Programação

08:30-09:00 Abertura do Evento Prof. Paulo Maciel / Prof. Ricardo Massa
09:00-09:20

Uma Abordagem Baseada em Rede de Petri Temporizada para Modelagem e Análise de Especificações de Sistemas Embarcados Críticos com Restrições de Energia

Ermeson Andrade

09:20-09:40 Performance Modeling for Evaluation and Planning of Electronic Funds Transfer Systems with Bursty Arrival Traffic Carlos Araújo
09:40-10:00 Geração de Carga em Ambiente de Planejamento de Capacidade Hugo / Wagner
10:00-10:20 Intervalo  
10:20-10:40 Software Synthesis for Energy-Constrained Hard Real-Time Embedded Systems Eduardo Tavares
10:40-11:00 Abordagem híbrida para controle do consumo de energia em sistemas embarcados de tempo real crítico Pedro Dallegrave
11:00-11:20 Torwards Performance Modeling and Evaluation of EFT Systems Aging

Fábio Chicout

11:20-11:40 Avaliação de desempenho de Um Processo de Testes de Softwares: Uma metodologia baseada em Modelos Estocásticos Marcelo Marinho
11:40-12:00 Escalonamento de Processos Paralelos em Simuladores Multifísicos

Renata Medeiros (UPE)

12:00-14:00

Almoço  
14:00-14:20

Uma Abordagem Estocástica Baseada em Rede de Petri Coloridas para Estimar o Consumo de Energia e o Tempo de Execução de Sistemas Embarcados

Gustavo Callou
14:20-14:40 ALUPAS: Um Simulador Estocástico para Análise do Consumo de Energia e Desempenho de Softwares para Sistemas Embarcados

Bruno Nogueira

14:40-15:00 Performability Evaluation of Electronic Funds Transfer Systems

Erica Teixeira

15:00-15:20

Intervalo

 
15:20-15:40 Alocação e otimização em logística de distribuição Claudiana Batista
15:40-16:00 Avaliação e Planejamento de Capacidade de Call Centers usando o CC Modeler Alysson Barros
16:00-16:20 Planejamento de Capacidade SOA: uma abordagem Preditiva e Estocástica, através do Mapeamento de BPEL para GSP Marcelo Teixeira (UPE)
16:20-16:40 Avaliação de Desempenho de Processos Dinâmicos de Software Rebeka Brito
16:40-17:00 Avaliação de Workflow com Restrição de Recursos César Augusto
17:00-17:20 Implementação de um escalonador híbrido considerando restrições de energia Bruno Silva
17:20-17:40 Uma Abordagem Orientada a Aspectos para Implementar Contratos em JML Henrique Rebêlo (UPE)
17:40-18:00 Compilador Intra-task DVS para sistemas de tempo real com baixo consumo de energia Bruno Montenegro (UPE)

 

[1] http://www.modcs.org

[2] http://www.cin.ufpe.br

[3] http://www.cin.ufpe.br/~prmm





O Novo Perfmon 1/2

26 09 2008

É, veio o Windows Vista, e com ele uma repaginada no antigo Performance Monitor além de somente acrescentar contadores. Agora ele se chama Reliability and Performance Monitor, e vem com algumas novidades:

  • Conjunto de Coletores de Dados

 image

A maior novidade dessa versão do perfmon. É possível criar Coletores de dados através de templates do Windows ou ao seu gosto.

image

Existem três templates que já vem configurados, Basic, System Diagnostics e System Performance. Esses templates são uma melhoria importante, pois podem ser criados e reutilizados. O formato deles é XML, o que também facilita a criação.

image

É importante ressaltar que esses templates buscam monitoramento de todas as formas que o perfmon consegue tirar. Isso implica em extração de traces do kernel por exemplo, e é bom que se tome cuidado, para não coletar alquilo que não se deseja.

  • Exibição de Recurso

image

Essa é agora a tela inicial do perfmon. São exibidos gráficos dos desempenhos instantâneos de cada um dos principais recursos do sistema. É interessante para ter uma visão geral do sistema, sem muito esforço de configuração da ferramenta. Caso se deseje algum detalhe em algum dos ramos, basta clicar na barra correspondente, Em CPU, além da barra já mostrar o consumo atual, e a freqüência máxima, é possível ver os processos em execução, e classificá-los pelo número de theads ou pelo quanta de CPU consumido, como pode ser visto na figura abaixo:

image

Em relação ao disco, a barra mostra o IO total, e o maior tempo ativo do disco. No corpo, mostra também a velocidade de leitura e escrita, prioridade da tarefa de IO, e o tempo de resposta em milisegundos, separados por processo que está realizando a atividade de disco

image

Na rede, a barra mostra o tráfego total da rede, em kbps e a porcentagem de utilização do recurso. É mostrado como informação para cada aplicação que utiliza a rede, o endereço com o qual a aplicação está trocando informação, a quantidade de dados em bytes/min que a aplicação está enviando/recebendo/total.

image

No recurso de memória, a barra mostra a quantidade de faltas de página por segundo e o percentual de memória física utilizada. Na tabela, o separado por processo, tem-se as faltas de página por minuto, os kilobytes disponíveis para a instância da aplicação, os kilobytes disponíveis no working set que podem estar disponíveis para uso de outras aplicações, e os kilobytes da instância da aplicação que estão dedicados ao processo.

image

É bom ter em mente que estas informações são extremamente valiosas para uma análise instantânea, mas não tão importantes assim para uma análise em um intervalo de tempo grande.

  • Monitor de Confiabilidade

image

Aqui, no monitor de confiabilidade, é mostrado um relatório de estabilidade do sistema. Todas as desinstalações, falhas nas aplicações, falhas de hardware, falhas no windows, e outras falhas que aconteçam são registradas aqui, e organizadas no gráfico acima. Ao clicar em cada dia, um relatório das falhas ocorridas no dia. Esse gráfico é uma forma visual de perceber se o sistema está ficando mais ou menos estável. Se estiver crescente, é bom sinal. A nota dada varia de 0 – 10, e não é o rating do Windows.

[1] BATTISTI, Júlio. Windows Vista – Curso Completo. Editora Axcel

[2] TechNet www.technet.com





Writing Markov Chains/Escrevendo Cadeias de Markov

24 07 2008

Escrever um texto científico pode ser muito demorado, mas se você trabalha com modelos e precisa de alguns desenhos, você tem um problema em mãos. Estou trabalhando em um artigo que uso cadeias de markov para representar meus modelos, mas não tenho ferramentas de edição delas. Imagine o problema para colocar os modelos no texto usando o LaTeX.

Existem então duas soluções: ou você desenha no paint (ou outro editor gráfico) e exibe no texto como uma figura, ou você usa um desenho programático no LaTeX. Esse post é para falar dessa segunda forma.

Encontrei uma dica interessante de como fazer isso em [1], mas está ainda assim dando trabalho para compreender e usar o exemplo dado para fazer novos modelos.

A primeira coisa é usar o pacote xy, e para isso, use a linha

\usepackage[all]{xy}

Vamos então criar um desenho usando uma malha matricial como guia. Em cada célula da malha, vamos colocar sempre um estado (a bolinha) e uma transição. Para colocar o estado, se usa o seguinte comando:

*+[o][F-]{texto}

Para entender esse comando, o [o] representa que queremos uma forma arredondada, o [F-] faz que ele encolha de acordo com o texto dado dentro das chaves.

Para fazer os arcos, usa-se:

@/^/^{texto exemplo}

Que representa uma seta por cima que tem o “texto exemplo” próximo dela.

Um exemplo simples:

\begin{equation}
	\xymatrix{
	 *+[o][F-]{0} \ar@/^/[r]^{a}& *+[o][F-]{1} \ar@/^/[l]^{b}
	}
	\label{eq:exampleMarkovChain}
\end{equation}

vai produzir o seguinte resultado:

image

Veja que o & que está no código é somente para separar as células da malha, assim como quando construímos matrizes.

==========================================================

Write a scientific text can be very slow, but if you work with models and needs some drawings, you have a problem at hand. I am working on an article that use markov chains to represent my models, but have no tools for editing them. Imagine the problem to put the models in the text using LaTeX.

There are two solutions then: either you draw in the paint (or other graphical editor) and displays the text as a picture, or you use a drawing program in LaTeX. This post is to talk about this second way.

I found an interesting hint of how to do this in [1], but is still giving work to understand and use the example given to new models.

The first thing is to use the package xy, and for this, use the line

\usepackage[all](xy)

We will then create a design using a mesh matrix as a guide. In each cell of the loop, we will always place a state (the ball) and a transition. To put the state, you use the following command:

*+[o] [F-] (text) 

To understand this command, [o] represents that we want a rounded form, and the last option, [F-] make the form shrink according to the text.

To make the arches, you use:

@/^/^{text example}

That represents an arrow over who has the “text example” close to it.
A simple example:

\begin{equation}
	\xymatrix{
	 *+[o][F-]{0} \ar@/^/[r]^{a}& *+[o][F-]{1} \ar@/^/[l]^{b}
	}
	\label{eq:exampleMarkovChain}
\end{equation}

it’s gonna produce the following results:

image
See that & into code? That is the a code needed to separate cells in the mesh. Just as a matrix

[1] http://www.rennes.enst-bretagne.fr/~gbertran/pages/tutorials_latex.html#sujet44
[2] XY Package – http://www.ctan.org/tex-archive/macros/generic/diagrams/xypic/






2º ESOL

3 07 2008

Participei hoje do II Encontro de Software Livre do CEFET-PE (ESOL). O evento foi bem legal, e me pareceu ter evoluído muito com relação à primeira edição, tendo até participação de algumas empresas daqui do estado. O Laboratório de Análise de Performance ItautecCIn/UFPE (onde trabalho) participou do evento com duas equipes, cada uma apresentando uma palestra e responsáveis por um stand de divulgação do Librix, o Linux da Itautec.

A Equipe CP (Capacity Planning) apresentou a palestra “Monitoramento de Desempenho de Sistemas *Unix”, e a Equipe HCT (Hardware Compatibility Test) apresentou “Testes de compatibilidade de hardware” cada uma aproveitando suas experiências de trabalho.

No mais, só tenho a agradecer à organização do evento que nos tratou muito bem. Mariana, Talita: valeu pelo chocolate (batom garoto) que ganhamos!

Abraço, e espero poder participar do 3º ESOL!