Tag Archives: MitGNU

MitGNU’s BSD License

Copyright 2011 MitGNU. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.

   2. Redistributions in binary form must reproduce the above
      copyright notice, this list of conditions and the following
      disclaimer in the documentation and/or other materials provided
      with the distribution.

THIS SOFTWARE IS PROVIDED BY MITGNU ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL MITGNU OR CONTRIBUTORS BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The views and conclusions contained in the software and documentation
are those of the authors and should not be interpreted as representing
official policies, either expressed or implied, of MitGNU.

27.03.2011

F1

Parabens Vet­tel!

NFS­tor­age

  • pub­li­ca­cao do com­ing soon [ ok ]
  • adi­cio­nando FS ao pro­jeto [ok ]
  • imple­men­tando FS cre­ate [ ok ]
  • imple­men­tando FS open [ ok ]
  • bpm val­i­dar [ ok ]

Rede Fis­cal

  • com­ing soon [ ok ]

03.01.2011

About FS:

* func­tional test [ ok ]

* bet­ter api returns [ ok ]

* sign in [ ok ]

* remove md5 method [ ok ]

* app’s check method return­ing App Obj [ ok ]

* admin [ todo ]

* “pylons” client [ todo ]

==

About Viking Soft­ware Development:

* write about it [ todo ]

* scrum x viking [ todo ]

pyCNPJ

Criei um val­i­dador e ger­ador de CNPJ. Estou lidando com isso agora e sen­tir falta de um objeto sim­ples que valide CNPJ em python. Pub­lico ele usando a “FreeBSD License” (style) e hospedando o Bit­Bucket (nao gosto do github).

Mais tarde devo escr­ever como usar, muito sim­ples, porem tenho de escrever.

http://bitbucket.org/umgeher/pycnpj

Universe + YQL

Dei uma olhada no YQL da Yahoo! para colo­car como um recurso do Uni­verse. Ja’ exis­tia uma API em Python para esse recurso, porem nao gostei da solu­cao e colo­quei fiz uma do zero para nosso Uni­verse. Gostei mais da solu­cao que fiz porque temos padroes na saida, entao li a doc­u­men­ta­cao inteira do Meme (primeiro da minha lista) e fiz esque­mas e obje­tos para a saida de cada resul­tado pos­sivel. Tor­nando o tra­balho de manip­u­la­cao dos dados mais facil do que ape­nas um parser de XML. Tambem fiz uma boa saida para nao uti­lizar todo o lim­ite ofer­e­cido pela YQL foi o drive direto em UDB ou XML. Antes de finalizar o mod­ulo quero colo­car um cache uti­lizando a saida do drive. Deixar o mais rapido pos­sivel a con­sulta e diminuir o uso de HTTP no server.

Tambem tenho de colo­car o Oauth para fun­cionar neste cara. Vi que a solu­cao python-yql usa o mod­ulo python-oauth, como ja’ temos um mod­ulo no Uni­verse, vou ver o que posso fazer com o nosso e porque nao, se tiver fal­tando recurso, mel­ho­rar ele.

Resumo:

  • acesso rapido e facil da YQL usando um Obj
  • retorno sim­ples de todos os resul­ta­dos pos­siveis do Meme

Para quem tem acesso: universe.Apps.Yahoo.YQL

2010/01/29

Sem inter­net

Estou a alguns dias sem me conec­tar a inter­net, e fazia tempo que nao era tao pro­du­tivo como esses dias o tempo per­dido com pes­soas em jabber/xmpp/gtalk e irc e’ muito grande. Sem falar que elas atra­pal­ham a con­cen­tra­cao, suas per­gun­tas sobre questoes de pro­gra­macao e uni­verso unix me tiram total­mente do que estou fazendo, adoro resolver prob­le­mas, todo prob­lema tem de ser visto, sem­pre. E’ com eles que voce con­segue real­mente aplicar o seu con­hec­i­mento e gan­har mais. E os seus links ao youtube e noti­cias sao um chama­riz a parar de desen­volver. Com isso estou pen­sando seri­amente em deixar para la’ IMs/irc. Vou fazer um teste sobre isso, talvez ficar sem IMs/irc por uma sem­ana ou 15 dias. E e’ com isso que vejo que o sim­ples email e’ muito bom, quando tenho real­mente tempo entro e uti­lizo alguns min­u­tos para respon­der per­gun­tas de ami­gos ou entao para escr­ever para a lista mitgnu =)

