Re: [PROPOSAL] i18n4data Proposal

2008-02-03 Thread Ahmad Khalifa

Neng Geng Huang wrote:

I reviewd commons-i18n. It is a different implementatoin with
different purpose.


I could not find any source at this address [1]
Could you show me the source, I think I don't get exactly what your
i18n4data does.

I am new here, but I think it would be better to merge whatever features
you have into commons-i18n and try to move it outside commons-sandbox to
commons-proper so it becomes an active/stable component.

It would probably be faster that way, and it would make more sense as a
commons-X project rather than a standalone project.


[1] http://i18n4data.cvs.sourceforge.net/i18n4data/


Regards,
Ahmad


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [PROPOSAL] i18n4data Proposal

2008-02-02 Thread Ahmad Khalifa

Neng Geng Huang wrote:
The key of i18n4data is to i18n user's data, not interface message. 
For example, if you are developing an e-shop web site to support two 
languages (English and French), you might have a table to store your 
goods item when you design the data structure:


I don't see the difficulty localizing user data with bundles if you're
talking about single strings.

The limitation I see in bundles are the Key/Value per Lanuage design.
You can not add more attributes to an item, or have multi values per item.

If you just want to move the key/value data from bundles to database
tables, then perhaps you should check out commons-i18n which, as far as
I understand, does exactly what you propose and maybe even a little more.


[1] commons-i18n
http://commons.apache.org/sandbox/i18n/

Regards,
Ahmad


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [PROPOSAL] i18n4data Proposal

2008-02-01 Thread Ahmad Khalifa


Neng Geng Huang wrote:
Currently I cannot find any sponsors for this project, so if anyone 
reading this message would like to get on board, it will be really 
appreciated.


I am not a sponsor/mentor, but I would be interested in participating.
I ran into this issue before, when working on this [1]. My main problem
was how to i18n a dropdown menu.

Resource Bundles did not allow you to store multiple values per key, and
they did not have a reverse lookup, i.e. from french value to key.

The solution that I was going to work on, was to move the messages from
ResourceBundles to a database table. Is this a similar approach?

[1] - Business Application Framework.
http://mail-archives.apache.org/mod_mbox/incubator-general/200801.mbox/[EMAIL 
PROTECTED]


Regards,
Ahmad


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Business Framework Project

2008-01-29 Thread Ahmad Khalifa


The source is available with some instructions on how to build and use.
http://www.khalifa.ws/files/mechanix/mechanix-0.1.zip

Remeber, this is an actual working application, but some features might
be broken for now because I changed the folder structure a little.

Niclas Hedhman wrote:
I.e. the most important part is whether you (and any buddies of yours) are the 
creator(s) of the original work, and not 'borrowed' without following 
licensing restrictions.


I did what I think is appropriate, but I think there would be a need for 
further review by someone else. Some cases that I'm sure might need

extra attention would be:
1. I'm using GPL javascript html-editor (Tiny MCE). As far as I can
   tell, It's OK to use it, as it resembles dynamic linking.
2. I'm using commons-el in source form and performed some changes to
   it. I'm confused as to wether the 2-liner NOTICE file suffices here?!
   Or do I need to remove the apache name from it?!
3. I include the MySQL/Oracle JDBC driver. Not sure what to do here.


Regards,
Ahmad

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Business Framework Project

2008-01-28 Thread Ahmad Khalifa

Alex Karasulu wrote:

On Jan 26, 2008 3:50 AM, Niclas Hedhman <[EMAIL PROTECTED]> wrote:

On Tuesday 22 January 2008 22:20, Ahmad Khalifa wrote:

Note, The project has a working codebase.

Perhaps a good first step is to make it publicly available ;o)

Niclas makes an excellent point, then we can start looking and kicking the
tires.


Well, is there anything I need to know before making the source
available online? I mean, license-wise?

Regards,
Ahmad

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Business Framework Project

2008-01-23 Thread Ahmad Khalifa


David E Jones wrote:

As you mentioned, yes, there *are* various commercial vendors doing
this, but no open source has this capability.
I'd be interested to hear more of what you had in mind for "this 
capability".


The ability to customize anything and everything in the application
at a higher level than Java and XML.


Consider a small-medium business that has an ERP system, and one day
decides that they want to get a CRM system to track their sales force.
Which would be the best scenario of those?
(A) - A typical CRM implementation with data migration/integration work,
 user training, More systems to support.
-OR-
(B) - A small CRM implementation with no data migration/integration, not
 much user training, no more systems to support.


You've lost me a bit here It is definitely nice to avoid things like 
data migration and integration and user training and support of systems.


I certainly didn't mean that scenario (B) will make the costs Zero. I
meant that with the second system -- CRM -- there will be much less
work to do outside of the implementation of the CRM itself.


What do you mean by 'start looking at data modeling'?
What I mean is actually designing how to store information for things 
like products, orders, invoices, payments, shipments, 
customers/employees/suppliers/etc, quotes, requests, and so on.


Well, thats already done. I have looked at how exactly to model and
extend several business scenarios. Remember, in my first post I
mentioned:

