Subscribe: New RIFERS blogs entries from Geert Bevin
http://rifers.org/blogs/feeds/atom/entry/gbevin
Added By: Feedage Forager Feedage Grade B rated
Language: English
Tags:
application  european patent  game  hibernate  intelligence  lot  manipulation  new  patent office  patent  prior art  rife 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: New RIFERS blogs entries from Geert Bevin

New RIFERS blogs entries from Geert Bevin





Published: 2018-01-18T07:39:09+0100

Modified: 2018-01-18T07:39:09+0100

Copyright: Copyright of the content contained is attributed to the original authors
 



Reviving RIFE, starting work on version 2

2013-06-23T21:32:38+0200

2013-06-23T21:32:38+0200

Hi everyone,

I'm not sure at all who's still active in the server-side web development world, but it seemed best to reach out through the old channels in case some people are interested in reviving RIFE.

I've personally been busy with a lot of other projects during the last 7 years, ranging for high-performance clustered data tools to real-time musical instruments.

I'm now working at ZeroTurnaround on the LiveRebel product and am being confronted with the state of web development nowadays. To my surprise, in many ways the approaches in RIFE are still relevant and even the Play framework is lacking quite a lot of RIFE's simplicity and power.

So, a few months ago I started work to analyze what I want to keep from RIFE version 1 to build a fresh version 2: https://github.com/gbevin/rife. I took a little break to work on another quick pet-project in the meantime (http://uwyn.com/geco) but that's now all ready for launch.

The idea is to basically put a lot of things in question about RIFE and trim it down, throw away a lot of the junk that was accumulated and make the features very opinionated and targeted.

My initial plan of action is this:

  • focus on pure Java and byte-code instrumentation, no scripting languages
  • leverage the upcoming features of Java 8
  • rebuild the template engine with largely the same ideas in place, but clearer and more focused
  • properly finish the isolation of the continuations engine and bring it up to date
  • rethink the infrastructure with IoC as a starting point, instead of having it as an afterthought
  • totally rewrite the web engine, with similar principles but much more conventions and less configuration
  • trim out the database abstraction layer for only certain relevant databases

I've started mocking up the new version of the template engine and took an initial stab at creating an Antlr 4 grammar. That sadly is really not working out so I've started work on a new custom parser.

One of my mistakes with RIFE v1 was that I didn't involve the community much during the development process, so I want to change that.

If you're interested in shaping what RIFE version 2 is going to become, please hop on the developers mailing list and say hi: https://groups.google.com/forum/#!forum/rife-dev

Hope to hear from some of you!




The sanitization of Ehcache's Cache constructors

2010-02-17T18:34:11+0100

2010-02-17T18:34:11+0100

We've all been there, you start with a class and a simple constructor that makes total sense. As time goes by, you keep adding features and the list of constructor arguments grows … and grows … until … it becomes unusable. This is exactly what happened with the Cache class in Ehcache. The version 1.0 constructor looked like this: public Cache(String name, int maxElementsInMemory,               boolean overflowToDisk, boolean eternal,               long timeToLiveSeconds, long timeToIdleSeconds) However, with version 1.7 this turned into: public Cache(String name, int maxElementsInMemory,              MemoryStoreEvictionPolicy memoryStoreEvictionPolicy,               boolean overflowToDisk, String diskStorePath,               boolean eternal, long timeToLiveSeconds,              long timeToIdleSeconds, boolean diskPersistent,               long diskExpiryThreadIntervalSeconds,               RegisteredEventListeners registeredEventListeners,               BootstrapCacheLoader bootstrapCacheLoader,              int maxElementsOnDisk, int diskSpoolBufferSizeMB,               boolean clearOnFlush,              boolean isTerracottaClustered,              String terracottaValueMode,               boolean terracottaCoherentReads) There are a lot of downsides to relying on constructor parameters like this: the author of the class needs to continue to overload the constructors to add new parameters users need to decide which overloaded constructor they want to use users need to figure out what sensible default values are for the values that they're not interested in it's very easy to accidentally put a value at the wrong place and provide wrong parameters reading the constructor afterwards is a nightmare and can't be done without looking at the Javadocs at the same time, for instance: new Cache("myCache", 10000, MemoryStoreEvictionPolicy.LRU, false,            null, true, 60, 30, false, 0, null, null, 0, 0, false,            true, "identity", true) However there some advantages: you can enforce which parameters are mandatory at instantiation you can validate the constructor parameters at instantiation you fully set up the instance without requiring users to call an initialization method So, we decided to change the Cache constructor approach in Ehcache 2.0 and use a builder pattern with a fluent interface, keeping the ad[...]