Mit­GNU

Com algu­mas mudan­cas que acon­te­ce­ram nesse final de ano, venho me con­cen­trando 100% a Mit­GNU agora, empresa que sou co-founder e vejo que tem grande futuro. O que temos de qual­i­dade de pes­soal e’ muito forte. Mas nem tudo e’ ale­gria. Tive­mos um “atraso”(?) com o ShakeIt. Nao con­sidero atraso. Bem…

ShakeIt

O pro­jeto ShakeIt nasceu de uma grande ideia do nosso CEO Rafael “HULK” Almeida. Nao irei falar o que e’ o pro­jeto ShakeIt, mas que erramos em dar um dead­line para ele. No caso o co-founder Thi­ago Tiveron escol­heu a data por ser uma data legal, 10/01/10 (100110). Fui de acordo. Pode­ri­amos lan­car com certeza uma ver­sao beta do pro­jeto para um uso e pesquisa do que pode­ri­amos estar com duvi­das sobre o plano de negocio.

Achei super legal a ideia do Tiveron de colo­car um dead­line e cor­rer atras de uma ver­sao usavel ate’ aquele ponto. Ver­dade o meu empenho na tec­nolo­gia que o ShakeIt vai usar foi aumen­tado diver­sas vezes. Ainda mais quando fiz um count­down para (as) minha(s) work­sta­tion. Toda vez que meu olho batia no canto da tela via o tempo pas­sar real­mente. Era por varias vezes motivo de jus­ti­ficar a minha ambi­cao por nao cair no sono e cod­i­ficar nesse tempo que para meu ponto de vista e’ um certo des­perdi­cio. Resul­tado come­cei a “aproveitar” mel­hor meu tempo. Come­cei a dormir exatas 4 horas por dia no max­imo. Quando me acos­tumei con­segui fazer mel­hor, dormir ape­nas na manha, sim dormia das 07:00am ate’ 10/10:30am, e em alguns dias. Escolhi eles sabado, segunda e quarta. Demorei cerca que quase 10 dias para me acos­tu­mar. Mas deu certo. Nao posso falar que era 100% pro­du­tivo como cos­tumo ser, mas se for colo­car na ponta do lapis (? colo­car na planilha) eu tive entre 75% a 95% do aproveita­mento, isso de acordo com minha/o/o planilha/trac/redmine. Com isso tive mais horas de desen­volvi­mento e ded­i­ca­cao a novas tec­nolo­gias que cri­amos na MitGNU.

E voltando a ideia do Tiveron, per­feita. So’ tem um prob­lema, eu. Tenho um grande prob­lema em falar que algo esta’ pronto, quando esta’ pronto? Quando esta’ per­feito? Nao quero algo bom, quero algo per­feito que me orgulhe de ter cri­ado e orgulho em usar e fazer com que os out­ros usem. Pas­sava dias inteiros mel­ho­rando algo que muitos falavam que estava per­feito. Mas sem­pre tem um X para mel­ho­rar. Errei nisso. Nao sou uma pes­soa de dead­lines. Sou uma pes­soa que adota a ver­sao de “estara’ pronto quando ficar pronto”. Por isso nao con­sidero um atraso nosso ao ShakeIt nao ter uma ver­sao beta para todos no dia do dead­line. Com esse pequeno “atraso” aproveitei e melhorei/refiz var­ios obje­tivos no ShakeIt nesses dias sem internet.

  • tem­plates usando dog­tag e nao mais OCGI
  • tudo esta’ em modulos
  • apliquei recurso de con­coren­cia no ShakeIt (ver universe)
  • algo­riti­mos usando novo “metodo” de threads e distribuicao
  • pages usando templates-dogtag

