WebObjects Training/Boot Camp (was Re: Migrating from EOF to Cayenne)
On 12 Jul 2012, at 02:14, Daniel Beatty wrote: On a side note, do we have cheat sheets or a curriculum from the boot camp before WOWODC 2012? As a professor type, I would really love to borrow the instructors material to help my own students, as I get them. Even if I am only tutoring one at a time, a good curriculum goes a long way. It also helps define our EOF question. We do. Apologies for a really slow response, but I just arrived back home on Saturday with a multi-hundred backlog in this list alone. Pascal should have the recordings up in good time (Pascal?), and the materials used in the class are at http://www.paullynch.org/WOWODC2012.zip. I will be uploading a fixed version of those slide, and an expanded set of exercises with solutions, to the same location - most probably in another couple of weeks (course development is a much slower process than people seem to imagine). If you get the chance to hear the recording of the first section, you will discover that I created this class to be free of Apple Training copyrights, and under a Creative Commons license (as in, give credit where credit is due), for WOCommunity use. Paul ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: WebObjects Training/Boot Camp (was Re: Migrating from EOF to Cayenne)
Le 2012-07-17 à 05:57, Paul Lynch a écrit : On 12 Jul 2012, at 02:14, Daniel Beatty wrote: On a side note, do we have cheat sheets or a curriculum from the boot camp before WOWODC 2012? As a professor type, I would really love to borrow the instructors material to help my own students, as I get them. Even if I am only tutoring one at a time, a good curriculum goes a long way. It also helps define our EOF question. We do. Apologies for a really slow response, but I just arrived back home on Saturday with a multi-hundred backlog in this list alone. Pascal should have the recordings up in good time (Pascal?) It's my next thing to do after I'm done with the recordings of the regular WOWODC. But it will take time since I can't export the recordings at the same time that I work on my MBP, it will be done by mid-August. , and the materials used in the class are at http://www.paullynch.org/WOWODC2012.zip. I will be uploading a fixed version of those slide, and an expanded set of exercises with solutions, to the same location - most probably in another couple of weeks (course development is a much slower process than people seem to imagine). If you get the chance to hear the recording of the first section, you will discover that I created this class to be free of Apple Training copyrights, and under a Creative Commons license (as in, give credit where credit is due), for WOCommunity use. Paul ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/probert%40macti.ca This email sent to prob...@macti.ca ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Like it On 2012/07/11, at 20:12, Farrukh Ijaz wrote: Hi, In past I've used AOP to address issues of closed source. This I believe if carefully used can help convert the EOF from single to multi threaded and/or solve other bottleneck problems. Having said this doesn't mean I'm against Cayane. However if the current EOF issues get fixed with AOP patched code would be better for those who don't want to or for some reasons can't switch to Cayane. Farrukh Chuck Hill ch...@global-village.net wrote: I agree that we need to more closely examine Cayenne before jumping in with both feet. How mature are the tools? What is the functionality gap? How important is the missing functionality? How costly is adding any needed functionality? Will the missing functionality fit in with the Cayenne architecture? How stable is it? How well does it scale (scaling is more than multi-threaded EOF)? And Cayenne is only EOAccess/EOControl. What do we do about the presentation layer? Getting rid of 2/3 of WO still leaves you with WO. Chuck On 2012-07-11, at 11:29 AM, Theodore Petrosky wrote: Hurray someone actually started talking about this. I want to add my two cents without starting a this is better than that conversation. If Cayenne is to be utilized, someone in the know must look not only at the current state of Cayenne, but at the developers. What is/was their philosophy behind what they write/wrote? If we don't, it will be a very short and costly marriage. Costly, because we either buck up and foot the bill to rewrite Webobjects or continue in a bad relationship. I am writing this not as a diatribe but because I am concerned that in the excitement of looking at Cayenne, the obvious impact of differing philosophies of the original authors may be ignored. BTW, I say original authors because the person that wrote the first line of code left his/her imprint on the direction of all code that follows. JMHO (i mean that sincerely). Ted Message: 4 Date: Wed, 11 Jul 2012 10:09:08 -0500 From: John Huss johnth...@gmail.com To: WebObjects-Dev Mailing List List webobjects-dev@lists.apple.com Subject: Migrating from EOF to Cayenne Message-ID: CAOUwSGtOwEayxK4im97HucAUANo=cfnrkq9ej5z+679bcd7...@mail.gmail.com Content-Type: text/plain; charset=windows-1252 At WOWODC there was a lot of interest in migrating from EOF to Cayenne, and even entirely rebasing Wonder to run on top of Cayenne instead of EOF. *Why would anyone want to do this? * 1. Cayenne is open-source and is actively being developed 2. Cayenne has great concurrency support which is in stark contrast to EOF single-threaded architecture 3. Cayenne is conceptually very similar to EOF so the transition is fairly straightforward For those reasons it is a much better long term solution than EOF, which is now frozen in time. Cayenne can be used inside a WO application as an EOF replacement while continuing to use the rest of WebObjects. *I'm interested. Now what?* - Learn about Cayenne. The best source of information for comparing EOF and Cayenne is on the wikihttp://wiki.wocommunity.org/display/WO/Alternative+Technologies-Cayenne. In addition, you can look at the documentationhttp://cayenne.apache.org/for Cayenne. - Use Cayenne in your new projects. Cayenne runs just fine inside a WebObjects application. Wonder has the ERCayenne framework and ERCayenneExample to help you get started. I suggest working with the trunk of the Cayenne source (and Wonder too) since some things are just being added to make this easier. - Help work on easing and automating the migration from EOF to Cayenne. It is possible to automate a large part of the work involved in moving from EOF to Cayenne. But it requires effort. ERCayenne in Wonder has a class that will convert an EOModel to a Cayenne model (the class is CayenneConverter). This works well, but could be improved. I've started working on an Eclipse refactoring script that will convert from one API to the other. Yes, you may not have known (I didn't) that Eclipse can record a series of refactorings and save it as a script. The bulk of the migration work is creating refactoring scripts in Eclipse by performing refactorings on a stubbed out version of the EOF API to convert the API into the equivalent Cayenne API. After performing the refactorings, a script can be exported using Refactor-Create Script. For EOF methods that do not have a direct Cayenne equivalent, helper methods (or classes) will need to be written that can serve as a direct replacement. *How can I help specifically with the migration effort?* - CayenneConverter in ERCayenne (for converting the model) does not convert the connection dictionaries in the EOModel yet. - CayenneConverter does a poor job converting fetch specs defined in the
Re: Migrating from EOF to Cayenne
On Jul 12, 2012, at 8:06 PM, Chuck Hill wrote: You want to know the biggest unfixable problem with WO for me? WO apps can't be deployed on any mobile platform. That really sucks. For that, you need to change the paradigm from interface vending servers to servers that vend data and processing. Use a mobile client technology like Sencha or Montage. Or write D2iOS. :-) (..) Chuck I actually think that's the way to go. You mentioned that switching to Cayenne leaves 1/3 of WO, aka the presentation layer, but, really, is there a future on server side interface vending? I have been very happy with WO, but if/when I switch it will be for HTML5 native apps. Just my 2 € cents Henrique Gomes ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
I believe the takeaway here is that Cayenne is indeed under active development, which is nice :). - hugi On 12.7.2012, at 17:07, John Huss wrote: On Thu, Jul 12, 2012 at 9:45 AM, Hugi Thordarson h...@karlmenn.is wrote: Cayenne is still missing a lot of functionality when compared to EOF/Wonder and generally feels less mature (understandably, since EOF is ancient). This is perhaps not such a huge problem, since functionality can always be added—but there is indeed a *lot* of work to be done to reach feature parity with EOF. That seems like an overstatement to me. What things is it missing that you need? Well, it isn't exactly big things that are missing, but rather an aggregation of a lot of small things. Things I can live without, but would rather not. EOF, Foundation, Wonder and the tools have 20 years of refinement and integration in their design so moving from EOF to Cayenne feels a little like moving from a Mercedes to a Wolkswagen Bug. Lack of IDE support, There is an Eclipse plugin, but it is not totally baked yet. no prototypes, Cayenne already does the switching databases part of prototypes. The faster model creation part would be a nice add perhaps, but you get part of it (the java type assigment) already in Cayenne by auto-generating the ObjEntity from the DbEntity. no KVC This is already in ERCayenne , getAccessor (ugh) The templates in ERCayenne don't use the get prefix , limited support for inheritance, True no ERXKey means no type safe queries and strings everywhere, ERXKey is in ERCayenneExample and I'll be committing a version Cayenne itself in the next few days. somewhat buggy modeler I fixed a couple of the more annoying problems last week. Other than that I'm not aware of any behaviors that are truly bugs. But usability could certainly be improved. with no support for cross-model relationships This is not true anymore if it was before. 3.1 includes the idea of a default node (basically a connection dictionary), so you can load models that are generic, framework level and use them along with your own model. , no crossing relationships in raw row fetches (which makes it harder to create reports from huge object graphs) True, this is the biggest gap I've come across - I have an app that does exactly that. However, there are a few built-in alternatives, namely SQLTemplate and EJBQLQuery. But if you have a lot of this in your app, you'll probably want to wait to consider migrating. , no Project Wonder EO stuff etc. etc. I have some Cayenne implementations of the specific utilities that I used from Wonder, but yes, this represents work to be done. Now, I know this comparison is unfair to Cayenne which is in fact great, and Andrus and the others have done an amazing job. EOF is just hard to beat, because EOF is very, very good. And as I said, Cayenne will no doubt get there, I just believe it will take a lot of work. Just a little work I think. The things that have to be done are almost all approachable by average developers. The only reasonable way to do a re-implementation of EOF would be to start with Cayenne. It doesnt have the same API as EOF, but that could be done; that hard work has already been done, only the API would need change. But I think there are advantages in trying to merge with the Cayenne community rather than taking it and forking it. I agree. If they're compatible it's probably the way to go. - hugi ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
I think Hugi also use it. Is that a point for or against it? :-P PastedGraphic-1.png Ah ha! So you ARE still reading the list! :-) Good to see you around! Haha, thanks :). Oddly enough, I always read the lists religiously, even when I wasn't using WO that much. - hugi ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Sorry for late response, just landed last night. The idea is very simple to understand and implement. E.g. I've a third party library which has a method named with following signature: String encode(String someString) { // some crappy encoding performed on someString and saved as encoded... return encoded; } Now this method can be private, public, protected, static, final, blah blah etc. I find that encoding is buggy, how to fix it? There are two ways: 1. Get the source code, fix the method and submit patch. (This is sometimes not possible and for sure not possible in case of WebObjects) 2. Use AOP Forget about option 1. In Option 2 we have to use some AOP mechanism and the one that I've tested with my Wonder apps is AspectJ. I'm not going into details as it's a vast subject but providing links which are sufficient to experiment :) http://www.eclipse.org/aspectj/ http://www.eclipse.org/aspectj/doc/released/progguide/starting-aspectj.html#the-dynamic-join-point-model As far as weaving is concerned, I would suggest to use dynamic join point as they can be used to intercept calls and invoke different code rather than modifying the original classes. The idea is we need to define join point for the method which is buggy or where we want to provide our own implementation. When the code is executed, the class loader reroutes the request for incoming method calls to our code. AOP is different that OOP. In contrast with OOP where methods are associated with Objects, AOP is used to classify those methods under common aspects and normally we use regular expressions for that. Two very common aspects I can explain here: 1. You may have lots of methods and you want to collect execution type for each method call. (A logging aspect) 2. A developer like me who put all the code in try block and catch one super Exception, someone would like to perform different operations on each sub-exception can write an aspect to catch my exceptions and do whatever he wants and then continue the original processing. I'm not familiar with internals of the WebObjects but the code that's responsible for single thread can be studied and multithreaded solution can be provided using AOP. If someone is interested to work with me to on this, I'm more than happy to help where I can :) Farrukh On 2012-07-11, at 10:25 PM, Chuck Hill ch...@global-village.net wrote: Hi Farrukh, I like the idea of using AOP to address bugs in WO. Can you give us any details on how you did that? As for making EOF multi-threaded that is a very fundamental part of the design. Fixing that with AOP would be challenging. :-) Chuck On 2012-07-11, at 11:12 AM, Farrukh Ijaz wrote: Hi, In past I've used AOP to address issues of closed source. This I believe if carefully used can help convert the EOF from single to multi threaded and/or solve other bottleneck problems. Having said this doesn't mean I'm against Cayane. However if the current EOF issues get fixed with AOP patched code would be better for those who don't want to or for some reasons can't switch to Cayane. Farrukh Chuck Hill ch...@global-village.net wrote: I agree that we need to more closely examine Cayenne before jumping in with both feet. How mature are the tools? What is the functionality gap? How important is the missing functionality? How costly is adding any needed functionality? Will the missing functionality fit in with the Cayenne architecture? How stable is it? How well does it scale (scaling is more than multi-threaded EOF)? And Cayenne is only EOAccess/EOControl. What do we do about the presentation layer? Getting rid of 2/3 of WO still leaves you with WO. Chuck On 2012-07-11, at 11:29 AM, Theodore Petrosky wrote: Hurray someone actually started talking about this. I want to add my two cents without starting a this is better than that conversation. If Cayenne is to be utilized, someone in the know must look not only at the current state of Cayenne, but at the developers. What is/was their philosophy behind what they write/wrote? If we don't, it will be a very short and costly marriage. Costly, because we either buck up and foot the bill to rewrite Webobjects or continue in a bad relationship. I am writing this not as a diatribe but because I am concerned that in the excitement of looking at Cayenne, the obvious impact of differing philosophies of the original authors may be ignored. BTW, I say original authors because the person that wrote the first line of code left his/her imprint on the direction of all code that follows. JMHO (i mean that sincerely). Ted Message: 4 Date: Wed, 11 Jul 2012 10:09:08 -0500 From: John Huss johnth...@gmail.com To: WebObjects-Dev Mailing List List webobjects-dev@lists.apple.com Subject: Migrating from EOF to Cayenne Message-ID:
Re: Migrating from EOF to Cayenne
Weaving is different than Dynamic join point interception. Farrukh On 2012-07-11, at 10:40 PM, John Huss johnth...@gmail.com wrote: My understanding is that AOP requires weaving or rewriting of the bytecode. If so, this is not allowed by the license - it prohibits modification. But people may not care about that. Decompiling whole classes to fix bugs has been done before. It makes me quesy though. On Wed, Jul 11, 2012 at 1:12 PM, Farrukh Ijaz farrukh.i...@fuegodigitalmedia.com wrote: Hi, In past I've used AOP to address issues of closed source. This I believe if carefully used can help convert the EOF from single to multi threaded and/or solve other bottleneck problems. Having said this doesn't mean I'm against Cayane. However if the current EOF issues get fixed with AOP patched code would be better for those who don't want to or for some reasons can't switch to Cayane. Farrukh Chuck Hill ch...@global-village.net wrote: I agree that we need to more closely examine Cayenne before jumping in with both feet. How mature are the tools? What is the functionality gap? How important is the missing functionality? How costly is adding any needed functionality? Will the missing functionality fit in with the Cayenne architecture? How stable is it? How well does it scale (scaling is more than multi-threaded EOF)? And Cayenne is only EOAccess/EOControl. What do we do about the presentation layer? Getting rid of 2/3 of WO still leaves you with WO. Chuck On 2012-07-11, at 11:29 AM, Theodore Petrosky wrote: Hurray someone actually started talking about this. I want to add my two cents without starting a this is better than that conversation. If Cayenne is to be utilized, someone in the know must look not only at the current state of Cayenne, but at the developers. What is/was their philosophy behind what they write/wrote? If we don't, it will be a very short and costly marriage. Costly, because we either buck up and foot the bill to rewrite Webobjects or continue in a bad relationship. I am writing this not as a diatribe but because I am concerned that in the excitement of looking at Cayenne, the obvious impact of differing philosophies of the original authors may be ignored. BTW, I say original authors because the person that wrote the first line of code left his/her imprint on the direction of all code that follows. JMHO (i mean that sincerely). Ted Message: 4 Date: Wed, 11 Jul 2012 10:09:08 -0500 From: John Huss johnth...@gmail.com To: WebObjects-Dev Mailing List List webobjects-dev@lists.apple.com Subject: Migrating from EOF to Cayenne Message-ID: CAOUwSGtOwEayxK4im97HucAUANo=cfnrkq9ej5z+679bcd7...@mail.gmail.com Content-Type: text/plain; charset=windows-1252 At WOWODC there was a lot of interest in migrating from EOF to Cayenne, and even entirely rebasing Wonder to run on top of Cayenne instead of EOF. *Why would anyone want to do this? * 1. Cayenne is open-source and is actively being developed 2. Cayenne has great concurrency support which is in stark contrast to EOF single-threaded architecture 3. Cayenne is conceptually very similar to EOF so the transition is fairly straightforward For those reasons it is a much better long term solution than EOF, which is now frozen in time. Cayenne can be used inside a WO application as an EOF replacement while continuing to use the rest of WebObjects. *I'm interested. Now what?* - Learn about Cayenne. The best source of information for comparing EOF and Cayenne is on the wikihttp://wiki.wocommunity.org/display/WO/Alternative+Technologies-Cayenne. In addition, you can look at the documentationhttp://cayenne.apache.org/for Cayenne. - Use Cayenne in your new projects. Cayenne runs just fine inside a WebObjects application. Wonder has the ERCayenne framework and ERCayenneExample to help you get started. I suggest working with the trunk of the Cayenne source (and Wonder too) since some things are just being added to make this easier. - Help work on easing and automating the migration from EOF to Cayenne. It is possible to automate a large part of the work involved in moving from EOF to Cayenne. But it requires effort. ERCayenne in Wonder has a class that will convert an EOModel to a Cayenne model (the class is CayenneConverter). This works well, but could be improved. I've started working on an Eclipse refactoring script that will convert from one API to the other. Yes, you may not have known (I didn't) that Eclipse can record a series of refactorings and save it as a script. The bulk of the migration work is creating refactoring scripts in Eclipse by performing refactorings on a stubbed out version of the EOF API to convert the API into the
Re: Migrating from EOF to Cayenne
On 2012-07-12, at 2:01 PM, Hugi Thordarson h...@karlmenn.is wrote: I think Hugi also use it. Is that a point for or against it? :-P PastedGraphic-1.png But yes, I've used Cayenne on a couple of projects. As you know it feels a *lot* like EOF and was by far the nicest ORM I could legally use at my previous pure java workplace. (protip: never go anywhere near JPA, it *will* rape your dog and kill your grandmother.) Apart from the technical similarities, Cayenne also has another important thing in common with WO: A good community and an active mailing list full of nice and helpful people, so you never get stuck along the way. What do you mean by it feels a *lot* like EOF? Is it because the method calls look alike? Regarding JPA, I've observed since I started working on EOF in 2010, very few know about J2EE in this community. JPA is not a standard, it's a specification. A clever WO developer can use EOF with JPA too :) http://en.wikibooks.org/wiki/Java_Persistence/What_is_JPA%3F Farrukh Cayenne is still missing a lot of functionality when compared to EOF/Wonder and generally feels less mature (understandably, since EOF is ancient). This is perhaps not such a huge problem, since functionality can always be added—but there is indeed a *lot* of work to be done to reach feature parity with EOF. It's clear that at some point most of us will have to stop using EOF in it's current form. In a perfect world (that's the world where I have endless time and money) I'd do a clean room implementation of EOF and live happily ever after. But this is indeed not a perfect world, so helping making Cayenne better and more integrated with WO seems like a more realistic goal (besides, it allows more resources to be spent on a re-implementation of WO; something I'd love to participate in). - hugi ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/farrukh.ijaz%40fuegodigitalmedia.com This email sent to farrukh.i...@fuegodigitalmedia.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
On 2012-07-12, at 6:32 PM, arosenzw...@clinworx.com wrote: Hi WOrriors, I still question why we are fighting so hard for Object-relational mapping. If we are contemplating doing work, shouldn't we consider going straight for object databases? Take out the transcription layer. Let's get more productive. Only use OR-mapping for old systems that we must interface with but new work should consider the advantages of being pure objects, all the time. I don't think we've many reporting and charting tools that work directly with Objects. Capturing data is not an issue, the real challenge is to reuse captured data for BI. Farrukh ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Just a fix, I mean JPA is not a product but a specification :) Farrukh On 2012-07-13, at 3:41 PM, Farrukh Ijaz farrukh.i...@fuegodigitalmedia.com wrote: On 2012-07-12, at 2:01 PM, Hugi Thordarson h...@karlmenn.is wrote: I think Hugi also use it. Is that a point for or against it? :-P PastedGraphic-1.png But yes, I've used Cayenne on a couple of projects. As you know it feels a *lot* like EOF and was by far the nicest ORM I could legally use at my previous pure java workplace. (protip: never go anywhere near JPA, it *will* rape your dog and kill your grandmother.) Apart from the technical similarities, Cayenne also has another important thing in common with WO: A good community and an active mailing list full of nice and helpful people, so you never get stuck along the way. What do you mean by it feels a *lot* like EOF? Is it because the method calls look alike? Regarding JPA, I've observed since I started working on EOF in 2010, very few know about J2EE in this community. JPA is not a standard, it's a specification. A clever WO developer can use EOF with JPA too :) http://en.wikibooks.org/wiki/Java_Persistence/What_is_JPA%3F Farrukh ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Sorry for late response, just landed last night. The idea is very simple to understand and implement. E.g. I've a third party library which has a method named with following signature: String encode(String someString) { // some crappy encoding performed on someString and saved as encoded... return encoded; } Now this method can be private, public, protected, static, final, blah blah etc. I find that encoding is buggy, how to fix it? There are two ways: 1. Get the source code, fix the method and submit patch. (This is sometimes not possible and for sure not possible in case of WebObjects) 2. Use AOP Forget about option 1. In Option 2 we have to use some AOP mechanism and the one that I've tested with my Wonder apps is AspectJ. I'm not going into details as it's a vast subject but providing links which are sufficient to experiment :) http://www.eclipse.org/aspectj/ http://www.eclipse.org/aspectj/doc/released/progguide/starting-aspectj.html#the-dynamic-join-point-model As far as weaving is concerned, I would suggest to use dynamic join point as they can be used to intercept calls and invoke different code rather than modifying the original classes. The idea is we need to define join point for the method which is buggy or where we want to provide our own implementation. When the code is executed, the class loader reroutes the request for incoming method calls to our code. AOP is different that OOP. In contrast with OOP where methods are associated with Objects, AOP is used to classify those methods under common aspects and normally we use regular expressions for that. Two very common aspects I can explain here: 1. You may have lots of methods and you want to collect execution type for each method call. (A logging aspect) 2. A developer like me who put all the code in try block and catch one super Exception, someone would like to perform different operations on each sub-exception can write an aspect to catch my exceptions and do whatever he wants and then continue the original processing. I'm not familiar with internals of the WebObjects but the code that's responsible for single thread can be studied and multithreaded solution can be provided using AOP. If someone is interested to work with me to on this, I'm more than happy to help where I can :) Farrukh On 2012-07-11, at 10:25 PM, Chuck Hill ch...@global-village.net wrote: Hi Farrukh, I like the idea of using AOP to address bugs in WO. Can you give us any details on how you did that? As for making EOF multi-threaded that is a very fundamental part of the design. Fixing that with AOP would be challenging. :-) Chuck On 2012-07-11, at 11:12 AM, Farrukh Ijaz wrote: Hi, In past I've used AOP to address issues of closed source. This I believe if carefully used can help convert the EOF from single to multi threaded and/or solve other bottleneck problems. Having said this doesn't mean I'm against Cayane. However if the current EOF issues get fixed with AOP patched code would be better for those who don't want to or for some reasons can't switch to Cayane. Farrukh Chuck Hill ch...@global-village.net wrote: I agree that we need to more closely examine Cayenne before jumping in with both feet. How mature are the tools? What is the functionality gap? How important is the missing functionality? How costly is adding any needed functionality? Will the missing functionality fit in with the Cayenne architecture? How stable is it? How well does it scale (scaling is more than multi-threaded EOF)? And Cayenne is only EOAccess/EOControl. What do we do about the presentation layer? Getting rid of 2/3 of WO still leaves you with WO. Chuck On 2012-07-11, at 11:29 AM, Theodore Petrosky wrote: Hurray someone actually started talking about this. I want to add my two cents without starting a this is better than that conversation. If Cayenne is to be utilized, someone in the know must look not only at the current state of Cayenne, but at the developers. What is/was their philosophy behind what they write/wrote? If we don't, it will be a very short and costly marriage. Costly, because we either buck up and foot the bill to rewrite Webobjects or continue in a bad relationship. I am writing this not as a diatribe but because I am concerned that in the excitement of looking at Cayenne, the obvious impact of differing philosophies of the original authors may be ignored. BTW, I say original authors because the person that wrote the first line of code left his/her imprint on the direction of all code that follows. JMHO (i mean that sincerely). Ted Message: 4 Date: Wed, 11 Jul 2012 10:09:08 -0500 From: John Huss johnth...@gmail.com To: WebObjects-Dev Mailing List List webobjects-dev@lists.apple.com Subject: Migrating from EOF to Cayenne Message-ID:
Re: Migrating from EOF to Cayenne
But yes, I've used Cayenne on a couple of projects. As you know it feels a *lot* like EOF and was by far the nicest ORM I could legally use at my previous pure java workplace. (protip: never go anywhere near JPA, it *will* rape your dog and kill your grandmother.) Apart from the technical similarities, Cayenne also has another important thing in common with WO: A good community and an active mailing list full of nice and helpful people, so you never get stuck along the way. What do you mean by it feels a *lot* like EOF? Is it because the method calls look alike? Cayenne is conceptually very similar to EOF so the API and architecture will instantly feel familiar to an experienced EOF programmer. Learning Cayenne is more like learning a dialect than learning a new language. Regarding JPA, I've observed since I started working on EOF in 2010, very few know about J2EE in this community. JPA is not a standard, it's a specification. A clever WO developer can use EOF with JPA too :) Yes, the JPA is a spec, I just think it is a bad spec :). The Criteria API alone made me want to grab my head by the eyesockets and remove it from my torso. Cheers, - hugi ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Hi, Making EOF multi-threaded is really not that desirable nor is it necessary. EOF gets most of its speed and efficiency through its 'cut through' single-threaded design at the Access layer. About 4 years ago, Apple tested an internal build of WO/EOF that was fully multi-threaded. It was about half as fast as the EOF that we know (and love?). Since then, Apple's internal version of EOF retains virtually the current implementation except for the snapshot layer which is now shared by multiple DB stacks. So the solution was to remove the 1-1 relationship between DB stacks and snapshots and to retain the cut-through single-threaded design of EOF. Karl On 2012-07-13, at 3:06 PM, Farrukh Ijaz farrukh.i...@fuegodigitalmedia.com wrote: Sorry for late response, just landed last night. The idea is very simple to understand and implement. E.g. I've a third party library which has a method named with following signature: String encode(String someString) { // some crappy encoding performed on someString and saved as encoded... return encoded; } Now this method can be private, public, protected, static, final, blah blah etc. I find that encoding is buggy, how to fix it? There are two ways: 1. Get the source code, fix the method and submit patch. (This is sometimes not possible and for sure not possible in case of WebObjects) 2. Use AOP Forget about option 1. In Option 2 we have to use some AOP mechanism and the one that I've tested with my Wonder apps is AspectJ. I'm not going into details as it's a vast subject but providing links which are sufficient to experiment :) http://www.eclipse.org/aspectj/ http://www.eclipse.org/aspectj/doc/released/progguide/starting-aspectj.html#the-dynamic-join-point-model As far as weaving is concerned, I would suggest to use dynamic join point as they can be used to intercept calls and invoke different code rather than modifying the original classes. The idea is we need to define join point for the method which is buggy or where we want to provide our own implementation. When the code is executed, the class loader reroutes the request for incoming method calls to our code. AOP is different that OOP. In contrast with OOP where methods are associated with Objects, AOP is used to classify those methods under common aspects and normally we use regular expressions for that. Two very common aspects I can explain here: 1. You may have lots of methods and you want to collect execution type for each method call. (A logging aspect) 2. A developer like me who put all the code in try block and catch one super Exception, someone would like to perform different operations on each sub-exception can write an aspect to catch my exceptions and do whatever he wants and then continue the original processing. I'm not familiar with internals of the WebObjects but the code that's responsible for single thread can be studied and multithreaded solution can be provided using AOP. If someone is interested to work with me to on this, I'm more than happy to help where I can :) Farrukh On 2012-07-11, at 10:25 PM, Chuck Hill ch...@global-village.net wrote: Hi Farrukh, I like the idea of using AOP to address bugs in WO. Can you give us any details on how you did that? As for making EOF multi-threaded that is a very fundamental part of the design. Fixing that with AOP would be challenging. :-) Chuck On 2012-07-11, at 11:12 AM, Farrukh Ijaz wrote: Hi, In past I've used AOP to address issues of closed source. This I believe if carefully used can help convert the EOF from single to multi threaded and/or solve other bottleneck problems. Having said this doesn't mean I'm against Cayane. However if the current EOF issues get fixed with AOP patched code would be better for those who don't want to or for some reasons can't switch to Cayane. Farrukh Chuck Hill ch...@global-village.net wrote: I agree that we need to more closely examine Cayenne before jumping in with both feet. How mature are the tools? What is the functionality gap? How important is the missing functionality? How costly is adding any needed functionality? Will the missing functionality fit in with the Cayenne architecture? How stable is it? How well does it scale (scaling is more than multi-threaded EOF)? And Cayenne is only EOAccess/EOControl. What do we do about the presentation layer? Getting rid of 2/3 of WO still leaves you with WO. Chuck On 2012-07-11, at 11:29 AM, Theodore Petrosky wrote: Hurray someone actually started talking about this. I want to add my two cents without starting a this is better than that conversation. If Cayenne is to be utilized, someone in the know must look not only at the current state of Cayenne, but at the developers. What is/was their philosophy behind what they write/wrote? If we don't, it will be a very
Re: Migrating from EOF to Cayenne
It remains so mystifying to me how the Java community produces such absolute garbage as JPA and their other specs. How many versions of EJB have we been through? 1.0, 1.1, 1.2, 1.3 2.x, 3.xand how consistent are they (hint: not one bit). I'll happily, boringly stick with EOF which seems to have been quite consistent since '94 (even in spite of the move to Java). Karl On 2012-07-13, at 4:29 PM, Hugi Thordarson h...@karlmenn.is wrote: But yes, I've used Cayenne on a couple of projects. As you know it feels a *lot* like EOF and was by far the nicest ORM I could legally use at my previous pure java workplace. (protip: never go anywhere near JPA, it *will* rape your dog and kill your grandmother.) Apart from the technical similarities, Cayenne also has another important thing in common with WO: A good community and an active mailing list full of nice and helpful people, so you never get stuck along the way. What do you mean by it feels a *lot* like EOF? Is it because the method calls look alike? Cayenne is conceptually very similar to EOF so the API and architecture will instantly feel familiar to an experienced EOF programmer. Learning Cayenne is more like learning a dialect than learning a new language. Regarding JPA, I've observed since I started working on EOF in 2010, very few know about J2EE in this community. JPA is not a standard, it's a specification. A clever WO developer can use EOF with JPA too :) Yes, the JPA is a spec, I just think it is a bad spec :). The Criteria API alone made me want to grab my head by the eyesockets and remove it from my torso. Cheers, - hugi ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/kgretton%40mac.com This email sent to kgret...@mac.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Yes, the JPA is a spec, I just think it is a bad spec :). The Criteria API alone made me want to grab my head by the eyesockets and remove it from my torso. That's pretty big statement, I might have agreed with you if I wasn't aware of what's JPA is all about. Here is the specification detail page and I believe all big giants are listed there in experts group. No more religious war please :) http://jcp.org/en/jsr/detail?id=220 Farrukh ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Yes, the JPA is a spec, I just think it is a bad spec :). The Criteria API alone made me want to grab my head by the eyesockets and remove it from my torso. That's pretty big statement, I might have agreed with you if I wasn't aware of what's JPA is all about. Here is the specification detail page and I believe all big giants are listed there in experts group. No more religious war please :) Not starting any religious wars, I just really didn't like the API (despite an honest attempt). If you like it, that's great. - hugi ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
don't make decisions based on anecdotal evidence ms On Jul 13, 2012, at 9:03 AM, Karl kgret...@mac.com wrote: Hi, Making EOF multi-threaded is really not that desirable nor is it necessary. EOF gets most of its speed and efficiency through its 'cut through' single-threaded design at the Access layer. About 4 years ago, Apple tested an internal build of WO/EOF that was fully multi-threaded. It was about half as fast as the EOF that we know (and love?). Since then, Apple's internal version of EOF retains virtually the current implementation except for the snapshot layer which is now shared by multiple DB stacks. So the solution was to remove the 1-1 relationship between DB stacks and snapshots and to retain the cut-through single-threaded design of EOF. Karl On 2012-07-13, at 3:06 PM, Farrukh Ijaz farrukh.i...@fuegodigitalmedia.com wrote: Sorry for late response, just landed last night. The idea is very simple to understand and implement. E.g. I've a third party library which has a method named with following signature: String encode(String someString) { // some crappy encoding performed on someString and saved as encoded... return encoded; } Now this method can be private, public, protected, static, final, blah blah etc. I find that encoding is buggy, how to fix it? There are two ways: 1. Get the source code, fix the method and submit patch. (This is sometimes not possible and for sure not possible in case of WebObjects) 2. Use AOP Forget about option 1. In Option 2 we have to use some AOP mechanism and the one that I've tested with my Wonder apps is AspectJ. I'm not going into details as it's a vast subject but providing links which are sufficient to experiment :) http://www.eclipse.org/aspectj/ http://www.eclipse.org/aspectj/doc/released/progguide/starting-aspectj.html#the-dynamic-join-point-model As far as weaving is concerned, I would suggest to use dynamic join point as they can be used to intercept calls and invoke different code rather than modifying the original classes. The idea is we need to define join point for the method which is buggy or where we want to provide our own implementation. When the code is executed, the class loader reroutes the request for incoming method calls to our code. AOP is different that OOP. In contrast with OOP where methods are associated with Objects, AOP is used to classify those methods under common aspects and normally we use regular expressions for that. Two very common aspects I can explain here: 1. You may have lots of methods and you want to collect execution type for each method call. (A logging aspect) 2. A developer like me who put all the code in try block and catch one super Exception, someone would like to perform different operations on each sub-exception can write an aspect to catch my exceptions and do whatever he wants and then continue the original processing. I'm not familiar with internals of the WebObjects but the code that's responsible for single thread can be studied and multithreaded solution can be provided using AOP. If someone is interested to work with me to on this, I'm more than happy to help where I can :) Farrukh On 2012-07-11, at 10:25 PM, Chuck Hill ch...@global-village.net wrote: Hi Farrukh, I like the idea of using AOP to address bugs in WO. Can you give us any details on how you did that? As for making EOF multi-threaded that is a very fundamental part of the design. Fixing that with AOP would be challenging. :-) Chuck On 2012-07-11, at 11:12 AM, Farrukh Ijaz wrote: Hi, In past I've used AOP to address issues of closed source. This I believe if carefully used can help convert the EOF from single to multi threaded and/or solve other bottleneck problems. Having said this doesn't mean I'm against Cayane. However if the current EOF issues get fixed with AOP patched code would be better for those who don't want to or for some reasons can't switch to Cayane. Farrukh Chuck Hill ch...@global-village.net wrote: I agree that we need to more closely examine Cayenne before jumping in with both feet. How mature are the tools? What is the functionality gap? How important is the missing functionality? How costly is adding any needed functionality? Will the missing functionality fit in with the Cayenne architecture? How stable is it? How well does it scale (scaling is more than multi-threaded EOF)? And Cayenne is only EOAccess/EOControl. What do we do about the presentation layer? Getting rid of 2/3 of WO still leaves you with WO. Chuck On 2012-07-11, at 11:29 AM, Theodore Petrosky wrote: Hurray someone actually started talking about this. I want to add my two cents without starting a this is better than that conversation. If Cayenne is to be utilized, someone in the know must look not only at the current
Re: Migrating from EOF to Cayenne
On Jul 13, 2012, at 2:54 AM, Henrique Gomes wrote: On Jul 12, 2012, at 8:06 PM, Chuck Hill wrote: You want to know the biggest unfixable problem with WO for me? WO apps can't be deployed on any mobile platform. That really sucks. For that, you need to change the paradigm from interface vending servers to servers that vend data and processing. Use a mobile client technology like Sencha or Montage. Or write D2iOS. :-) (..) Chuck I actually think that's the way to go. You can do go client, but then you have to build a client for every platform you support. That's not trivial. Deploying to client platforms is quite a bit different from deploying to a server under your control too. Instead of having a few instances, tended to by someone who knows what they are doing, on hardware you know everything about, you have hundreds/thousands/millions of instances on a plethora of different configurations being run by people who don't have freakin' a clue. Supporting users is endless fun! No, really. It's endless. I get one or two user problems *every* morning. It's so fun. 1. Get problem description. (HelpDesk: ZOMG! User is alarmed!! App is not workings!!11!) 2. Ask for detailed information (Which user? What client platform? Define not working please.) 3. Take info and dig for cause. 4. Find ambiguity. GOTO step 2. Repeat for a while. (Sometimes forever. I have a bin of unsolved mysteries) 5. Determine problem. 6. Apply fix if a bug. Apply cluebat if PEBKAC. Going client may free up some server resources, but it will definitely require more support resources. Guess which is cheaper :-) You mentioned that switching to Cayenne leaves 1/3 of WO, aka the presentation layer, but, really, is there a future on server side interface vending? The best way to predict the future is to create it. Is anyone cranking out a client interface faster and more reliably than D2W yet? I'm all ears over here :-) Ramsey ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
On 2012-07-13, at 2:54 AM, Henrique Gomes wrote: On Jul 12, 2012, at 8:06 PM, Chuck Hill wrote: You want to know the biggest unfixable problem with WO for me? WO apps can't be deployed on any mobile platform. That really sucks. For that, you need to change the paradigm from interface vending servers to servers that vend data and processing. Use a mobile client technology like Sencha or Montage. Or write D2iOS. :-) (..) Chuck I actually think that's the way to go. You mentioned that switching to Cayenne leaves 1/3 of WO, aka the presentation layer, but, really, is there a future on server side interface vending? Probably some future, after all people still make a living from COBOL. We seem to swing back and forth every 10 years or so from client based apps to server based apps. Plain old HTML and CSS does not make for a great app experience so the current direction is towards clients with a richer interface. I have been very happy with WO, but if/when I switch it will be for HTML5 native apps. I have no idea what the future looks like. But for now, D2W and WO is pretty compelling for a lot of needs. Chuck -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/gvc/practical_webobjects ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Hi Farrukh, Thanks for the summary! Chuck On 2012-07-13, at 5:06 AM, Farrukh Ijaz wrote: Sorry for late response, just landed last night. The idea is very simple to understand and implement. E.g. I've a third party library which has a method named with following signature: String encode(String someString) { // some crappy encoding performed on someString and saved as encoded... return encoded; } Now this method can be private, public, protected, static, final, blah blah etc. I find that encoding is buggy, how to fix it? There are two ways: 1. Get the source code, fix the method and submit patch. (This is sometimes not possible and for sure not possible in case of WebObjects) 2. Use AOP Forget about option 1. In Option 2 we have to use some AOP mechanism and the one that I've tested with my Wonder apps is AspectJ. I'm not going into details as it's a vast subject but providing links which are sufficient to experiment :) http://www.eclipse.org/aspectj/ http://www.eclipse.org/aspectj/doc/released/progguide/starting-aspectj.html#the-dynamic-join-point-model As far as weaving is concerned, I would suggest to use dynamic join point as they can be used to intercept calls and invoke different code rather than modifying the original classes. The idea is we need to define join point for the method which is buggy or where we want to provide our own implementation. When the code is executed, the class loader reroutes the request for incoming method calls to our code. AOP is different that OOP. In contrast with OOP where methods are associated with Objects, AOP is used to classify those methods under common aspects and normally we use regular expressions for that. Two very common aspects I can explain here: 1. You may have lots of methods and you want to collect execution type for each method call. (A logging aspect) 2. A developer like me who put all the code in try block and catch one super Exception, someone would like to perform different operations on each sub-exception can write an aspect to catch my exceptions and do whatever he wants and then continue the original processing. I'm not familiar with internals of the WebObjects but the code that's responsible for single thread can be studied and multithreaded solution can be provided using AOP. If someone is interested to work with me to on this, I'm more than happy to help where I can :) Farrukh On 2012-07-11, at 10:25 PM, Chuck Hill ch...@global-village.net wrote: Hi Farrukh, I like the idea of using AOP to address bugs in WO. Can you give us any details on how you did that? As for making EOF multi-threaded that is a very fundamental part of the design. Fixing that with AOP would be challenging. :-) Chuck On 2012-07-11, at 11:12 AM, Farrukh Ijaz wrote: Hi, In past I've used AOP to address issues of closed source. This I believe if carefully used can help convert the EOF from single to multi threaded and/or solve other bottleneck problems. Having said this doesn't mean I'm against Cayane. However if the current EOF issues get fixed with AOP patched code would be better for those who don't want to or for some reasons can't switch to Cayane. Farrukh Chuck Hill ch...@global-village.net wrote: I agree that we need to more closely examine Cayenne before jumping in with both feet. How mature are the tools? What is the functionality gap? How important is the missing functionality? How costly is adding any needed functionality? Will the missing functionality fit in with the Cayenne architecture? How stable is it? How well does it scale (scaling is more than multi-threaded EOF)? And Cayenne is only EOAccess/EOControl. What do we do about the presentation layer? Getting rid of 2/3 of WO still leaves you with WO. Chuck On 2012-07-11, at 11:29 AM, Theodore Petrosky wrote: Hurray someone actually started talking about this. I want to add my two cents without starting a this is better than that conversation. If Cayenne is to be utilized, someone in the know must look not only at the current state of Cayenne, but at the developers. What is/was their philosophy behind what they write/wrote? If we don't, it will be a very short and costly marriage. Costly, because we either buck up and foot the bill to rewrite Webobjects or continue in a bad relationship. I am writing this not as a diatribe but because I am concerned that in the excitement of looking at Cayenne, the obvious impact of differing philosophies of the original authors may be ignored. BTW, I say original authors because the person that wrote the first line of code left his/her imprint on the direction of all code that follows. JMHO (i mean that sincerely). Ted Message: 4 Date: Wed, 11 Jul 2012 10:09:08 -0500 From: John Huss johnth...@gmail.com To: WebObjects-Dev Mailing List List
Re: Migrating from EOF to Cayenne
So this thread has devolved quite a bit from it's original intent. One of my original goals was to detail the areas where people could help with an effort to provide an easy and painless migration to Cayenne. I haven't seen much interest in helping thus far. So if you are interested, please speak up. If not, then we can just go back to debating for another year. John ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Greetings all, I have to agree with Mike. There is a lot of good to be had in the Cayenne project, and the discuss there of. For starters, it identifies the need in our community for the stability of a good ORM that is well defined and stable, connected to a good web object generating framework, and if possible connecting today's customers. WebObjects, EOF and CoreData have that advantage for the Apple side of the house, and even the Android camp can consume a WebObjects app. There was a reason I suggested using a standards body for accomplish the feat of having an Open Source ORM, be it Cayenne, EOF, or something else. The concept is that it would be stable like a rock, and public there by enable any one to use it. Standards take time to form, but in the process there are projects like Cayenne, and prototypes using WO/EOF to demonstrate the concepts what we think an ORM should be. EOF is the de facto ORM by its age, but it could easily be supplanted by derived versions found in Ruby, Python, and other languages.My dissertation gave EOF a good head start by putting on the map in the academic community, and I am about to publish it. The Cayenne project is not the only project that I have up for consideration by the Open Grid Forum that is of interest to the WO community. The Zion project is also significant aspect, too. If I could have some community backing both, that would be fabulous. If Apple would like to help that would be nice too, assuming they read these things. Since Zion is a WO/ Mac/ iOS hybrid all together thing, I would hope they would see the wisdom and value in the product. The Zion project itself is a Texas Tech project that is the fruit of my dissertation, and I hope that I will see it to market and success some way (Just a dream). V/R, Dan Beatty, Ph.D. Texas Tech University, Alumni dan.bea...@mac.com https://sites.google.com/site/allnightstarparty/home (806)438-6620 On Jul 13, 2012, at 11:41 AM, Mike Schrag wrote: don't make decisions based on anecdotal evidence ms On Jul 13, 2012, at 9:03 AM, Karl kgret...@mac.com wrote: Hi, Making EOF multi-threaded is really not that desirable nor is it necessary. EOF gets most of its speed and efficiency through its 'cut through' single-threaded design at the Access layer. About 4 years ago, Apple tested an internal build of WO/EOF that was fully multi-threaded. It was about half as fast as the EOF that we know (and love?). Since then, Apple's internal version of EOF retains virtually the current implementation except for the snapshot layer which is now shared by multiple DB stacks. So the solution was to remove the 1-1 relationship between DB stacks and snapshots and to retain the cut-through single-threaded design of EOF. Karl On 2012-07-13, at 3:06 PM, Farrukh Ijaz farrukh.i...@fuegodigitalmedia.com wrote: Sorry for late response, just landed last night. The idea is very simple to understand and implement. E.g. I've a third party library which has a method named with following signature: String encode(String someString) { // some crappy encoding performed on someString and saved as encoded... return encoded; } Now this method can be private, public, protected, static, final, blah blah etc. I find that encoding is buggy, how to fix it? There are two ways: 1. Get the source code, fix the method and submit patch. (This is sometimes not possible and for sure not possible in case of WebObjects) 2. Use AOP Forget about option 1. In Option 2 we have to use some AOP mechanism and the one that I've tested with my Wonder apps is AspectJ. I'm not going into details as it's a vast subject but providing links which are sufficient to experiment :) http://www.eclipse.org/aspectj/ http://www.eclipse.org/aspectj/doc/released/progguide/starting-aspectj.html#the-dynamic-join-point-model As far as weaving is concerned, I would suggest to use dynamic join point as they can be used to intercept calls and invoke different code rather than modifying the original classes. The idea is we need to define join point for the method which is buggy or where we want to provide our own implementation. When the code is executed, the class loader reroutes the request for incoming method calls to our code. AOP is different that OOP. In contrast with OOP where methods are associated with Objects, AOP is used to classify those methods under common aspects and normally we use regular expressions for that. Two very common aspects I can explain here: 1. You may have lots of methods and you want to collect execution type for each method call. (A logging aspect) 2. A developer like me who put all the code in try block and catch one super Exception, someone would like to perform different operations on each sub-exception can write an aspect to catch my exceptions and do whatever he wants and then
Re: Migrating from EOF to Cayenne
Greetings Ramsey, You have highlighted why this makes it the compiler guy's dream job. Take a decent size nightmare for the the subject, pile on a deadline, and add on mediocre salary to give us either a government rice bowl and genius grinder. Oops. Sorry, those have been my dreams lately. Since this all hap-hazardly came together in the first place, it is not as though we can question the mind of the person who orchestrated the mess. We could offer them a them a Guinness but I think they were stoned on something far stronger than the glass would hold. Seriously though, the problem described would keep a compiler team employed for a good sizable amount of time.It would be a wise investment somewhere to have some kind of converter, mobile code generator or something that would generate the right code for the appropriate language and platform pair. V/R, Dan Beatty, Ph.D. Texas Tech University, Alumni dan.bea...@mac.com https://sites.google.com/site/allnightstarparty/home (806)438-6620 On Jul 13, 2012, at 11:48 AM, Ramsey Gurley wrote: On Jul 13, 2012, at 2:54 AM, Henrique Gomes wrote: On Jul 12, 2012, at 8:06 PM, Chuck Hill wrote: You want to know the biggest unfixable problem with WO for me? WO apps can't be deployed on any mobile platform. That really sucks. For that, you need to change the paradigm from interface vending servers to servers that vend data and processing. Use a mobile client technology like Sencha or Montage. Or write D2iOS. :-) (..) Chuck I actually think that's the way to go. You can do go client, but then you have to build a client for every platform you support. That's not trivial. Deploying to client platforms is quite a bit different from deploying to a server under your control too. Instead of having a few instances, tended to by someone who knows what they are doing, on hardware you know everything about, you have hundreds/thousands/millions of instances on a plethora of different configurations being run by people who don't have freakin' a clue. Supporting users is endless fun! No, really. It's endless. I get one or two user problems *every* morning. It's so fun. 1. Get problem description. (HelpDesk: ZOMG! User is alarmed!! App is not workings!!11!) 2. Ask for detailed information (Which user? What client platform? Define not working please.) 3. Take info and dig for cause. 4. Find ambiguity. GOTO step 2. Repeat for a while. (Sometimes forever. I have a bin of unsolved mysteries) 5. Determine problem. 6. Apply fix if a bug. Apply cluebat if PEBKAC. Going client may free up some server resources, but it will definitely require more support resources. Guess which is cheaper :-) You mentioned that switching to Cayenne leaves 1/3 of WO, aka the presentation layer, but, really, is there a future on server side interface vending? The best way to predict the future is to create it. Is anyone cranking out a client interface faster and more reliably than D2W yet? I'm all ears over here :-) Ramsey ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/danielbeatty%40mac.com This email sent to danielbea...@mac.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Do you think having a version of ERRest on top of Cayenne would make sense? Since ERRest make a lot of EOF calls, it might be a good example of trying to move something to Cayenne and to see what's missing. So this thread has devolved quite a bit from it's original intent. One of my original goals was to detail the areas where people could help with an effort to provide an easy and painless migration to Cayenne. I haven't seen much interest in helping thus far. So if you are interested, please speak up. If not, then we can just go back to debating for another year. John ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/probert%40macti.ca This email sent to prob...@macti.ca ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Le 2012-07-13 à 18:10, Daniel Beatty a écrit : Greetings all, I have to agree with Mike. There is a lot of good to be had in the Cayenne project, and the discuss there of. For starters, it identifies the need in our community for the stability of a good ORM that is well defined and stable, connected to a good web object generating framework, and if possible connecting today's customers. WebObjects, EOF and CoreData have that advantage for the Apple side of the house, and even the Android camp can consume a WebObjects app. There was a reason I suggested using a standards body for accomplish the feat of having an Open Source ORM, be it Cayenne, EOF, or something else. The concept is that it would be stable like a rock, and public there by enable any one to use it. Standards take time to form, but in the process there are projects like Cayenne, and prototypes using WO/EOF to demonstrate the concepts what we think an ORM should be. EOF is the de facto ORM by its age, but it could easily be supplanted by derived versions found in Ruby, Python, and other languages.My dissertation gave EOF a good head start by putting on the map in the academic community, and I am about to publish it. The Cayenne project is not the only project that I have up for consideration by the Open Grid Forum that is of interest to the WO community. The Zion project is also significant aspect, too. If I could have some community backing both, that would be fabulous. If Apple would like to help that would be nice too, assuming they read these things. Since Zion is a WO/ Mac/ iOS hybrid all together thing, I would hope they would see the wisdom and value in the product. The Zion project itself is a Texas Tech project that is the fruit of my dissertation, and I hope that I will see it to market and success some way (Just a dream). Apple don't give a damn unless they can sell thousands of iOS devices. People have built clusters of Xserve and that didn't stop Apple to stop making the Xserve. The only open source project they care about is WebKit. And they don't care about Java anymore too. If you only want EOF, check the clone in GNUWebStep. V/R, Dan Beatty, Ph.D. Texas Tech University, Alumni dan.bea...@mac.com https://sites.google.com/site/allnightstarparty/home (806)438-6620 On Jul 13, 2012, at 11:41 AM, Mike Schrag wrote: don't make decisions based on anecdotal evidence ms On Jul 13, 2012, at 9:03 AM, Karl kgret...@mac.com wrote: Hi, Making EOF multi-threaded is really not that desirable nor is it necessary. EOF gets most of its speed and efficiency through its 'cut through' single-threaded design at the Access layer. About 4 years ago, Apple tested an internal build of WO/EOF that was fully multi-threaded. It was about half as fast as the EOF that we know (and love?). Since then, Apple's internal version of EOF retains virtually the current implementation except for the snapshot layer which is now shared by multiple DB stacks. So the solution was to remove the 1-1 relationship between DB stacks and snapshots and to retain the cut-through single-threaded design of EOF. Karl On 2012-07-13, at 3:06 PM, Farrukh Ijaz farrukh.i...@fuegodigitalmedia.com wrote: Sorry for late response, just landed last night. The idea is very simple to understand and implement. E.g. I've a third party library which has a method named with following signature: String encode(String someString) { // some crappy encoding performed on someString and saved as encoded... return encoded; } Now this method can be private, public, protected, static, final, blah blah etc. I find that encoding is buggy, how to fix it? There are two ways: 1. Get the source code, fix the method and submit patch. (This is sometimes not possible and for sure not possible in case of WebObjects) 2. Use AOP Forget about option 1. In Option 2 we have to use some AOP mechanism and the one that I've tested with my Wonder apps is AspectJ. I'm not going into details as it's a vast subject but providing links which are sufficient to experiment :) http://www.eclipse.org/aspectj/ http://www.eclipse.org/aspectj/doc/released/progguide/starting-aspectj.html#the-dynamic-join-point-model As far as weaving is concerned, I would suggest to use dynamic join point as they can be used to intercept calls and invoke different code rather than modifying the original classes. The idea is we need to define join point for the method which is buggy or where we want to provide our own implementation. When the code is executed, the class loader reroutes the request for incoming method calls to our code. AOP is different that OOP. In contrast with OOP where methods are associated with Objects, AOP is used to classify those methods under common aspects and normally we use regular expressions
Re: Migrating from EOF to Cayenne
Maybe start by asking Does Cayenne already have anything like ERRest? If not, they might be glad of getting it. On 2012-07-13, at 4:20 PM, Pascal Robert wrote: Do you think having a version of ERRest on top of Cayenne would make sense? Since ERRest make a lot of EOF calls, it might be a good example of trying to move something to Cayenne and to see what's missing. So this thread has devolved quite a bit from it's original intent. One of my original goals was to detail the areas where people could help with an effort to provide an easy and painless migration to Cayenne. I haven't seen much interest in helping thus far. So if you are interested, please speak up. If not, then we can just go back to debating for another year. John ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/probert%40macti.ca This email sent to prob...@macti.ca ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net This email sent to ch...@global-village.net -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/gvc/practical_webobjects ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Am 13.07.2012 um 23:57 schrieb John Huss: So this thread has devolved quite a bit from it's original intent. One of my original goals was to detail the areas where people could help with an effort to provide an easy and painless migration to Cayenne. I haven't seen much interest in helping thus far. So if you are interested, please speak up. If not, then we can just go back to debating for another year. I am sincerely interested. My main motivation is that nowadays there's no way around multithreaded designs to push performance. I'm trying to extend my practices and knowledge into that whenever I can, and being stuck with EOF is a real pain in this regard. I'd also like to have the option to use functional languages like Scala to process EOs. But... playing around with it is one thing. Migrating existing living projects is another, and the amount of work required to make that happen is considerable, so please don't expect me to invest large amounts of time without prior discussion so that not only I can be convinced that this is what I want to do, but also have I to convince my boss and my customers to let me have the free time for that. Maik ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
They just have what the java world has; which is JAX-RS and it's implementations like Jersey+Jackson and RestEasy. It's good I think, but completely generic, so something that is specific designed to handle entity objects is helpful. So yes ERRest could be useful. Or recreating something like it with JAX-RS. On Friday, July 13, 2012, Chuck Hill wrote: Maybe start by asking Does Cayenne already have anything like ERRest? If not, they might be glad of getting it. On 2012-07-13, at 4:20 PM, Pascal Robert wrote: Do you think having a version of ERRest on top of Cayenne would make sense? Since ERRest make a lot of EOF calls, it might be a good example of trying to move something to Cayenne and to see what's missing. So this thread has devolved quite a bit from it's original intent. One of my original goals was to detail the areas where people could help with an effort to provide an easy and painless migration to Cayenne. I haven't seen much interest in helping thus far. So if you are interested, please speak up. If not, then we can just go back to debating for another year. John ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.comjavascript:; ) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/probert%40macti.ca This email sent to prob...@macti.ca javascript:; ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.comjavascript:; ) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net This email sent to ch...@global-village.net javascript:; -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/gvc/practical_webobjects ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Hi; I can't speak for WO integration but from the perspective of using Cayenne with other infrastructure, I can say that I enjoyed working with Cayenne a while back -- I'm sadly not using it at the moment. Coming from an integrated stack like WO, it is possible to forget that Cayenne is focused on the object-relational bit; be careful to evaluate it in terms of its remit. cheers. I agree that we need to more closely examine Cayenne before jumping in with both feet. -- Andrew Lindesay ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Cayenne is still missing a lot of functionality when compared to EOF/Wonder and generally feels less mature (understandably, since EOF is ancient). This is perhaps not such a huge problem, since functionality can always be added—but there is indeed a *lot* of work to be done to reach feature parity with EOF. That seems like an overstatement to me. What things is it missing that you need? Well, it isn't exactly big things that are missing, but rather an aggregation of a lot of small things. Things I can live without, but would rather not. EOF, Foundation, Wonder and the tools have 20 years of refinement and integration in their design so moving from EOF to Cayenne feels a little like moving from a Mercedes to a Wolkswagen Bug. Lack of IDE support, no prototypes, no KVC, getAccessor (ugh), limited support for inheritance, no ERXKey means no type safe queries and strings everywhere, somewhat buggy modeler with no support for cross-model relationships, no crossing relationships in raw row fetches (which makes it harder to create reports from huge object graphs), no Project Wonder EO stuff etc. etc. Now, I know this comparison is unfair to Cayenne which is in fact great, and Andrus and the others have done an amazing job. EOF is just hard to beat, because EOF is very, very good. And as I said, Cayenne will no doubt get there, I just believe it will take a lot of work. The only reasonable way to do a re-implementation of EOF would be to start with Cayenne. It doesnt have the same API as EOF, but that could be done; that hard work has already been done, only the API would need change. But I think there are advantages in trying to merge with the Cayenne community rather than taking it and forking it. I agree. If they're compatible it's probably the way to go. - hugi ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
I apologize if this has already been suggested or discussed elsewhere, but it might be a worthwhile exercise to extend the API and feature comparison on the WIKI (http://wiki.wocommunity.org/display/WO/Alternative+Technologies-Cayenne ... thanks John) in the direction of a roadmap between where we are right now with EOF and Cayenne and what a Cayenne that includes the best of EOF/Wonder. I know this is not a trivial task, but if we either extended the existing WIKI section or created this as an explicit roadmap, it could help focus the discussion and resources so that we'll at least have a reasonable understanding (as a community) of what we need to do to get to this integration (and more fundamentally, if we want to do this). Another benefit from the perspective of the cayenne community would be to be able to see what features we are looking for and willing to work on so that it's clear we are not competing with their roadmap, but perhaps adding extra lanes on the road. It might also help in looking for financial support for elements of the evolution of cayenne/eof. I think some version of the feature comparison table and the API comparison table might suit to start this process. If we look at those tables with an eye toward how much effort it would take to implement we could begin to prioritize areas and seek support for projects that are less straight-forward and require some heavy lifting. Paul Yu had (what I think is) a very good idea in defining tests for the functionality that we need. I'm certainly not suggesting this is a trivial task, but I think defining what success would look like will help us recognize when we get there. (Paul, sorry if I've misinterpreted your idea ... but it was hot and the sun was in my eyes on the forced march back over the bridge) Any thoughts? Larry Mills-Gahl On Jul 12, 2012, at 7:23 AM, John Huss wrote: On Thursday, July 12, 2012, Hugi Thordarson wrote: I think Hugi also use it. Is that a point for or against it? :-P PastedGraphic-1.png But yes, I've used Cayenne on a couple of projects. As you know it feels a *lot* like EOF and was by far the nicest ORM I could legally use at my previous pure java workplace. (protip: never go anywhere near JPA, it *will* rape your dog and kill your grandmother.) Apart from the technical similarities, Cayenne also has another important thing in common with WO: A good community and an active mailing list full of nice and helpful people, so you never get stuck along the way. Cayenne is still missing a lot of functionality when compared to EOF/Wonder and generally feels less mature (understandably, since EOF is ancient). This is perhaps not such a huge problem, since functionality can always be added—but there is indeed a *lot* of work to be done to reach feature parity with EOF. That seems like an overstatement to me. What things is it missing that you need? It's clear that at some point most of us will have to stop using EOF in it's current form. In a perfect world (that's the world where I have endless time and money) I'd do a clean room implementation of EOF and live happily ever after. But this is indeed not a perfect world, so helping making Cayenne better and more integrated with WO seems like a more realistic goal It's really the same goal isn't it? The only reasonable way to do a re-implementation of EOF would be to start with Cayenne. It doesnt have the same API as EOF, but that could be done; that hard work has already been done, only the API would need change. But I think there are advantages in trying to merge with the Cayenne community rather than taking it and forking it. (besides, it allows more resources to be spent on a re-implementation of WO; something I'd love to participate in). - hugi ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/lmg%40webfarm.com This email sent to l...@webfarm.com signature.asc Description: Message signed with OpenPGP using GPGMail ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Hi WOrriors, I still question why we are fighting so hard for Object-relational mapping. If we are contemplating doing work, shouldn't we consider going straight for object databases? Take out the transcription layer. Let's get more productive. Only use OR-mapping for old systems that we must interface with but new work should consider the advantages of being pure objects, all the time. Everyone has success stories. You can write a great app in PHP if you really want to (though none of us would choose to). What really counts is how people achieve their success and if we'd enjoy doing it in a similar fashion. For us that means we want creative options and better productivity. That's why we've historically chosen WO. Here's one success story that really peaks my interest - it drives home my love/hate relationship with any ORM even one as nice as EOF: http://gemstonesoup.wordpress.com/2009/03/09/why-glass/ It talks about GLASS as if we all know what that is. It's Gemstone's turnkey solution to Internet app development... Like WO used to have. You can get a brief definition here: http://seaside.gemstone.com/ Gemstone has been used a long time with lots of data. Here's one success story with a shipping company and over 1.5 billion data objects: http://seaside.gemstone.com/docs/OOCL_SuccessStory.pdf Here's a more general listing of success stories: http://gemstonesoup.wordpress.com/category/success-stories/ -- Aaron Message: 5 Date: Wed, 11 Jul 2012 17:22:53 -0700 From: Chuck Hill ch...@global-village.net To: Michael Kondratov mich...@aspireauctions.com Cc: WebObjects-Dev List webobjects-dev@lists.apple.com Subject: Re: Migrating from EOF to Cayenne Message-ID: 0e2dca05-61df-4de8-a468-79e0d2846...@global-village.net Content-Type: text/plain; charset=us-ascii Apparently http://cayenne.apache.org/success-stories.html On 2012-07-11, at 5:21 PM, Michael Kondratov wrote: Anyone used it? Does it actually work? ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
We want to go the WO-way and are asking us how we can make that way bring us into the future. You propose to switch to a different lane and have us all run into another direction. That is a totally different discussion. We don’t want to change our way of programming, we just want the core to be open, extendable and fixable. atze Am 12.07.2012 um 17:32 schrieb arosenzw...@clinworx.com: Hi WOrriors, I still question why we are fighting so hard for Object-relational mapping. If we are contemplating doing work, shouldn't we consider going straight for object databases? Take out the transcription layer. Let's get more productive. Only use OR-mapping for old systems that we must interface with but new work should consider the advantages of being pure objects, all the time. Everyone has success stories. You can write a great app in PHP if you really want to (though none of us would choose to). What really counts is how people achieve their success and if we'd enjoy doing it in a similar fashion. For us that means we want creative options and better productivity. That's why we've historically chosen WO. Here's one success story that really peaks my interest - it drives home my love/hate relationship with any ORM even one as nice as EOF: http://gemstonesoup.wordpress.com/2009/03/09/why-glass/ It talks about GLASS as if we all know what that is. It's Gemstone's turnkey solution to Internet app development... Like WO used to have. You can get a brief definition here: http://seaside.gemstone.com/ Gemstone has been used a long time with lots of data. Here's one success story with a shipping company and over 1.5 billion data objects: http://seaside.gemstone.com/docs/OOCL_SuccessStory.pdf Here's a more general listing of success stories: http://gemstonesoup.wordpress.com/category/success-stories/ -- Aaron ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
On Thu, Jul 12, 2012 at 9:45 AM, Hugi Thordarson h...@karlmenn.is wrote: Cayenne is still missing a lot of functionality when compared to EOF/Wonder and generally feels less mature (understandably, since EOF is ancient). This is perhaps not such a huge problem, since functionality can always be added—but there is indeed a *lot* of work to be done to reach feature parity with EOF. That seems like an overstatement to me. What things is it missing that you need? Well, it isn't exactly big things that are missing, but rather an aggregation of a lot of small things. Things I can live without, but would rather not. EOF, Foundation, Wonder and the tools have 20 years of refinement and integration in their design so moving from EOF to Cayenne feels a little like moving from a Mercedes to a Wolkswagen Bug. Lack of IDE support, There is an Eclipse plugin, but it is not totally baked yet. no prototypes, Cayenne already does the switching databases part of prototypes. The faster model creation part would be a nice add perhaps, but you get part of it (the java type assigment) already in Cayenne by auto-generating the ObjEntity from the DbEntity. no KVC This is already in ERCayenne , getAccessor (ugh) The templates in ERCayenne don't use the get prefix , limited support for inheritance, True no ERXKey means no type safe queries and strings everywhere, ERXKey is in ERCayenneExample and I'll be committing a version Cayenne itself in the next few days. somewhat buggy modeler I fixed a couple of the more annoying problems last week. Other than that I'm not aware of any behaviors that are truly bugs. But usability could certainly be improved. with no support for cross-model relationships This is not true anymore if it was before. 3.1 includes the idea of a default node (basically a connection dictionary), so you can load models that are generic, framework level and use them along with your own model. , no crossing relationships in raw row fetches (which makes it harder to create reports from huge object graphs) True, this is the biggest gap I've come across - I have an app that does exactly that. However, there are a few built-in alternatives, namely SQLTemplate and EJBQLQuery. But if you have a lot of this in your app, you'll probably want to wait to consider migrating. , no Project Wonder EO stuff etc. etc. I have some Cayenne implementations of the specific utilities that I used from Wonder, but yes, this represents work to be done. Now, I know this comparison is unfair to Cayenne which is in fact great, and Andrus and the others have done an amazing job. EOF is just hard to beat, because EOF is very, very good. And as I said, Cayenne will no doubt get there, I just believe it will take a lot of work. Just a little work I think. The things that have to be done are almost all approachable by average developers. The only reasonable way to do a re-implementation of EOF would be to start with Cayenne. It doesnt have the same API as EOF, but that could be done; that hard work has already been done, only the API would need change. But I think there are advantages in trying to merge with the Cayenne community rather than taking it and forking it. I agree. If they're compatible it's probably the way to go. - hugi ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
On 2012-07-12, at 4:01 AM, Hugi Thordarson wrote: I think Hugi also use it. Is that a point for or against it? :-P PastedGraphic-1.png Ah ha! So you ARE still reading the list! :-) Good to see you around! But yes, I've used Cayenne on a couple of projects. As you know it feels a *lot* like EOF and was by far the nicest ORM I could legally use at my previous pure java workplace. (protip: never go anywhere near JPA, it *will* rape your dog and kill your grandmother.) LOL Apart from the technical similarities, Cayenne also has another important thing in common with WO: A good community and an active mailing list full of nice and helpful people, so you never get stuck along the way. That is good to hear and not surprising considering that some of them are ex-WO people. Cayenne is still missing a lot of functionality when compared to EOF/Wonder and generally feels less mature (understandably, since EOF is ancient). This is perhaps not such a huge problem, since functionality can always be added—but there is indeed a *lot* of work to be done to reach feature parity with EOF. It's clear that at some point most of us will have to stop using EOF in it's current form. In a perfect world (that's the world where I have endless time and money) I'd do a clean room implementation of EOF and live happily ever after. But this is indeed not a perfect world, so helping making Cayenne better and more integrated with WO seems like a more realistic goal (besides, it allows more resources to be spent on a re-implementation of WO; something I'd love to participate in). Chuck -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/gvc/practical_webobjects ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Its Chunk, not Chuck now. Please start signing appropriately. Karl On 2012-07-12, at 9:28 PM, Chuck Hill ch...@global-village.net wrote: On 2012-07-12, at 4:01 AM, Hugi Thordarson wrote: I think Hugi also use it. Is that a point for or against it? :-P PastedGraphic-1.png Ah ha! So you ARE still reading the list! :-) Good to see you around! But yes, I've used Cayenne on a couple of projects. As you know it feels a *lot* like EOF and was by far the nicest ORM I could legally use at my previous pure java workplace. (protip: never go anywhere near JPA, it *will* rape your dog and kill your grandmother.) LOL Apart from the technical similarities, Cayenne also has another important thing in common with WO: A good community and an active mailing list full of nice and helpful people, so you never get stuck along the way. That is good to hear and not surprising considering that some of them are ex-WO people. Cayenne is still missing a lot of functionality when compared to EOF/Wonder and generally feels less mature (understandably, since EOF is ancient). This is perhaps not such a huge problem, since functionality can always be added—but there is indeed a *lot* of work to be done to reach feature parity with EOF. It's clear that at some point most of us will have to stop using EOF in it's current form. In a perfect world (that's the world where I have endless time and money) I'd do a clean room implementation of EOF and live happily ever after. But this is indeed not a perfect world, so helping making Cayenne better and more integrated with WO seems like a more realistic goal (besides, it allows more resources to be spent on a re-implementation of WO; something I'd love to participate in). Chuck -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/gvc/practical_webobjects ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/kgretton%40mac.com This email sent to kgret...@mac.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
On Jul 12, 2012, at 9:11 AM, Alexander Spohr wrote: We want to go the WO-way and are asking us how we can make that way bring us into the future. You propose to switch to a different lane and have us all run into another direction. In the context of this discussion, I think Aaron's position is entirely valid. Why dump years into developing a replacement ORM for WO when new frameworks have shown that ORMs are entirely unnecessary? His specific suggestion of Seaside is up to the individual, but the core question is sound. That is a totally different discussion. We don’t want to change our way of programming, we just want the core to be open, extendable and fixable. To me, WO is those things already. It's free forever. I can decompile and fix whatever I need. This has been standard practice in Wonder for years. You want to know the biggest unfixable problem with WO for me? WO apps can't be deployed on any mobile platform. That really sucks. If I need an enterprise class server that can handle serious load on server hardware though, I'm probably going to stick with WO for a while longer. I haven't seen anything in that space which is more compelling. It is what it is. Ramsey ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
On 2012-07-12, at 11:51 AM, Ramsey Gurley wrote: On Jul 12, 2012, at 9:11 AM, Alexander Spohr wrote: We want to go the WO-way and are asking us how we can make that way bring us into the future. You propose to switch to a different lane and have us all run into another direction. In the context of this discussion, I think Aaron's position is entirely valid. Why dump years into developing a replacement ORM for WO when new frameworks have shown that ORMs are entirely unnecessary? His specific suggestion of Seaside is up to the individual, but the core question is sound. The problem that I see with this is that using WO is problematic only (mostly?) for people trying to sell products or services into an organization that will use the status of WO to reject them. I would expect these same places to be RDBMS focused and also reject object database solutions for similar reasons. Said another way, if you can use object databases, you can probably also use WO without concern. That is a totally different discussion. We don’t want to change our way of programming, we just want the core to be open, extendable and fixable. To me, WO is those things already. It's free forever. I can decompile and fix whatever I need. This has been standard practice in Wonder for years. You want to know the biggest unfixable problem with WO for me? WO apps can't be deployed on any mobile platform. That really sucks. For that, you need to change the paradigm from interface vending servers to servers that vend data and processing. Use a mobile client technology like Sencha or Montage. Or write D2iOS. :-) If I need an enterprise class server that can handle serious load on server hardware though, I'm probably going to stick with WO for a while longer. I haven't seen anything in that space which is more compelling. Nor have I. Chuck -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/gvc/practical_webobjects ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Hi John Hugi; True, this is the biggest gap I've come across - I have an app that does exactly that. However, there are a few built-in alternatives, namely SQLTemplate and EJBQLQuery. But if you have a lot of this in your app, you'll probably want to wait to consider migrating. In my use of Cayenne I have created a set of objects like f.s. and friends that render to JPQL and in doing this I can't immediately think of any 'blockers'. cheers. -- Andrew Lindesay ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Grumble. I hate it when Karl is right. Chunk and needing a diet On 2012-07-12, at 11:36 AM, Karl wrote: Its Chunk, not Chuck now. Please start signing appropriately. Karl On 2012-07-12, at 9:28 PM, Chuck Hill ch...@global-village.net wrote: On 2012-07-12, at 4:01 AM, Hugi Thordarson wrote: I think Hugi also use it. Is that a point for or against it? :-P PastedGraphic-1.png Ah ha! So you ARE still reading the list! :-) Good to see you around! But yes, I've used Cayenne on a couple of projects. As you know it feels a *lot* like EOF and was by far the nicest ORM I could legally use at my previous pure java workplace. (protip: never go anywhere near JPA, it *will* rape your dog and kill your grandmother.) LOL Apart from the technical similarities, Cayenne also has another important thing in common with WO: A good community and an active mailing list full of nice and helpful people, so you never get stuck along the way. That is good to hear and not surprising considering that some of them are ex-WO people. Cayenne is still missing a lot of functionality when compared to EOF/Wonder and generally feels less mature (understandably, since EOF is ancient). This is perhaps not such a huge problem, since functionality can always be added—but there is indeed a *lot* of work to be done to reach feature parity with EOF. It's clear that at some point most of us will have to stop using EOF in it's current form. In a perfect world (that's the world where I have endless time and money) I'd do a clean room implementation of EOF and live happily ever after. But this is indeed not a perfect world, so helping making Cayenne better and more integrated with WO seems like a more realistic goal (besides, it allows more resources to be spent on a re-implementation of WO; something I'd love to participate in). Chuck -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/gvc/practical_webobjects ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/kgretton%40mac.com This email sent to kgret...@mac.com -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/gvc/practical_webobjects ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
John, I think you should consider if you might be able to do a WOWODC-2013 presentation on ERCayenne. -Kieran On Jul 11, 2012, at 11:09 AM, John Huss wrote: At WOWODC there was a lot of interest in migrating from EOF to Cayenne, and even entirely rebasing Wonder to run on top of Cayenne instead of EOF. Why would anyone want to do this? Cayenne is open-source and is actively being developed Cayenne has great concurrency support which is in stark contrast to EOF single-threaded architecture Cayenne is conceptually very similar to EOF so the transition is fairly straightforward For those reasons it is a much better long term solution than EOF, which is now frozen in time. Cayenne can be used inside a WO application as an EOF replacement while continuing to use the rest of WebObjects. I'm interested. Now what? Learn about Cayenne. The best source of information for comparing EOF and Cayenne is on the wiki. In addition, you can look at the documentation for Cayenne. Use Cayenne in your new projects. Cayenne runs just fine inside a WebObjects application. Wonder has the ERCayenne framework and ERCayenneExample to help you get started. I suggest working with the trunk of the Cayenne source (and Wonder too) since some things are just being added to make this easier. Help work on easing and automating the migration from EOF to Cayenne. It is possible to automate a large part of the work involved in moving from EOF to Cayenne. But it requires effort. ERCayenne in Wonder has a class that will convert an EOModel to a Cayenne model (the class is CayenneConverter). This works well, but could be improved. I've started working on an Eclipse refactoring script that will convert from one API to the other. Yes, you may not have known (I didn't) that Eclipse can record a series of refactorings and save it as a script. The bulk of the migration work is creating refactoring scripts in Eclipse by performing refactorings on a stubbed out version of the EOF API to convert the API into the equivalent Cayenne API. After performing the refactorings, a script can be exported using Refactor-Create Script. For EOF methods that do not have a direct Cayenne equivalent, helper methods (or classes) will need to be written that can serve as a direct replacement. How can I help specifically with the migration effort? CayenneConverter in ERCayenne (for converting the model) does not convert the connection dictionaries in the EOModel yet. CayenneConverter does a poor job converting fetch specs defined in the model currently. We need to create new subclasses of Cayenne's DbAdapter that use the Wonder naming convention for primary key generators/sequences. This is done by subclassing classes like PostgresPkGenerator and overriding sequenceName. This is necessary to support existing databases created with EOF. An Wonder-like entity template is already in ERCayenneExample. This needs to be examined and any missing functions from WonderEntity need to be added. For example, I know some the .deleteAllRelationships and .create(…) methods are missing. More refactorings need to created. For example, a refactoring script should be made that changes NSArray and NSDictionary methods to the equivalent List or Map APIs (since Cayenne doesn't use these classes for relationships or fetch results you probably want to minimize the places you need them). Submit code to Cayenne or create Jira issues Any questions? :-) John ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/kelleherk%40gmail.com This email sent to kelleh...@gmail.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Hurray someone actually started talking about this. I want to add my two cents without starting a this is better than that conversation. If Cayenne is to be utilized, someone in the know must look not only at the current state of Cayenne, but at the developers. What is/was their philosophy behind what they write/wrote? If we don't, it will be a very short and costly marriage. Costly, because we either buck up and foot the bill to rewrite Webobjects or continue in a bad relationship. I am writing this not as a diatribe but because I am concerned that in the excitement of looking at Cayenne, the obvious impact of differing philosophies of the original authors may be ignored. BTW, I say original authors because the person that wrote the first line of code left his/her imprint on the direction of all code that follows. JMHO (i mean that sincerely). Ted Message: 4 Date: Wed, 11 Jul 2012 10:09:08 -0500 From: John Huss johnth...@gmail.com To: WebObjects-Dev Mailing List List webobjects-dev@lists.apple.com Subject: Migrating from EOF to Cayenne Message-ID: CAOUwSGtOwEayxK4im97HucAUANo=cfnrkq9ej5z+679bcd7...@mail.gmail.com Content-Type: text/plain; charset=windows-1252 At WOWODC there was a lot of interest in migrating from EOF to Cayenne, and even entirely rebasing Wonder to run on top of Cayenne instead of EOF. *Why would anyone want to do this? * 1. Cayenne is open-source and is actively being developed 2. Cayenne has great concurrency support which is in stark contrast to EOF single-threaded architecture 3. Cayenne is conceptually very similar to EOF so the transition is fairly straightforward For those reasons it is a much better long term solution than EOF, which is now frozen in time. Cayenne can be used inside a WO application as an EOF replacement while continuing to use the rest of WebObjects. *I'm interested. Now what?* - Learn about Cayenne. The best source of information for comparing EOF and Cayenne is on the wikihttp://wiki.wocommunity.org/display/WO/Alternative+Technologies-Cayenne. In addition, you can look at the documentationhttp://cayenne.apache.org/for Cayenne. - Use Cayenne in your new projects. Cayenne runs just fine inside a WebObjects application. Wonder has the ERCayenne framework and ERCayenneExample to help you get started. I suggest working with the trunk of the Cayenne source (and Wonder too) since some things are just being added to make this easier. - Help work on easing and automating the migration from EOF to Cayenne. It is possible to automate a large part of the work involved in moving from EOF to Cayenne. But it requires effort. ERCayenne in Wonder has a class that will convert an EOModel to a Cayenne model (the class is CayenneConverter). This works well, but could be improved. I've started working on an Eclipse refactoring script that will convert from one API to the other. Yes, you may not have known (I didn't) that Eclipse can record a series of refactorings and save it as a script. The bulk of the migration work is creating refactoring scripts in Eclipse by performing refactorings on a stubbed out version of the EOF API to convert the API into the equivalent Cayenne API. After performing the refactorings, a script can be exported using Refactor-Create Script. For EOF methods that do not have a direct Cayenne equivalent, helper methods (or classes) will need to be written that can serve as a direct replacement. *How can I help specifically with the migration effort?* - CayenneConverter in ERCayenne (for converting the model) does not convert the connection dictionaries in the EOModel yet. - CayenneConverter does a poor job converting fetch specs defined in the model currently. - We need to create new subclasses of Cayenne's DbAdapter that use the Wonder naming convention for primary key generators/sequences. This is done by subclassing classes like PostgresPkGenerator and overriding sequenceName. This is necessary to support existing databases created with EOF. - An Wonder-like entity template is already in ERCayenneExample. This needs to be examined and any missing functions from WonderEntity need to be added. For example, I know some the .deleteAllRelationships and .create(…) methods are missing. - More refactorings need to created. For example, a refactoring script should be made that changes NSArray and NSDictionary methods to the equivalent List or Map APIs (since Cayenne doesn't use these classes for relationships or fetch results you probably want to minimize the places you need them). - Submit code to Cayenne or create Jirahttps://issues.apache.org/jira/browse/CAYissues Any questions? :-) John ___ Do not post admin
Re: Migrating from EOF to Cayenne
Hi, In past I've used AOP to address issues of closed source. This I believe if carefully used can help convert the EOF from single to multi threaded and/or solve other bottleneck problems. Having said this doesn't mean I'm against Cayane. However if the current EOF issues get fixed with AOP patched code would be better for those who don't want to or for some reasons can't switch to Cayane. Farrukh Chuck Hill ch...@global-village.net wrote: I agree that we need to more closely examine Cayenne before jumping in with both feet. How mature are the tools? What is the functionality gap? How important is the missing functionality? How costly is adding any needed functionality? Will the missing functionality fit in with the Cayenne architecture? How stable is it? How well does it scale (scaling is more than multi-threaded EOF)? And Cayenne is only EOAccess/EOControl. What do we do about the presentation layer? Getting rid of 2/3 of WO still leaves you with WO. Chuck On 2012-07-11, at 11:29 AM, Theodore Petrosky wrote: Hurray someone actually started talking about this. I want to add my two cents without starting a this is better than that conversation. If Cayenne is to be utilized, someone in the know must look not only at the current state of Cayenne, but at the developers. What is/was their philosophy behind what they write/wrote? If we don't, it will be a very short and costly marriage. Costly, because we either buck up and foot the bill to rewrite Webobjects or continue in a bad relationship. I am writing this not as a diatribe but because I am concerned that in the excitement of looking at Cayenne, the obvious impact of differing philosophies of the original authors may be ignored. BTW, I say original authors because the person that wrote the first line of code left his/her imprint on the direction of all code that follows. JMHO (i mean that sincerely). Ted Message: 4 Date: Wed, 11 Jul 2012 10:09:08 -0500 From: John Huss johnth...@gmail.com To: WebObjects-Dev Mailing List List webobjects-dev@lists.apple.com Subject: Migrating from EOF to Cayenne Message-ID: CAOUwSGtOwEayxK4im97HucAUANo=cfnrkq9ej5z+679bcd7...@mail.gmail.com Content-Type: text/plain; charset=windows-1252 At WOWODC there was a lot of interest in migrating from EOF to Cayenne, and even entirely rebasing Wonder to run on top of Cayenne instead of EOF. *Why would anyone want to do this? * 1. Cayenne is open-source and is actively being developed 2. Cayenne has great concurrency support which is in stark contrast to EOF single-threaded architecture 3. Cayenne is conceptually very similar to EOF so the transition is fairly straightforward For those reasons it is a much better long term solution than EOF, which is now frozen in time. Cayenne can be used inside a WO application as an EOF replacement while continuing to use the rest of WebObjects. *I'm interested. Now what?* - Learn about Cayenne. The best source of information for comparing EOF and Cayenne is on the wikihttp://wiki.wocommunity.org/display/WO/Alternative+Technologies-Cayenne. In addition, you can look at the documentationhttp://cayenne.apache.org/for Cayenne. - Use Cayenne in your new projects. Cayenne runs just fine inside a WebObjects application. Wonder has the ERCayenne framework and ERCayenneExample to help you get started. I suggest working with the trunk of the Cayenne source (and Wonder too) since some things are just being added to make this easier. - Help work on easing and automating the migration from EOF to Cayenne. It is possible to automate a large part of the work involved in moving from EOF to Cayenne. But it requires effort. ERCayenne in Wonder has a class that will convert an EOModel to a Cayenne model (the class is CayenneConverter). This works well, but could be improved. I've started working on an Eclipse refactoring script that will convert from one API to the other. Yes, you may not have known (I didn't) that Eclipse can record a series of refactorings and save it as a script. The bulk of the migration work is creating refactoring scripts in Eclipse by performing refactorings on a stubbed out version of the EOF API to convert the API into the equivalent Cayenne API. After performing the refactorings, a script can be exported using Refactor-Create Script. For EOF methods that do not have a direct Cayenne equivalent, helper methods (or classes) will need to be written that can serve as a direct replacement. *How can I help specifically with the migration effort?* - CayenneConverter in ERCayenne (for converting the model) does not convert the connection dictionaries in the EOModel yet. - CayenneConverter does a poor job converting fetch specs defined in the model currently. - We need to create new
Re: Migrating from EOF to Cayenne
Hi Farrukh, I like the idea of using AOP to address bugs in WO. Can you give us any details on how you did that? As for making EOF multi-threaded that is a very fundamental part of the design. Fixing that with AOP would be challenging. :-) Chuck On 2012-07-11, at 11:12 AM, Farrukh Ijaz wrote: Hi, In past I've used AOP to address issues of closed source. This I believe if carefully used can help convert the EOF from single to multi threaded and/or solve other bottleneck problems. Having said this doesn't mean I'm against Cayane. However if the current EOF issues get fixed with AOP patched code would be better for those who don't want to or for some reasons can't switch to Cayane. Farrukh Chuck Hill ch...@global-village.net wrote: I agree that we need to more closely examine Cayenne before jumping in with both feet. How mature are the tools? What is the functionality gap? How important is the missing functionality? How costly is adding any needed functionality? Will the missing functionality fit in with the Cayenne architecture? How stable is it? How well does it scale (scaling is more than multi-threaded EOF)? And Cayenne is only EOAccess/EOControl. What do we do about the presentation layer? Getting rid of 2/3 of WO still leaves you with WO. Chuck On 2012-07-11, at 11:29 AM, Theodore Petrosky wrote: Hurray someone actually started talking about this. I want to add my two cents without starting a this is better than that conversation. If Cayenne is to be utilized, someone in the know must look not only at the current state of Cayenne, but at the developers. What is/was their philosophy behind what they write/wrote? If we don't, it will be a very short and costly marriage. Costly, because we either buck up and foot the bill to rewrite Webobjects or continue in a bad relationship. I am writing this not as a diatribe but because I am concerned that in the excitement of looking at Cayenne, the obvious impact of differing philosophies of the original authors may be ignored. BTW, I say original authors because the person that wrote the first line of code left his/her imprint on the direction of all code that follows. JMHO (i mean that sincerely). Ted Message: 4 Date: Wed, 11 Jul 2012 10:09:08 -0500 From: John Huss johnth...@gmail.com To: WebObjects-Dev Mailing List List webobjects-dev@lists.apple.com Subject: Migrating from EOF to Cayenne Message-ID: CAOUwSGtOwEayxK4im97HucAUANo=cfnrkq9ej5z+679bcd7...@mail.gmail.com Content-Type: text/plain; charset=windows-1252 At WOWODC there was a lot of interest in migrating from EOF to Cayenne, and even entirely rebasing Wonder to run on top of Cayenne instead of EOF. *Why would anyone want to do this? * 1. Cayenne is open-source and is actively being developed 2. Cayenne has great concurrency support which is in stark contrast to EOF single-threaded architecture 3. Cayenne is conceptually very similar to EOF so the transition is fairly straightforward For those reasons it is a much better long term solution than EOF, which is now frozen in time. Cayenne can be used inside a WO application as an EOF replacement while continuing to use the rest of WebObjects. *I'm interested. Now what?* - Learn about Cayenne. The best source of information for comparing EOF and Cayenne is on the wikihttp://wiki.wocommunity.org/display/WO/Alternative+Technologies-Cayenne. In addition, you can look at the documentationhttp://cayenne.apache.org/for Cayenne. - Use Cayenne in your new projects. Cayenne runs just fine inside a WebObjects application. Wonder has the ERCayenne framework and ERCayenneExample to help you get started. I suggest working with the trunk of the Cayenne source (and Wonder too) since some things are just being added to make this easier. - Help work on easing and automating the migration from EOF to Cayenne. It is possible to automate a large part of the work involved in moving from EOF to Cayenne. But it requires effort. ERCayenne in Wonder has a class that will convert an EOModel to a Cayenne model (the class is CayenneConverter). This works well, but could be improved. I've started working on an Eclipse refactoring script that will convert from one API to the other. Yes, you may not have known (I didn't) that Eclipse can record a series of refactorings and save it as a script. The bulk of the migration work is creating refactoring scripts in Eclipse by performing refactorings on a stubbed out version of the EOF API to convert the API into the equivalent Cayenne API. After performing the refactorings, a script can be exported using Refactor-Create Script. For EOF methods that do not have a direct Cayenne equivalent, helper methods (or classes) will need to be written that can serve as a direct replacement. *How can I
Re: Migrating from EOF to Cayenne
My understanding is that AOP requires weaving or rewriting of the bytecode. If so, this is not allowed by the license - it prohibits modification. But people may not care about that. Decompiling whole classes to fix bugs has been done before. It makes me quesy though. On Wed, Jul 11, 2012 at 1:12 PM, Farrukh Ijaz farrukh.i...@fuegodigitalmedia.com wrote: Hi, In past I've used AOP to address issues of closed source. This I believe if carefully used can help convert the EOF from single to multi threaded and/or solve other bottleneck problems. Having said this doesn't mean I'm against Cayane. However if the current EOF issues get fixed with AOP patched code would be better for those who don't want to or for some reasons can't switch to Cayane. Farrukh Chuck Hill ch...@global-village.net wrote: I agree that we need to more closely examine Cayenne before jumping in with both feet. How mature are the tools? What is the functionality gap? How important is the missing functionality? How costly is adding any needed functionality? Will the missing functionality fit in with the Cayenne architecture? How stable is it? How well does it scale (scaling is more than multi-threaded EOF)? And Cayenne is only EOAccess/EOControl. What do we do about the presentation layer? Getting rid of 2/3 of WO still leaves you with WO. Chuck On 2012-07-11, at 11:29 AM, Theodore Petrosky wrote: Hurray someone actually started talking about this. I want to add my two cents without starting a this is better than that conversation. If Cayenne is to be utilized, someone in the know must look not only at the current state of Cayenne, but at the developers. What is/was their philosophy behind what they write/wrote? If we don't, it will be a very short and costly marriage. Costly, because we either buck up and foot the bill to rewrite Webobjects or continue in a bad relationship. I am writing this not as a diatribe but because I am concerned that in the excitement of looking at Cayenne, the obvious impact of differing philosophies of the original authors may be ignored. BTW, I say original authors because the person that wrote the first line of code left his/her imprint on the direction of all code that follows. JMHO (i mean that sincerely). Ted Message: 4 Date: Wed, 11 Jul 2012 10:09:08 -0500 From: John Huss johnth...@gmail.com To: WebObjects-Dev Mailing List List webobjects-dev@lists.apple.com Subject: Migrating from EOF to Cayenne Message-ID: CAOUwSGtOwEayxK4im97HucAUANo=cfnrkq9ej5z+679bcd7...@mail.gmail.com Content-Type: text/plain; charset=windows-1252 At WOWODC there was a lot of interest in migrating from EOF to Cayenne, and even entirely rebasing Wonder to run on top of Cayenne instead of EOF. *Why would anyone want to do this? * 1. Cayenne is open-source and is actively being developed 2. Cayenne has great concurrency support which is in stark contrast to EOF single-threaded architecture 3. Cayenne is conceptually very similar to EOF so the transition is fairly straightforward For those reasons it is a much better long term solution than EOF, which is now frozen in time. Cayenne can be used inside a WO application as an EOF replacement while continuing to use the rest of WebObjects. *I'm interested. Now what?* - Learn about Cayenne. The best source of information for comparing EOF and Cayenne is on the wiki http://wiki.wocommunity.org/display/WO/Alternative+Technologies-Cayenne. In addition, you can look at the documentationhttp://cayenne.apache.org/for Cayenne. - Use Cayenne in your new projects. Cayenne runs just fine inside a WebObjects application. Wonder has the ERCayenne framework and ERCayenneExample to help you get started. I suggest working with the trunk of the Cayenne source (and Wonder too) since some things are just being added to make this easier. - Help work on easing and automating the migration from EOF to Cayenne. It is possible to automate a large part of the work involved in moving from EOF to Cayenne. But it requires effort. ERCayenne in Wonder has a class that will convert an EOModel to a Cayenne model (the class is CayenneConverter). This works well, but could be improved. I've started working on an Eclipse refactoring script that will convert from one API to the other. Yes, you may not have known (I didn't) that Eclipse can record a series of refactorings and save it as a script. The bulk of the migration work is creating refactoring scripts in Eclipse by performing refactorings on a stubbed out version of the EOF API to convert the API into the equivalent Cayenne API. After performing the refactorings, a script can be exported using Refactor-Create Script. For EOF methods that do not have a direct
Re: Migrating from EOF to Cayenne
On Jul 11, 2012, at 12:40 PM, John Huss wrote: Decompiling whole classes to fix bugs has been done before. It makes me quesy though. The latest version of JD-GUI is pretty good. Only a few errors to clean up after decompiling. ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Hi WOrriors, I have mixed feelings. It's obvious when you look at Cayenne the original developers had used EOF before and wanted to make an open source clone. They also wanted to make it better, if possible, than EOF. It's been a while but when I looked at it I was put off by some things. They questioned Why do you need, *addObjectsToBothSidesOfRelationshipWithKey()* So they just made it automatic that when you set a relationship it always does both sides. You don't need to call a special method. But in my mind, sometimes you don't like the way the model was made and may not want to start a war with another engineer that created an ugly back relationship. You can, in EOF, choose when you truly want to bring in both sides of the object graph and when you don't want to. John surely knows more than I, and it probably is the closest fit to EOF that you can find anywhere and is probably superior to EOF in many ways. It was really nice to see nobody lamenting and begging for Apple to change things. It was really cool to see Chuck ask for a show of hands to say Let's rewrite WO and make it truly ours. It's exciting, yes, but I'm still torn. Has someone moved our cheese? (taking a nod to Paul Yu) WO / EOF is working reasonably well for us. We are still assuming that this remains the ultimate way to develop Internet apps. Has any of us truly looked elsewhere? I mean, if it is still king then it might be worth the effort to get a truly open-source base that we can all be proud of. For me WO / EOF was a couple of things. It was simple to install and deploy back in the .dmg days. It's harder now. It was also a really cool abstraction above RDBMS. You can almost truly feel that you are working with objects even though they are persisted in a relational data store. As perfect as this mapping layer is, it still has some hiccups. It can never be as clean as if you were saving true objects directly in your object database. Sacrilege, yes! I do have a wandering eye. I wonder why must I still use Object-Relational mapping tools, EOF / Cayenne / or otherwise. It's 2012, I want to save my objects as objects and migrate them too. I don't want a mapping layer anymore. I want to use Gemstone or something like it. I don't want a java dialect (WO) that feels a bit like SmallTalk. I don't want an Objective-C that feels a bit like SmallTalk. I don't want dead languages. Yes, Eclipse makes java code almost come alive but it's more like the living dead or the undead. I want my objects alive all the time. I don't want some bloated app like Eclipse to puff up my objects and pretend they are alive. I want fully integrated tools that just work including distributed version control, etc. I want the real SmallTalk. While other languages are dead, Smalltalk is a living language that refuses to die. It is uber productive. It's the xombi of the object oriented languages. I wonder if our collective talents and efforts might be better aimed at some cheesier cheese. Seaside could make for a better way to WO. -- Aaron Message: 4 Date: Wed, 11 Jul 2012 11:35:48 -0700 From: Chuck Hill ch...@global-village.net To: Theodore Petrosky tedp...@yahoo.com Cc: webobjects-dev@lists.apple.com Subject: Re: Migrating from EOF to Cayenne Message-ID: 78867b57-6ba2-4dbf-816f-c783eac33...@global-village.net Content-Type: text/plain; charset=windows-1252 I agree that we need to more closely examine Cayenne before jumping in with both feet. How mature are the tools? What is the functionality gap? How important is the missing functionality? How costly is adding any needed functionality? Will the missing functionality fit in with the Cayenne architecture? How stable is it? How well does it scale (scaling is more than multi-threaded EOF)? And Cayenne is only EOAccess/EOControl. What do we do about the presentation layer? Getting rid of 2/3 of WO still leaves you with WO. Chuck ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
...@global-village.net To: Theodore Petrosky tedp...@yahoo.com Cc: webobjects-dev@lists.apple.com Subject: Re: Migrating from EOF to Cayenne Message-ID: 78867b57-6ba2-4dbf-816f-c783eac33...@global-village.net Content-Type: text/plain; charset=windows-1252 I agree that we need to more closely examine Cayenne before jumping in with both feet. How mature are the tools? What is the functionality gap? How important is the missing functionality? How costly is adding any needed functionality? Will the missing functionality fit in with the Cayenne architecture? How stable is it? How well does it scale (scaling is more than multi-threaded EOF)? And Cayenne is only EOAccess/EOControl. What do we do about the presentation layer? Getting rid of 2/3 of WO still leaves you with WO. Chuck ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/danielbeatty%40mac.com This email sent to danielbea...@mac.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
alive all the time. I don't want some bloated app like Eclipse to puff up my objects and pretend they are alive. I want fully integrated tools that just work including distributed version control, etc. I want the real SmallTalk. While other languages are dead, Smalltalk is a living language that refuses to die. It is uber productive. It's the xombi of the object oriented languages. I wonder if our collective talents and efforts might be better aimed at some cheesier cheese. Seaside could make for a better way to WO. -- Aaron Message: 4 Date: Wed, 11 Jul 2012 11:35:48 -0700 From: Chuck Hill ch...@global-village.net (mailto:ch...@global-village.net) To: Theodore Petrosky tedp...@yahoo.com (mailto:tedp...@yahoo.com) Cc: webobjects-dev@lists.apple.com (mailto:webobjects-dev@lists.apple.com) Subject: Re: Migrating from EOF to Cayenne Message-ID: 78867b57-6ba2-4dbf-816f-c783eac33...@global-village.net (mailto:78867b57-6ba2-4dbf-816f-c783eac33...@global-village.net) Content-Type: text/plain; charset=windows-1252 I agree that we need to more closely examine Cayenne before jumping in with both feet. How mature are the tools? What is the functionality gap? How important is the missing functionality? How costly is adding any needed functionality? Will the missing functionality fit in with the Cayenne architecture? How stable is it? How well does it scale (scaling is more than multi-threaded EOF)? And Cayenne is only EOAccess/EOControl. What do we do about the presentation layer? Getting rid of 2/3 of WO still leaves you with WO. Chuck ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com (mailto:Webobjects-dev@lists.apple.com)) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/danielbeatty%40mac.com This email sent to danielbea...@mac.com (mailto:danielbea...@mac.com) ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com (mailto:Webobjects-dev@lists.apple.com)) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/pyu%40mac.com This email sent to p...@mac.com (mailto:p...@mac.com) ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Am 11.07.2012 um 23:03 schrieb Daniel Beatty: Greetings Ladies and Gentlemen, I tend to agree with Chuck on the notion that this could be a costly marriage without some kind of stability assurance. My recommendation would be to have Cayenne be standardized so that at least there is both proper documentation and be able to say what Cayenne is intended to be (EOF like or otherwise). I did some work on the subject whether WO/EOF is still king of the ORMs for my dissertation qualifiers in November of 2011. I found that while there is no notion of a standardized ORM out there, EOF has a de facto standard due to its age and open source varieties in both Objective-C and Java forms.I can see why Apple has been reluctant to take it to a standards body. Namely, why teach the whole industry how to build something that makes your company so successful. None the less, there are enough of us that could easily reverse engineer EOF along with Cayenne to help formalize such a standard with say the Open Grid Forum (OGF). Of course, there is probably nothing that can be done about the language of choice. According to the TIOBE index, the three most popular languages as far as applications built by them are in order C, Java, and Objective-C. Popularity does not necessarily give us good languages from an academic point of view, but there are some blessings to be had from those top three.Of course, Objective-C did rise this last month to surpass C++, C#, PHP, and Visual Basic. What does Chuck say if people are using those languages, of their own free will? Speaking of Objective-C: There's an EOF and a WebObjects clone in GNUstep under the LGPL: EOF-Clone (EOF 4.5 IIRC): http://www.gnustep.org/experience/GDL2.html http://svn.gna.org/svn/gnustep/libs/gdl2/trunk/ WebObjects-Clone: http://wiki.gnustep.org/index.php/GNUstepWeb http://svn.gna.org/svn/gnustep/libs/gsweb/trunk/ Wouldn't that be an alternative nowadays that ObjC has ARC? http://clang.llvm.org/docs/AutomaticReferenceCounting.html V/R, cheers, Lars ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Anyone used it? Does it actually work? Michael Sent from my iPhone On Jul 11, 2012, at 19:10, Lars Sonchocky-Helldorf lars.sonchocky-helld...@hamburg.de wrote: Am 11.07.2012 um 23:03 schrieb Daniel Beatty: Greetings Ladies and Gentlemen, I tend to agree with Chuck on the notion that this could be a costly marriage without some kind of stability assurance. My recommendation would be to have Cayenne be standardized so that at least there is both proper documentation and be able to say what Cayenne is intended to be (EOF like or otherwise). I did some work on the subject whether WO/EOF is still king of the ORMs for my dissertation qualifiers in November of 2011. I found that while there is no notion of a standardized ORM out there, EOF has a de facto standard due to its age and open source varieties in both Objective-C and Java forms. I can see why Apple has been reluctant to take it to a standards body. Namely, why teach the whole industry how to build something that makes your company so successful. None the less, there are enough of us that could easily reverse engineer EOF along with Cayenne to help formalize such a standard with say the Open Grid Forum (OGF). Of course, there is probably nothing that can be done about the language of choice. According to the TIOBE index, the three most popular languages as far as applications built by them are in order C, Java, and Objective-C. Popularity does not necessarily give us good languages from an academic point of view, but there are some blessings to be had from those top three. Of course, Objective-C did rise this last month to surpass C++, C#, PHP, and Visual Basic. What does Chuck say if people are using those languages, of their own free will? Speaking of Objective-C: There's an EOF and a WebObjects clone in GNUstep under the LGPL: EOF-Clone (EOF 4.5 IIRC): http://www.gnustep.org/experience/GDL2.html http://svn.gna.org/svn/gnustep/libs/gdl2/trunk/ WebObjects-Clone: http://wiki.gnustep.org/index.php/GNUstepWeb http://svn.gna.org/svn/gnustep/libs/gsweb/trunk/ Wouldn't that be an alternative nowadays that ObjC has ARC? http://clang.llvm.org/docs/AutomaticReferenceCounting.html V/R, cheers, Lars ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/michael%40aspireauctions.com This email sent to mich...@aspireauctions.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Apparently http://cayenne.apache.org/success-stories.html On 2012-07-11, at 5:21 PM, Michael Kondratov wrote: Anyone used it? Does it actually work? Michael Sent from my iPhone On Jul 11, 2012, at 19:10, Lars Sonchocky-Helldorf lars.sonchocky-helld...@hamburg.de wrote: Am 11.07.2012 um 23:03 schrieb Daniel Beatty: Greetings Ladies and Gentlemen, I tend to agree with Chuck on the notion that this could be a costly marriage without some kind of stability assurance. My recommendation would be to have Cayenne be standardized so that at least there is both proper documentation and be able to say what Cayenne is intended to be (EOF like or otherwise). I did some work on the subject whether WO/EOF is still king of the ORMs for my dissertation qualifiers in November of 2011. I found that while there is no notion of a standardized ORM out there, EOF has a de facto standard due to its age and open source varieties in both Objective-C and Java forms.I can see why Apple has been reluctant to take it to a standards body. Namely, why teach the whole industry how to build something that makes your company so successful. None the less, there are enough of us that could easily reverse engineer EOF along with Cayenne to help formalize such a standard with say the Open Grid Forum (OGF). Of course, there is probably nothing that can be done about the language of choice. According to the TIOBE index, the three most popular languages as far as applications built by them are in order C, Java, and Objective-C. Popularity does not necessarily give us good languages from an academic point of view, but there are some blessings to be had from those top three. Of course, Objective-C did rise this last month to surpass C++, C#, PHP, and Visual Basic. What does Chuck say if people are using those languages, of their own free will? Speaking of Objective-C: There's an EOF and a WebObjects clone in GNUstep under the LGPL: EOF-Clone (EOF 4.5 IIRC): http://www.gnustep.org/experience/GDL2.html http://svn.gna.org/svn/gnustep/libs/gdl2/trunk/ WebObjects-Clone: http://wiki.gnustep.org/index.php/GNUstepWeb http://svn.gna.org/svn/gnustep/libs/gsweb/trunk/ Wouldn't that be an alternative nowadays that ObjC has ARC? http://clang.llvm.org/docs/AutomaticReferenceCounting.html V/R, cheers, Lars ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/michael%40aspireauctions.com This email sent to mich...@aspireauctions.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net This email sent to ch...@global-village.net -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/gvc/practical_webobjects ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
I think Hugi also use it. Envoyé de mon iPhone Le 2012-07-11 à 20:24, Chuck Hill ch...@global-village.net a écrit : Apparently http://cayenne.apache.org/success-stories.html On 2012-07-11, at 5:21 PM, Michael Kondratov wrote: Anyone used it? Does it actually work? Michael Sent from my iPhone On Jul 11, 2012, at 19:10, Lars Sonchocky-Helldorf lars.sonchocky-helld...@hamburg.de wrote: Am 11.07.2012 um 23:03 schrieb Daniel Beatty: Greetings Ladies and Gentlemen, I tend to agree with Chuck on the notion that this could be a costly marriage without some kind of stability assurance. My recommendation would be to have Cayenne be standardized so that at least there is both proper documentation and be able to say what Cayenne is intended to be (EOF like or otherwise). I did some work on the subject whether WO/EOF is still king of the ORMs for my dissertation qualifiers in November of 2011. I found that while there is no notion of a standardized ORM out there, EOF has a de facto standard due to its age and open source varieties in both Objective-C and Java forms.I can see why Apple has been reluctant to take it to a standards body. Namely, why teach the whole industry how to build something that makes your company so successful. None the less, there are enough of us that could easily reverse engineer EOF along with Cayenne to help formalize such a standard with say the Open Grid Forum (OGF). Of course, there is probably nothing that can be done about the language of choice. According to the TIOBE index, the three most popular languages as far as applications built by them are in order C, Java, and Objective-C.Popularity does not necessarily give us good languages from an academic point of view, but there are some blessings to be had from those top three.Of course, Objective-C did rise this last month to surpass C++, C#, PHP, and Visual Basic. What does Chuck say if people are using those languages, of their own free will? Speaking of Objective-C: There's an EOF and a WebObjects clone in GNUstep under the LGPL: EOF-Clone (EOF 4.5 IIRC): http://www.gnustep.org/experience/GDL2.html http://svn.gna.org/svn/gnustep/libs/gdl2/trunk/ WebObjects-Clone: http://wiki.gnustep.org/index.php/GNUstepWeb http://svn.gna.org/svn/gnustep/libs/gsweb/trunk/ Wouldn't that be an alternative nowadays that ObjC has ARC? http://clang.llvm.org/docs/AutomaticReferenceCounting.html V/R, cheers, Lars ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/michael%40aspireauctions.com This email sent to mich...@aspireauctions.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net This email sent to ch...@global-village.net -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/gvc/practical_webobjects ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/probert%40macti.ca This email sent to prob...@macti.ca ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
On 2012-07-11, at 6:02 PM, prob...@macti.ca wrote: I think Hugi also use it. Is that a point for or against it? :-P Envoyé de mon iPhone Le 2012-07-11 à 20:24, Chuck Hill ch...@global-village.net a écrit : Apparently http://cayenne.apache.org/success-stories.html On 2012-07-11, at 5:21 PM, Michael Kondratov wrote: Anyone used it? Does it actually work? Michael Sent from my iPhone On Jul 11, 2012, at 19:10, Lars Sonchocky-Helldorf lars.sonchocky-helld...@hamburg.de wrote: Am 11.07.2012 um 23:03 schrieb Daniel Beatty: Greetings Ladies and Gentlemen, I tend to agree with Chuck on the notion that this could be a costly marriage without some kind of stability assurance. My recommendation would be to have Cayenne be standardized so that at least there is both proper documentation and be able to say what Cayenne is intended to be (EOF like or otherwise). I did some work on the subject whether WO/EOF is still king of the ORMs for my dissertation qualifiers in November of 2011. I found that while there is no notion of a standardized ORM out there, EOF has a de facto standard due to its age and open source varieties in both Objective-C and Java forms.I can see why Apple has been reluctant to take it to a standards body. Namely, why teach the whole industry how to build something that makes your company so successful. None the less, there are enough of us that could easily reverse engineer EOF along with Cayenne to help formalize such a standard with say the Open Grid Forum (OGF). Of course, there is probably nothing that can be done about the language of choice. According to the TIOBE index, the three most popular languages as far as applications built by them are in order C, Java, and Objective-C.Popularity does not necessarily give us good languages from an academic point of view, but there are some blessings to be had from those top three.Of course, Objective-C did rise this last month to surpass C++, C#, PHP, and Visual Basic. What does Chuck say if people are using those languages, of their own free will? Speaking of Objective-C: There's an EOF and a WebObjects clone in GNUstep under the LGPL: EOF-Clone (EOF 4.5 IIRC): http://www.gnustep.org/experience/GDL2.html http://svn.gna.org/svn/gnustep/libs/gdl2/trunk/ WebObjects-Clone: http://wiki.gnustep.org/index.php/GNUstepWeb http://svn.gna.org/svn/gnustep/libs/gsweb/trunk/ Wouldn't that be an alternative nowadays that ObjC has ARC? http://clang.llvm.org/docs/AutomaticReferenceCounting.html V/R, cheers, Lars ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/michael%40aspireauctions.com This email sent to mich...@aspireauctions.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net This email sent to ch...@global-village.net -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/gvc/practical_webobjects ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/probert%40macti.ca This email sent to prob...@macti.ca -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/gvc/practical_webobjects ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Migrating from EOF to Cayenne
Greetings ladies and gentlemen, Well, Chuck made some some good points. So did Paul. In the end, it comes down what is the smart investment for us as a community? On a side note, do we have cheat sheets or a curriculum from the boot camp before WOWODC 2012? As a professor type, I would really love to borrow the instructors material to help my own students, as I get them. Even if I am only tutoring one at a time, a good curriculum goes a long way. It also helps define our EOF question. V/R, Dan Beatty, Ph.D. Texas Tech University, Alumni dan.bea...@mac.com https://sites.google.com/site/allnightstarparty/home (806)438-6620 On Jul 11, 2012, at 6:05 PM, Chuck Hill wrote: On 2012-07-11, at 6:02 PM, prob...@macti.ca wrote: I think Hugi also use it. Is that a point for or against it? :-P Envoyé de mon iPhone Le 2012-07-11 à 20:24, Chuck Hill ch...@global-village.net a écrit : Apparently http://cayenne.apache.org/success-stories.html On 2012-07-11, at 5:21 PM, Michael Kondratov wrote: Anyone used it? Does it actually work? Michael Sent from my iPhone On Jul 11, 2012, at 19:10, Lars Sonchocky-Helldorf lars.sonchocky-helld...@hamburg.de wrote: Am 11.07.2012 um 23:03 schrieb Daniel Beatty: Greetings Ladies and Gentlemen, I tend to agree with Chuck on the notion that this could be a costly marriage without some kind of stability assurance. My recommendation would be to have Cayenne be standardized so that at least there is both proper documentation and be able to say what Cayenne is intended to be (EOF like or otherwise). I did some work on the subject whether WO/EOF is still king of the ORMs for my dissertation qualifiers in November of 2011. I found that while there is no notion of a standardized ORM out there, EOF has a de facto standard due to its age and open source varieties in both Objective-C and Java forms.I can see why Apple has been reluctant to take it to a standards body. Namely, why teach the whole industry how to build something that makes your company so successful. None the less, there are enough of us that could easily reverse engineer EOF along with Cayenne to help formalize such a standard with say the Open Grid Forum (OGF). Of course, there is probably nothing that can be done about the language of choice. According to the TIOBE index, the three most popular languages as far as applications built by them are in order C, Java, and Objective-C.Popularity does not necessarily give us good languages from an academic point of view, but there are some blessings to be had from those top three.Of course, Objective-C did rise this last month to surpass C++, C#, PHP, and Visual Basic. What does Chuck say if people are using those languages, of their own free will? Speaking of Objective-C: There's an EOF and a WebObjects clone in GNUstep under the LGPL: EOF-Clone (EOF 4.5 IIRC): http://www.gnustep.org/experience/GDL2.html http://svn.gna.org/svn/gnustep/libs/gdl2/trunk/ WebObjects-Clone: http://wiki.gnustep.org/index.php/GNUstepWeb http://svn.gna.org/svn/gnustep/libs/gsweb/trunk/ Wouldn't that be an alternative nowadays that ObjC has ARC? http://clang.llvm.org/docs/AutomaticReferenceCounting.html V/R, cheers, Lars ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/michael%40aspireauctions.com This email sent to mich...@aspireauctions.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net This email sent to ch...@global-village.net -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/gvc/practical_webobjects ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/probert%40macti.ca This email sent to prob...@macti.ca -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/gvc/practical_webobjects
Re: Migrating from EOF to Cayenne
I ment if anyone used an Objective C port of WO. Michael On Jul 11, 2012, at 9:02 PM, prob...@macti.ca wrote: I think Hugi also use it. Envoyé de mon iPhone Le 2012-07-11 à 20:24, Chuck Hill ch...@global-village.net a écrit : Apparently http://cayenne.apache.org/success-stories.html On 2012-07-11, at 5:21 PM, Michael Kondratov wrote: Anyone used it? Does it actually work? Michael Sent from my iPhone On Jul 11, 2012, at 19:10, Lars Sonchocky-Helldorf lars.sonchocky-helld...@hamburg.de wrote: Am 11.07.2012 um 23:03 schrieb Daniel Beatty: Greetings Ladies and Gentlemen, I tend to agree with Chuck on the notion that this could be a costly marriage without some kind of stability assurance. My recommendation would be to have Cayenne be standardized so that at least there is both proper documentation and be able to say what Cayenne is intended to be (EOF like or otherwise). I did some work on the subject whether WO/EOF is still king of the ORMs for my dissertation qualifiers in November of 2011. I found that while there is no notion of a standardized ORM out there, EOF has a de facto standard due to its age and open source varieties in both Objective-C and Java forms.I can see why Apple has been reluctant to take it to a standards body. Namely, why teach the whole industry how to build something that makes your company so successful. None the less, there are enough of us that could easily reverse engineer EOF along with Cayenne to help formalize such a standard with say the Open Grid Forum (OGF). Of course, there is probably nothing that can be done about the language of choice. According to the TIOBE index, the three most popular languages as far as applications built by them are in order C, Java, and Objective-C.Popularity does not necessarily give us good languages from an academic point of view, but there are some blessings to be had from those top three.Of course, Objective-C did rise this last month to surpass C++, C#, PHP, and Visual Basic. What does Chuck say if people are using those languages, of their own free will? Speaking of Objective-C: There's an EOF and a WebObjects clone in GNUstep under the LGPL: EOF-Clone (EOF 4.5 IIRC): http://www.gnustep.org/experience/GDL2.html http://svn.gna.org/svn/gnustep/libs/gdl2/trunk/ WebObjects-Clone: http://wiki.gnustep.org/index.php/GNUstepWeb http://svn.gna.org/svn/gnustep/libs/gsweb/trunk/ Wouldn't that be an alternative nowadays that ObjC has ARC? http://clang.llvm.org/docs/AutomaticReferenceCounting.html V/R, cheers, Lars ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/michael%40aspireauctions.com This email sent to mich...@aspireauctions.com ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net This email sent to ch...@global-village.net -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/gvc/practical_webobjects ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/probert%40macti.ca This email sent to prob...@macti.ca ___ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com