Fix for slower startup and shutdown times since Snow Leopard 10.6.1

2009-09-20T23:09:13+0200

2009-09-20T23:09:13+0200

Ever since I upgraded to Snow Leopard 10.6.1, my MacBook Pro startup and shutdown was much slower than before.

I searched for a quite a while on forums to find the solution, but nobody seemed to know a solution. I finally figured out what it was. It seems that somehow the ownership of my startup volume's root directory (/) wasn't assigned to the root account anymore, but to my account instead. This made the kernel prelinking fail since it requires that root is the owner.

This is how you solve this after launching the Terminal app:

sudo chown root:admin /
sudo kextcache -system-prelinked-kernel
sudo kextcache -system-caches

You'll have to enter your password after the first command.

Hope this helps someone, since it was really frustrating to have these slower startup/shutdown times for me.




Terracotta 3.1: Introduction to Examinator

2009-08-27T19:16:47+0200

2009-08-27T19:16:52+0200

Terracotta 3.1GA was released a few days ago and sports some interesting new features that are specifically geared towards clustering Hibernate second level caches.

I decided to create a series of video tutorials and presentations about Terracotta's new clustered caching capabilities and will demonstrate most of this from our Examinator reference application.

The first video highlights how to install, setup and use Examinator as a basis for the next videos.

Enjoy!




How do you use Hibernate Extended Sessions?

2009-04-16T15:53:08+0200

2009-04-16T15:53:08+0200

The Open Session in View pattern is very popular when Hibernate is used in a web application. This allows you to safely use managed entities when your view is being rendered. At Terracotta, we're currently researching what other patterns are popular for Hibernate and how people apply them.

One that I'm in particular looking into is the Extended Session pattern for long running conversations. This allows you to disconnect a Hibernate session in between requests and to store it in the HTTP session in the meantime.

I'd like to know who's using the extended session pattern and what you use it for.

To understand more about this, I developed a small example application to get a feel for the advantages, the benefits, the gotchas and the surprises. The application can be found below, it is inspired by snippets from Hibernate tutorials and example applications:

http://svn.terracotta.org/svn/forge/projects/hibernate-disconnected/trunk/

The example uses only servlets, filters and Hibernate. It is a webapp that allows you to create events and add people to it over different requests. When an event has been created with all the relevant people, it can be committed in one step. The intermediate state is kept within the managed entities and the Hibernate session until it's flushed.

This is what I found worth mentioning:

  • Whenever a transaction is created and committed, it doesn't matter if Hibernate flush mode is set to manual, certain operations like persist and merge will be propagated to the database at transaction commit. However, modifications to managed entities wont be committed, this can be confusing.
  • Even with manually flushed sessions, transactions are always real database transactions, causing locks to be held. They thus need to be as short as possible.
  • A single general-purpose servlet filter might not be feasible, depending on how transactions should behave. In this application, I ended up creating only a transaction around the actual session flush.
  • Data that is present in a manually flushed session buffer is batched but not available for queries.
  • This doesn't behave the same as a database transaction with isolation levels that can still see their own changes.
  • If the data needs to be available for a query, a commit needs to happen first.
  • This can require application changes, like a redirect after form submission in case transactions are automatically committed through a servlet filter.

Totally unrelated but cool, you can use an AnnotationConfiguration class to setup the Hibernate config and use a fluent interface to add the managed entity classes. This reduces the amount of XML and eases maintenance (see HibernateUtil class in my example).




First recordings of my new band ... check it out!

2009-03-02T15:28:27+0100