Uni­verse

Ajustei varias questoes no Uni­verse, primeiro de tudo refiz o mod­ulo de dis­tribuicao de proces­sa­mento. Agora podemos dis­tribuir os proces­sos em diver­sas maquinas de um modo facil. Tudo usando a mesma lib que criei em 2007. Todo processo de mel­ho­ra­mento de codigo e aplicar novos recur­sos foram no Python. Mas quero em um futuro prox­imo colo­car a mao na lib denovo.

Outro ponto bacana foi mel­ho­rar o core do Uni­verse. Agora temos um novo recurso de quando aquele modulo/objeto nao foi local­izado ou gerou um erro, nosso core procura a ultima ver­sao que aquele processo estava “certo” e refaz o proces­sa­mento usando aquele codigo. Nao estou muito certo se ira’ ser util real­mente, mas no caso imag­ino um sis­tema sendo atu­al­izado em varias maquinas, quero que cada maquina (ponto de proces­sa­mento) tenha uma copia do aplica­tivo, assim quando um processo gerar um erro, essa demanda ira’ pas­sar para a maquina a frente dela, ate’ chegar em uma maquina que o resul­tado seja pos­i­tivo, dai sim retor­nando a quem quis o processo e cam­in­har dai para frente nor­mal­mente. Nao tenho nome para esse recurso. Mas se for bem imple­men­tado, daqui a algum tempo nao teri­amos mais nos pre­ocu­par em atu­alizar tudo de uma vez ou ter as quedas de sis­tema sem usar slave. Deixarei esse recurso como unsta­ble e nao ira’ para o core da pre-stable. Quero lan­car uma nova sta­ble quanto antes para me focar mais em out­ros produtos.

  • nova ver­sao pre-stable
  • dog­tags total­mente em uso, irei tirar o OCGI quando todos os pro­du­tos estiverem usando dogtag
  • leitor de feed de word­press (WPReader)

SF

Estou bas­tante con­tente com a evolu­cao do SF. Temos var­ios novos recur­sos como download-key con­fig­u­rando a veloci­dade. Essa key per­mite que ape­nas o numero de pes­soas pos­sam usar aquela chave e quan­tos mb/s poderam abaixar. Quero mel­ho­rar o sis­tema de log do SF.

Alem de mel­ho­rar o sis­tema de log do SF, que­ria criar um recurso de quando subir um arquivo para o stor­age um sis­tema de “alerta”/msg qual­quer no twit­ter, quero aplicar isso jus­ta­mente para o UPA. Assim o pes­soal que tiver cadas­tro no UPA podera’ “espal­har” seus arquivos com maior facilidade.

VCNews

Estive revendo o back­end do VCNews, quero colo­car ele para frente. Temos var­ios recur­sos do pro­jeto final ja’. Teri­amos de ter­mi­nar o processo de app e front-end. Que estao prati­ca­mente a 0% do desenvolvimento.

2009/11/20

  • mel­horei con­t­role de sen­has do Uprofile
  • cadas­tro ShakeIt usando Upro­file working
  • mudan­cas de meto­dos do Bridge do ShakeIt para mel­hor orga­ni­za­cao e manutencao
  • shakeit total­mente usando uni­verse ver­sao supernova
  • nova OCGI, se chama (por enquanto) objects.tag, mas acho que vou chamar de DogTag

O desem­penho da ver­sao Super­nova e’ muito bom!!! Alem das lis­tas de Obje­tos estar bem maior, facil­i­tando o uso para desen­volver rapidamente.

Espero amanha fechar uma ver­sao estavel da Dot­Tag e quem sabe apre­sen­tar o novo pro­duto MitGNU… =)

MitGNU SI

