quinta-feira, 21 de janeiro de 2010

KOW Framework :: CLI for helping you

Hey there!


In the last post I have commented about the KOW Framework status, but I haven't actually given any more details on what I am really doing... we are getting into alpha stages, with some documentation being written and some bugs being fixed and I think it's time to give you all a brief description of what is going on.

We (I am working alone now.. have been for the past 10 months but I have received some really appreciated help) have create quite a few packages with some interesting features focused on helping the creation of multi platform web applications with a database backend. There are a few of those frameworks, but this one brings something new to the table: it is written in a 100% compiled language called Ada (the 2005 version of the language, to be more precise). This language have several advantages over other ones (you should google for it and find it out by yourself) as it has been designed from ground up to be really safe and powerful.


Here is a small list of features we have implemented:
  • file system abstraction (some things are implemented in a way it can work both on windows and linux without problem at all)
  • configuration files abstraction (you care about the meaning of the data, not about the syntax or where it is stored)
  • database integration (actually, all we have done is a little clean up and reorganization of the APQ code with the original author's bless)
  • database abstraction using OOP (you can deal with Ada types and the framework deals with the SQL for you)
  • web framework based on services (pretty much like java servlets), modules (small web page elements) and components (singleton factories for services and modules)
  • authentication, authorization and, at some level, accounting
  • logging

We also have worked on other features, but those implementation are somewhat incomplete and.. well.. shouldn't be used right now (except for kowplug, which is a quite simple API for helping the developer to create a plugin enabled application in both windows and linux using Ada.. but this is not being used by ourselves, hence I can't guarantee it's going to work at all in production).


As you can see, we have put a lot of effort in this project. Thousand of hours have been spent on designing and coding; we have redesigned some of the packages; I actually have some redesigns in mind just waiting for more time for doing it... but I haven't done a decent public release yet.


Why is that? Well, first off the framework is still in early stages. It is a quite big project and some of the code was done in a hurry (mainly the kowview page module/servide and the kowview-entities package), we have learned a lot (yeas, a LOT) while coding and we thought we whould go a determined direction but things changed and moved us otherwise.. well, some things were simply adapted... others just went into a halt stage and need to be completed now (such as kowplug).

Secondly, there is no introduction material (it's quite easy to use the framework once you have learned the basics using only the specification files) and working with your projects (specially managing the application user accounts, entities and default/user data files) used to be a pain!

Use to be because there are lots of repetitive tasks.. and kowview needed a redesign on how to reach for the component's data.... well, long story short I've developed a simple Command Line Tool called kvdriver.


This tool will help you out in
  • initializing your project environment, creating all the build scripts needed
  • automatically generating some of your source code based on what applications you want to use
  • the more tedious entity code is now managed automatically
  • useradd and groupadd methods for your project
I also plan to implement dependency management and a complete web application distribution system.. it's gonna be pretty much a multi platform packaging system such as Gentoo's portage.. but idk when and not even if I am going to implement it.


I am now writing some documentation, and improving the kvdriver tool. There is a long way to go before I can say "alright, go ahead and use our code" but it is already available at http://framework.kow.com.br ... it is open source, you can clone our git repositories and try it out...


I am really glad how fast I am evolving right now. I am really focused and the result as it is right now is.. well... let's say now I can create a blog system in Ada in 12 minutes :D

terça-feira, 5 de janeiro de 2010

KOW Framework :: Current Status

Well,


I know I need to update this blog more often... it's just I've been too busy with my personal life...

First off, I've been through a painful divorce process.. we weren't actually married, but we have bought a house... and until we don't sell it I'm still attached somehow to my ex... which is painful enough by itself, but it get worst... and I'm not talking about this right. :)


I want to summarize the current KOW Framework development status. I don't want to sound miraculous or anything, but I think I might be able to say right now the framework can be compared to django or tapestry... but with all the advantages of the Ada programming language.


There is a long way to go (mainly in fixing bugs and writing documentation) but I strongly feel we are getting somewhere...


terça-feira, 15 de setembro de 2009

KOW Framework :: ERP in the works

Howdy all.


I'm the developer for the not-so-known KOW Framework. I'm also the current maintainer for the APQ database bindings for Ada (which is now part of the framework).

I started up codding this framework for developing business applications (both web and desktop) easily. As things have evolved, our focus has changed several times and now we are back to the original idea. :)

Right now we are working with complex Web Applications. KOW Framework has a powerful and high scalable modular architecture. One module can depend on other directly (ie, including the module specification), but you can develop using IoC (Inversion of Control). It allows you to use some MVC principles even though we haven't built it thinking about any of those concepts.

The idea is to make a framework that easy our work for some tedious tasks (such as database interaction, configuration files and page construction). Even though I think we have achieved some of these goals there is a long way to go before we can say it's ready for the general public.

Well, I started using the framework in heavy duty tasks a couple of weeks ago. I'm listing some of it's problems and I intend to fix them ASAP (and then write some decent documentation about it and make a decent public release). But the thing is I'm quite happy with the current status. Even though I've been working all alone and thing has progressed pretty fast. Hopefully we'll have a decent set of Ada libraries for building complex business applications in a short period of time.

For the ones who might ask: I call "business applications" those applications someone who isn't a coder would "implement" using Microsoft Access, or some initial (or lazy) programmers would do in PHP.

The vast majority of programmers would usually go to Java or .NET, which I believe not to be fit to any real life application at all (but that's a totally different topic and I'm not messing with it right now).

ERP and CMS are excellent examples of what I call business applications.

quinta-feira, 3 de setembro de 2009

final-no-meio-de-semana :D

Opa

Trabalhei pra kct (kct MESMO, tipo umas 15 horas por dia) nos últimos dias (incluindo sábado e doming0). Decidi me dar folga hoje! Mas quem diz que meu trabalho concordou com minha folga? rs


Bom, tive que ligar o PC pra trabalhar nem que seja só por duas horas. Tudo bem, amo o que eu faço mesmo.

Mas resolvi aproveitar para falar sobre um trabalho meu livre, sem ligação com nada que me de dinheiro etc etc etc. Sim, trabalhei de gratiz! :D Mas por uma boa causa.

Tem um pessoa desenvolvendo um sistema operacional/distribuição opensolaris chamada AuroraUX (#auroraux@freenode). Estou escrevendo a biblioteca base para a construção da interface "gráfica" (modo texto) para o instalador (chamei o projeto de sunrise).

Fotos do que já funciona estão aqui:

http://www.twitpic.com/fdqws
http://www.twitpic.com/ff5z6


Por enquanto só existe o conceito de retangulo, janela e screen (area básica onde os componentes escrevem coisas).

Não tem nada de eventos e talz...

mas eu curti 1 coisa sobre essa lib: é MUITO fácil criar uma interface em Ada em minutos! Nem precisa de construtor de interface. uhu :D


Bom, depois espero ter tempo/saco pra publicar algo nesse blog tão abandonado meu com mais detalhes.. e ainda não me decidi se escrevo meus posts em en ou pt... oh dúvida!

quarta-feira, 2 de setembro de 2009

Redmine vs Trac vs ??

Resumindo a história: migrei do trac pro redmine. Curti... mas... unh.... sei lá.


Não me senti 100% confortável com nenhuma das ferramentas, então...


bom, sendo o OgRo que sou melhor coisa é fazer uma outra do zero. :D E em Ada, claro. \\o/

sexta-feira, 28 de agosto de 2009

Minha experiência com o redmine

Caramba..


puta ferramenta boa.. mas eu me sinto meio perdido ainda..


pq?


bom, pra começar o esquema de tickets dele é muito mais complicado que o do trac... essa complicação não é a toa (é muito mais complet0), mas estou demorando um pouco para me acostumar com tanta informação em tão pouco espaço....


Estou curtindo, mas não o bastante; sinto falta de coisas do trac, mas ao mesmo tempo trac não suporta git decentemente nem multiplos projetos.


Conheço um pessoal doido para fazer um framework em Ada usando o KOW Framework que eu desenvolvo. Bom, idéia interessante e bate com uns projetos que eu tenho... vou tocar..


Já tinha decidido isso, mas hoje eu vi algo que me deixou completamente boquiaberto.

Bom, vou resumir numa frase: um looping com regexp em Ada é 8 (OITO) vezes mais rápido que o mesmo looping em python....

isso mesmo...

É esperado ser mais rápido já que python é quase tão lerdo qt java (ou jaba .. hehe), mas kct! :-O OITO vezes mais rápido!

PQP!


Numa outra hora posto um benchmark... agora estou ocupado varando a noite pra reimplementar as coisas python em Ada. :D

segunda-feira, 17 de agosto de 2009

Trac vs Redmine

Tenho usado o trac por um baita tempo... muito contente com ele até que eu decidi mudar meus repositórios de svn para git.


Vi que não fazia sentido manter os módulos do KOW Framework (antigo AdaWorks) em um mesmo repositório git. O subversion é muito legal no lance de ser orientado a pastas, mas o git não segue essa idéia.

Além de me oferecer opção de um download muito menor por repositório, sem incluir módulos legados nem código não suportado, essa abordagem do git também me oferece maior segurança. Posso escolher quem faz o que e aonde; sendo assim, posso misturar repositórios públicos e privados em um mesmo servidor, sem muito trabalho.


Migrei e amei o git; rápido, super fácil de entender, completinho.. só que... bom... agora meu trac não consegue mais listar meus repositórios... . Nunca pensei que isso me faria TANTA falta!


Googlei, googlei e o que eu acho? Redmine! Já tinha esbarrado nele antes, mas ele tem 2 coisas que me deixaram bem contentes: suporte a git e multiplos projetos! Tudo o que eu precisava!

Vou instalar o redmine correndo no meu servidor e ver se me dou bem com ele... sendo o caso migro tudo para ele e, finalmente, concluo a mudança do AdaWorks para KOW Framework! :)