Feeds:
Posts
Comentários

Linux é conhecido por ser aquele sistema operacional de difícil aprendizado, isto é quando o usuário é logo tachado de hacker ou de nerd. Ubuntu 9 muda completamente essa visão!

Desde a instalação o sistema oferece pouquissima dificuldade, já vem com a todos padrões de teclado e diversas linguas, diferente do windows que vem somente com aquela que você comprou. Sem complicações o sistema roda muito bem desde sua instalação, vem com o um pacote Office completo chamado Open Office (um Office mais básico), opções de temas visuais, leitor de PDF, FireFox (navegador de internet), MSN, editores de imagem, texto, softwares de multimídias, drivers de vídeo e som, e sua vantagem mais conhecida sistema comprovadamente mais imune a virus. Precisa de algum Software que não veio instalado? É super simples usar o Adicionar/Remover Programas! Busque o software do tipo desejado, escolha algum(s), ele baixa e instala automaticamente.

add_remove

Gerenciador de Software

Para as tarefas cotidianas: navegar por páginas da internet, assistir vídeos, músicas, abrir planilhas e documentos o sistema é extreamente robusto oferecendo quase tudo que você pode precisar desde a instalação.

Porém é fato que alguams necessidades podem não ser atendidas logo de cara, como por exemplo para aqueles que gostam de baixar músicas e animes os infames codecs de vídeo não veem instalados, mas sem drama, tendo conecção à internet o próprio programa tocador de mídia baixa os codecs para você instantânemante! É isso mesmo, diferente do Media Player do Windows que mal aponta o problema e você que se vire, no Ubuntu ele resolve para VOCÊ.

Para algum programa essencial do windows que venha a faltar existe a possibilidade de usar o WINE para executar programas Win sem perda de performance. Ele ainda sabe lidar com partições padrões do Windows como NTFS e você pode ver seus arquivos de mídias e backups do outro sistema sem dificuldade.

O sistema é bastante eficiente, mesmo rodando música, internet e várias tarefas o uso da memória a velocidade não foram prejudicadas!

recursos do sistema

Uso de memória abaixo de 512Mb, Processador Livre

Meu computador é modesto, Pentium Dual Core 1.6GHz, 2GB de memória.

Até agora apontei os pontos positvos, mas agora vamos a sujeira.. Existirão dificuldades para um usuário acostumado com o Windows, algumas delas são: dificuldade em se localizar no sistema de pastas; não existe Internet Explorer mas o Firefox fazer um papel ainda melhor; atalhos de teclado e a posição dos elementos na tela; mesmo com WINE alguns programas do Windows não vão rodar facilmente; o sistema de multiplos desktops é de uso opcional mas pode confundir muito um desavisado.

Concluindo: recomendo instalar Ubuntu inicialmente em casa para aqueles que desejam sair da ilegalidade, desejam experimentar um sistema diferente e menos exposto a virus, possuem um computador com pouca memória ou tem um filho de mais de 8 anos em casa, perfeito, recomendo. Mas não recomendo para aqueles que dependem de realizar tarefas a curto prazo no computador, querem uma plataforma para games, ou se depende do uso Internet Explorer para acessar algum site específico.

Difícil é acreditar num ciêntista da computação para falar de Linux né?! Mas garanto como usuário doméstico que sempre usei Windows (que vergonha) e não queria nem experimentar Linux em casa (só no trabalho e olha lá hein..); que esses 3 dias de Ubuntu foram mais agradaveis que Windows.

Mais informação (chato) | Mais desinformação ( informação mergulhada em sarcasmo)

This project is gonna be halted for now due to a change on my priorities.

The functional code already produces will be public for whoever wish to continue.

I would gladly resume this work in the future if possible.

DOWNLOAD: d2s 2009-10-26 version

Had a little drawback developing dia2statemachine because JS weird way of being poo Object Oriented.

Just so people know, there are setters and getters in DECENT BROWSERS , but of course IE doesn´t use them! They can significantly simplify the code, but what the helll, let´s keep it compatible at this time…

I was having lot´s of trouble to get a value out of a class in JS, turn´s out that, if there is a var a = true; inside a class I don´t have access to it from outside from calling, object.a -> (undefined), in the other hand, if it is declared inside the class as this.a = true , then I have access outside (set and get) but that is not O.O.

So a very simple way to make getters is>

snipp d2s

I had a visit some very special friends so I had a great break for a week =)

Pool!

friends on the beach

friends on the beach

So.. now I have to finish up Aikido Londrina´s report and student system, another week or so and I´ll be back to my Lab =)

Having so much fun right now! There´s been long before i had any fun on programming anything like I´m enjoying now :D   the code is pretty nice so far!

Some Snippets:

To get the XML into HTML I built a really small ruby script that convert the file into a JS var and considering using the same script on the website to remove some of the ‘garbage’ out of the XML and print it on the page.

http://www.openjsan.org/doc/k/ka/kawasaki/XML/ObjTree/0.24/lib/XML/ObjTree.html

First of all, download DIA! =D