Yeap. Voltei com o SI. SI nada mais e’ do que uma fer­ra­menta para fazer stor­age de ima­gens de um modo facil e rapido.


Antes o sis­tema tinha recur­sos de sep­a­ra­cao por albuns, cat­e­go­rias e tags. Hoje ele bem mais sim­ples, deixando assim esses recur­sos para a apli­ca­cao que ira’ uti­lizar ele desen­volver e aplicar con­forme o necessario.

Os recur­sos da ver­sao 1.0:

  • um novo sis­tema de stor­age foi desen­volvido, assim podemos ter ate’ 2^48 ou 281474976710656 arquivos por dia
  • cada app tem acesso unico as suas imagens
  • api rest simples
  • mod­i­fique a imagem antes de rece­ber… resize, trans­form e rotate

E’ isso. Irei por­tar agora o ShakeIt para uti­lizar o SI. =)

myUniverse…

O que seria myUniverse?

Nada mais do que alguns soft­wares que penso que vao mel­ho­rar minha vida, exemplos:

  • Agenda de contato
  • Album de fotos (Flickr — Client)
  • Cole­coes (banco de dados OO de rap­ida manipulacao)
  • Notes

Quero aproveitar o poder do Uni­verse e fazer esses soft­wares rodando tudo em um local ape­nas. A primeira fase vai ser total­mente web. A segunda fase penso em fazer um client em TK/GTK/QT ou tex­tApp. Algo que con­siga usar sem um navegador.

E com esse novo desafio come­cei a desen­volver o que seria um Notes que eu usaria. Bem eu uso o Tomboy (wikipedia) com isso devo pegar a ideia basica de fazer Notes um certo wiki pes­soal de sim­ples manipulacao.

O que ja’ tenho feito dele:

  • Note
    • Title
    • Text
    • Cat­e­gories
      • Name
      • Desc
      • Group
    • Note­book
      • Name
      • Desc

Rodando no ter­mi­nal para ver­i­ficar o que estou fazendo, ja’ tenho o basico do Notes pronto. =)

TODO…

  • Mel­ho­rar Uprofile’s API.
    • Fazer meto­dos de uso mais sim­ples para myU­ni­verse o que temos agora esta’ de bom uso mas sinto que pode mel­ho­rar muito, ainda mais com um sis­tema de ape­nas um Profile-Client.
  • Criar client web para o Notes
  • Flickr’s API
    • Trans­for­mar a API do Flickr para o Uni­verse. Ja’ que pro­du­tos da Mit­GNU e myU­ni­verse irao usar Flickr, tenho de adi­antar isso quanto antes.

ShakeIt — Novo modelo

Depois de muito tempo sem colo­car a mao no ShakeIt, vamos voltar para ati­var ele. E com esse tempo que teve o Uni­verse teve varias mod­i­fi­ca­coes, grande parte delas na Engine mesmo, para aten­der mel­hor o pro­jeto Upro­file e agora Rents. Com isso o ShakeIt (rc1) ficou velho e fora de forma.

Com essas mudan­cas tive­mos grandes mel­ho­ras em per­fo­mace, tanto quanto acesso a banco de dados quanto na OCGI, escrita de Tem­plates e Pages e ganho de APIs (Upro­file a mais ino­vadora delas).

Voltando para ShakeIt surgiu novas facil­i­dades de criar o sis­tema, con­t­role de Ses­sion e Users dire­ta­mente no Upro­file. Nao ter­e­mos de con­tro­lar nem sal­var infor­ma­coes de users no nosso banco. Todas as infor­ma­coes que quer­e­mos guardar e uti­lizar vao ficar em um outro banco. Uti­lizando a API do Upro­file tiramos o custo do servidor-Shakeit e jog­amos no servidor-Uprofile.

Com esse corte de custo vamos poder criar mais tools e/ou ser­vices neste servi­dor sem perder performace.

Bem vamos pen­sar agora em o que uti­lizar infor­ma­coes para fes­tas e even­tos. Primeira missao.