Friday, December 15, 2006

IBM Cell Workshop with Peter Hofstee


So, these days have been great!!! I was able to present a purpose from ITA to Peter Hofstee!!! I just can't believe such a genius was here in Brazil and we had the opportunity to interact with him in two days of workshops.
Besides him, Bob Szabo was there and I was able to show him www.cellperformance.com. It was great!
I'll be able to post some of what happened these days in the following posts! Keep tuned!

Thursday, December 07, 2006

My Graduation Thesis is Online

Well, I've finally made my graduation thesis available online. I hope it may help someone :)
The link is here: http://downloads.sourceforge.net/ivussnakes/TG.pdf
The abstract is the following:

This graduation thesis deals with intravascular ultrasound (IVUS) image segmentation through LiveWire and Snakes algorithms. As the type of ultrasound studied is the one from coronaries, there’s an initial detailing of the medical environment in which the problem is inserted.
The introduction is followed by an explanation of how LiveWire technique works, which is by calculating the shortest cost path between two pixels of the image. There’s a discussion about the implementation, using binary trees and a heap data structure. This is followed by the evaluation of which costs should be adopted, which were: modulus and direction of the gradient, the laplacian and a non-linear function.
Then, Snakes algorithm is described, which simulates a set of vertices submitted to one internal field of energy and another external one. There’s also a discussion about the number of iterations to be adopted as well as the values used as parameters.
It is explained, so, how simulated images, used for evaluation, were generated. Besides, a model for Speckle noise is described as well as the filter to which the images were submitted.
There’s a brief discussion on how the algorithms were implemented, with a special focus on ImageJ platform and it’s extensibility features.
The results are, then, described, with each of the simulated image types: noiseless, with Speckle noise and filtered. The main results found are that LiveWire has better segmentation quality and is slightly affected by noise, while Snakes is faster and is practically not affected by wrong initial points retrieved from longitudinal segmentation.
There’s, then, the conclusion, describing what was found, focusing the high velocity of Snakes technique, followed by good results. Although better results were found for LiveWire, the processing time was about 500 times higher, what might indicate this method is not desirable. Due to the good results found with simulated images, the developed platform promises to work efficiently in a medical environment, after submitted to validation by specialists.

I've got more news! Stay tunned!

Friday, November 03, 2006

CiberMouse competition

So, it seems I've been trying to be accepted in another competition.
I've produced this article in a 13 hour insane research.. don't know about its quality, but it seems reasonable for the time taken... If you wanna take a look, it's here: http://ivussnakes.sourceforge.net/ITANDROIDS CiberMouse.pdf
Let's see what happens... will there be time to produce a reasonable team as well? I don't know... end of year is always complicate... If you wanna check the competion's site, it's here

Tuesday, October 17, 2006

Never too late to start

Well, I've finally written my first post on Wikipedia. The article is related to the description of the LiveWire segmentation technique.
If you want to check it out, follow this link: http://en.wikipedia.org/wiki/Livewire_Segmentation_Technique
Let's see how long it lasts there :)

Monday, October 16, 2006

Video about IVUS Coronary Segmentation

If you want to see the results of a 350 images IVUS stack, take a look at http://ivussnakes.sourceforge.net/?q=node/23

Holiday adventures

Well, it's really late now, but just for the records, I'd like to post a video about one of the jumps in Visconde de Mauá here. It was really fun!

Tuesday, October 10, 2006

IVUS Coronary Segmentation LiveWire Videos

I've posted some videos about how to use the LiveWire Plug-in to segment IVUS stacks on YouTube. Those can be seen through this link. I've published a new session on the LiveWire plug-in site called Videos. Most of the screen recorded material will be there http://ivusnakes.sourceforge.net.
If you enjoy the plug-in it will be published pretty soon.

Saturday, October 07, 2006

LiveWire Segmentation Plugin for ImageJ Release 0.9.5

I've released a new version of the Livewire segmentation plug-in here
For the official page, check http://ivussnakes.sourceforge.net/

New features:

***Make sure you have ImageJ 1.37r or later and Java 1.5 ***

Works with color:
Now LiveWire is able to segment color images. This is done converting them to grayscale and then using the standard procedure (Thanks, Volker Bäcker!)

