indentation spaces VS tabs (\t)
by Geoffrey De Smet
Hi guys,
Looks like we have different ways of indent our files.
I 've seen these occurrences for a single indentation on drools trunk:
- java files:
-- 4 spaces
-- 1 tab
- xml files:
-- 4 spaces
-- 3 spaces
-- 2 spaces
-- 1 tab
- drl files:
-- 4 spaces
-- 2 spaces
-- 1 tab
I've seen different types mixed in the same line regularly. One
developer created the line, another developer wrapped it in an if statement.
The problem
===========
What's the problem with mixing these different types?
- It stimulates merge conflicts.
- It obfuscates diffs.
- It hampers with readability.
Some editors show \t as 2 spaces, others as 4, others as 8. Most
notably, in plain HTML, firefox etc show it as 8 spaces IIRC.
So line A with 2 indentations of 4 spaces each
and line B with 2 indentations of 1 tab each
are not rendered starting from the same column.
The solution proposals
======================
We should agree on what to use.
Then simply configure it in eclipse/intellij:
- In eclipse you need to set it several times:
-- once in the java style (or import the eclipse-formatter.xml)
-- once in the xml style (even if you import the eclipse-formatter.xml file)
-- once in the text style (even if you import the eclipse-formatter.xml
file)
- In intellij, do it in code style/general.
Proposal 1) Use 4 spaces in java, xml and drl to indent.
Pro:
- The current drools eclipse formatter, trunk/eclipse-formatter.xml
states this for java files. Note that it says nothing about xml or drl
files because those need to be configured separately in eclipse, which
is probably the reason why some of use spaces for java files and tabs
for xml files.
- Most of our java files currently use 4 spaces
- The "Sun java coding conventions" state we should use 4 spaces.
http://www.oracle.com/technetwork/java/codeconventions-136091.html#262
"Four spaces should be used as the unit of indentation."
Proposal 2) Use 4 spaces in java and 2 spaces in xml and drl
Pro:
- xml files can have deep indentations and 2 spaces might be clear enough
Proposal 3) Use 1 tab in java, xml and drl to indent.
Pro:
- Eclipse uses 1 tab by default for xml files (and maybe also for java
files?)
My opinion (vote?)
==================
Proposal 1) Use 4 spaces in java, xml and drl to indent.
PS
==
Please keep this topic isolated to the spaces VS tabs problem.
If you'd like to open the topic of the coding style which differs
between developers, please do so in a separate topic, as that one can be
long and unfulfilling discussion and I 'd like to settle the spaces
quickly...
--
With kind regards,
Geoffrey De Smet
14 years, 3 months
Re: [rules-dev] [rules-users] Hold the Beans!
by Mark Proctor
On 11/09/2010 07:17, Greg Barton wrote:
> As opposed to data wrapped in a Fact? I suppose you could use
> java.util.Map instead of Fact and write rules around that. Or you
> could use a strongly typed POJO, which drools is optimized for. For
> translating the xml use something like JAXB or XStream. (I'm
> preferring XStream these days.)
>
Edson and I have been discussing how to have better "out of the box" xml
support that doesn't need transformation. It's a lot of work, but an
interesting project if anyone is interested.
The first aspect is to allow the type and the property accessors to be
dynamically defined
declare Element
@type( nodeName )
@property( get( $1 ) )
end
Where $1 is the interpolation point for the passed property name. That
would then allow access to Dom Elements as though they were natural
facts. Same can be done for Maps, or similar constructs
declare Map
@type( get( "type" ) //the type is a key in the Map
@propert( get( $1 ) )
end
declare MyFact
@type( type ) //The type is field
@property( getProperty( $1 ) ) // all properties are via this getter
end
If you look at the expiremental FactTemplates you can see the guts of
how fields are accessed and figure out how to plumb this all up. Then
there is the RHS, which is a big more difficult, if you want the
properties supported as named fields, and not emulated getters.
The other aspect to this would be support for a STAX parser. Here as it
does a single parse of the XML it'll emit events which represent the DOM
element, as long as each event is emitted references the Parent and Rete
only keeps hold events which are likely to match let the rest be GC'd.
Then we have a powerful STAX single pass based parser with advanced
reasoning, ideal for countent routers.
Any takers? :)
Mark
>
> --- On *Fri, 9/10/10, Donald Winston /<satchwinston(a)yahoo.com>/* wrote:
>
>
> From: Donald Winston <satchwinston(a)yahoo.com>
> Subject: Re: [rules-users] Hold the Beans!
> To: "Rules Users List" <rules-users(a)lists.jboss.org>
> Date: Friday, September 10, 2010, 9:06 PM
>
> So unlike Jess, Drools can or cannot use asserted facts from a
> data structure and can only use data wrapped in a bean?
>
> /* Assert ordered or unordered facts from the session's document.
> A deftemplate with matching
> * id and slots for each "fact" element should already exist for
> unordered facts.
> */
> public void assertDocument(Document document, Rete engine) throws
> JessException {
> Iterator facts =
> (document.getRootElement().getChildren("fact")).iterator();
> while (facts.hasNext() == true) {
> Element factElement = (Element)facts.next();
> String id = factElement.getAttributeValue("id");
> Fact fact = new Fact(id, engine);
> Iterator slots = (factElement.getChildren("slot")).iterator();
> while (slots.hasNext() == true) {
> Element slotElement = (Element)slots.next();
> String name = slotElement.getAttributeValue("name");
> String type = slotElement.getAttributeValue("type");
> if (slotElement.getChildren("value").size() == 1) {
> String value = slotElement.getChild("value").getText();
> fact.setSlotValue(name, getValue(type, value));
> }
> else {
> ValueVector valueVector = new ValueVector();
> Iterator values = (slotElement.getChildren("value")).iterator();
> while (values.hasNext() == true) {
> String value = ((Element)values.next()).getText();
> valueVector.add(getValue(type, value));
> }
> fact.setSlotValue(name, new Value(valueVector, RU.LIST));
> }
> } //while slots
> engine.assertFact(fact);
> } //while facts
> }
>
>
> /*
> * Output the fact base to the response output stream.
> * Intended for debugging. Override to do your own processing.
> */
> public String processResults(HttpServletRequest request,
> HttpServletResponse response,
> Rete engine) throws IOException {
> PrintWriter writer = response.getWriter();
> writer.println("<html><head><title>Jess Results</title></head>");
> writer.println("<body><h1>PrettyPrint listFacts()</h1>");
> writer.println("<pre>");
> Iterator facts = engine.listFacts();
> while (facts.hasNext() == true) {
> Fact fact = (Fact)facts.next();
> writer.println(new PrettyPrinter(fact));
> }
> writer.println("</pre>");
> writer.println("</body></html>");
> return null;
> }
>
>
> private Value getValue(String type, String value) throws
> JessException {
> if ("STRING".equals(type) == true)
> return new Value(value, RU.STRING);
> else if ("INTEGER".equals(type) == true)
> return new Value(Integer.parseInt(value), RU.INTEGER);
> else if ("FLOAT".equals(type) == true)
> return new Value(Float.parseFloat(value), RU.FLOAT);
> else if ("SYMBOL".equals(type) == true)
> return new Value(value, RU.SYMBOL);
> else if ("LONG".equals(type) == true)
> return new Value(Long.parseLong(value), RU.LONG);
> else
> return new Value(value, RU.ANY);
> }
> On Sep 10, 2010, at 11:18 AM, Wolfgang Laun wrote:
>
>> So everthing is String or list of String? (What if your data
>> contains numbers, where you'd like to use > in patterns?)
>>
>> Is there a stable relationship between key/slot and its type,
>> i.e., scalar String or list of String?
>>
>> You realize that a record of untyped fields (slots) is
>> fundamentally different from an approach where data is bound to
>> be stored in (necessarily) strongly typed fields of an object.
>> There's no difficulty with writing similar code for storing
>> values from a Map into an object of some class, but class fields
>> must have fixed types.
>>
>> -W
>>
>>
>> 2010/9/10 Donald Winston <satchwinston(a)yahoo.com
>> </mc/compose?to=satchwinston(a)yahoo.com>>
>>
>> This is what I'm doing:
>>
>> /* Assert unordered facts from the request parameter map. A
>> deftemplate with matching id and
>> * slots should already exist.
>> */
>> public void assertParameterMap(String id, Map map, Rete
>> engine) throws JessException {
>> Fact fact = new Fact(id, engine);
>> Iterator keys = map.keySet().iterator();
>> while (keys.hasNext() == true) {
>> String key = (String)keys.next();
>> if (ID.equals(key) == true) continue;
>> String[] paramValues = (String[])map.get(key);
>> if (paramValues.length > 1) {
>> ValueVector values = new ValueVector();
>> for(String value : paramValues)
>> values.add(new Value(value, RU.STRING));
>> fact.setSlotValue(key, new Value(values, RU.LIST));
>> }
>> else
>> fact.setSlotValue(key, new Value(paramValues[0], RU.STRING));
>> }
>> engine.assertFact(fact);
>> }
>>
>> I'm working on something similar for a jdom document object.
>> I'm not using POJOs. I'm using a data structure. (technically
>> they're objects because java is object oriented, but they're
>> not "problem domain objects").
>>
>> On Sep 10, 2010, at 10:12 AM, Wolfgang Laun wrote:
>>
>>> If you insert POJOs as facts in Jess, you'll have to write a
>>> (deftemplace X (declare (from-class X)))
>>> and the fields available for pattern matching in rules rely
>>> on the JavaBeans convention.
>>>
>>> I have (quite successfully) used POJOs resulting from
>>> unmarshalling an XML document (via JAXB) as facts, both in
>>> Drools and in Jess; most certainly without writing any
>>> "copycat" fact classes and tedious transformations.
>>>
>>> As for globals: They play the same role in Drools as in
>>> Jess; in neither system are they part of the working memory.
>>>
>>> I don't know what you could mean by a "standard fact class".
>>>
>>> As for iterating over all fact objects in Drools' WM, Drools
>>> provides getObjects() in WorkingMemory; or you could set up
>>> a query and run this.
>>>
>>> -W
>>>
>>>
>>> On 10 September 2010 14:54, Donald Winston
>>> <satchwinston(a)yahoo.com
>>> </mc/compose?to=satchwinston(a)yahoo.com>> wrote:
>>>
>>> I'm reviewing JBoss Rules (Drools) for an application
>>> I'm starting to build. It appears that the only way to
>>> assert facts is to use the insert(Object) method where
>>> the object is a bean using the proper naming conventions
>>> for it's properties. There also appears to be a way to
>>> use arbitrary objects using globals but do these end up
>>> in the fact base? It's disturbing to me that I have to
>>> create a bunch of classes whose sole purpose in life is
>>> to support the rule base. This is similar to using java
>>> server pages and having to create a bunch of classes
>>> just to support each page. That's why I don't use java
>>> server pages and use xsl transformations instead. I want
>>> to use my xml jdom document to represent my data and not
>>> have to create a bunch of beans. I can't seem to find
>>> anything in the api where I can assert facts without
>>> creating my own custom classes. There's no standard Fact
>>> class?
>>>
>>> I've been also experimenting with Jess and it provides
>>> an easy way for me to do this. I just iterate through my
>>> jdom document and create Fact objects and assert them. I
>>> can then execute the rules and then iterate through the
>>> updated fact base using engine.listFacts() and update my
>>> jdom document. It couldn't be easier or more natural. Is
>>> there an analogous way to do this in Drools?
>>>
>>>
>>> Thank you very much.
>>> _______________________________________________
>>> rules-users mailing list
>>> rules-users(a)lists.jboss.org
>>> </mc/compose?to=rules-users(a)lists.jboss.org>
>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>
>>>
>>> _______________________________________________
>>> rules-users mailing list
>>> rules-users(a)lists.jboss.org
>>> </mc/compose?to=rules-users(a)lists.jboss.org>
>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users(a)lists.jboss.org
>> </mc/compose?to=rules-users(a)lists.jboss.org>
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users(a)lists.jboss.org
>> </mc/compose?to=rules-users(a)lists.jboss.org>
>> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
> -----Inline Attachment Follows-----
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
> </mc/compose?to=rules-users(a)lists.jboss.org>
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
14 years, 3 months
JBRULES-2691 created for odds and ends in the code...
by Wolfgang Laun
...not necessarily bugs, but what, according to Mark, is the remnants of
establishing drools-api and related refactoring efforts.
I have added yesterday's ConsequenceExceptionHandler and today's
fireAllRules with an agenda filter.
Cheers
Wolfgang
14 years, 3 months
Eponymous class confusion?
by Wolfgang Laun
Is this intentional or just the aftermath of past evolution? I don't see the
point of having two defaults.
org.drools.base.DefaultConsequenceExceptionHandler
org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler
and, thrown from these:
org.drools.spi.ConsequenceException
org.drools.runtime.rule.ConsequenceException
Cheers
-W
14 years, 3 months
A small by-product of DRL parsing?
by Wolfgang Laun
I may have missed this, too, but I'd like to have a map of package+rulename
to .DRL/.DSLR-pathname+linenumber.
The DRL parser shouldn't have any trouble delivering this info, right Edson?
I have produced this information with a kludgy hack, and it's great for
producing documentation answering question such as:
"Whera are all my rules?"
package appl.domain
"find disjoint pairs" at /appl/domain/elements.dslr:13
"find intersecting pairs" at /appl/domain/elements.dslr:31
"find an element with thirteen numbers" at /appl/domain/elements.dslr:61
"find an element with twelve numbers" at /appl/domain/elements.dslr:47
"find subset pairs" at /appl/domain/elements.drl:21
"Where is some fact class used?"
class appl.domain.Element used in:
"find an element with twelve numbers" in appl.domain at
/appl/domain/elements.dslr:47
"find subset pairs" in appl.domain at /appl/domain/elements.drl:21
"find disjoint pairs" in appl.domain at /appl/domain/elements.dslr:13
"find an element with thirteen numbers" in appl.domain at
/appl/domain/elements.dslr:61
"find intersecting pairs" in appl.domain at /appl/domain/elements.dslr:31
"Where is the rule causing a RuntimeException?"
Exception in thread "main" rss.drools.monitor.ActivationLoopError: looping
over rules "find an element with twelve numbers" at
/appl/domain/elements.dslr:47, "find an element with thirteen numbers" at
/appl/domain/elements.dslr:61 (all in appl.domain)
The class should be Serializable, and separately retrievable from the
KnowledgeBuilder.
Any chance?
-W
14 years, 3 months
Fwd: Artificial Intelligence: Expanding & Broadening Your Skills
by Edson Tirelli
Hey all,
Don't forget to register for Rules Fest 2010. As usual, we are holding a
bootcamp there where we can share experiences between Drools users and
developers. Last year the room was packed full, and we had a great meeting.
Hope to meet you there in October. More details on the e-mail bellow and
on the Drools blog:
http://blog.athico.com/2010/08/dont-forget-rulefest-october-2010.html
Cheers,
Edson
---------- Forwarded message ----------
From: Rules Fest Association <Rules_Fest_Association(a)mail.vresp.com>
Date: 2010/9/8
Subject: Artificial Intelligence: Expanding & Broadening Your Skills
To: tirelli(a)post.com
[image: advertising_3_header1.jpg]<http://cts.vresp.com/c/?VisionArtsCommunicat/29b07023ea/4dadcb8b59/6e260b...>
September 8, 2010
*Do you want to broaden & sharpen your AI programming skills?*
Join other software programmers, developers, engineers and architects at
Rules Fest 2010
[image: grey_box_top.gif]
Artificial Intelligence is undergoing a quiet renaissance across all
industries, powered by reasoning technologies like rule-engines, inference
engines, and constraint-solvers. Get a practical immersion in these topics
at this year’s Rules Fest conference, to be held in San Jose, CA from
October 11-14, 2010.
Key topics during the 17-session, 3-day conference include:
Reasoning *in Action* Reasoning Methodologies
& Best-Practices Reasoning and Management Reasoning Trends
AI-specific sessions include:
- *Keynote*: The Role of Production Rules in a General Cognitive
Architecture, Professor John Laird, the John L. Tishman Professor of
Engineering at the Artificial Intelligence Laboratory at the University of
Michigan
- Integrating Classic Rule Systems With Modern Scalable
Architectures, Chandra
Mouleeswaran
- Learning by Demonstration Technology for the Masses, Karen Myers
In addition to artificial intelligence, Rules Fest 2010 will address
reasoning, inferencing, and pattern matching technologies that are at the
heart of many solutions to modern, complex computing problems.
For complete conference agenda, abstracts and speakers bios, visit our
website<http://cts.vresp.com/c/?VisionArtsCommunicat/29b07023ea/4dadcb8b59/762526...>
[image: grey_box_bottom.gif] *Fee*: * $399.* Register before September
15 and save $50:* $349 early bird special.*
*Discounts for groups and students. *
*[image: RulesFest]<http://cts.vresp.com/c/?VisionArtsCommunicat/29b07023ea/4dadcb8b59/01f8d5...>Conference
package
*
- 4 nights and 3 days at the historic Dolce Hayes Mansion
Resort<http://cts.vresp.com/c/?VisionArtsCommunicat/29b07023ea/4dadcb8b59/d8cb13...>
- A boot cam<http://cts.vresp.com/c/?VisionArtsCommunicat/29b07023ea/4dadcb8b59/226b04...>p
of choice
- Continental breakfast and lunch each day
- Discount off from the Rules Fest 2011 conference
- *$999 ($225 savings)*
*Info:*
www.rulesfest.org<http://cts.vresp.com/c/?VisionArtsCommunicat/29b07023ea/4dadcb8b59/5c3420...>
[image: RegisterNow]<http://cts.vresp.com/c/?VisionArtsCommunicat/29b07023ea/4dadcb8b59/232895...>
*Join the Dialog:*
*[image: twitter_logo
2]*<http://cts.vresp.com/c/?VisionArtsCommunicat/29b07023ea/4dadcb8b59/2cf336...>
[image: linkedin-in-button
2]<http://cts.vresp.com/c/?VisionArtsCommunicat/29b07023ea/4dadcb8b59/988010...>
[image: facebook]<http://cts.vresp.com/c/?VisionArtsCommunicat/29b07023ea/4dadcb8b59/79f519...>
Email: info(a)company.com <info(a)rulesfest.org>
------------------------------
Click to view this email in a
browser<http://hosted.verticalresponse.com/756695/29b07023ea/1343038631/4dadcb8b59/>
If you no longer wish to receive these emails, please reply to this message
with "Unsubscribe" in the subject line or simply click on the following
link: Unsubscribe <http://cts.vresp.com/u?29b07023ea/4dadcb8b59/mlpftw>
Click here<http://oi.vresp.com/f2af/v4/send_to_friend.html?ch=29b07023ea&lid=1343038...>to
forward this email to a friend
Rules Fest Association, Inc.
6655 W. Sahara Avenue Suite E-102
Las Vegas, Nevada 89146
Read <http://www.verticalresponse.com/content/pm_policy.html> the
VerticalResponse marketing policy.
[image: Try Email Marketing with VerticalResponse!]
<http://www.verticalresponse.com/landing/ef/?mm//29b07023ea>
--
Edson Tirelli
JBoss Drools Core Development
JBoss by Red Hat @ www.jboss.com
14 years, 3 months
Re: [rules-dev] Drools 5.1 Released - Javadoc broken, badly
by Wolfgang Laun
Downloaded Drools Javadocs from http://www.jboss.org/drools/downloads.html.
BAD: The javadoc for drools-server, starting at
javadoc/unstable/drools-server/index.html, is completely broken.
BAD: javadoc/unstable/drools-dataloaders-jaxb/index.html and
javadoc/unstable/drools-dataloaders-smooks/index.html (on
javadoc/index.html) are completely missing; I think that the entries should
be removed from javadoc/index.html.
A minor glitch: All the HTML pages linked from javadoc/index.html, when
displayed in a browser, end with a single line containing "true".
A minor nuisance: javadoc/index.html still contains "5.0.0".
BAD: The following links from the *stable *Javadoc result in "404 page not
found":
./drools-api/org/drools/runtime/StatelessKnowledgeSession.html:<A HREF="
http://www.jboss.com/products/rules/drools-core/apidocs/org/drools/runtim..."
title="class or interface in
org.drools"><CODE>runtime.command.CommandFactory</CODE></A>,
./drools-api/org/drools/runtime/StatelessKnowledgeSession.html:<A HREF="
http://www.jboss.com/products/rules/drools-core/apidocs/org/drools/runtim..."
title="class or interface in
org.drools"><CODE>runtime.command.BatchExecution</CODE></A>,
./drools-api/org/drools/runtime/StatelessKnowledgeSession.html:<A HREF="
http://www.jboss.com/products/rules/drools-core/apidocs/org/drools/runtim..."
title="class or interface in
org.drools"><CODE>runtime.ExecutionResults.BatchExecutionResults</CODE></A>,
./drools-api/org/drools/runtime/StatelessKnowledgeSession.html:<A HREF="
http://www.jboss.com/products/rules/drools-core/apidocs/org/drools/runtim..."
title="class or interface in
org.drools"><CODE>runtime.help.BatchExecutionHelp</CODE></A>,
./drools-api/org/drools/runtime/StatelessKnowledgeSession.html:<A HREF="
http://www.jboss.com/products/rules/drools-pipeline/apidocs/org/drools/ru..."
title="class or interface in
org.drools.runtime.pipeline"><CODE>PipelineFactory</CODE></A>,
BAD: There are so many (similar) broken links (I counted 5147 in 721
different HTML files) in the unstable part that I cannot repeat them here.
Try this:
$ cd javadoc/unstable
$ grep -i 'HREF=' $h | grep -v -i -e 'HREF="\.' -e 'http://java.sun.com' |
grep http
-W
On 3 September 2010 19:37, Mark Proctor <mproctor(a)codehaus.org> wrote:
> http://www.theserverside.com/news/thread.tss?thread_id=60824
>
> Drools 5.1<http://downloads.jboss.com/drools/docs/5.1.1.34858.FINAL/drools-introduct...>has been released. The main focus for this release has been around improved
> consumerability for users with declarative services based on Spring, Camel
> and CXF integration as well as the BPMN2 implementation for Flow and an
> improved Rete algorithm for reduced memory consumption providing better
> scalability for large number of objects.
>
> You can get full release details here:
> Drools 5.1 New and Noteworthy<http://downloads.jboss.com/drools/docs/5.1.1.34858.FINAL/drools-introduct...>
> Download <http://www.jboss.org/drools/downloads.html>
> Documentation <http://jboss.org/drools/documentation.html>
> Drools Blog <http://blog.athico.com>
> Oryx integration for web based BPMN2 Authoring<http://blog.athico.com/2010/09/bpmn2-authoring-in-drools-guvnor.html>
>
>
> Core
> JMX Monitoring
> Spring, Camel and CXF integration
> Knowledge Agent Incremental Change Set Support
>
> Expert
> Differential Update (reduced memory consumption for better scalability)
> Channels
> Live Querries
> Timers and Calendars
>
> Flow
> BPMN2 (Eclipse + Web authoring)
> Pluggable Variable Persistence
>
> Guvnor
> Discussions
> Inbox (to monitor changes)
> Bulk Importer
> Built in Selector
> Working Sets
> Fact Constraints
> Guided editor improvements
> Rule Templates
> Oryx integration for web based BPMN2 editing (more details here<http://blog.athico.com/2010/09/bpmn2-authoring-in-drools-guvnor.html>
> )
>
> Rules Fest <http://rulesfest.org/html/home.html>
> Don't forget about the San Jose Rules Fest Oct 2010<http://rulesfest.org/html/home.html>.
> It's a 3 day event of talks followed by a one day Boot Camp with separate
> rooms for Jess, Drools&jBPM, Grind Works and Open Rules. You may attend the
> talks or the bootcamps or both.
>
> The Boot Camp will spend the morning introducing the 4 Drools technologies:
> Expert, Fusion, Flow and Guvnor and will additionally cover what's new in
> Drools 5.1. We will also discuss the plans for jBPM3, jBPM4 and Drools Flow.
> The afternoon will be an open floor where you can get time with us core
> developers for any questions, mentoring or assistance that you would like.
>
> Thanks
> Drools 5.1 wouldn't have been possible without the following people:
>
> Core:
> Mark Proctor
> Edson Tirelli
> Kris Verlaenen
> Toni Rikkola
> Geoffrey De Smet
> Jervis Liu
>
> Community:
> Antoine Toulm
> Wolfgang Laun
> Nicolas Héron
> Hadrian Zbarcea
> Tihomir Surdilovic
> Pablo Nussembaum
> Lucaz Amador
> Esteban Aliverti
> Diego López León
> Mauricio Salatino
>
>
> _______________________________________________
> rules-dev mailing list
> rules-dev(a)lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-dev
>
>
14 years, 3 months
Shame on Progress and Savvion
by Mark Proctor
Progress has recently ripped off the Drools community and has offered
nothing in return, not even a curtesy nod of accreditation for our hard
work.. 30% of that 49mill USD would go a long way to helping us invest
in our tooling which would benefit all of us :) and maybe the Drools
team can have it's next team meeting in Hawaii and pay for all the
community members to come too. Cocktails anyone? :)
http://blog.athico.com/2010/09/progress-buy-bridge-in-brooklyn-savvion.html
I'm just having a little bit of fun, at their expense, which is well
deserved for such shockingly bad behaviour. So I would urge anyone else
to join in and have some fun too :) Do your own blogs, polls etc to
bring attention to this.
http://blog.athico.com/2010/09/breaking-news-have-your-vote-on-what.html
And please vote up at Digg and DZone to help raise awareness:
http://www.dzone.com/links/progress_buy_a_bridge_in_brooklyn_savvion_brms...
<http://www.dzone.com/links/progress_buy_a_bridge_in_brooklyn_savvion_brms...>
http://digg.com/news/technology/drools_progress_buy_a_bridge_in_brooklyn_...
Being slightly less tongue in check, this is just the reality of open
source, I've been doing this a long time now and I know you just have to
live with it, take the lumps with the smooth - as long as you get more
smooth than lumps, it's still worthwhile :) At it's best it brings
people together who collaborate and help each other and enrich the
open-source eco system. At it's worst you have organisations such as
Progress executing on predatory amoral tactics. The debate on whether
all corporations are ultimately operating on degrees of amorality is out
of scope for today :) As each year goes buy you start to appreciate Red
Hat more for the sterling work it does in open source. While it would be
nice if Progress got involved and contributed to Drools, the reality is
that this doesn't both me as much as you think it would. It hasn't
lestened the Drools community and technology, we still go from strength
to strength, and I've always been more concerned about what we are doing
and achieving than what someone else may or may not be doing with
regards to taking advantage of our work.
Ultimately this is actually quite flattering and re-affirms the strength
of our technology and the directions we are going. I'd rather have an
organisation using Drools and moving it one step closing to being a
defacto standard, than they partner with someone else or develop yet
another rule engine splintering the market and confusing users. "Drools
Everywhere" has alwas been my moto :)
However that said, anyone who knows me, knows I have a mischievous sense
of humour and if Progress and Savvion aren't even going to at the very
least accredit us then they are fair game and surely myself and the
Drools community deserve a little fun at their expense :)
Mark - The Mischievous Lead
14 years, 3 months