2009-03-02T15:28:27+0100

I've been extremely busy during the last months since I picked up music again alongside my day-job. You might have noticed from the severe lack of blog posts that I didn't have much time to spare (image)

I started a new band, called Flytecase and have been composing, arranging and rehearsing new songs like there's no tomorrow. This weekend, we finished recording and mixing two of our songs. I'd be very interested to know what people think about them.

You can check them out here: http://flytecase.be

Note that our site redirects to a public Facebook page, but you don't to be a Facebook member to listen to the songs. However if you are, please consider leaving a comment on our wall and to sign yourself up as a fan when you like the music.




JavaZone 2008 : Bytecode Manipulation in the Real World

2008-09-17T13:29:38+0200

2008-09-17T13:29:38+0200

I just finished my talk at JavaZone 2008 about bytecode manipulation.

You can download the presentation's PDF file from:

http://uwyn.com/download/bytecode_real_world.pdf

This is the abstract:

Bytecode Manipulation in the Real World

Bytecode manipulation has become increasingly popular over the last years. It is used by JPA implementations, application servers, AOP libraries, web frameworks, monitoring systems, profilers, clustering solutions, scripting languages, workflow engines, and much more. In fact, most of today's applications will most probably rely on byte code manipulation, often even without realizing.

Application developers however seem to be overly careful and often frown upon bytecode manipulation as an arcane art that is risky and difficult to understand. This presentation will show you that it's easier than you think. We'll go over concise examples that illustrate the concepts. Distinct patterns, coming from different domains, will give you ideas about adopting byte code manipulation for your own products. You'll learn arguments to reassure skeptics and see how the manipulation can plugged into your tool chain. We'll finish off with tips and tricks to write maintainable code with the ASM library.

After this session you'll see byte code manipulation as another tool in your arsenal and you'll have a good picture of how to start using it yourself.

Outline:

  • What is bytecode manipulation?
  • Some popular projects that use it
  • Don't be afraid
  • Plug in the manipulation
  • Best practices



Game Review : Alone in the Dark for XBox 360

2008-08-10T22:55:07+0200

2008-08-10T22:55:07+0200

This is a first for me, I don't usually review games. I like Alone in the Dark so much thought, that I felt like talking about it. I bought this game after having read all the bad reviews out there. However, it seemed to me that most criticisms boiled down to the reviewers being unable to handle the controls or being unwilling to take a little bit of time to get used to them. The graphics that I saw, the description of the features, the game play, and the storyline all attracted me, so I got the game a week ago. I just finished it and I have to say that I rarely have had so much fun with a game. It's entirely different from any other next gen title out there in that it generally allows you to take your time and think things through. You can combine many real world objects to create bombs, set cars on fire, create gasoline trails, glue molotov cocktails to enemies, etc. The right approach often gets you through a tough spot without have to resort close combat. I've seen videos of players just storming into scenes and having an impossible time getting through them because they didn't properly look at the possibilities beforehand. This game stems from the great line of adventure games of old, yet it take everything into this new generation by give you a great free-roaming world with kick ass physics. Sure, there are frustrating sections that take a lot of practice and skill to succeed (like the car chases), but if you don't like this kind of game play ... just skip it. With its DVD menu system, Alone In The Dark let's you play what you want and doesn't force you, what a novel idea! Personally, I found these sections thrilling since after some practice you get through them and really feel a sense of accomplishment. What more to say. The inventory system is awesome and not frustrating thanks to the shortcuts that you can setup. The switch between first person and third person isn't gratuitous and instead serve very different purposes and allow you to fully appreciate the game. The fighting system where you control the weapon with the right analog stick is just awesome. It's like having a mini Wii controller on the 360's game pad. Additionally, it allows you grab objects and move them around you in three-dimensional space to solve puzzles. This is once more very innovative and refreshing. Finally, it seems to me that Alone in the Dark is a work of art and that it's simple not appreciated by the mainstream press. This is nothing new and often happens to visionaries. I for one hope that Eden Studios will continue along this path and surprise me with other games in the future. We need studios that dare to step outside the beaten path and execute this in such a masterful way as Alone in the Dark. Thanks a lot for this game! Scores 10.0Presentation Everything oozes quality. The menu system, the inventory, the atmosphere, the in-game hints. Perfect score! 9.0Graphics The graphics are in general top-notch though there's some clipping or frame rate dips. The whole cinematic feel is dead on though and regularly shows breathtaking scenes. 10.0Sound Perfect and thrilling! This music score could have been done for a Hollywood block buster! 9.0Gameplay It takes a little while to get used to the large set of controls. They quickly feel natural though and allow you to interact with the world in a totally novel fashion. 7.0Lasting Appeal The game is short and I will probably not replay it. However, the story line and atmosphere is so good that it will probably become one of those reference games that I think of for many years to come. 9.0OVERALL (out of 10 / not an average) [...]