Run with macro: one can now use the following macro to use LiveWire
run ("LiveWire", "x0=50 y0=30 x1=95 y1=95 magnitude=43 direction=13 exponential=30 power=10");

Just go to Plugins->Macro->Record...
Then type the above macro, give it a name and press the "Create" button.
Now save the file and go to Plugins->Macro->Install... Then, choose the macro file you've just created.
There'll be a new menu under Plugins->Macro->"Your New Menu". Choose it to run the Macro.
Make sure you've set the points inside the picture :)

New cost feature: Exponential
Now a new feature was added to cost. Basically, it gives more weight to paths that are over a low cost resultant gradient and paths over high gradients have less weight, being cheaper paths. This is done through the function:
fe = Math.exp(-pw*x)*fg;
where fe is the exponential cost and pw is the power parameter. Fg stands for the gradient magnitude cost (the one whose weight is affected by the "Magnitude" slider)
It works better if the other weights are set to zero (except for the "Power" one).

Better user interface:
Following code and opinions given by Volker Bäcker, the user interface is now better, so that the user is now able to finish segmentation through right-click and start another with left-click. To move points or add new points to the existing one, the user should press the keyboard shift key at the same time.

Friday, October 06, 2006

7 Eleven Japan

Este artigo mostra detalhes da gigante rede de lojas de conveniência 7 Eleven Japan e como ela teve sucesso ao estabelecer um inovador modelo de negócios que está mudando a indústria de lojas de conveniência no Japão.
A missão básica de uma loja Seven Elevan Japan é providenciar soluções para todos os problemas da vida corriqueira. Cada loja oferece uma variedade de produtos de alta qualidade e serviços necessários diariamente ou em uma base emergencial para transformar a vida em mais fácil e mais conveniente. Foram descobertas duas razões principais para a falha das lojas de conveniência atuais. Elas ignoraram: a importância da conveniência para o cliente e a qualidade dos produtos e serviços.
Com a sua forte capacidade de analisar as necessidades dos clientes, a SEJ perseguiu uma estratégia integrada apoiada por uso inovador de informação e TI, para controlar o marketing, merchandising e a fabricação de produtos originais.
A política de fazer outsourcing da maior parte das capacidades de TI para parceiros e perseguir avançadas iniciativas em TI, deu a SEJ vantagens substanciais sobre seus concorrentes.
TI estratégico, diagnóstico humano e por informação tal como conselhos de loja, controle em tempo real de item por item, rede de TI abrangendo toda a indústria e um sofisticado sistema de análise contribuíram para o sucesso da SEJ.

Thursday, October 05, 2006

CE-278 - Yano - Aula 6

McBusted
O artigo trata do primeiro trimestre em que o McDonald's não teve lucro e as decisões do CEO com relação a isso.
Ao longo do artigo, nota-se que o McDonald's nunca conseguiu incorporar eficientemente a tecnologia em seu contexto. Muito disso está associado à falta de criatividade da empresa que tem o Big Mac há 38 anos.
Quando o CEO Cantalupo percebeu que um dos maiores programas de inovação do McDonald's, o Inovate custaria um bilhão de dólares, cortou-o dizendo que aqueles custos eram apenas o começo.
Um dos pontos que o CEO disse ser necessária prioridade era na limpeza dos banheiros, pois as crianças poderiam não lembrar da qualidade do gosto de um cheeseburger, mas suas mães com certeza lembrariam quais banheiros eram sujos ou não.
O modelo principal em que o McDonald's baseou-se foi como se utilizassem modelos de produção em massa de carros para o meio de hambúrgueres.
Com relação ao programa Inovate, sabe-se que uma de suas medidas era monitorar não apenas a temperatura do óleo de fritura, como também o número de hambúrgueres vendidos e em quais lugares. Com este sistema, poderiam saber também se a temperatura de fritura dos hambúrgueres era suficiente para evitar que bactérias fossem proliferadas. No entanto, não sabia-se como utilizar tal sistema para melhorar operações tradicionais, o que mostra a incapacidade de adesão a novas tecnologias, o que levou o McDonald's a perder espaço no mercado para muitos de seus concorrentes.

Wednesday, October 04, 2006

CE-278 - Yano - Aula 5

When Failure is not an option