Select UML for the sheet pallet. Only a reduced set of the tools will be interpretated, the X´s will be ignored.

These is the selection of tools available:

dia - rubystatemachine

dia -> ruby statemachine

Ok! A quick note about the arrows, is that the 3 of those can be used under any TRANSITION circunstances (since all connect state with state), but you will see if you try, some arrows fit better in the indicated manner.

simple ex

simple ex

  • So that is a very basic example, it is valid, notice that you need to indicate a BEGINNING connected with a STATE since the XML has no defined order among the elements.
  • Not all TRANS are required to declare an action,  the EVENT alone is ok, but if your going to declare both  use  / to separate <  event_name / run_action >
  • On STATES you may use the fields: Entry action and Exit action they will trigger respectively on_enter, on_exit


Soon part 2

Hello !!!

After a loooong while I decided to dev something just so I don´t get too rusty!

The concept is: Statemachine is a fine implementation of FSM for ruby (act_as_state_machine is also an option). The author  wrote a nice guide for layperson (or forgetful like me :P ) BUT still something is missing! In all examples there are diagrams, those are very necessary for us to understand what to implement in the machine, but a huge one´s mat get really confusing. The solution would be to convert the Diagram into Ruby code!

The plan: Dia is a great and easy to use diagramming tool, win and linux able, it´s save file is in XML.What i´m gonna do is make a JS that is able to parse it´s code and generate ruby =)

Execution:

  1. Make a definition of the simbols accepted by the conversion. Document it (blog).
  2. Understand the .dia XML, what is gonna be used inside?
  3. Make a website that receives a file .dia
  4. Make a response page with the contents
  5. In this page, JS will read, convert (the XML inside .dia) and return a ruby code for the statemachine in a textarea.
  6. In future (since the future is unknown this may never happen..) there will be no upload to the server, a Flash reads the content and return to JS.

Purpose: I love ruby lang, every Computer Science student must at least once use a Finite State Machine, maybe this interface will make things more attractive so he have a taste of ruby programming..

Long automata’s description may be very boring and error prone this should make the assembly easier.

Para que situação isso se aplica??

Sistema de blog ou artigos, ou essencialmente qualquer tela semelhante a tela abaixo!

Tela de Artigos

Tela de Artigos

Sem muitas delongas o caminho do pote de ouro:

MES|ANO |TOTAL = “SELECT MONTH(created_at) as mes, YEAR(created_at) as ano, COUNT(*) as total
FROM artigos
GROUP BY MONTH(created_at), YEAR(created_at)
ORDER BY created_at ASC”

LETRA| TOTAL = “SELECT left(titulo, 1) as letra, COUNT(*) as total
FROM artigos
where left(titulo, 1) >= ‘A’ AND left(titulo, 1) <=’Z’
GROUP BY left(titulo, 1)
ORDER BY titulo ASC”

NUMERO| TOTAL =“SELECT left(titulo, 1) as numero, COUNT(*) as total
FROM artigos
where left(titulo, 1) >= ‘0′ AND left(titulo, 1) <=’9′
GROUP BY left(titulo, 1)
ORDER BY titulo ASC”

Minha lógica de impressão foi para mes/ano:

se houve mais de 0 registros na consula faça:

do primeiro registo até o ano atual faça:

de 1 a 12 faça (i):

vai desempilhando os registros caso o mes caso do primeiro registro esteja no topo da lista seja == i

caso nao seja o mesmo mes, nao desempilhe, somente imprima o nome do mes

fim. fim. fim.

Não sei se funciona em outros BDs fora mysql, mas eh provavel que sim. Espero ter sido util!

I Happiness to share :D

You know when users gotta insert a lot of records into the DB, it is cool if the programmer always set the first field of a Form with focus! Or else they could get really annoyed..

First of all, this is a Rails solution but can be done in any other language.. if you know what page your user is visiting..

snippet..

	function start_up(){
<% if controller.action_name == 'criar' -%>
		(document.forms[0])[1].focus();
<% elsif controller.action_name == 'alterar' -%>
		(document.forms[0])[2].focus();
<% end -%>
return true;
 }

then call the function on BODY onload= ’start_up’

This if elsif is required because in Rails a ‘new’ form have 1 hidden field and a ‘edit’ form have 2 hidden fields, if your form is in PHP C# and have no hidden fields, you are likely to use (document.forms[0])[0].focus(); for the very first field on the very first form.

Conclusion:
So COOL !! This function becomes something different depending on the page the user is visiting :D

Sorry the syntax is messed up is because of word press post security is kinda paranoid..

Probably this info is well known diffused on the web, but since i´m loving to use ThickBox.. :D

You are using Thickbox to open a iFrame in your site, but don´t have control of it from inside the frame?! Let´s close it as if it were a Ajax box, but calling it from the parent (you may also use parent.eval()to run any other function known to the parent)

<a onclick=" parent.eval('tb_remove()')" > [X] </a>

You may use this code inside a link along other JS, or in a Form ‘onsubmit=’, or a Button ‘onclick=’
Done!

Postagens Antigas »