Channel Intelligence's European patent application is in bad shape

2008-07-24T20:47:57+0200

2008-07-24T20:47:57+0200

Today one of the Belgian patent information centers got back to me to discuss the state of Channel Intelligence's European patent application. They confirm that the patent is indeed still under examination and that means that it has not even been sent to the local patent offices of each individual country where this patent would apply.

The patent has been under examination for over 7 years and Channel Intelligence has been gradually trying to adapt some of the claims to get it past the examinator. The fact that it is taking this long is a good sign since it means that the patent office never consider it to be into an acceptable state and it already went through several iterations. Also, since this is clearly a software patent, the representative of this Belgian information center confirmed that it will be almost impossible for this patent application to be approved in Europe.

He suggested that I put a comprehensive dossier together with all prior art and detailed explanations about how they invalidate the novelty and inventiveness of the patent. This seems to correspond with what's written in article 115 of the European Patent Convention. The examinator however has no obligation to take this into consideration. At his sole discretion he can decide to use or ignore the information that is sent to him.

However, that's not all. In the very unlikely event that this patent might be accepted in Europe, there's still a 9 month period after the acceptance date where an official protest can be filed. This doesn't have to be done through a lawyer and can simply be coordinated with a local patent office. Such actions however can't be ignored and will have to be examined in detail by the global European Patent Office.

I thus plan on creating this dossier and also publish it on my blog. Anybody that feels strongly against this patent will then be able to use this information to send his or her own letter to the patent office. If we coordinate this correctly, they might not be able to ignore the pressure.

Thanks a lot everyone for all your support. I'm amazed at how friendly and helpful everyone has been so far.




Channel Intelligence patent : abundance of prior art

2008-07-23T11:28:14+0200

2008-07-23T11:28:14+0200

Since the European patent that Channel Intelligence tries to sue us with doesn't seem to be granted yet. I'm now looking for prior art to stop the patent from being awarded. This could make this lawsuit go simply go away for everyone they targeted in Europe.

Below is a list of what I already found with the help of friends. If you have other suggestions, please add them as comments.