O artigo trata do estudo de sistemas que exigem um auto grau de confiabilidade no funcionamento, como no controle de tráfico aéreo nos Estados Unidos. O controle de falha utilizado para tal emprego foi desenvolvido pela Universidade da Califórnia, Berkeley.
No artigo, cita-se um caso de extrema necessidade de confiabilidade, que é o de um porta-aviões, no qual todas as atividades devem ser sincronizadas, havendo um grande número de pessoas jovens e constante renovação do efetivo.
Nota-se que a forma de procedência padrão do porta-aviões, ocorre através de subordinação e uma estrutura hierárquica. No entanto, em situações mais perigosas, como durante a decolagem e recuperação de aviões, as ordens hierárquicas tornam-se sobremaneira demoradas e a forma de atuação muda para uma cooperação em time, muito mais dinâmica e eficiente.
Em situações de emergência, até mesmo o mais moderno da base tem não apenas a autoridade mas a obrigação de suspender as atividades de vôo. Caso a sua ação seja posteriormente criticada, o mesmo não seria punido, por outro lado, se estivesse certa, ele seria publicamente elogiado.
A inovação também é inserida em processos tidos como simples memorização, pois a entrada de novos membros dá margem a novas idéias a serem debatidas com o efetivo mais experiente, havendo criatividade sobre processos que poderiam ser estáticos.
Após a citação do caso do porta-aviões, há uma comparação com uma organização civil, uma planta nuclear de energia, na qual esperava-se que os procedimentos também fossem hierárquicos. No entanto, nota-se que a constante inovação nos processos e questionamento sobre os mesmos pôde implicar em melhores procedimentos de segurança para a organização, mostrando que uma estrutura semelhante à do porta aviões também pudesse ser aplicada em uma instituição civil.
Um dos grandes pontos percebidos em comum em todas as grandes corporações de sucesso com relação a confiabilidade é a redundância. Encoraja-se grande comunicação nestas corporações, independentemente da hierarquia, logo, há muita redundância na troca de informações, o que evita falhas e mal-entendimentos. Outra característica é o constante aprendizado, que obriga os operários a estarem sempre questionando os procedimentos e encontrando novas maneiras de solucionar os problemas, motivando-os e evitando que haja comportamento retrógrado.

Saturday, September 16, 2006

LiveWire implementation

I've made available my LiveWire implementation for Java.
It is distributed as a plug in for ImageJ. One can easily download it through this link. There is also one page available with more explanations here.
I hope you enjoy the plug in and feel free to submit me any bug or feature request.
Thanks!

Thursday, September 14, 2006

CE-278 - Yano - Aula 4

