Re: CSS resources using url(...) syntax under Direct Connect
On 29/05/2011, at 6:25 PM, Paul Hoadley wrote: > I've hit an issue that seems to be the one described at this point in a long > thread about the improved Wonder JavaMonitor: > > http://osdir.com/ml/webobjects-dev/2010-11/msg00717.html > > I'm running an app from the command line, and accessing it via Direct > Connect. (I'll explain this weird behaviour below.) Specifically, the > browser can't find any resources referenced by the url(...) syntax from with > CSS files. No complaints are logged anywhere, the app just returns an empty > resource. (This is on Mac OS X, and it has nothing to do with > case-sensitivity, spaces in filenames or typos: running through Eclipse > returns the requested resources just fine.) I followed that thread above > through to the end, but didn't see that the issue was resolved—was it? Does > anyone know _any_ workaround for this? Here's one using the hint from that thread that once an image had been displayed using a WOImage component, it was then available to the CSS file's url(...) reference. If I display on the front page of the app a div containing WOImage references to all the image files in WebServerResources, they then appear as intended by the CSS. I can set 'style="display: none;"' on that div and there's no visible difference. Obviously a complete hack, but it's sufficient for this very specific development scenario. -- Paul. http://logicsquad.net/ ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Hashcode/ETag for EOs
Le 2011-05-29 à 14:51, Farrukh Ijaz a écrit : > Hi Pascal, > > On 2011-05-29, at 9:20 PM, Pascal Robert wrote: > >> I did : >> >> ERXRouteResults results = (ERXRouteResults)response(someEntity, filter); >> String etagHash = >> ERXCrypto.sha256Encode(results.responseNode().toString(results.format(), >> this.restContext())); > > IMO, this is an expensive approach because of encryption algorithm. Unless > encryption of the data is key requirement, don't use it. I only need a hash. Base64 or MD5 would be ok too. > Because normally the toString() if not overridden returns a String comprising > the memory address of the instance, this is the reason a simple hashCode() > call is not sufficient in your case. You can simply override the hashCode() > method and compute the values based on your entity attributes. The problem is that it had to be compute from the attributes that are part of the (ERXKeyFilter) filter. And I do think it should be using the format requested too, so that if someone ask for a JSON representation and someone ask for a XML one, the ETag would be different. But we can debate on that, because I'm not 100% sure that the same object but using represented in a different format should have a different ETag. > For caching use Hashtable but that will only benefit if your hashCode() > generates unique value. In my experience the best way to cache the values is > to maintain a binary tree using the hashCode() as the node value. If you want > to implement a better caching, try exploring Splay tree model. With a little > modification to it, you can make you caching super fast. > > These things are not normally practiced by API users but they do matter is > you develop your own API to be used by someone else :) > > Farrukh > >> >>> there's not a direct simple way to do it ... probably grab the snapshot off >>> the EO and compute a hash of the values (you can ignore the keys because >>> they're fixed). it might be something where you can make a new interface in >>> ERX that your EO's could implement to provide a more optimal impl (like >>> ERCStamped could use its lastModified as a basis). >>> >>> ms >>> >>> On May 25, 2011, at 1:55 PM, Pascal Robert wrote: >>> I'm trying to find a way to generate a HTTP ETag for EOs so that caching can be done for REST services. What I want to do is to have the same ETag value for each representation of the EO, so when one of the values change, the ETag value will also change, but if the EO have the same value, it will generate the same ETag as another request got. Problem is: I don't know what to use. I tried with myEO.hashCode() but I did some tests and every time I fetch the EO, the hashcode is different even if the data didn't change. I'm thinking of doing a MD5 digest of part of the EO, but I was wondering if another way exist? I could use a "last modified" date and generate a MD5 of that too, but that date is a better option for the Last-Modified header. -- Pascal Robert prob...@macti.ca WOWODC 2011 : July 1-2-3, Montreal. wowodc.com AIM/iChat : MacTICanada LinkedIn : http://www.linkedin.com/in/macti Twitter : pascal_robert ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/mschrag%40pobox.com This email sent to msch...@pobox.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: >> http://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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Hashcode/ETag for EOs
Hi Pascal, On 2011-05-29, at 9:20 PM, Pascal Robert wrote: > I did : > >ERXRouteResults results = (ERXRouteResults)response(someEntity, filter); >String etagHash = > ERXCrypto.sha256Encode(results.responseNode().toString(results.format(), > this.restContext())); IMO, this is an expensive approach because of encryption algorithm. Unless encryption of the data is key requirement, don't use it. Because normally the toString() if not overridden returns a String comprising the memory address of the instance, this is the reason a simple hashCode() call is not sufficient in your case. You can simply override the hashCode() method and compute the values based on your entity attributes. For caching use Hashtable but that will only benefit if your hashCode() generates unique value. In my experience the best way to cache the values is to maintain a binary tree using the hashCode() as the node value. If you want to implement a better caching, try exploring Splay tree model. With a little modification to it, you can make you caching super fast. These things are not normally practiced by API users but they do matter is you develop your own API to be used by someone else :) Farrukh > >> there's not a direct simple way to do it ... probably grab the snapshot off >> the EO and compute a hash of the values (you can ignore the keys because >> they're fixed). it might be something where you can make a new interface in >> ERX that your EO's could implement to provide a more optimal impl (like >> ERCStamped could use its lastModified as a basis). >> >> ms >> >> On May 25, 2011, at 1:55 PM, Pascal Robert wrote: >> >>> I'm trying to find a way to generate a HTTP ETag for EOs so that caching >>> can be done for REST services. What I want to do is to have the same ETag >>> value for each representation of the EO, so when one of the values change, >>> the ETag value will also change, but if the EO have the same value, it will >>> generate the same ETag as another request got. >>> >>> Problem is: I don't know what to use. I tried with myEO.hashCode() but I >>> did some tests and every time I fetch the EO, the hashcode is different >>> even if the data didn't change. I'm thinking of doing a MD5 digest of part >>> of the EO, but I was wondering if another way exist? I could use a "last >>> modified" date and generate a MD5 of that too, but that date is a better >>> option for the Last-Modified header. >>> >>> -- >>> Pascal Robert >>> prob...@macti.ca >>> >>> WOWODC 2011 : July 1-2-3, Montreal. wowodc.com >>> >>> AIM/iChat : MacTICanada >>> LinkedIn : http://www.linkedin.com/in/macti >>> Twitter : pascal_robert >>> >>> >>> >>> ___ >>> 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: >>> http://lists.apple.com/mailman/options/webobjects-dev/mschrag%40pobox.com >>> >>> This email sent to msch...@pobox.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: > http://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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Hashcode/ETag for EOs
I did : ERXRouteResults results = (ERXRouteResults)response(someEntity, filter); String etagHash = ERXCrypto.sha256Encode(results.responseNode().toString(results.format(), this.restContext())); > there's not a direct simple way to do it ... probably grab the snapshot off > the EO and compute a hash of the values (you can ignore the keys because > they're fixed). it might be something where you can make a new interface in > ERX that your EO's could implement to provide a more optimal impl (like > ERCStamped could use its lastModified as a basis). > > ms > > On May 25, 2011, at 1:55 PM, Pascal Robert wrote: > >> I'm trying to find a way to generate a HTTP ETag for EOs so that caching can >> be done for REST services. What I want to do is to have the same ETag value >> for each representation of the EO, so when one of the values change, the >> ETag value will also change, but if the EO have the same value, it will >> generate the same ETag as another request got. >> >> Problem is: I don't know what to use. I tried with myEO.hashCode() but I did >> some tests and every time I fetch the EO, the hashcode is different even if >> the data didn't change. I'm thinking of doing a MD5 digest of part of the >> EO, but I was wondering if another way exist? I could use a "last modified" >> date and generate a MD5 of that too, but that date is a better option for >> the Last-Modified header. >> >> -- >> Pascal Robert >> prob...@macti.ca >> >> WOWODC 2011 : July 1-2-3, Montreal. wowodc.com >> >> AIM/iChat : MacTICanada >> LinkedIn : http://www.linkedin.com/in/macti >> Twitter : pascal_robert >> >> >> >> ___ >> 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: >> http://lists.apple.com/mailman/options/webobjects-dev/mschrag%40pobox.com >> >> This email sent to msch...@pobox.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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
CSS resources using url(...) syntax under Direct Connect
Hello, I've hit an issue that seems to be the one described at this point in a long thread about the improved Wonder JavaMonitor: http://osdir.com/ml/webobjects-dev/2010-11/msg00717.html I'm running an app from the command line, and accessing it via Direct Connect. (I'll explain this weird behaviour below.) Specifically, the browser can't find any resources referenced by the url(...) syntax from with CSS files. No complaints are logged anywhere, the app just returns an empty resource. (This is on Mac OS X, and it has nothing to do with case-sensitivity, spaces in filenames or typos: running through Eclipse returns the requested resources just fine.) I followed that thread above through to the end, but didn't see that the issue was resolved—was it? Does anyone know _any_ workaround for this? (What I'm trying to do is provide a third party non-WO-developer with the absolute lightest-weight setup for doing some HTML/CSS design. I am really keen to get this working using Direct Connect and running from the command line, as then all I need to do is ship him an app bundle and get him to fire it up. He can test his changes by writing directly in the app bundle. AFAICS, the next lightest-weight solution would be running through Apache, which is going to involve way too much setting up for this particular one-off project.) -- Paul. http://logicsquad.net/ ___ 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: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com