Also, I'd appreciate it if people could help me to read over the patent and validate the applicability of this prior art. I might have missed something.

  • 2001 : The Things I Want (http://thethingsiwant.com) - create universal online wishlists and gift registries

  • 2000 : ShopSmart (web archive) - allowed you to create lists of items, to compare the prices and to prioritize them. A friend of mine worked on this application and there are even articles published about it in the Sunday Times and the Daily Post. Still looking for copies of those.

  • 1999 : Kelkoo (http://kelkoo.com) - seems to do exactly what is described in the patent, I contacted them to see if they can help to protest against the patent application.

  • 1997 : No Amiga To Waste (http://thunderstorms.org/NATW) - this is an application that I created where lists of ideas can be created and commented on over the internet. While not 100% inside e-commerce realm (Bla-bla List isn't either btw), this can be seen as prior art imho.

  • 1996 : Peapod (http://peapod.com) - allows you to create online grocery lists.




Did Channel Intelligence jump the gun with the European patent complaints?

2008-07-23T09:50:02+0200

2008-07-23T09:50:02+0200

The official complaint from Channel Intelligence states the US patent number but it only vaguely mentions that they 'own the foreign equivalents'. I thus decided to search for them, and I found this: http://register1.epoline.org/espacenet/regviewer.

It turns out that the equivalent European patent is still under examination. I've contacted the Belgian patent office to see what the local status is and they're getting back to me shortly. With the abundance of prior art, it might actually be easy to stop the patent from being granted in Europe now. Apparently it's much more effective to intervene during the examination process than it is to contest the patent once it's granted.




Channel Intelligence vs. Uwyn : thoughts after the first day

2008-07-19T10:34:53+0200

2008-07-19T10:34:53+0200

Thanks a lot everyone for all your helpful comments. It's heartwarming to see how many people care and manifest their support.

I already had some informal legal assistance and it seems that causing a patent to be revoked is a very expensive process. That is the only thing that prior art can be used for. Since the patent is there and has been granted by the US patent office, its validity cannot be challenged unless it's entirely revoked. What I can do is challenge the relevance of the patent in regards to Bla-bla List. I'm now waiting for replies from several open-source foundations that are supposed to provide free legal assistance is cases like this. If they don't come through, I'll have to hire a patent lawyer in Belgium.

I've also contacted the lawyers that sent me this letter directly to ask them for concrete suggestions about the amicable resolve that they propose. At least this will give me a picture about what they're after. This what I sent them:

Dear sir,

I just received a fedex about your claim that http://blablalist.com would infringe intellectual property rights that are allegedly held by Channel Intelligence, Inc. in US patent No. 6,917,941.

The service provided at http://blablalist.com has been free of charge and the technology is actually made available for free under an open-source license that has been approved by the Free Software Foundation. Uwyn has never received any payments from the users of the service nor made any profits from it.

As you suggest in the last paragraph of your letter, I'm ready to discuss ways to resolve this amicably. What are your suggestions?

Best regards,

Geert

There seem to be a collection of possible reasons that I can use to dismiss myself as a defendant. I didn't know that the legal system worked this way, but apparently it's common for patent infringement cases to target a whole laundry list of defendants. They all typically try to be dismissed and only one valid reason is needed for this to happen. If the suggestions for an amicable resolve don't satisfy me, aiming for a dismissal will probably be my next course of action.

I'll keep you all posted!




Request for help : first time I have to deal with a patent infringement complaint

2008-07-18T11:15:19+0200

2008-07-18T11:15:19+0200

I'm reaching out to the collective experience of my readers. Today I received a letter from a US attorney that claims that Bla-bla List infringes on US Patent No. 6,917,941.

Bla-bla List has just been an experiment for me with Rich Internet Applications. It has always been an open-source effort and I made it available as a free service to see how well it would fare out in the wild. Since this service never generated any revenue for me, paying for a lawyer to dig into this is something that I'd like the avoid (though maybe I can't).

Has anyone here ever had to defend himself again such a claim? Does the software being open-source or the service being free make any difference?

Thanks for any help or recommendations that you can give me.

update: people have asked me for the lawyer's letter and the claim, I scanned it and you can download it as a 1MB PDF from http://blablalist.com/ca-08-437.pdf or browse through it online at http://www.docstoc.com/docs/document-preview.aspx?doc_id=953027

update 2: seems I'm not alone in this, they have sued about any list application out there : http://www.techcrunch.com/2008/07/17/channel-intelligence-sues-just-about-everyone-who-offers-wishlists/




Beware, Apple TV warranty isn't worldwide

2008-07-16T10:00:26+0200

2008-07-16T10:00:26+0200

When I was in the USA I bought an Apple TV and brought it back home to Belgium.

Last night, it broke down entirely after just a couple of months of operation. When I hook it up to the power socket, nothing happens. The front light doesn't light up, and I can hear no noises of the hard drive spinning up either. Seems to me that either a fuse broke, or something else just fried.

I spent some time with the Apple support line, both in the USA and in Belgium and they both say that I can only have it services in USA. I'll thus have to wait 'till my next trip to San Francisco in October to have the Apple TV repaired.

This sucks, I thought that all Apple products had worldwide warranties, apparently some of them don't.