Note, The project has a working codebase.



Or is your intent to just create a framework and not get into business 
level artifacts? Don't read too much into that question: that's a very 
common and valid approach and I don't mean to suggest that you should if 
it's not your intent.


Remember, in my first post I mentioned:

There is also an incomplete CRM-like implementation.

It *is* my intent to build several apps on top of this framework, to
make is easier to implement. That is what I think that this project
could benefit from OFBiz.


Are you still skeptical about using database to store application
objects? Consider moving the component-load.xml file to the database
and having a load-on-demand button somewhere. How much easier would it
be for users to activate/deactivate/upgrade components? and no downtime!
This would be exactly like Drupal's Module management system.
I am still skeptical about it, yes. It definitely sounds nice at first, 
but I've been through cost/benefit comparisons for doing this with all 
sorts of different types of data and even tried a number of these 
things. Some things just seem to work better in files and other things 
seem to work better in database records.


Perhaps more details into how this framework does things would help
convince you??

I think you're looking at going in the same direction that we are with 
OFBiz. That's a great thing to see even if, or rather especially if, the 
approach for getting there is very different.


Yup, same direction.

I'm trying to propose a different approach to doing things that IMO
would be much easier than OFBiz. If you're not sure that the approach 
itself would be able to deliver the same functionality, then we need to

discuss that before getting into which is best.


Regards,
Ahmad

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Business Framework Project

2008-01-22 Thread Ahmad Khalifa

David E Jones wrote:
The idea of putting all business level stuff in the database is 
interesting, but I'm still a skeptic. You can certainly build revision 
control around it, but how do you get the same combination of off-line 
and remote work along with team collaboration and group effort 
synchronization? I guess you could build that too, ie some sort of 
database sync/merge. I have never done this formally, but based on 
discussions and informal cost/benefit comparison... well... I guess it 
is enough to say that I'm still a skeptic. ;)


Basically object definitions are grouped together in /Projects/. For an
application developer to start working on any object definition, he has
to have the project that they reside in locked. Add to that a 'Project'
import/export feature, and you can have team collaboration.
A typical scenario would be developer A wants to work on the /Contact/
objects. First he locks the project on the DEV server, imports latest
version to his local environment, works on it, exports working copy back
to the DEV server, unlocks the project.
This is also how you would migrate between different environments.
i.e development to production.

Import/Export operations are saved as files on the server
automatically, but in the future, there could be some sort of revision
control integrated with it.
The import/export files are readable XML files :)

There are various commercial vendors doing this sort of thing. Most are 
aimed at having doing infrastructure for a centralized ASP-style 
environment, ie where there is one big application and people build or 
extend apps through web-based interfaces and everything lives on the 
server. The ultimate in lock-in, and an nice enabler of 
over-centralization (which I think most open source proponents realize 
the danger and downside of...). That's a good motivation for database 
driven business data structures, logic, screens, etc.



What could be considered as lock-in or over-centralization from one
perspective, could be looked at as being simplifying things or reducing
costs from another perspective.
Think of CRM/ERP/Accounting/Payroll/HR/etc.. just compressed into one
system, this would certainly promote less Excel sheet usage :)

The basic model of having 1 repository of customers is inherently better
than having multiple repositories at several systems, with data
fragmented allover, and backend migration/integration processes running.

As you mentioned, yes, there *are* various commercial vendors doing
this, but no open source has this capability.

Consider a small-medium business that has an ERP system, and one day
decides that they want to get a CRM system to track their sales force.
Which would be the best scenario of those?
(A) - A typical CRM implementation with data migration/integration work,
  user training, More systems to support.
-OR-
(B) - A small CRM implementation with no data migration/integration, not
  much user training, no more systems to support.


Anyway, the two commercial companies that come to mind who are doing 
things this way are Tenfold Software and Bungee Labs.


Tenfold is similar, they have the same concept of a repository
stored in a database, with multiple applications residing in that 
repository.


Bungee labs, are doing something that is somewhat different. From what I
understand, It's a tool that is similar to what MS Visual Studio gives
you when developing ASP.NET applications.


BTW, Compiere actually works more or less this way. Ie, things are 
heavily database-driven.


Yup, but they're mainly ERP, and they work with Oracle databases and
some postgreSQL fork. Plus, they don't have the extreme customization
abilities discussed.


If you get to the point where you start looking at data modeling and the 
logic tier stuff, feel free to collaborate with us at OFBiz. More eyes 
on this stuff is always a good thing! Okay, well 98% of the time. ;)


What do you mean by 'start looking at data modeling'?

Are you still skeptical about using database to store application
objects? Consider moving the component-load.xml file to the database
and having a load-on-demand button somewhere. How much easier would it
be for users to activate/deactivate/upgrade components? and no downtime!
This would be exactly like Drupal's Module management system.

Anyway, I really hate the idea of having /Yet Another Framework/, but as
we discussed, there is no open source alternative. This is only found in
commercial applications.


Regards,
Ahmad

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Business Framework Project

