So the developer does no longer have to change his code when the end-user asks
for a particular logic,
Wont work. The reason is simple.
To solve complex problems complex logic is needed. Thus programming languages exist. Complexity also allows for more ways to create errors. Complex errors.
And that is why programmers exist.
A general solution would either be so simple as to provide no benefit or so complex that the "users" would need to be be programmers. Thus losing all possible benefit.
Now if you have a specific problem domain and extensive expertise working in that domain (and not just programming for it) then you might be able to create a 'language' that is intutive for most users of the same domain. Then you can wrap everything else you said about it around it.
Other than that you can just hack it as a learning experience. If so I suggest you keep the language simple. You might want to look into some of the existing gaming systems such as the ones that let you program 'robots' (software entities only) to fight against each other. The language is simple and there are existing implementations that let you constrast against. I am certain that there are other types of games systems like that as well.
I knew the answers will start to come as when the sun reaches America.
Well, jschell, as Pete said, this is feasible. People have done this before. But there is a new approach.
The solution will be very simple, both for the end users and for the developers as well.
Here are some example scenarios (our application will be named S) :
Company A develops an emailing applications. To provide its end users with the ability to make sophisticated treatments, A integrates our solution S this way :
it adds the rules editor to the front end, it publishes all sort of events/facts, when they occur to the engine part of S (incoming email, with properties, contacts with properties..)
and adds code that listens for actions triggering by engine so that it fulfills them.
The developer will describe to S, what is the set of possible facts/events and their arguments, also will describe to S the set of possible actions.
As you can see the developer did not puzzle himself how to create some langage or parser. To the end user, I imagine he can do this :
When all of the following is true
There is an email E from a person X
Person X belongs to contact group G
Move email E to Folder named G+"Emails"
Company B develops an access control system that allows other companies to restric access of employees to secure zones. After integrating S, now, the end user can write this rule :
When all of the following is true :
There is access request from reader R by person P1 (the system should interpret the card id to a person id)
Reader R is an input door to zone Z
Person P2 is owner of zone Z
Person P2 is within zone Z
Open door attached to reader R.
This rule allows the system to grant access to a zone only when its "owner" is in it.
End users can come with many rules like this.
So the company will take care of the hardware communiaction part plus some interpretations of the signals, then it sends evrything to the engine and reacts when the engine triggers some action. End users will be more happy this way.
Is the idea clearer now ?
What are your thoughts ?
Push Framework - now released !
The solution will be very simple, both for the end users and for the developers
I have created a rules engine. I have used several others. I have created custom solutions. I have created pseudo work flow systems and real work flow systems as well. I have created scripting languages and created solutions that were delivered with scripting languages. I have created dynamic data driven systems. And of that lot I was the designer on a number of them.
So I have a fair bit of experience in creating dynamic solutions that match business models.
Ahmed Charfeddine wrote:
As you can see the developer did not puzzle himself how to create some langage
What makes you think that a parser is necessary to solve this problem?
Ahmed Charfeddine wrote:
it adds the rules editor to the front end, it publishes all sort of events/facts, when they occur to the engine part of S (incoming email, with
properties, contacts with properties..)
Where exactly do those come from?
Ahmed Charfeddine wrote:
Reader R is an input door to zone Z Person P2 is owner of zone Z Person P2
is within zone Z
Where does the physical access to the door come from? Specifically how exactly does the door get opened by the software? How exactly does person P2 come to be within Z? How exactly does P2 come to own Z?
Lets take a real scenario rather than an imaginary one.
- A call center employee makes a service call to an account.
- The employee is tasked with getting a payment for the account (the task.)
- The employee can have a number of contact numbers along with comments about each number written by previous employees (usually about how 'good' the number is, what the person is like, when available, etc.)
- Certain payment options require a manager override which can either be initiated by email (task ticket) or personal presence.
- The time spent on the task must be measured in detail.
- Each person (employee and/or manager) must be tracked as to actions on account.
- Resolution and or further action must be recorded.
- Updates to at least two systems can occur depending on resolution. One system is a standard database the other is a custom database that requires a screen scaping interface.
- Real time monitoring of the call center app in use by the employee must be possible by one or more managers.
- The call center app must also act as a time clock keeping track of employee arrival, departure and breaks.
Some background - the call center managers bonus is based on revenue received and minimal time spent on calls. Thus the manager spends their time insuring that the employees are doing their job and making sure that when a manager override is needed that they are on the spot to do it.
So how to you see your system solving the above problem?
Exactly how are you going to convince the manager, the one mentioned above, to take time out to learn your system, create with it and debug with it, given that doing those actions guarantees that the bonus will be negatively impacted (because they won't be doing the part that actually drives that)?
How do you see a manager that is good at this specific job, managing call center employees, is going to be equipped with the skills necessary to create business rules, debug them and even for that matter be able to logically derive new ones using nothing but your system?
Hi, and I appreciate a lot your knowledgeable answer.
I don't agree with the example you gave though, and I think it is just because my idea is still not clear. Those are to me static specifications of how the application is going to work, and I would not recommend to solve it using business rules either.
It is rather about applications where, at certain stage of functionality, we want to allow end-users the ability to specify custom treatments, but since the possibilities are numerous, we seek a sort of a solution.
Push Framework - now released !
Just released the latest alpha version of TakeStock 2 (a powerful, easy-to-use and completely free personal portfolio manager). Would appreciate any and all feedback, suggestions and bug reports. Thanks!
I'm trying to put a group together for a side project. No expected gain from it.
I have a dedicated linux server at my house for it. Right now I have gentoo on it, but I can do a different distro... not that it matters 'that' much to the dev team. The system scripts will be in perl/bash anyway.
We'll be using (probably) apache, node, jquery, mysql. Not opposed to php and/or python if we get people who want to use that (I don't know python yet though >,<). I'd like to use mongo but if that is going to happen I'd need someone more familiar with it, otherwise I'm going with mysql
Some of the things we'll be making from scratch:
On site IM and mail/messaging.
Blog and forums
chat server for chat rooms
We havent ruled out any technologies yet. So far it is just me and one other person. (neither of us are designers). We just want a fun project where we get full control. If you are interested and want another tech, we are open to that.
Ive been working hard on my site for my webdesign business and i wanted to get some feedback as to how you like the site(layout,functionality,ect..)and anything i could do better. I appreciate any responses! Sagedread Designs Site
1: Dislike the main graphic and font: looks a bit harsh and wastes a lot of 'selling' room.
2: The font for the blog is quite hazy and hard to read: font choice is questionable.
3: The main advert has some spelling and grammar mistakes.
(Viewed on IE9)
Other than that it's okay though it wouldn't make me want to use your services: if you're a web designer and your site is not 100% why would I pick you to design my web site? (Realize that is a bit subjective but you did ask).
"If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum