Re: HAPPY DIWALI!
http://www.newsforge.com/business/03/10/20/194207.shtml?tid=85 Prasenjit Narwade wrote: Shub Deepawali For those who do not understand Hindi language try to find the meaning of those words. Warm Regards, Prasenjit - Original Message - From: Andrew Hill [EMAIL PROTECTED] To: Struts Users Mailing List [EMAIL PROTECTED] Sent: Wednesday, October 22, 2003 4:05 AM Subject: RE: HAPPY DIWALI! Happy Deepavali mate! :-) -Original Message- From: Abhijeet Mahalkar [mailto:[EMAIL PROTECTED] Sent: Wednesday, 22 October 2003 18:50 To: Struts Users Mailing List; Abhijeet Mahalkar Subject: HAPPY DIWALI! Aapko Naye Saal me... Chandragupt Ki Shakti Meerabai Ki Bhakti Ramchandra Ka Gyan Karan Ka Daan Einstein Ki Buddhi Nobel Prize Ki Siddhi Gandhi Ki Ahimsa India Ki Parampara Vajpayee Ki Maryada Nizaam Ki Sampada Michael Jordan Ki Salary Abdul Kalam Ki Vocabulary Bhagat Singh Ka Deshprem Sweetheart Ka Amarprem Microsoft Ke Share Rupiyo Ke Dher Tata Ke Senses Ambani Ke Licenses Birla Ka Bangla Daler Ka Bhangra Amitabh Ki Style Madhuri Ki Smile Shahrukh Ki Personality Aishwarya Ki Popularity Worldtour Ka Ticket Tendulkar Ka Wicket Administrator Ke Passwords Jokes Ke Forwards Mercedez Ki Car Diamond Ka Haar Aur Logon Ka Dher Saraa Pyar Prapt Ho... Wish you a Happy Diwali and a Prosperous New Year Regards Abhijeet Mahalkar - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: OT: Simple is great . (period)
Greg Reddin wrote: But .NET proponents say that it is simpler than J2EE SNIP I think to the extent .NET *is* simpler, we _should_ start using it. They could argue that there are no EJB/BluePrints/etc. complexities in .NET, you can just get the data, and display a grid. There are cultures in J2EE the _like_ complex solutions. My argument only trough KISS can J2EE be superiors for complex business apps. As a software engineer, I spend time looking for lower costs to implement a given application, like it or not. Victor Cekvenich,br Struts Instructorbr (215) 312-9146p Advanced a href =http://basebeans.com/do/cmsPg?content=TRAINING;Struts Training/a Server Side Java training with Rich UI, mentoring, designs, samples and project recovery in North East. br Simple best practice basic Portal,a href =http://basicportal.com; a Struts CMS, Membership, Forums, Shopping and Credit processing, /a software, ready to develop/customize; requires a db to run - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
OT: Simple is great . (period)
Someone recently posted in here Simple is great if your needs are simple implying that KISS is not always good. I would like to disagree, and point out that KISS is always good. Teaching design is hard, and that is why it takes experience to do good design. For a first few years in IT, I too was proud that I could design complex things. Now (15 years of IT) I spend effort to try to simplify, especially when I do project recovery. In general, programmers (primates?!) like me, can deal with a limited maximum complexity. If the framework is complex, I can only do simple projects with it. If the framework is simple, I can tackle complex projects with it. (It ends up not beeing a business application otherwise, just pure RD that only works in lab conditions, and not in production) -If it is complex, it is hard to maintain, or find a bug. -If it is complex, it is hard to communicate what people should be doing on a large (complex) projects. KISS! - When learning a science, like math, they teach us and now we simplify. There was some TV History show, where a famous scientist (forget the name) ended the letter saying: Sorry I wrote a long letter, I did not have time to simplify this. - We spend time to make our code more readable. - We know that adding more resources to a complex project does not help (Mythical Man Month), it only makes it more complex. - I think one reason open source projects are more successful, is that it is done quickly by limited resource (thus limited complexity). Struts was done by one person over a weekend for example. (Vendors have teams that consider lots of requirements via a committer. I ran away from those complex frameworks to things like Struts). One approach I do teach is to design for the rule (and not for every exception); and only consider 80% of what is needed (because that last few % makes the design complex. Things that happen by exception can be deal with as exception. That is all I can think of now on why KISS is better than complex. .V - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: struts/tiles switch from windows to Linux
Maybe it neds .js files relative? I assume you are deploying a war file. .V Chen, Gin wrote: From the initial look of it.. It is not having a problem with finding /tiles/CoolMenu.jsp but rather having a problem with code within CoolMenu.jsp page. (Not that the exception is ServletException in /tiles/CoolMenu.jsp not within the page that included it). -Tim -Original Message- From: Witt, Mike (OH35) [mailto:[EMAIL PROTECTED] Sent: Wednesday, October 15, 2003 12:46 PM To: [EMAIL PROTECTED] Subject: struts/tiles switch from windows to Linux I have a webapp I've developed in windows. The production environment is Linux. On windows, I am using Tomcat 4.1.24. In Linux, it is Tomcat 4.1.27 (standalone). Here is the problem: I have a tiles tag that says: tiles:put name=menu value = /tiles/CoolMenu.jsp / This worked fine in my windows version, but on Linux I get: [ServletException in:/tiles/CoolMenu.jsp] The menu repository could not be found. I should mention that the tiles directory is at the upper level of my web app's root. Anybody have any idea why this would be seen differently in Linux vs. Windows? Am I inadvertantly addressing the file path wrong? I tried a relative path tile/CoolMenu.jsp and that didn't work in Windows (though I didn't get an error message, it just didn't show up) and I tried using the root name: /rootname/tiles/CoolMenu.jsp and that didn't work at all. Thanks, Mike Witt - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: news.basebeans.com problem
It works fine. Outlook? Try removing the newsgroup server and adding it again. .V Sudip Kumar Bhattacharya(HOTPOP) wrote: Hi I have been using Outlook Express to connect to the news.basebeans.com to download the struts newsgroup mails. For the last few days, it is giving some errors. Is the group down or what? The exact error message while polling for mails is : Your 'Struts' folder was not polled for its unread count. Account: 'news.basebeans.com', Server: 'news.basebeans.com', Protocol: NNTP, Port: 119, Secure(SSL): No, Error Number: 0x800CCC14 The exact error message while resetting the list for the newsgroup is : Configuration: Account: news.basebeans.com Server: news.basebeans.com User name: [EMAIL PROTECTED] Protocol: NNTP Port: 119 Secure(SSL): 0 Code: 800ccc0e Is there any other free news server that hosts the struts newsgroup? Sudip - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: EJB's vs. Hibernate vs. Torque vs. custom DTO's
Joe Germuska wrote: I'm interested in the rapidly developing microkernel field (HiveMind, Keel, PicoContainer, Spring...) but haven't made the time to choose one of them. A vote for Pico from me. .V - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
OT: CNBC TV in 4 minutes on Sun
EOM - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Editorial on Struts' Long Term Future
http://biz.yahoo.com/djus/031002/103540_4.html This should help management, just out today from Merrily Lynch. JSF IP is owned by Sun and RI is not open source. I could re-quote article but you can read it careful like by yourself. .V Davidson, Glenn wrote: Craig, I'd like to thank you for your response. As a architect who has selected Struts for a large long term project I was concerned by the original article. I would like to ask if you would consider writing an article/reply saying what you said in this email for publication? For some reason management believes what they see in print. Thanks Glenn -Original Message- From: Craig R. McClanahan [mailto:[EMAIL PROTECTED] Sent: Wednesday, October 01, 2003 1:00 PM To: Struts Users Mailing List Subject: Re: Editorial on Struts' Long Term Future Andrew Hill wrote: Yep. Quite interesting. Sorry if its a bit rambling - dont have time to edit it - but heres my 2 cents worth: The article doesnt mention it but Scioworks is the company behind Camino , a powerful RAD tool for struts so its a good bet to say that he certainly knows the technology and the area quite well (unlike many commentators). Trust me ... he does :-). Id have to say I agree with the opinion to a certain extent - though in my view 3 years is a very long time in IT! ;-) Yep. To have Struts take that long to become legacy is actually a compliment to how well it addresses the need area it went after. To have it become the underlying knowledge base of the experts building the standardized version of the technology is a compliment to the original developers being pretty much on the right track. Yet, the problem that John addresses here (also known as The Innovator's Dilemna) is very real. You're told to go build something, and put it up on the web yesterday. It's going to be a mission critical for your company, and will itself have a fairly long shelf life, so you want to make sure that the technologies you base your app on are also going to be around. You look at the available standards-based technologies, and don't see what you need. So, what do you do? Open source developers (at least the good ones) tend to be pretty innovative, and that was certainly the case with Struts folks (yes, that includes me, and I'm very proud of what my little brainchild has grown into :-). It is not unusual to find that there is an open source package out there. But, is that package going to be around for the lifetime of my own app? Or, to put it another way, how many open source projects are hosted at SourceForge? How many of them have more than a couple of developers playing around in their spare time? How many of them have been downloaded even 100 times (Struts gets ~75,000 downloads per month nowdays)? I would submit that the supporting ecology around the technologies you choose (be they open source or not) is likely to be more critical to your success than the particular technical features of the package. It was certainly critical to some pretty large scale companies, and conservative industries, that have adopted Struts quite widely. Yet, it takes a while for that ecology to grow. And, there's no guarantees that it will *ever* happen. And, while the ecology is growing, the technology at the base can't evolve quite as quickly as it could before (ask all the guys who wrote books on the moving target that was Struts 1.1 :-). It's an interesting balancing act. JSF scratches many of the same itches as struts, only better, and given that Craig is spec lead for JSF thats hardly a coincidence. Perhaps we could consider struts the practice run? ;-) :-) Craig co. say that there will be a future for struts in the JSF generation, but Im not sure I fully grok what that future is yet (havent had a chance to play with the jsf struts integrated stuff yet) but at the least it should involve an upgrade path for existing struts stuff? Keep in mind that the existing struts-faces integration library isn't finished yet (since JavaServer Faces isn't finished yet). But it will be. To the broader question, I would definitely say there is a future for Struts. Here's a quick summary of some things on my mind: * Part of the ecology of a successful open source project is staying up with the times, offerring new things to your existing customers. After all, there are many thousands of Struts based applications aready in existence -- and nobody is going to rewrite them all in the next couple of days, or even the next couple of years. Therefore, Struts needs to continue to support its existing features and functions, and add new ones. * Particular areas of future growth I'm interested in (other developers have their own thoughts as well): - Enable existing Struts-based applications to utilize new view technologies (like JavaServer Faces) with zero changes to their back-end business logic (isn't that one of the things we all like
Re: [POLL] ActionFrom vs DynaActionForm
+1 ActionForms. On of the benefits of Modular/MVC programing is that you can unit test a module, before integrating it. .V Andrew Hill wrote: Call me old fashioned but I always use good old hand coded ActionForms. Guess I like having something my compiler can get its teeth into. :-) Now that Im using Eclipse getters and setters are no problem at all. I love that generate getter setter menu option. :-) (Validation isnt an issue for me either way as Ive always found it more convenient to do in the Action) -Original Message- From: Mainguy, Mike [mailto:[EMAIL PROTECTED] Sent: Wednesday, 1 October 2003 00:52 To: [EMAIL PROTECTED] Subject: [POLL] ActionFrom vs DynaActionForm Next in my series of struts-user polls (please complain if this gets old). What sort of ActionForms does everyone use? #1 ActionForm #2 DynaActionForm Personally, I'm an advocate of the DynaActionForm as it seems to be able to do 80-90% of everything I need to do and everything else can be done in my business tier. I have, however, run into another person who is dead set against using it. His rationale is that you are then unable to do custom validation when you use the DynaValidatorForm... I think you can still do it, it's just a little more difficult, but, I'm polling to see if I'm out in left field... This message and its contents (to include attachments) are the property of Kmart Corporation (Kmart) and may contain confidential and proprietary information. You are hereby notified that any disclosure, copying, or distribution of this message, or the taking of any action based on information contained herein is strictly prohibited. Unauthorized use of information contained herein may subject you to civil and criminal prosecution and penalties. If you are not the intended recipient, you should delete this message immediately. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Editorial on Struts vs JSF
Many MVC frameworks market themselves with we are like Struts, only better, as does JSF. -RI JSF is not open source, so if rendering does not emit HTML that supports your/browser needs,... -Also JSF implies that Java developers are doing more UI, something that a Graphic Artist does for my clients. (I see JSF similar to JSP version of ECS) - The links imply that ASF will have an open source JSF... , I can't see it. - I personally am not clear on what JSF licensing will be until it is released. - Not sure what support for JavaScript will be, until it is released. To me ... people that use/like EJB will use JSF with it. (they are both heavy; ... possibly on the way to .NET, since I see this combo inferior to C#/DataGrids) People that use/like iBatis/Hibrenate DAO types(light), will use Struts. (and likely to stay on J2EE, since I see this combo better than .NET. Displaytag, calendar tag, Struts Menu, and other tags are real nice and proven to me) I see JSF and Struts as opposite. One is heavy/commercial with IP owned by Sun wanabe, the other is open/light, proven/popular standard. KISS anyone? I am hedging my bet w/Flash DataGrid, since it supports both .NET and J2EE (FYI: MacroMedia pulled out of JSF). Of course wait and see could be a good idea as well, maybe JSF v2 gets proven in production, but people that do JSF now, IMO will get burned. Even if JSF does have some market share... Struts is much to popular, and it is open source (so as long as you have source) it can't go away. So my prediction is Struts all the way. And future UI would be client side scripting (Flash/.js), XUL and XForms ( and very little people using JSF to do same) It remains to be seen if Craig can persuade his comity of vendors vs what WinterFeld, Turner, Husted, Marting, Cedric, et all did, and continue to do. Look at what is coming up for Struts 1.2 and 2.0. Feel free to read the JSF spec and form an opinion for yourself. .V - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: JSTL
This can't be right?? JSP 2.0 is still in JCP, a pre-req. Beta you can download of nightly (what I do) .v Yann Cébron wrote: JSTL1.1 B1 (early access) was released 09/25/03: http://jakarta.apache.org/taglibs/doc/standard-doc/intro.html Yann Does anyone know when Jakarta will have the JSTL 1.1 implementation released? Iin particular I wanted the fn.tld to do string manipulations. The Struts 1.1 release only has core, format, database , xml libraries as part of it. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: html:link/ URL Parameters
Consider using JSTL URL for link, it is much more sophisticated. hth, .V Pat Quinn wrote: Hi Guys, I trying to use the html:link/ tag library with dynamic url parameters e.g (which doesn't work). html:link action=/viewOrder.do?orderNo=c:out value=${order.ponum}/View Order/html:link How should i do this with out using the standard HTML Href tag? _ The new MSN 8: smart spam protection and 2 months FREE* http://join.msn.com/?page=features/junkmail - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: YASJR (Yet Another Struts Justification Request)
This is almost a Linux vs Windows: which is more secure/ the one that has millions of user eyes on the code! In commercial code, a bomb is very easy and possible. In OS, unlikely. I would also bet that given any industry (banks for ex), Struts is the most popular in production use. I know a few large banks using Struts I am sure that they did due process. But if PHB does not want to use it, they don't want to use it. Maybe sit in a legal review to negotiate a proprietary framework license suits them, with no?? access to source. .V - may the source be with you Gregory F. March wrote: I seem to have successfully pushed Struts in my company (a big Wall St. bank). However, today, I was asked the following question: How can I guarantee that there are no hacks, bombs, etc. in the Struts code or any OS code for that matter? My immediate response was, how can you guarantee it for any code? However, being a large bank with literally trillions of dollars a day passing though our systems, I can definitely understand their concern. At a minimum, we will obtain the source code and at least do a minimal code walk-through and then compile our own binaries. What other guarantees can I make to my management? What is the process the Struts team uses to control a rogue contributor? Thanks, /greg -- Gregory F. March-=-http://www.gfm.net:81/~march-=-AIM:GfmNet - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Struts 1.0 problem
Hmm I am not sure if you can pass an argument via a getter from a JSP Maybe JSTL c:out tag can? maybe nesting another get method to another object. ? Ex: getName().getSize().. but even that. Anyway, I think it's just a bean thing. It might be that you are doing to much procesing in the View, that should be done elsewhere. hth, .V [EMAIL PROTECTED] wrote: In my case name is not an array... 53 is an int passed to the method getName(int size) from my JSP through bean:write tag. Input exactly means that i want 53 chars of the String. -Original Message- From: Slattery.Tim [mailto:[EMAIL PROTECTED] Sent: Monday, September 08, 2003 2:13 PM To: struts-user Subject: RE: Struts 1.0 problem We recently ported the weblogic server from SP1 to SP4 and came accross the following problem while displaying the JSP pages. This was working fine on SP1. Can anyone tell me the possible reason. The line of code in the jsp is : bean:write name=%=formBean% property=name[53] scope=request/ where 53 is an input parameter of getName(int size) method of FormBean. And that's the problem. The syntax above says that name is an array, and that you want element number 53 of that array. That's exactly what the error message is saying (Property 'name' is not indexed). You could get around this with some more Java code : % String name = formBean.name(53); % c:out value=${name} / - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Converting a ResultSet to a List of POJOs
By using a static class intilizer in the DAO, JNDI, Pool and XML phrase happen once for the entire web app. iBatis I found much faster and simpler that others. .V Jerry Jalenak wrote: Matt - After reading your post here and on the iBatis forum on SF, I thought I'd run some tests on my authentication process as well. I'm using a static block to initially read in the sql-map.xml file, and am using the sqlMap.executeQueryForObject method w/o a 'true' DAO (calling the method directly from my business model). Here's what I found: first call to initialize (read) the sql-map.xml file: .688 first call to executeQueryForObject:6.485 (ouch!) subsequent calls to executeQueryForObject: .031 - .032 (tested multiple times) I think this agrees with what you saw, and with what Clinton indicated - the first call is *really* slow due to the additional initialization that occurs. Once that is complete, iBatis seems to be a fast as native JDBC... Jerry Jalenak Team Lead, Web Publishing LabOne, Inc. 10101 Renner Blvd. Lenexa, KS 66219 (913) 577-1496 [EMAIL PROTECTED] -Original Message- From: Matt Raible [mailto:[EMAIL PROTECTED] Sent: Monday, September 08, 2003 6:13 PM To: 'Struts Users Mailing List' Subject: RE: Converting a ResultSet to a List of POJOs Thanks to all for your suggestions. I did some number comparisons b/w the standard way (rs.next() ... set, set, set), ibatis, and ResultSetUtils.getCollection() from scaffold. Here's what I found: 1. Standard way - 0.24 seconds 2. ibatis - 5+ seconds (ugh! - maybe I'm doing something wrong, more info here: http://tinyurl.com/mod4) 3. ResultSetUtils.getCollection - 0.27 seconds So I'm going with #3 as it'll speed up dev time and doesn't have much of a performance hit. Thanks, Matt -Original Message- From: Jerry Jalenak [mailto:[EMAIL PROTECTED] Sent: Monday, September 08, 2003 7:09 AM To: 'Struts Users Mailing List' Subject: RE: Converting a ResultSet to a List of POJOs +1. Simplest method I've seen to go from a ResultSet to a Collection of JavaBeans Jerry Jalenak Team Lead, Web Publishing LabOne, Inc. 10101 Renner Blvd. Lenexa, KS 66219 (913) 577-1496 [EMAIL PROTECTED] -Original Message- From: Ted Husted [mailto:[EMAIL PROTECTED] Sent: Saturday, September 06, 2003 10:34 AM To: Struts Users Mailing List Subject: Re: Converting a ResultSet to a List of POJOs I'm about to try iBATIS www.ibatis.com for a new phase of a project we started in Hibernate. Hibernate is cool, but I think something simpler might be a better fit. (Not sure if we really need that finely grained object layer after all :) It will let you remove the SQL to a simple XML file and give that statement a name. You can then call the named statement from your Java code and get a POJO result. Like what I was doing in Scaffold, only better =:0) -Ted. Matt Raible wrote: Dear Struts Experts, I recently started a new project where most of the backend code is already written with JDBC and ResultSets. The ResultSets are iterated through and a POJOs values are set using pojo.setName(rs.getString(...)), etc. - you get the point. I'm wondering if there's an easier way - so I could do something like this: ResultSet rs = stmt.executeQuery(SELECT ...); List objects = FancyUtilitity.convertResultSetToListOfObjects(rs, object.class); Hibernate let me do this very simply - and I miss the fact that I could type a line or two to get a List of POJOs. List users = ses.createQuery(from u in class + User.class + order by u.name).list(); I've looked at the RowSetDynaClass (http://tinyurl.com/mekh), which has an interesting way of doing this - is this the recommended approach in the JDBC world? Here's an example using it: ResultSet rs = stmt.executeQuery(SELECT ...); RowSetDynaClass rsdc = new RowSetDynaClass(rs); rs.close(); stmt.close(); ...;// Return connection to pool List rows = rsdc.getRows(); ...; // Process the rows as desired Thanks, Matt - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Ted Husted, Junit in Action - http://www.manning.com/massol/, Struts in Action - http://husted.com/struts/book.html, JSP Site Design - http://www.amazon.com/exec/obidos/ISBN=1861005512. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] This transmission (and any information attached to it) may be confidential and is intended solely for the use of the individual or entity to which it is addressed. If you are not the intended recipient or the person responsible for delivering the transmission to the intended recipient, be advised that you have received
Re: cache design pattern
In general, data caching should happen at the data (model of MVC) layer. DAO's like iBatis and Hibernate do caching automatically, you just configure a decay time in XML. hth, .V [EMAIL PROTECTED] wrote: hi all, I would like to implement a cache design pattern in my framework. before re-inventing the wheel, I would like to ask to thoses who have already done that. Sample codes, advices are welcome. thanks in advance. Meissa L'integrite de ce message n'etant pas assuree sur internet, Natexis Banques Populaires ne peut etre tenu responsable de son contenu. Toute utilisation ou diffusion non autorisee est interdite. Si vous n'etes pas destinataire de ce message, merci de le detruire et d'avertir l'expediteur. The integrity of this message cannot be guaranteed on the Internet. Natexis Banques Populaires can not therefore be considered responsible for the contents.Any unauthorized use or dissemination is prohibited. If you are not the intended recipient of this message, then please delete it and notify the sender. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]