Resumo do artigo Software Chronic Crisis, da Scientific American ( http://www.cis.gsu.edu/~mmoore/CIS3300/handouts/SciAmSept1994.html )

O artigo inicia-se através da citação de um grande sistema de software para o aeroporto de Denver, o qual necessitaria de um excelente planejamento para atender a grandes demandas. Tal sistema foi muito atrasado, chegando a cogitar-se que não poderia ser entregue. Em 1994, ano em que o artigo foi feito, 2 a cada 8 projetos de grande escala eram cancelados.
O que se previa era uma grande crise de software, pois até 1994 não tinha-se o conceito de Engenharia de Software muito desenvolvido e o desenvolvimento de software tinha problemas muito parecidos com os do início da revolução industrial.

Comenta-se sobre o fato de mesmo que o Departamento de Defesa fizesse testes sobre seus softwares, os mesmos ainda apresentavam erros durante o uso. Parecia que os métodos utilizados para a produção de sistemas de tempo real não eram suficientes para usos de segurança crítica.
Outro grande problema enfrentado era o de conectar peças independentes de software. Como os sistemas não eram projetados pensando-se nisso, quando havia a necessidade, muitas vezes os projetos falhavam.
São citados vários casos de insucesso de integrar sistemas. Um deles foi no Departamento de Veículos Motores, na California. O projeto, após custar 6.5 vezes mais que o esperado falhou. Outro deles foi o de integrar os sistemas de passagens aéreas com o de reservas de carros e hotéis. Este falhou após serem gastos US$165.000.000.
Alguns dados de uma consultoria da IBM mostravam o seguinte sobre os projetos de larga escala:
55% custavam mais que o esperado
68% demoraram mais que o esperado e
88% tiveram que ser substancialmente reprojetados

Outro exemplo de projeto que teve seu custo em muito aumentado foi o da Federal Aviation Administration (FAA). Esta agência teve seu projeto acrescido de um bilhão de dólares e alguns subprojetos cancelados. Isto reforça a necessidade da aplicação de técnicas de Engenharia de Software às necessidades atuais.

Um dos primeiros passos em direção à Engenharia de Software foi o desenvolvimento do CMM - Capability Maturity Model. Ele teve início no Software Engineering Institute e dava aos programadores alguma forma de medir a qualidade do seu desenvolvimento através de questionários e entrevistas.
A maioria das empresas na época (75%) tinha CMM 1, ou seja, não tinham nenhum processo de medição de qualidade, enquanto outros 24 % tinham CMM 2 ou 3.
O uso de CMM por algumas empresas demonstrou um retorno de investimento de US$7,80 para cada dólar investido no treinamento dos programadores para atingir níveis maiores de qualidade de software.

Uma das formas de se testar softwares para uso em massa é lançar a sua versão inicial como Beta e deixar que várias pessoas o testem, achando vários erros, para posteriormente lançar a versão final.
A maioria dos bugs encontrados em um projeto são erros de omissão.
Uma tentativa de se encontrar erros em estágios iniciais de desenvolvimento é modelar os programas através de métodos formais, os quais seriam a tradução do programa para uma forma matemática de resolvê-lo. Apesar das vantagens, métodos formais podem ter problemas durante a revisão, pois ler uma página de fórmulas é muito mais oneroso do que rever algumas linhas de código. No entanto, alguma empresas mostram resultados satisfatórios para práticas com técnicas do tipo "clean room", na qual uma probabilidade é associada a cada função de acordo com o número de vezes que virá a ser utilizada.


Há uma grande reclamação sobre o incentivo governamental sobre o apoio a iniciativas de desenvolvimento da Engenharia de Software.
Um dos pontos fracos da computação da época (e também atualmente) é a dificuldade de manter os códigos prontos para as mudanças tecnológicas. Embora tenha-se um código em pleno funcionamento em uma arquitetura, a sua implementação pode variar bastante, havendo dificuldade em componentizar os softwares. Houve uma tentativa de criação de linguagem para que isso não fosse problema. Há um grande indício de que UML foi derivada de tais preocupações.

Um grande desenvolvimento de Software ocorreu em torno da Índia, onde o governo apoiou o crescimento de iniciativas de Software. No entanto, em 97, havia apenas em torno de um bilhão de dólares no mercado de software indiano, enquanto o mercado mundial tinha 92 bilhões.
Os desenvolvedores indianos eram tão vantajosos que acabava sendo mais econômico enviar um grupo de americanos para a Índia do que desenvolver nos próprios EUA. Outra vantagem era o preço de unidade de componente, que custava em torno de US$925 feito por um americano e US$125 por um indiano.

Um dos principais problemas na indústria de venda de componentes é o fato de que as pessoas querem comprar os componentes uma única vez e fazer várias cópias dos mesmos.

Uma espécie de continuação deste artigo pode ser encontrada em (http://www.sciam.com/article.cfm?chanID=sa006&articleID=00020D04-CFD8-146C-8D8D83414B7F0000)

Sunday, August 27, 2006

CE-278 - Yano - Aula 3

Comentário do Artigo - Operation - Leadership - do general Peter Schoomaker

O artigo trata de uma mudança de paradigmas de liderança na área militar e consequentemente em outras áreas.
Segundo o autor, organizações vencedoras serão aquelas que fazem "soluções criativas em circunstâncias ambíguas", pois todos devem devem saber como ser um líder.

Os principais pontos do coronel Schoomaker, autor do artigo, são:
- Enfoque sua missão, defina sua identidade: deve-se conhecer as principais habilidades de cada um e haver um objetivo bem definido.
- Pegue as pessoas certas, construa o time certo: nunca confunda entusiasmo com capacidade, recrutar pessoas que realmente fazem o que é esperado.
- Ser um líder, demonstrar liderença: "Liderança tem tudo a ver com lidar com mudanças". Além disso o autor diz que liderança significa fazer com que as pessoas façam algo que não fariam normalmente - e fazer com que façam isto com vontade. Como não há uma fórmula pronta sobre como isto deve ser feito, procura-se por características comportamentais, psicológicas e intelectuais do que acredita-se serem traços de sucesso. Para avaliar tais carcterísticas, coloca-se os candidatos em situações que imitam a vida real.
- Ensine às pessoas como pensar e não o que pensar: uma forma de fazer com que as pessoas pensem é dar as linhas gerais do problema e não a solução do problema em si, fazendo com que os capitães ou gerentes sejam capazes de criar soluções ao invés de seguir ordens.
- Princípios essenciais mantêm a união: deve-se ter uma cultura de princípios básicos e fazer com que as pessoas subordinadas desenvolvam outros princípios. Um dos princípios básicos do autor é "Quando pensar em uma solução tática, tenha ciência de que o seu inimigo fará um movimento contra a sua tática" e que deve-se estar preparado para a reação adversária.
- Aprender fazendo é a forma de aprender: deve-se simular um ambiente de situação real e observar as atitudes tomadas. Quando a simulação acabar, deve-se fazer uma revisão dos principais passos tomados e ver quais seriam as opções caso tivessem o conhecimento atual da situação.
- Faça de todos um professor: Saiba que o seu time deverá ser capaz de continuar suas missões mesmo que você não esteja mais presente no meio. Ultimamente, a maneira mais efetiva de medir um líder e a performance da sua unidade na sua falta.

Thursday, August 17, 2006

Aula Yano 2 - Comentários sobre o artigo A Business-Oriented Foundation for Service Orientation de Ulrich Homann

Resumo do artigo A Business-Oriented Foundation for Service Orientation de Ulrich Homann

De acordo com as definições atuais de orientação a serviços, estes oferecem funcionalidades acessíveis por rede através de padronizadas interfaces. Estas características principais prometem pelo menos interoperabilidade de protocolos independente de plataforma, provedor ou localização.

Atualmente, entretanto, resolver problemas de integração técnica não é suficiente por si próprio para justificar o investimento em orientação a serviços. Para reforçar o argumento, diz-se muito sobre apoio de orientação a serviços à agilidade do negócio porque, em um ambiente orientado a serviços, as soluções são mais fáceis de serem construídas compondo-se serviços, reconfigurando-os e os reutilizando. Isto talvez proceda, mas pela atual definição de orientação a serviços, muitos negócios devem implementar orientação a serviços e ainda assim prover o apoio a TI que o negócio precisa ou deseja.

Para justificar um investimento em orientação a serviço, entretanto, precisa-se endereçar os problemas que possam vir em todo projeto empregando novos princípios arquiteturais:

- Como impedir que a orientação a serviço siga iniciativas prometedoras similares nos mesmos erros arquiteturais que ocorreram no passado?
- Como ter certeza que a arquitetura escolhida para implementação relaciona-se com os requisitos de negócios?
- Como maximizar a expectativa de vida de implementação em um ambiente sempre renovado?


Para conseguir satisfazer tais objetivos, propõe-se entender os negócios como uma rede de capacidades. Uma capacidade modela o que uma função de negócios faz - seu comportamento visível (contra como ela o faz, seu comportamento interno) - e o nível esperado de performance. Pagar empregados e enviar produtos são exemplos de capacidades. Estas capacidades têm "proprietários" e "clientes" em uma forma genérica e o que espera-se que eles façam a um certo nível (como unidades por período de tempo, ou outra medida de qualidade). Isto é "o que" é feito e o nível que é feito. Dentro das capacidades há especificidades de como aquela capacidade é implementada a um dado ponto em tempo com respeito a pessoas, procedimentos, tecnologia e assim por diante. A este nível de abstração, nós focamos em aspectos externos, e como eles são atingidos não é importante. A capacidade é essencialmente uma caixa preta.



O que um modelo deve ter, afinal:
In other words, modern businesses cross traditional corporate boundaries in multiple dimensions, and it only makes sense that our modeling and solutions account for this. The corporate boundary is becoming analogous to the fiscal year for a company when it comes to planning. Both are important and relevant boundaries, but businesses have to plan and budget beyond these boundaries.



Evolução dos sistemas:
Systems Evolution - Connected Environment of Business Functions

If you examine the systems of any given company and look at what they do, you generally will find that the systems or applications support specific functionality or user communities. Finance systems for the finance community, customer relationship management (CRM) for the marketing, sales, and support communities, and so on. If they are connected at all, the connections are not very elegant. The result is that customers live with disconnected silos of functionality. The unpleasant fact for them is that in all likelihood it will stay that way, as new ways of doing business emerge faster than integration can occur.



O que é uma business capability?
Business Capabilities - A More Stable Foundation

So, we find that the real question is "When you architect a solution for your customers, which elements of that architecture are really durable and allow you to deal with change?" Because that answer obviously provides the best ROI and the best insurance against architectural obsolescence.

What we have found is that the stable elements are much more about what businesses actually do (for example, create purchase orders, generate invoices, ship products, and so on). These business activities, which we refer to as business capabilities, are relatively stable, but how businesses implement them with people, procedures, and technology, and how those activities knit together into processes, is far less stable. So now, we need to find out what a business does, what its capabilities are.

Before we continue, let's introduce a few definitions for our discussion:

* A business capability is a particular ability or capacity that a business may possess or exchange to achieve a specific purpose or outcome. A capability describes what the business does (outcomes and service levels) that creates value for customers; for example, pay employee or ship product. A business capability abstracts and encapsulates the people, process/procedures, technology, and information into the essential building blocks needed to facilitate performance improvement and redesign analysis.

Como são alinhadas as capacidades:

Capabilities - The Optimal Problem Solving Layer

We propose modeling the business as a structured—as opposed to a physically integrated—network of capabilities. This addresses the "rich interconnection" over which other aspects (such as the way technology is applied) can be layered from the start instead of added as an expensive and cumbersome afterthought. As you can see, this aligns closely with the black-box service-orientation model: Business capabilities are the structural elements (black boxes) that provide a stable foundation aligning service-orientation projects with their business drivers.



Capabilities Expose Interfaces

One of the most important aspects of capabilities is how they relate to other capabilities; thinking about capabilities in context of the ecosystem is really thinking about their connections. Thus, early detection of their connections to other capabilities, or essentially defining the interrelated ecosystem, is also a crucial step in understanding which boundaries can be traversed and which cannot, a crucial step for maximizing any re-architectural efforts. In fact, discovering these connections may be as valuable as defining the capabilities, because you manipulate and manage the connections, while the capabilities remain essentially unchanged black boxes.

Divisões das capacidades:
Level 1 Foundation Capabilities, subdivididas em
Operational Capabilities - Capabilities—regardless of provider of any given capability—that are required to deliver the value identified as the goal of the business

Environmental Capabilities - Environmental Capabilities address the capabilities outside the basic operations of the business that either influence value delivery (e.g., expectations of customers, compliance requirements by governments, or competitive capabilities by existing or emerging suppliers), or offer opportunities to leverage the ecosystem (including customers) for value delivery/differentiation.

Level 2 Capability Groups

Capability Groups are the next level in the capability model. For example, within the core capability "1. Develop Products/Services" there is often a capability group called "1.1 Plan Products/Services." The Product Engineering group that plans products may further consist of a number of capabilities at level 3…n where specific capabilities and their attributes are described.

A capability group is often an important initial level for doing analysis because it is at the capability group level where service levels, impediments and constraints, and organizational ownership/accountability can first be abstracted and made actionable.
Level 3 Business Capabilities

Capability groups are decomposed into business capabilities. Business capabilities are the building blocks for the business capability mapping. Business capabilities can be decomposed into more granular business capabilities. There are detailed attributes that are captured at the business capability level. Within the analysis you may decompose some business capabilities to very detailed levels (Level 4 and beyond) and aggregate other capabilities at Level Three. It is not necessary to decompose all capabilities to the same level.



Conclusão a melhor forma de

* How do we prevent service-oriented architectures from following similar, hopeful initiatives into the same architectural mistakes of the past?
* How do we ensure that the chosen implementation architecture relates to the actual or desired state of business?
* How do we prolong the life expectancy of the implementation in an ever-changing environment?

é:

The key point to take away is that service-orientation with Web services is only the implementation of a particular model. It is the quality and foundation of the model that determines the answers to these questions. Business capabilities give you a frame of reference to pose these questions and answer them for the various interconnected viewpoints in your business. It finds the stable elements of business to model your architecture around and provides a critical layer that closely aligns to service-orientation. service-orientation in turn supplies the compartmentalized, but connected, structure to implement capabilities so that IT meets the actual business requirements and provides a truly agile business.

Wednesday, August 16, 2006

Easily using sourceforge's cvs

Everytime I do it for the first time it's like a pain. So, I'm gonna let everything one needs to know in this post

Firstly, you'll need to create this enviroment variable to save your typing everytime you need to cast a command. So, edit your ~/.bashrc file and add this line to it:

export CVSROOT=:ext:dannyxyz22@pacwinter.cvs.sourceforge.net:/cvsroot/myproject

Now, exchange dannyxyz22 for your account in sourceforge and change myproject for your project name.
Then, you'll have to create a directory for your files. You'll make it through the import command.
Suppose you are at ~/develop/ and that your project is under ~/develop/myproject . Simply type the following:

cvs import -m "test" myproject myproject-vendortag myproject-releasetag


Where -m "test" is your log message, myproject is your project and vendortag and release tags are only strings for these tags.

Now, your files will be uploaded.

The rest of the process is simple. Everytime you need to add files to your project, go to a clear directory and check out the whole project through:

cvs co myproject

Then your project will appear as a subdirectory. Now, add files through:

cvs add file.cpp

Don't forget to make a commit, else your files won't be permanently added to your project.

cvs commit

Now, it's only fun!

Monday, August 14, 2006

Problems running asterisk

So, I've been playing around with asterisk, and had this bug
root@lelix:/home/baggio# asterisk
Unable to open pid file '/var/run/asterisk/asterisk.pid': No such file or directory
Running the command asterisk -cvvvv gives you some info about what's going on, so I came up with thi s error:
Aug 14 00:51:05 WARNING[8857]: manager.c:1742 init_manager: Unable to bind socket: Address already in use
Actually a ghost asterisk was running so I found it through:
ps -A | grep asterisk
8831 ? 00:00:00 asterisk
And then killed it:
kill 8831
And everything went fine afterwards.

Thursday, August 10, 2006

CE-278 - Yano - Aula 1

O post de hoje será dedicado às aulas de CE-278, Modelagem e Gestão de Processos, do professor Edgar Yano.
A proposta do post é descrever de forma sucinta o site, identificando os pontos positivos e negativos.
Basicamente, o site fala sobre os desafios e oportunidades do mundo de negócios em uma era digital.
O principal conceito passado é que todo tipo de mídia pode ser digital, ou seja, transformado em bits. Nota-se que tudo fica cada vez mais digital, assim como as novas sociedades. Tudo à nossa volta pode estar conectado entre si, e conectados a grandes redes, até mesmo a internet toda.
Para notar esta grande participação das pessoas em uma era digital, estuda-se alguns dos principais motivos de atração, entre eles:
- A facilidade de comunicação
- Comunicação por e-mails e mensagens instantâneas gratuitas
- Procura por informação
- Compra e venda de produtos
- Pagamento de compras
- Procura por nova moradia ou trabalho

Algo um pouco estranho no site são algumas conclusões sobre a quantidade de informação produzida por ano, estimada em alguns exabytes. O site afirma que a quantidade de informação seria equivalente a uma prateleira de livros com 30 pés, por pessoa. Mas sabe-se que boa parte desta informação está relacionada a vídeos e dados telefônicos, o que deprecia a proposta.

Com relação ao capítulo de design, há a divulgação de algumas obvialidades, como por exemplo, "The first law of e-commerce is that if users cannot find the product, they cannot buy it either".
É interessante notar para os fatores que cativam usuários a certos sites, como tipografia, cor, layout, hierarquia do site, entre outros.
Outro ponto bem abordado é que o visual da página pode passar impressão de segurança para os usuários, embora isto seja altamente não correlacionado.

Outro tópico abordado está relacionado com a importante carga de informações que os usuários deixam ao longo de suas navegações. Tais informações podem ser extremamente úteis para procurar perfis de potenciais compradores.
Uma ferramenta interessante para tais análises é citada, o Google Analytics.

Um dos pontos fortes do site é a análise de casos sobre os Modelos de Negócios da era digital, bem como sua classificação e alguns exemplos específicos, como o Red Hat, Wikipedia e o Slashdot.

Há uma interessante abordagem sobre Autômatos no site, descrevendo serviços que os computadores podem fazer autonomamente, como filtrar SPAMS ou mesmo enviá-los. Há algo muito interessante dito:
The first phase of the Web is human communication though shared knowledge. We have a lot of work to do before we have an intuitive space in which we can put down our thoughts and build our understanding of what we want to do and how and why we will do it. The second side to the Web, yet to emerge, is that of machine-understandable information. As this happens, the day-to-day mechanisms of trade and bureaucracy will be handled by agents, leaving humans to provide the inspiration and the intuition. This will come about though the implementation of a series of projects addressing data formats and languages for the Web, and digital signatures.


Além destes tópicos, muitos outros como Ética, Privacidade, Propriedade Intelectual e Privacidade são discutidos.

Algumas vantagens do site:
- Oferecimento de podcasts
- Grande uso de links para pesquisas mais aprofundadas
- Análise de cases


Desvantagens do site:
- Podcasts muito delongados e um pouco prolixos
- Análise muito superficial em alguns tópicos

Sunday, July 23, 2006

Debian port for IBM's Cell Simulator

Well, today I've made available a Cell Simulator for Debian through this link

Friday, July 21, 2006

Removing or disabling ImageJ toolbar

So, I've been playing around with ImageJ and faced the problem to remove the default toolbar. I mean, as I needed specific user interaction, I had to get rid of the useful default toolbar.
It is a nice trick. Thanks for TurboReg being open source I've got some useful ideas.
Firstly, you'll need to add some imports:

import ij.ImagePlus;
import ij.gui.ImageCanvas;
import ij.gui.ImageWindow;
import ij.gui.Toolbar;

Now, your setup method should look something like:

public int setup(String arg, ImagePlus imp) {
this.img = imp;
return DONE;
}

Now remove the old MouseListeners and the old Toolbar in your run method:

public void run(ImageProcessor ip) {
ImageWindow win = img.getWindow();
canvas = win.getCanvas();
for(int i=0;i
canvas.removeMouseListener(canvas.getMouseListeners()[i]);
}
//Here, you'll add your MouseEvent handler...
//if this class handles MouseEvents implementing MouseListener, you may
// directly add 'this'
canvas.addMouseListener(this);

/**
* This part will remove the old toolbar
*/
Toolbar oldToolbar = Toolbar.getInstance();
Container container = oldToolbar.getParent();
Component[] components = container.getComponents();
for(int i=0; i<>
if(components[i] == oldToolbar){
container.remove(i);
//TODO add new toolbar here
//container.add(newToolbar)
break;
}
}

It is a good idea to keep a copy of the old toolbar to restore it after your application finishes.
Now, enjoy your freedom, hhehe

Wednesday, July 19, 2006

Oxygen - Soul Asylum lyrics

Well, this music has been in my mind for the last days. It's from Soul Asylum, one of my favorite bands. It brings me back memories from "Veil of Tears" era. I have gotten these lyrics by ear (and mixing up with some I found in internet). I hope this version is correct (and that there's no problem making it available in Internet). So, here the lyrics go:

Oxygen - Soul Asylum


Wishing upon a mattress
Falling off the axis
Slipping in stillnes
Flipping the pearl(?)
I walk you when you're wasted
I can almost taste it
All this oxygen's for your

But it's a couple more volts of shock treatment for you
When a couple more votes of confidence will do
I walk you when you are wasted
I can almost taste it

And it's a couple more volts of shock treatment for you
When a couple more votes of confidence will do

All is there to remind you
Before and behind you
Follows you everywhere you go
Make me say you're crazy
It don't even phase me
Cause you're the sanest one I know

Just a couple more breaths of oxygen will do
They may say you're crazy
But she's so amazying

But it's couple volts of shock treatment for you
(A couple volts of shock treatment for you)
When a couple more votes of confidence will do
(Lonelyness, Lonelyness again)

Just a couple more breaths of oxygen will do
But it's a couple more pills and a couple more pills
And a couple more "What do you do those things you do?"
(Shock treatment for you)
Just a couple more volts of shock treatment for you
(Shock treatment for you)
Just a couple more breaths of oxygen will do
(Shock treatment for you)
Treatment, treatment for your
(Shock treatment for you)
That will do
That will do
That will do
That will do
That will do

Starting up!

Well, I'm just trying to see how it works