tag:blogger.com,1999:blog-4110180.post4654130543456609213..comments2023-06-20T05:31:24.545-07:00Comments on Tapestry Central: Tapestry 5: Caseless URLsAnonymoushttp://www.blogger.com/profile/04486596490758986709noreply@blogger.comBlogger12125tag:blogger.com,1999:blog-4110180.post-34373734052753120722010-05-26T08:48:10.718-07:002010-05-26T08:48:10.718-07:00@Toby:
That might be the case if the URLs were al...@Toby:<br /><br />That might be the case if the URLs were all mixed case but part of the point of Tapestry is that these things happen consistently: rendered URLs are all lower case but if a user manually enters a URL with mixed case, it will still work.Anonymoushttps://www.blogger.com/profile/04486596490758986709noreply@blogger.comtag:blogger.com,1999:blog-4110180.post-15542898283456336372010-05-26T07:57:59.882-07:002010-05-26T07:57:59.882-07:00Caseless URLs are duplicate content in the eyes of...Caseless URLs are duplicate content in the eyes of Google and should be avoided....Tobyhttps://www.blogger.com/profile/05220060081172588431noreply@blogger.comtag:blogger.com,1999:blog-4110180.post-52488358542146429812007-01-31T11:14:00.000-08:002007-01-31T11:14:00.000-08:00Tapestry 5 URLs are much shorter than the equivale...Tapestry 5 URLs are much shorter than the equivalent in Tapestry 4, espcially for page render URLs, the kind that users will see in the browser, bookmark, copy and paste, or manually type.<br /><br />The framework itself needs to be prepared to handle a user munging the case when manually enterring a URL.<br /><br />This could be done with Apache mod_rewrite, or the equivalent, to intercept requests and canonicalize the case. However, I never like deferring such important configuration outside of Tapestry and the WAR, since it represents more work and confusion at deployment time (which is always a mess, for any web application). Letting Tapestry "be generous in what it accepts, and specific in what it produces" is the HTML/HTTP way.<br /><br />And the all-lower-case URLs just "look cool". That's actually an important marketting factor.Anonymoushttps://www.blogger.com/profile/04486596490758986709noreply@blogger.comtag:blogger.com,1999:blog-4110180.post-6579114472309490622007-01-31T10:05:00.000-08:002007-01-31T10:05:00.000-08:00Ouch ... the thing about case-insensitivity is tha...Ouch ... the thing about case-insensitivity is that hardly anything ELSE in the chain is case-insensitive. Caches all the way along are going to treat differently-cased URLs differently, for example.<br /><br />Now I think case-insensitivity is actually a good thing, but it seems to me that it's better done as a rewrite by whatever server is front-ending the app than by folding case within the framework itself. <br /><br />Convince me otherwise?Chuck Adamshttps://www.blogger.com/profile/12403744972060658849noreply@blogger.comtag:blogger.com,1999:blog-4110180.post-7669792783538860052007-01-31T08:06:00.000-08:002007-01-31T08:06:00.000-08:00Nope, I'm a genius :-)
In all honesty, I'm always...Nope, I'm a genius :-)<br /><br />In all honesty, I'm always a little put off by some of the gushing praise that shows up (even if it is quite gratifying at some level). However, Tapestry 5 represents much, much more than the sum of its parts, and many of its parts are quite impressive in their own right.<br /><br />I've long stated that Tapestry 4 (and all the prior versions leading up to it), was the "prototype that escaped the lab". Tapestry 5 is the Real Deal, a new vision of how to build and structure Java web applications, with tremendous innovations in the way a framework and end-user code work together, without sacrificing performance.<br /><br />I'm expecting to finish up my first pass at a simple BeanEditor component and then we'll push for an initial preview release.Anonymoushttps://www.blogger.com/profile/04486596490758986709noreply@blogger.comtag:blogger.com,1999:blog-4110180.post-43894422320929215682007-01-31T05:01:00.000-08:002007-01-31T05:01:00.000-08:00Hi anonymous,
Stop calling Howard a genius becaus...Hi anonymous,<br /><br />Stop calling Howard a genius because I don't think he deserves that title yet. What he's doing now is just hacking and refactoring existing ideas. If his idea was totally new and innovative, then I'll agree with you but, IMHO that's not the case. And I believe Howard himself agrees with me on this point.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-4110180.post-8960798388374337892007-01-30T12:22:00.000-08:002007-01-30T12:22:00.000-08:00Actually, very little of the internal design of Ta...Actually, very little of the internal design of Tapestry is directly linked to the Servlet API. This is primarily so that it is possible to use Tapestry with Portlets, and eventually to support alternate uses such as offline rendering. Assuming the Simple framework APIs are remotely similar to Servlet APIs, it should not be too difficult to bridge them together. But that's not a priority for me.Anonymoushttps://www.blogger.com/profile/04486596490758986709noreply@blogger.comtag:blogger.com,1999:blog-4110180.post-80003024436031344702007-01-30T12:02:00.000-08:002007-01-30T12:02:00.000-08:00Nice.
Have you considered dumping the J2EE stack ...Nice.<br /><br />Have you considered dumping the J2EE stack in favour of something altogether <a href="http://www.simpleframework.org/"><br />simple</a>r, more maleable and more scalable?David Petersonhttps://www.blogger.com/profile/03475136061061572446noreply@blogger.comtag:blogger.com,1999:blog-4110180.post-57007811751299965312007-01-29T21:44:00.000-08:002007-01-29T21:44:00.000-08:00Great work!Great work!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-4110180.post-4312172593193310092007-01-29T03:47:00.000-08:002007-01-29T03:47:00.000-08:00Howard, you're a bloody genius! I just can't wait ...Howard, you're a bloody genius! I just can't wait for this barrel of goodness, T5. I just hope that migrating won't be a big pain because I'll probably be the first in line to try.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-4110180.post-41179387015177320492007-01-29T02:23:00.000-08:002007-01-29T02:23:00.000-08:00That's really great! Good work.
But I hope URLs ar...That's really great! Good work.<br />But I hope URLs are still configurable like Tap4 where you can add some strings to the URL (Not only the primary key).<br />Example case: an URL that displays the information about a house. It's efficient for search engines to have, the name of the house, the country, the city and the type in the URL, it makes those keywords more relevant. For example: "http://localhost/Appartement/France/Paris/Luxurious/45"<br /><br />Another concern for URLs are datasqueezers, these are not always so practical (they are not thread safe). For example beans that are just plain data holder for database query parameters (ex: HouseSeachQueryParam that holds the houseName, houseLocation, houseCategory, CurrentPage, MaxResultsPerPage)<br />You don't want to keep these beans in the session for every visitor on the site (if you have more then 10000 visitor a day, it takes a lot of RAM), and you want the result of a query to be bookmarkable by the visitor. It will be nice to have a way for a service to encode Simple beans property inside the url.<br />Ex http://localhost/House/Search?Bean=HouseSearchQueryParam.b&b.houseName=Corbusier&b.houseCategory=Luxurious&b.houseLocation=Paris&b.currentPage=2&b.maxResultsPerPage=10<br /><br />I think this is a must have feature if you don't want to store query params in the session. The URL scheme can be different, but the idea is that a bean can be introspected and each property squeezed, instead of squeezing the whole bean. And making a special dataSqueezer for each bean is quite hard.<br /><br />I hope you might have an idea for that! <br /><br />Thanks <br /><br />NumaUnknownhttps://www.blogger.com/profile/09239014020482680492noreply@blogger.comtag:blogger.com,1999:blog-4110180.post-45972265703989402422007-01-28T20:05:00.000-08:002007-01-28T20:05:00.000-08:00good work!good work!Anonymousnoreply@blogger.com