2008-01-22 Thread Ahmad Khalifa

J Aaron Farr wrote:

Ahmad Khalifa <[EMAIL PROTECTED]> writes:

Ultimately, what this would be good for, is to offer several
pre-built applications along the lines of CRM, ERP, Accounting, POS,
etc... just like some already available applications, but the extra
customization features would make it much more adaptable/extendable to
organizations, and much easier to extend to more business domains.


I understand it's technically different from OFBiz, but have you
looked at Apache OFBiz?  Would it be something that team could use?

  http://ofbiz.apache.org/


I have taken a look at OFBiz. From what I understand in OFBiz you create
your entities, views, db table mappings, and business logic in Java, and
XML.

This approach is much different. It defines those things in the database
and interprets them at runtime from the database. i.e. there is no such
thing as 'Accounts.xml' or 'Employees.java', etc...

I don't see OFBiz benefiting from this at all. Unless they're willing to
do a huge re-write. On the other hand, what this project could use from
the OFBiz project, is the already developed logic they have. It is much
more mature in terms of the already created business functionality.

Regards,
Ahmad

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Business Framework Project

2008-01-22 Thread Ahmad Khalifa

Antonio Petrelli wrote:

2008/1/22, Ahmad Khalifa <[EMAIL PROTECTED]>:

The application is a framework for creating business applications.
Unlike some business application frameworks, this one does not generate
Java code or XML, instead it has a repository to store object
definitions, and the runtime interprets those object definitions to
views, records, logic, SQL, etc...


It seems a lot like Naked Objects:
http://www.nakedobjects.org/home/index.shtml
Or "Roma Framework":
http://romaframework.xwiki.com/xwiki/bin/view/Main/WebHome


AFAIK, both frameworks require you to create a POJO, and edit an XML
here or there. Thats what this application tries to avoid.
I mentioned /this one does not generate Java code or XML/ but, I really
should've said /does not generate, or require you to write Java code
 or XML/


Regards,
Ahmad

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Business Framework Project

2008-01-22 Thread Ahmad Khalifa

Hello,

I wanted to propose a new project idea. This is not a formal proposal,
this just an attempt to see if such a project has a place at the ASF,
and if anyone would be interested in participating.

Note, The project has a working codebase.

The application is a framework for creating business applications.
Unlike some business application frameworks, this one does not generate
Java code or XML, instead it has a repository to store object
definitions, and the runtime interprets those object definitions to
views, records, logic, SQL, etc...

The main advantage to this framework is customization. It is highly
customizable. There are several CRM/ERP/etc. applications out there but
they usually lack in customization features as most of those
applications have hard coded entities with some extra customization
features added on top. What I mean by customization is the ability to
change something via an easy to use GUI. Most of the available
applications can be changed, but they require this to be done by
changing php, xml, jsp, etc.. which is a development effort. What I am
proposing is something at a higher level that gets you thinking only
about entities, fields, views, application logic, user access, etc.. and
IMHO this is important in a business application where your main focus
should be on the business logic rather than 'Did I terminate that last tag?'

Basically, you use this application to define objects that represent
entities, fields, views, picklists, database tables, etc... through the
application's development section, then you instantly go to those views
to see your changes. The definitions are stored in the application database.

The development section itself is developed using the application
itself, i.e. the development section is stored in the database
repository and at runtime its interpreted to views, fields, SQL, etc...
There is also an incomplete CRM-like implementation.

Some key features:

* 3-Tiered object architecture allow re-use
  + Object definitions are separated into 3 main tiers, which are:
--> User interface objects
--> Business Entities
--> Database Tables
  + You can, for example:
--> Reuse UI components in multiple places without extra effort.
--> Reuse Business Entities in multiple UI objects.
--> Reuse database tables in multiple entities.
* Business logic can be implemented in multiple ways.
  + Through object attributes, you can for example:
- Define read only fields.
- Define field data types.
- Define field pick lists.
  + Through formulas (using JSP-EL syntax), you can for example:
- Define field Readonly status conditions, interpreted at runtime.
- Define field value validation formulas. Regex can be used.
- Define field default values.
  + Through Scripting (currently using Rhino JS), you can for example:
- Override events in data lifecycle to perform any business task.
- For example, you can overide when the /Loan Approval/ field gets
  set to 'Approved' to verify that the user has enough quota.
* Aggregate entities
  + Define which field to 'Group By' and which one to 'Count' and you
have an entity that retrieves aggregate data.
  + Charts can be displayed from aggregate data (through jfreechart).
* Interactive javascript client, or stripped down wireless interface
  + Through different templates (JSPs created with the framework) the
objects can be made to render javascript-intensive views, or
stripped down versions that are suitable for wireless devices.
  + Both versions would re-use the same entity objects defined.

Ultimately, what this would be good for, is to offer several
pre-built applications along the lines of CRM, ERP, Accounting, POS,
etc... just like some already available applications, but the extra
customization features would make it much more adaptable/extendable to
organizations, and much easier to extend to more business domains.

Well, this is my first stab at it. Comments?

Regards,
Ahmad

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]