geekologue throws TooMuchCoffeeException http://blog.abiss.gr/manos/feed/entries/atom 2014-07-07T19:38:46-07:00 Apache Roller (incubating) http://blog.abiss.gr/manos/entry/neutrino_results_confirmed_faster_than Neutrino Results Confirmed: Faster than Speed of Ligh Manos 2011-11-20T01:51:37-08:00 2011-11-20T01:51:37-08:00 I think the <a href="Neutrino%20Results%20Confirmed:%20Faster%20than%20Speed%20of%20Ligh%20%20Read%20more:%20http://www.thestatecolumn.com/health/neutrino-results-confirmed-faster-than-speed-of-light/#ixzz1eCEfjxYz" title="Original article: &quot;Neutrino Results Confirmed: Faster than Speed of Light&quot;">neutrinos-travelling-faster-than-light</a> thingy needs some reconsideration. I mean, how do you identify the neutrinos at the destination as the ones coming from an origin? Maybe the destination part is just a result of something happening somewhere without matter actually traveling. Could be a wireless energy tihng if both ends could be used as converters. Whatever ;-)<br /> http://blog.abiss.gr/manos/entry/art_is_unfair Art is unfair Manos 2011-04-05T08:43:27-07:00 2011-04-05T08:44:41-07:00 Art is a brilliant social medium Art is a brilliant social medium. It allows one to reach out without conforming to any standards. One could say that works of art should utilize this for a purpose but that would be a conformity rule and as such it cannot be applied.<br /><br />An accusation of art abuse cannot be established either. Works of art can only be dismissed temporarily, as they reserve the right of being re-evaluated&nbsp; for an eternity; even after being justified, or especially then.<br /><br />Can one expect artists to be more socially responsible than others? Not by a long shot. Art is proud to utilize the subconscious of it's workforce more than any other function.<br /><br />So if you want to do enjoy such benefits put a little soul in what you do. Name it art and you shall be accepted.<br /><br /><br /> http://blog.abiss.gr/manos/entry/quering_and_or_fetching_map Quering and/or fetching map keys and values in HQL Manos 2010-09-02T15:52:01-07:00 2010-09-03T00:16:16-07:00 Howto: Query map keys and values in HQL <p>Hibernate Criteria supports relation but not collection based conditions so we had to use HQL for this. <br /></p> <pre><font color="#000000"><span style="background: none repeat scroll 0% 0% rgb(219, 219, 219); border-right: 2px solid black; margin-right: 5px;"><font color="#000000"> 1 </font></span><br /><span style="background: none repeat scroll 0% 0% rgb(219, 219, 219); border-right: 2px solid black; margin-right: 5px;"><font color="#000000"> 2 </font></span><font color="#0000ff">&lt;</font><font color="#0000ff">class</font><font color="#0000ff"> </font><font color="#0000ff">name</font><font color="#0000ff">=</font><font color="#ff00cc">&quot;</font><font color="#ff00cc">Asset</font><font color="#ff00cc">&quot;</font><font color="#0000ff"> </font><font color="#0000ff">table</font><font color="#0000ff">=</font><font color="#ff00cc">&quot;</font><font color="#ff00cc">ASSETS</font><font color="#ff00cc">&quot;</font><font color="#0000ff">&gt;</font><br /><span style="background: none repeat scroll 0% 0% rgb(219, 219, 219); border-right: 2px solid black; margin-right: 5px;"><font color="#000000"> 3 </font></span> <font color="#0000ff">&lt;</font><font color="#0000ff">id</font><font color="#0000ff"> </font><font color="#0000ff">name</font><font color="#0000ff">=</font><font color="#ff00cc">&quot;</font><font color="#ff00cc">id</font><font color="#ff00cc">&quot;</font><font color="#0000ff"> </font><font color="#0000ff">column</font><font color="#0000ff">=</font><font color="#ff00cc">&quot;</font><font color="#ff00cc">AS_ID</font><font color="#ff00cc">&quot;</font><font color="#0000ff">&gt;</font><br /><span style="background: none repeat scroll 0% 0% rgb(219, 219, 219); border-right: 2px solid black; margin-right: 5px;"><font color="#000000"> 4 </font></span> <font color="#0000ff">&lt;</font><font color="#0000ff">generator</font><font color="#0000ff"> </font><font color="#0000ff">class</font><font color="#0000ff">=</font><font color="#ff00cc">&quot;</font><font color="#ff00cc">native</font><font color="#ff00cc">&quot;</font><font color="#0000ff"> </font><font color="#0000ff">/</font><font color="#0000ff">&gt;</font><br /><span style="background: none repeat scroll 0% 0% rgb(219, 219, 219); border-right: 2px solid black; margin-right: 5px;"><font color="#990066"> 5 </font></span> <font color="#0000ff">&lt;</font><font color="#0000ff">/</font><font color="#0000ff">id</font><font color="#0000ff">&gt;</font><br /><span style="background: none repeat scroll 0% 0% rgb(219, 219, 219); border-right: 2px solid black; margin-right: 5px;"><font color="#000000"> 6 </font></span> <font color="#cc0000">&lt;!--</font><font color="#cc0000"> </font><font color="#cc0000">...</font><font color="#cc0000"> </font><font color="#cc0000">--&gt;</font><br /><span style="background: none repeat scroll 0% 0% rgb(219, 219, 219); border-right: 2px solid black; margin-right: 5px;"><font color="#000000"> 7 </font></span> <font color="#0000ff">&lt;</font><font color="#0000ff">map</font><font color="#0000ff"> </font><font color="#0000ff">name</font><font color="#0000ff">=</font><font color="#ff00cc">&quot;</font><font color="#ff00cc">customAttributes</font><font color="#ff00cc">&quot;</font><font color="#0000ff"> </font><font color="#0000ff">table</font><font color="#0000ff">=</font><font color="#ff00cc">&quot;</font><font color="#ff00cc">ASSET_CUSTOM_ATTRIBUTES_VALUES</font><font color="#ff00cc">&quot;</font><font color="#0000ff"> </font><font color="#0000ff">lazy</font><font color="#0000ff">=</font><font color="#ff00cc">&quot;</font><font color="#ff00cc">true</font><font color="#ff00cc">&quot;</font><font color="#0000ff"> </font><font color="#0000ff">sort</font><font color="#0000ff">=</font><font color="#ff00cc">&quot;</font><font color="#ff00cc">natural</font><font color="#ff00cc">&quot;</font><font color="#0000ff">&gt;</font><br /><span style="background: none repeat scroll 0% 0% rgb(219, 219, 219); border-right: 2px solid black; margin-right: 5px;"><font color="#000000"> 8 </font></span> <font color="#0000ff">&lt;</font><font color="#0000ff">key</font><font color="#0000ff"> </font><font color="#0000ff">column</font><font color="#0000ff">=</font><font color="#ff00cc">&quot;</font><font color="#ff00cc">ACAV_ASID</font><font color="#ff00cc">&quot;</font><font color="#0000ff"> </font><font color="#0000ff">/</font><font color="#0000ff">&gt;</font><br /><span style="background: none repeat scroll 0% 0% rgb(219, 219, 219); border-right: 2px solid black; margin-right: 5px;"><font color="#000000"> 9 </font></span> <font color="#0000ff">&lt;</font><font color="#0000ff">map-key-many-to-many</font><font color="#0000ff"> </font><font color="#0000ff">column</font><font color="#0000ff">=</font><font color="#ff00cc">&quot;</font><font color="#ff00cc">ACAV_CAID</font><font color="#ff00cc">&quot;</font><font color="#0000ff"> </font><font color="#0000ff">class</font><font color="#0000ff">=</font><font color="#ff00cc">&quot;</font><font color="#ff00cc">AssetTypeCustomAttribute</font><font color="#ff00cc">&quot;</font><font color="#0000ff">/</font><font color="#0000ff">&gt;</font><br /><span style="background: none repeat scroll 0% 0% rgb(219, 219, 219); border-right: 2px solid black; margin-right: 5px;"><font color="#990066"> 10 </font></span> <font color="#0000ff">&lt;</font><font color="#0000ff">element</font><font color="#0000ff"> </font><font color="#0000ff">type</font><font color="#0000ff">=</font><font color="#ff00cc">&quot;</font><font color="#ff00cc">string</font><font color="#ff00cc">&quot;</font><font color="#0000ff"> </font><font color="#0000ff">column</font><font color="#0000ff">=</font><font color="#ff00cc">&quot;</font><font color="#ff00cc">ACAV_VALUE</font><font color="#ff00cc">&quot;</font><font color="#0000ff">/</font><font color="#0000ff">&gt;</font><br /><span style="background: none repeat scroll 0% 0% rgb(219, 219, 219); border-right: 2px solid black; margin-right: 5px;"><font color="#000000"> 11 </font></span> <font color="#0000ff">&lt;</font><font color="#0000ff">/</font><font color="#0000ff">map</font><font color="#0000ff">&gt;</font><br /><span style="background: none repeat scroll 0% 0% rgb(219, 219, 219); border-right: 2px solid black; margin-right: 5px;"><font color="#000000"> 12 </font></span><font color="#0000ff">&lt;</font><font color="#0000ff">/</font><font color="#0000ff">class</font><font color="#0000ff">&gt;</font><br /></font><br /></pre> <p>We wanted to keep the <font><font color="#000000"><font color="#ff00cc">customAttributes </font></font></font>collection lazy but pre-fetch for certain occasions, as well as query based on map key and value&nbsp; pairs. Here's an example of HQL used for searching: <br /></p> <pre style="background: none repeat scroll 0% 0% rgb(206, 206, 206);"><font color="#000000"><span style="background: none repeat scroll 0% 0% rgb(219, 219, 219); border-right: 2px solid black; margin-right: 5px;"><font color="#000000"> 1 </font></span>select asset from Asset asset <br /><span style="background: none repeat scroll 0% 0% rgb(219, 219, 219); border-right: 2px solid black; margin-right: 5px;"><font color="#000000"> 2 </font></span> left join fetch asset.customAttributes as customAttribute <br /><span style="background: none repeat scroll 0% 0% rgb(219, 219, 219); border-right: 2px solid black; margin-right: 5px;"><font color="#000000"> 3 </font></span>where ((index(customAttribute) = ? and customAttribute = ?) <br /><span style="background: none repeat scroll 0% 0% rgb(219, 219, 219); border-right: 2px solid black; margin-right: 5px;"><font color="#000000"> 4 </font></span> and (index(customAttribute) = ? and customAttribute = ?) ) <br /></font></pre><br /> http://blog.abiss.gr/manos/entry/fronting_apache_roller_using_mod Fronting Apache Roller using mod_proxy Manos 2010-07-23T19:35:05-07:00 2010-07-23T19:58:26-07:00 A sample Apache Web Server VHost setup to front Apache Roller/Tomcat. <p>Here's a sample setup that includes caching. Assumes that http://roller.tld points to an Apache (httpd) virtual host and http://dynamic.roller.tld:8080 points to roller (i.e. tomcat). Your mileage may vary. </p> <pre>&lt;VirtualHost *:80&gt;<br /> ServerName roller.tld<br /> ServerAlias www.roller.tld<br /> ErrorLog &quot;/PATH-TO/apache2/logs/www_roller_tld-error_log&quot;<br /><br /> ProxyRequests Off<br /> ProxyPass / http://dynamic.roller.tld:8080/<br /> ProxyPassReverse / http://dynamic.roller.tld:8080/<br /><br /> CacheEnable mem /<br /> CacheDisable /admin<br /> CacheDisable /roller-ui<br /> MCacheSize 2048<br /> MCacheMaxObjectCount 150<br /> MCacheMinObjectSize 1<br /> MCacheMaxObjectSize 430080<br />&lt;/VirtualHost&gt;</pre> http://blog.abiss.gr/manos/entry/what_kind_of_d_d What Kind of D&D Character Would You Be? Manos 2010-06-18T15:25:09-07:00 2010-06-18T15:25:25-07:00 You bet I'm a True Neutral. <p>[thanks to &quot;Find out <a href="http://www.easydamus.com/character.html" target="mt">What Kind of Dungeons and Dragons Character Would You Be?</a>&quot;, courtesy of Easydamus] </p><p><b>I Am A:</b> True Neutral Human Druid (5th Level) <br /><br /><u>Ability Scores:</u><br /> <b>Strength-</b>15<br /> <b>Dexterity-</b>16<br /> <b>Constitution-</b>17<br /> <b>Intelligence-</b>15<br /> <b>Wisdom-</b>16<br /> <b>Charisma-</b>16 <br /><br /><u>Alignment:</u><br /><b>True Neutral</b> A true neutral character does what seems to be a good idea. He doesn't feel strongly one way or the other when it comes to good vs. evil or law vs. chaos. Most true neutral characters exhibit a lack of conviction or bias rather than a commitment to neutrality. Such a character thinks of good as better than evil after all, he would rather have good neighbors and rulers than evil ones. Still, he's not personally committed to upholding good in any abstract or universal way. Some true neutral characters, on the other hand, commit themselves philosophically to neutrality. They see good, evil, law, and chaos as prejudices and dangerous extremes. They advocate the middle way of neutrality as the best, most balanced road in the long run. True neutral is the best alignment you can be because it means you act naturally, without prejudice or compulsion. However, true neutral can be a dangerous alignment because it represents apathy, indifference, and a lack of conviction.<br /> <br /><u>Race:</u><br /><b>Humans</b> are the most adaptable of the common races. Short generations and a penchant for migration and conquest have made them physically diverse as well. Humans are often unorthodox in their dress, sporting unusual hairstyles, fanciful clothes, tattoos, and the like. <br /><br /><u>Class:</u><br /><b>Druids</b> gain power not by ruling nature but by being at one with it. They hate the unnatural, including aberrations or undead, and destroy them where possible. Druids receive divine spells from nature, not the gods, and can gain an array of powers as they gain experience, including the ability to take the shapes of animals. The weapons and armor of a druid are restricted by their traditional oaths, not simply training. A druid's Wisdom score should be high, as this determines the maximum spell level that they can cast. <br /></p><p><br /><b>Detailed Results:</b><br /><br /><u>Alignment:</u><br /><samp>Lawful Good ----- XXXXXXXXXXXXXX (14)<br />Neutral Good ---- XXXXXXXXXXXXXXXXXXXXXXXXXX (26)<br />Chaotic Good ---- XXXXXXXXXXXXXXXXX (17)<br />Lawful Neutral -- XXXXXXXXXXXXXXX (15)<br />True Neutral ---- XXXXXXXXXXXXXXXXXXXXXXXXXXX (27)<br />Chaotic Neutral - XXXXXXXXXXXXXXXXXX (18)<br />Lawful Evil ----- XXXXX (5)<br />Neutral Evil ---- XXXXXXXXXXXXXXXXX (17)<br />Chaotic Evil ---- XXXXXXXX (8)<br /></samp><br /><u>Law &amp; Chaos:</u><br /><samp>Law ----- XXX (3)<br />Neutral - XXXXXXXXXXXXXXX (15)<br />Chaos --- XXXXXX (6)<br /></samp><br /><u>Good &amp; Evil:</u><br /><samp>Good ---- XXXXXXXXXXX (11)<br />Neutral - XXXXXXXXXXXX (12)<br />Evil ---- XX (2)<br /></samp><br /><u>Race:</u><br /><samp>Human ---- XXXXXXXXXXXXXXX (15)<br />Dwarf ---- XXXX (4)<br />Elf ------ XXXXXXXX (8)<br />Gnome ---- XXXXXXXXXX (10)<br />Halfling - XXXXXXXXXXXX (12)<br />Half-Elf - XXXXXXXXX (9)<br />Half-Orc - XX (2)<br /></samp><br /><u>Class:</u><br />Barbarian - (-6)<br />Bard ------ (-4)<br />Cleric ---- (0)<br />Druid ----- XXXXXX (6)<br />Fighter --- XX (2)<br />Monk ------ (-23)<br />Paladin --- (-17)<br />Ranger ---- XX (2)<br />Rogue ----- (0)<br />Sorcerer -- (0)<br />Wizard ---- (-2)<br /><br /><br /></p> http://blog.abiss.gr/manos/entry/calipso_beta_program Calipso Beta Program Manos 2010-06-14T20:52:31-07:00 2010-06-14T20:52:32-07:00 <p><span>Calipso goes public and Open Source! Please check out the website and register for the Beta Program:</span></p><p><a href="http://calipso.abiss.gr/" title="Calipso Product Website">&nbsp;http://calipso.abiss.gr/</a></p><p>&nbsp;</p> http://blog.abiss.gr/manos/entry/rdf_event_exchange_protocol RDF Event Exchange Protocol Manos 2010-05-21T20:11:49-07:00 2010-05-21T20:11:50-07:00 [rough working draft]&nbsp; This document describes the RDF Event Exchange Protocol or REEP. The protocol provides an extensible Event ontology and a processing approach for its use in distributed information exchange and manipulation applications for the Semantic Web. Within a REEP document, application code may be described as a sub-graph behind an Event instance node, utilizing the RDF model. Since REEP uses an RDF-based format, REEP Event nodes may share application input channels (e.g. an RDF document or feed) with other RDF nodes, while application code within REEP Events may refer or apply to such nodes. Contrary to RDF XML, which provides a static serialization of an RDF graph, REEP provides manipulation instructions regarding a graph, as well as the graph itself or parts of it; in other words the complete lifetime of an RDF graph can be described as a REEP message. A REEP message may or may not be standalone. <style type="text/css"> <!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } H2 { margin-bottom: 0.21cm } H2.western { font-family: "Arial", sans-serif; font-size: 14pt; font-style: italic } H2.cjk { font-family: "DejaVu Sans"; font-size: 14pt; font-style: italic } H2.ctl { font-family: "DejaVu Sans"; font-size: 14pt; font-style: italic } H3 { margin-bottom: 0.21cm } H3.western { font-family: "Arial", sans-serif } H3.cjk { font-family: "DejaVu Sans" } H3.ctl { font-family: "DejaVu Sans" } H4 { margin-bottom: 0.21cm } H4.western { font-family: "Arial", sans-serif; font-size: 11pt; font-style: italic } H4.cjk { font-family: "DejaVu Sans"; font-size: 11pt; font-style: italic } H4.ctl { font-family: "DejaVu Sans"; font-size: 11pt; font-style: italic } H5 { margin-bottom: 0.21cm } H5.western { font-family: "Arial", sans-serif; font-size: 11pt } H5.cjk { font-family: "DejaVu Sans"; font-size: 11pt } H5.ctl { font-family: "DejaVu Sans"; font-size: 11pt } --> </style> <p><style type="text/css"> <!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } H1 { margin-bottom: 0.21cm } H1.western { font-family: "Arial", sans-serif; font-size: 16pt } H1.cjk { font-family: "DejaVu Sans"; font-size: 16pt } H1.ctl { font-family: "DejaVu Sans"; font-size: 16pt } P.εσοχή-πρώτης-γραμμής { text-indent: 0.5cm } H2 { margin-bottom: 0.21cm } H2.western { font-family: "Arial", sans-serif; font-size: 14pt; font-style: italic } H2.cjk { font-family: "DejaVu Sans"; font-size: 14pt; font-style: italic } H2.ctl { font-family: "DejaVu Sans"; font-size: 14pt; font-style: italic } --> </style> </p><p>[this is just a rough working draft] <br /></p><h1 lang="en-US" class="western"><font size="4" style="font-size: 15pt;">RDF Event Exchange Protocol</font></h1> <p class="εσοχή-πρώτης-γραμμής">Distributed information exchange and manipulation for the Semantic Web.</p> <h2 class="western">Summary</h2> <p>This document describes the RDF Event Exchange Protocol or REEP. The protocol provides an extensible Event ontology and a processing approach for its use in distributed information exchange and manipulation applications for the Semantic Web. Within a REEP document, application code may be described as a sub-graph behind an Event instance node, utilizing the RDF model. Since REEP uses an RDF-based format, REEP Event nodes may share application input channels (e.g. an RDF document or feed) with other RDF nodes, while application code within REEP Events may refer or apply to such nodes. Contrary to RDF XML, which provides a static serialization of an RDF graph, REEP provides manipulation instructions regarding a graph, as well as the graph itself or parts of it; in other words the complete lifetime of an RDF graph can be described as a REEP message. A REEP message may or may not be standalone.</p> <p>Additionally, the document provides suggestive examples on processor behavior and the potential of RDF meta-data about application code and business logic.</p> &nbsp;<p>&nbsp;</p><h2 style="page-break-before: always;" class="western">Processing Model</h2> <p style="margin-bottom: 0cm;">RDF parsers do not assume parsing order of nodes is important, since the order of nodes in RDF does not have an effect on the resulting graph. The parse order of graph nodes is considered irrelevant when building the graph, although document order has been a useful in formats used to serialize RDF. One example of such a format is XML, where document order is obeyed by XML parsers.</p> <p style="margin-bottom: 0cm;"><br /> </p> <p style="margin-bottom: 0cm;">REEP assumes the order of implicit or explicit Event nodes can be used to naturally describe a sequence of events that effect a target graph. The graph, or parts of it, may be carried in REEP as well. When a REEP processor is used in implicit mode, regular (i.e. non-Event) nodes are considered implicit Events for adding or merging those nodes in the graph. The processing model of REEP is serial, although not necessarily continuous, while an application may use concurrent input channels addressing the same graph. </p> <p style="margin-bottom: 0cm;"><br /> </p> <p style="margin-bottom: 0cm;">It is obvious that the additional semantics of the RDF being processed must provide enough information for the parsing and/or processing to decide whether the triple should be disregarded after processing or added to the graph. Disregarded events could be places in secondary storage (file system, database etc.) for historical/versioning or other future processing as it may be required by the business logic or other implementation aspects of an application.</p> <h3 class="western">Processor Modes</h3> <h4 class="western">Implicit Mode </h4> <p><span lang="en-US">Processing of implicit Event</span> nodes (i.e. regular Nodes added to the graph): true/false. Can be used by the processor to direct all input to Event handlers. Such handlers effectively receive the complete graph as Events.</p> <h4 class="western">Addition Mode</h4> <p>Merge VS replace predicates/objects </p> <h4 class="western">Inference Mode</h4> <p>Controls inference (true/false).</p> <h4 class="western">Modes API</h4> <h5 class="western">Configuring Modes</h5> <p><span style="background: none repeat scroll 0% 0% rgb(255, 255, 0);">setMode(mode-namespace, setting)</span></p> <h5 class="western">Mode Feature Tests</h5> <p><span style="background: none repeat scroll 0% 0% rgb(255, 255, 0);">Processors must offer API to check for processor implemented features, meaning modes with specific settings. For example, a SAX Filter processor used to handle Events may not support inference.</span></p> <p><br /><br /> </p> <p><span style="background: none repeat scroll 0% 0% rgb(255, 255, 0);">Boolean supportsFeature(mode-namespace, setting);</span></p> <h2 class="western">Events</h2> <h3 class="western">Base Event</h3> <p style="margin-bottom: 0cm;">All events inherit the BaseEvent Class. </p> <p style="margin-bottom: 0cm;"><span style="background: none repeat scroll 0% 0% rgb(255, 255, 0);">Discuss potentially common attributes regarding authorization, trust, security, workflow, callbacks, sync/async, threaded, reusable)</span></p> <h3 class="western">Submission Events</h3> <p><span style="background: none repeat scroll 0% 0% rgb(255, 255, 0);">Differences between ADD/MERGE/REPLACE when it comes to a Node? This doesn't have to be your grandpa's CRUD since we are talking about subgraphs.</span></p> <p><span style="background: none repeat scroll 0% 0% rgb(255, 255, 0);">PUT/ADD Event</span></p> <p><span style="background: none repeat scroll 0% 0% rgb(255, 255, 0);">MERGE/UPDATE/REPLACE Event</span></p> <h4 class="western">Implicit Submission Events</h4> <p><span style="background: none repeat scroll 0% 0% rgb(255, 255, 0);">Implicit Events when the implicit mode/feature of the processor is set to true and non-Event RDF nodes are simply added to the graph or triple store.</span></p> <p><span style="background: none repeat scroll 0% 0% rgb(255, 255, 0);">PUT </span> </p> <p><span style="background: none repeat scroll 0% 0% rgb(255, 255, 0);">MERGE </span> </p> <h3 class="western">Retrieval Events</h3> <h4 class="western">Base Retrieval Event</h4> <p><span style="background: none repeat scroll 0% 0% rgb(255, 255, 0);">All retreival events extend this one. Property to ask for a specific MIME?</span></p> <h4 class="western">Get Event</h4> <p><span style="background: none repeat scroll 0% 0% rgb(255, 255, 0);">Returns a Node (CBD?) via an Answer Event ?</span></p> <h4 class="western">Query Event</h4> <p><span style="background: none repeat scroll 0% 0% rgb(255, 255, 0);">Wraps queries in various languages like SPARQL ?</span></p> <h4 class="western">Subscription Event</h4> <p><span style="background: none repeat scroll 0% 0% rgb(255, 255, 0);">subscribe to change modifications, classes, instances, conditions? Receive the notifications as a CRUD or other event? Sync use cases?</span></p> <h4 class="western">Answer Event</h4> <p><span style="background: none repeat scroll 0% 0% rgb(255, 255, 0);">Answer Events are responses to received Events. They may be synchronous.</span></p> <h3 class="western">Higher Level Events</h3> <p>REEP provides not only a set of tools for basic manipulation of RDF nodes, but also a way to define custom event vocabularies through extension and abstraction, much like regular programming APIs do.</p> <h4 class="western">Composite Event</h4> <h4 class="western">Extending Events</h4> <p><br /><br /> </p> <h2 class="western">Misc</h2> <h3 class="western">Use Cases</h3> <h3 class="western">Advantages</h3> <ul><li><p style="margin-bottom: 0cm;">Events provide a generalized approach to live graphs, usable by tools available today.</p> </li><li><p style="margin-bottom: 0cm;">Promoting events such as graph operations to first rate RDF citizens allows the use of a single channel to build and manage a graph.</p> </li><li><p style="margin-bottom: 0cm;">The use of parsing order to register events is natural, requires no explicit ordering information. Details on the relationship between events regarding their sequence, like time difference or other relationships can easily be added in event descriptions according to application needs.</p> </li><li><p style="margin-bottom: 0cm;">Using parsing order does not conflict with the desired ability to update an RDF graph using any number of documents or streams etc.</p> </li><li><p style="margin-bottom: 0cm;">Both generic and custom event vocabularies may be designed using this approach.</p> </li></ul> <h3 class="western">Disadvantages</h3> <ul><li><p>Non-event aware RDF processors will just add the events to the resulting graph. The events may be useless in the absence of explicit ordering information.</p> </li></ul> <h3 class="western">Issues</h3> <ul><li><p style="margin-bottom: 0cm;">How can Events be used without contaminating the graph by default? Possibly an Event recording mode could be used to hook up handlers for Events instead of adding them to the graph.</p> </li><li><p style="margin-bottom: 0cm;">Should an Event-aware processor add explicit ordering information to events before passing them to the application? </p> </li></ul> http://blog.abiss.gr/manos/entry/adding_named_pin_to_roller Adding "named pin" functionality to Apache Roller Manos 2009-01-29T03:25:41-08:00 2009-01-29T03:29:33-08:00 Recently we decided to use Roller for a project but required a new feature: Named Pins. You can already pin posts in Roller, but we wanted something more advanced. With named pins, you can have posts appear in specific places on your main page, thus giving a portal-ish look. <p>&nbsp;Quoting:<br /></p><blockquote><p><a href="http://rollerweblogger.org/project/">&quot;Apache Roller</a> is a full-featured, multi-user and group-blog server suitable for blog sites large and small. This is the project's homepage, which provides a brief overview of the software and project as well as links to <a href="http://rollerweblogger.org/project">project news</a>, <a href="http://roller.apache.org/downloads.html">downloads</a>, <a href="http://cwiki.apache.org/confluence/display/ROLLER/Roller+User+Documentation">user documentation</a>, <a href="http://cwiki.apache.org/confluence/display/ROLLER/Roller+Install+Guides">install guide</a>, <a href="http://cwiki.apache.org/confluence/display/ROLLER/Roller+Mailing+Lists">mailing-lists</a>, <a href="http://opensource.atlassian.com/projects/roller">bug tracker</a>, <a href="http://cwiki.apache.org/confluence/display/ROLLER">wiki</a> and the <a href="http://cwiki.apache.org/confluence/display/ROLLER/Roller+FAQ">FAQ</a>.&quot; </p></blockquote><p>Recently we decided to use it for a project but required a new feature: Named Pins. You can already pin posts in Roller, but we wanted something more advanced. With named pins, you can have posts appear in specific places on your main page, thus giving a portal-ish look.<br /></p><p>The patch is at roller's <a title="View Roller's JIRA ticket" href="http://issues.apache.org/roller/browse/ROL-1786">ROL-1786</a>. It involves a new table column which is actually sub-optimal but works as a proof of concept for now. You will also find minor additions to the JPA Managers, the Site model and the UI. An example of using this in a template is also included.&nbsp; <b>Please vote</b> for this ticket!<br /></p><p>BTW we also wanted a simple way to get the list of blogs (to build a menu) so we also commited a small patch <a title="View Roller's JIRA ticket: ROL-1780" href="https://issues.apache.org/roller/browse/ROL-1780">here</a>.<br /></p> http://blog.abiss.gr/manos/entry/javascript_implementation_of_wax JavaScript implementation of WAX Manos 2008-10-22T06:27:16-07:00 2008-10-27T09:21:24-07:00 <p> <a title="WAX.js website" href="http://dev.abiss.gr/wax.js/">WAX.js</a> is an ECMAScript (a.k.a JavaScript) implementation of the Writing API for XML (<a href="http://www.ociweb.com/mark/programming/WAX.html" class="externalLink">WAX</a> ).&nbsp;</p> <p>WAX has the following characteristics and benefits:</p> <ul><li>focuses on writing XML, not reading it</li><li>should work in any browser that supports JavaScript, including phones etc.<br /></li><li>requires less code than other approaches</li><li> uses less memory than other approaches because it outputs XML as each method is called rather than storing it in a DOM-like memory structure </li><li> doesn't depend on any libraries or proprietary browser technology other than a javascript interpreter </li><li> is very small in size, especially the compressed version </li><li>writes all XML node types</li><li> always outputs well-formed XML or throws an exception </li><li>provides extensive error checking</li><li> automatically escapes special characters in text and attribute values unless escaping is turned off </li><li> allows all error checking to be turned off for performance </li><li> knows how to associate DTDs, XML Schemas and XSLT stylesheets with the XML it outputs </li><li> is well-suited for writing XML messages for AJAX, REST and SOAP services </li></ul><p>Haven't build a release yet, but it's pretty stable and usable. Browse the source code <a title="Browse WAX.js sources" href="http://sarissa.cvs.sourceforge.net/viewvc/sarissa/WAX.js/">here</a> and check out the documentation on our <a title="WAX.js developer pages" href="http://dev.abiss.gr/wax.js/">dev site</a>. </p> http://blog.abiss.gr/manos/entry/releases_of_the_day Releases of the Day Manos 2008-05-08T11:21:15-07:00 2008-05-08T11:21:15-07:00 <p>Busy day today. We just let two software releases out the door, <a href="http://dev.abiss.gr/sarissa/">Sarissa 0.9.9.4</a> and <a href="http://dev.abiss.gr/mvn-jstools/">maven-jstools-plugin 0.6</a>.</p> <p>If you have access to the <a href="http://www.linuxformat.gr/">greek version of linux format</a>, you might want to grab <a href="http://www.linuxformat.gr/?q=content/linux-format-21-%CE%BC%CE%B1%CE%B9%CE%BF%CF%83-%CE%B9%CE%BF%CF%85%CE%BD%CE%B9%CE%BF%CF%83-2008">issue 21</a> and check out my interview on <a href="http://www.abiss.gr">Abiss.gr</a> and Open Source, although it may look all greek to you ;-) </p>