uPortal IRC Logs-2009-11-09

[07:13:43 EST(-0500)] * higmad (n=chatzill@pcit-8752.hig.se) has joined ##uportal
[08:53:29 EST(-0500)] * EricDalquist (n=dalquist@bohemia.doit.wisc.edu) has joined ##uportal
[09:03:20 EST(-0500)] * holdorph (n=holdorph@nsit-dhcp-205-208-044-025.uchicago.edu) has joined ##uportal
[09:07:43 EST(-0500)] * michelled (n=michelle@142.150.154.193) has joined ##uportal
[09:22:37 EST(-0500)] * athena (n=athena@adsl-75-58-127-15.dsl.wlfrct.sbcglobal.net) has joined ##uportal
[09:25:52 EST(-0500)] <EricDalquist> athena: for the css/js aggregation tool that NickB is working on
[09:26:01 EST(-0500)] <athena> yes
[09:26:14 EST(-0500)] <EricDalquist> do you think we need to have two Xalan XSLT tags, one for JS and one for CSS
[09:26:22 EST(-0500)] <EricDalquist> or can one tag do both?
[09:27:20 EST(-0500)] <athena> hm, good question
[09:27:44 EST(-0500)] <athena> i guess it depends on whether we're willing to rely on the filename extension for type information?
[09:27:58 EST(-0500)] <EricDalquist> ?
[09:28:20 EST(-0500)] <athena> well, we have to know if stuff is js or css to get the html right, correct?
[09:28:41 EST(-0500)] <athena> so if we didn't have two tags we'd have to just assume anything ending in ".js" is javascript and ".css" is css
[09:29:07 EST(-0500)] <athena> did nick sort out where to put the xml file? he was asking me something about that fri evening and i was too fried to be very helpful
[09:29:16 EST(-0500)] <EricDalquist> oh well the skin.xml file already has that info
[09:29:19 EST(-0500)] * lennard1 (n=sparhk@ip68-98-56-21.ph.ph.cox.net) has left ##uportal
[09:29:27 EST(-0500)] <athena> oh ok
[09:30:04 EST(-0500)] <EricDalquist> http://developer.jasig.org/source/browse/jasigsvn/uPortal/trunk/uportal-impl/src/test/resources/org/jasig/portal/web/skin/resources1.xml?r=47103
[09:30:17 EST(-0500)] <EricDalquist> so that is the base file format that you would include with your skin files
[09:32:12 EST(-0500)] <athena> oh cool
[09:32:42 EST(-0500)] <EricDalquist> and the maven plugin he wrote generates a aggregated_skin.xml file
[09:32:47 EST(-0500)] <athena> so the xalan tag you're talking about is what includes the aggregated files in the theme then?
[09:32:57 EST(-0500)] <EricDalquist> with the same format but aggregated file references
[09:33:29 EST(-0500)] <EricDalquist> so there are two parts to the changes
[09:33:35 EST(-0500)] <EricDalquist> one is a maven plugin
[09:33:43 EST(-0500)] <EricDalquist> which at build time reads all the skin.xml files it is told about
[09:33:53 EST(-0500)] <EricDalquist> doing compression and aggregation where possible
[09:34:12 EST(-0500)] <EricDalquist> and writes out the aggregated files and a new aggr_skin.xml file
[09:34:29 EST(-0500)] <EricDalquist> then at run time the xalan library reads the skin.xml and writes out the <link> and <script> tags
[09:34:40 EST(-0500)] <EricDalquist> then the final 'cool' bit will be a system property
[09:34:44 EST(-0500)] <EricDalquist> that the tag library reads
[09:35:00 EST(-0500)] <EricDalquist> and can be used to switch between the aggregated files and raw files
[09:36:23 EST(-0500)] <athena> neat (smile)
[09:36:30 EST(-0500)] <EricDalquist> yeah
[09:36:37 EST(-0500)] <EricDalquist> so no more css @imports
[09:36:42 EST(-0500)] <athena> yesssss (smile)
[09:36:47 EST(-0500)] <EricDalquist> once XML file to list all CSS & JS
[09:36:56 EST(-0500)] <athena> sounds great to me
[09:36:59 EST(-0500)] <EricDalquist> and on-the-fly toggle between prod/dev modes
[09:37:11 EST(-0500)] <athena> that's wonderful!
[09:37:12 EST(-0500)] <EricDalquist> since we could easily have a portlet that sets that system property{color}
[09:37:15 EST(-0500)] <EricDalquist> yeah

[09:37:23 EST(-0500)] <athena> that should really help!
[09:37:37 EST(-0500)] <EricDalquist> and I think the aggregation maven plugin does MD5 hashing of the compressed/aggregated files
[09:37:42 EST(-0500)] <EricDalquist> and includes that in the file name
[09:37:53 EST(-0500)] <EricDalquist> so we can do 'forever' caching of all CSS/JS
[09:38:14 EST(-0500)] <athena> wow, that's actually quite cool
[09:38:17 EST(-0500)] * athena cheers
[09:38:33 EST(-0500)] <EricDalquist> we'll have to review the ordering of css includes for some of our skins
[09:38:34 EST(-0500)] <athena> we should probably write up instructions at some point on how to turn on gzipping for the page itself
[09:38:40 EST(-0500)] <athena> whether through maven or apache or whatever
[09:38:46 EST(-0500)] <athena> since we're not doing that through the portal
[09:38:59 EST(-0500)] <athena> yeah
[09:39:05 EST(-0500)] <EricDalquist> like right now if we did the css include order that the default skin uses we get like 5 css files
[09:39:12 EST(-0500)] <athena> i think in all cases we can import the external resources first, then the local ones
[09:39:22 EST(-0500)] <EricDalquist> if we could move the print and IE specific files to the end we can get down to 3
[09:39:39 EST(-0500)] <athena> hm
[09:39:44 EST(-0500)] <athena> the default skin may not need an IE file anymore
[09:39:46 EST(-0500)] <EricDalquist> since the aggregation can't combine files with if IE rules or different media types
[09:40:04 EST(-0500)] <athena> though i think the yale one does
[09:40:26 EST(-0500)] <EricDalquist> well the skin.xml format supports those [if IE] style rules
[09:40:35 EST(-0500)] <EricDalquist> the thing we just need to document is the aggregation criteria
[09:40:50 EST(-0500)] <athena> just as a related thought, if we really wanted to, we actually could probably minify javascript that's inlined in the page as part of the rendering pipeline
[09:41:14 EST(-0500)] <athena> documentation is good (smile)
[09:41:15 EST(-0500)] <EricDalquist> since it can only combine CSS files that are; in the same directory, have the same [if] rule, have the same media and are listed next to each other
[09:41:28 EST(-0500)] <athena> hm, they have to be in the same directory?
[09:41:31 EST(-0500)] <EricDalquist> yeah
[09:41:46 EST(-0500)] <EricDalquist> otherwise url() in the css breaks
[09:41:53 EST(-0500)] <athena> ohhh
[09:41:55 EST(-0500)] <athena> shoot.
[09:42:06 EST(-0500)] <EricDalquist> yeah
[09:42:10 EST(-0500)] <athena> that's really annoying
[09:42:12 EST(-0500)] <EricDalquist> and order is important
[09:42:16 EST(-0500)] <EricDalquist> like if you have
[09:42:23 EST(-0500)] * jessm (n=Jess@c-71-232-1-65.hsd1.ma.comcast.net) has joined ##uportal
[09:42:48 EST(-0500)] <athena> unfortunately we can't easily just move the css files to make them all in the same directory
[09:43:00 EST(-0500)] <EricDalquist> <css>a.css</css> <css conditional="IE 6">ie.css</css> <css>b.css</css>
[09:43:06 EST(-0500)] <EricDalquist> that can't be aggregated
[09:43:09 EST(-0500)] <EricDalquist> where as
[09:43:16 EST(-0500)] <athena> right
[09:43:21 EST(-0500)] <EricDalquist> <css>a.css</css> <css>b.css</css> <css conditional="IE 6">ie.css</css>
[09:43:24 EST(-0500)] <EricDalquist> would give you two files
[09:43:25 EST(-0500)] <athena> definitely a good point for people to be aware of
[09:43:36 EST(-0500)] <EricDalquist> so we aren't going to be able to get to a single css file
[09:43:41 EST(-0500)] <athena> i assume this plugin is probably re-usable in portlets?
[09:43:45 EST(-0500)] <EricDalquist> but we can get down to 3 or 4
[09:43:48 EST(-0500)] <EricDalquist> yup
[09:43:54 EST(-0500)] <athena> awesome (smile)
[09:44:02 EST(-0500)] <EricDalquist> once nick has it all functionak
[09:44:08 EST(-0500)] <EricDalquist> we can review how it is all packaged up
[09:44:22 EST(-0500)] <athena> i'm really excited to see what he's done (smile)
[09:44:23 EST(-0500)] <EricDalquist> since really this is almost a separate project
[09:44:27 EST(-0500)] <EricDalquist> with some shared code
[09:44:30 EST(-0500)] <athena> i think this'll really be a fantastic improvement
[09:44:30 EST(-0500)] <athena> yeah
[09:44:35 EST(-0500)] <EricDalquist> and a maven plugin and xalan element tag
[09:44:40 EST(-0500)] <EricDalquist> and a JSP tag could then be added too
[09:44:46 EST(-0500)] <athena> probably we'll actually want it as separate from uportal as it can be
[09:44:57 EST(-0500)] <athena> yeah i was just about to ask about a jsp tag (smile)
[09:45:02 EST(-0500)] <athena> since most of our portlets don't use xslt
[09:45:19 EST(-0500)] <EricDalquist> yeah it would be an easy JSP
[09:45:23 EST(-0500)] <EricDalquist> here is the xalan tag: http://developer.jasig.org/source/browse/jasigsvn/uPortal/trunk/uportal-impl/src/test/java/org/jasig/portal/web/skin/ResourcesXalanElementsTest.java?r=47103
[09:46:48 EST(-0500)] <athena> it's so small (smile)
[09:47:04 EST(-0500)] <athena> i like
[09:47:05 EST(-0500)] <EricDalquist> yerah
[09:47:10 EST(-0500)] <EricDalquist> all the work is done by the maven plugin
[09:47:14 EST(-0500)] <EricDalquist> it just has to read an XML file
[09:47:21 EST(-0500)] <EricDalquist> and write out <link>/<script> tags
[09:48:01 EST(-0500)] <EricDalquist> I think the md5+caching will be the bigest win out of all of this
[09:48:10 EST(-0500)] <athena> yeah!
[09:48:14 EST(-0500)] <EricDalquist> even if there are still 4-5 CSS files and 4-5 JS files
[09:48:19 EST(-0500)] <EricDalquist> only having to get them once is huge
[09:48:23 EST(-0500)] <athena> so does it just do the md5 bit for local resources?
[09:48:35 EST(-0500)] <EricDalquist> yeah
[09:48:46 EST(-0500)] <EricDalquist> so anything in the skin.xml file that has an absolute URL is ignored
[09:48:55 EST(-0500)] <athena> i think we'll probably have 4 css files - fluid base, jquery ui, local common, and local skin
[09:49:05 EST(-0500)] <EricDalquist> so /ResourceServer/ stuff will just be copied over into the aggr_skin.xml file
[09:49:08 EST(-0500)] <athena> ah ok
[09:49:20 EST(-0500)] <EricDalquist> since it would have no access to those and compile time
[09:49:20 EST(-0500)] <athena> so absolute or relative to the server base
[09:49:23 EST(-0500)] <athena> right
[09:51:17 EST(-0500)] <athena> after all this is done i'll have to run through with yslow again and see what it looks like
[09:51:21 EST(-0500)] <EricDalquist> yeah
[09:51:36 EST(-0500)] <athena> you have any thoughts about minifying inlined scripts?
[09:52:13 EST(-0500)] <EricDalquist> other than 'don't use inlined scripts'?
[09:52:17 EST(-0500)] <EricDalquist> honestly
[09:52:20 EST(-0500)] <athena> lol
[09:52:24 EST(-0500)] <athena> well there are places that we have to
[09:52:36 EST(-0500)] <EricDalquist> my thought is that our inlined scripts shouldn't be much more than fluid component init calls
[09:52:41 EST(-0500)] <athena> yeah
[09:52:51 EST(-0500)] <EricDalquist> and that is small enough that it shouldn't be a big deal
[09:52:59 EST(-0500)] <athena> though actually sometimes those are actually a fair amount of code
[09:53:01 EST(-0500)] <athena> not like huge
[09:53:06 EST(-0500)] <athena> but more than 2 lines
[09:54:42 EST(-0500)] <EricDalquist> but I'm thinking those are usually ~ 100 lines per page
[09:54:48 EST(-0500)] <EricDalquist> and that stuff doesn't minimize well
[09:54:53 EST(-0500)] <EricDalquist> other than trimming whitespace
[09:55:04 EST(-0500)] <EricDalquist> since they are usually referencing global vars or keys which can't be renamed
[09:56:02 EST(-0500)] <athena> true
[09:56:29 EST(-0500)] <athena> so when this is finished it might be worth giving fluid a heads up
[09:56:40 EST(-0500)] <EricDalquist> yeah
[09:56:40 EST(-0500)] <athena> don't know if it would be interesting w/ anything they're doing
[10:02:09 EST(-0500)] <athena> you have any thoughts about the channel category permissions?
[10:02:29 EST(-0500)] <EricDalquist> still catching up on email
[10:02:59 EST(-0500)] <athena> (smile)
[10:03:11 EST(-0500)] * athena is feeling behind this morning
[10:09:51 EST(-0500)] <athena> by the way EricDalquist, i'm wondering if we need to create a new "deleted" flag in the channel table
[10:10:04 EST(-0500)] <athena> i'm not sure if we want to do that, or actually just delete channels from the table entirely
[10:10:06 EST(-0500)] <EricDalquist> or does deleting actually delete them
[10:10:18 EST(-0500)] <EricDalquist> which may be a good idea
[10:10:21 EST(-0500)] <athena> yeah
[10:10:25 EST(-0500)] <athena> originally i was just going to do that
[10:10:28 EST(-0500)] <EricDalquist> as long as the delete has a decent warning
[10:10:42 EST(-0500)] <athena> although that'll mean that anything that refers to it (like the stats table) loses its reference
[10:11:17 EST(-0500)] <EricDalquist> yup
[10:11:29 EST(-0500)] <EricDalquist> so we need to include that warning
[10:11:55 EST(-0500)] <athena> ok
[10:12:04 EST(-0500)] <athena> so we are ok with them being entirely deleted?
[10:12:34 EST(-0500)] <EricDalquist> something like "Deleting Foo Portlet will result in: -raw stats references not having a portlet to point to, -all user entered preferences will be deleted"
[10:12:49 EST(-0500)] <athena> ok
[10:13:02 EST(-0500)] <athena> there's already a spot for that warning
[10:13:06 EST(-0500)] <athena> so that should be no problem
[10:16:07 EST(-0500)] * lennard1 (n=sparhk@72.215.204.133) has joined ##uportal
[10:48:17 EST(-0500)] * jessm (n=Jess@c-71-232-1-65.hsd1.ma.comcast.net) has joined ##uportal
[11:03:23 EST(-0500)] * colinclark (n=colin@142.150.154.101) has joined ##uportal
[11:33:18 EST(-0500)] * jessm (n=Jess@c-71-232-1-65.hsd1.ma.comcast.net) has joined ##uportal
[12:06:08 EST(-0500)] * Sememmon (n=Sememmon@unaffiliated/sememmon) has joined ##uportal
[13:04:45 EST(-0500)] * athena (n=athena@adsl-75-58-127-15.dsl.wlfrct.sbcglobal.net) has joined ##uportal
[15:05:28 EST(-0500)] * colinclark (n=colin@142.150.154.101) has joined ##uportal
[15:41:17 EST(-0500)] <athena> if only it was possible to undrink coffee
[15:41:31 EST(-0500)] <EricDalquist> lol
[15:41:34 EST(-0500)] <EricDalquist> too much caff?
[15:41:38 EST(-0500)] <athena> i . . . think so
[15:41:54 EST(-0500)] <athena> or not enough food
[15:41:59 EST(-0500)] <athena> or something.
[16:10:05 EST(-0500)] <athena> hey EricDalquist do you have opinions on putting up those screencasts?
[16:29:14 EST(-0500)] <athena> ok!
[16:29:20 EST(-0500)] <athena> EricDalquist: http://www.youtube.com/watch?v=HKrzoXouNSs
[16:29:48 EST(-0500)] <EricDalquist> neat (smile)
[16:29:57 EST(-0500)] <EricDalquist> and I have a mobile computing meeting on Friday
[16:29:59 EST(-0500)] <EricDalquist> very good timing
[16:30:39 EST(-0500)] <athena> lol
[16:30:40 EST(-0500)] <athena> sounds good
[16:40:48 EST(-0500)] <athena> what's wisconsin looking to do with mobile devices?
[17:53:58 EST(-0500)] * michelled (n=michelle@CPE001310472ade-CM0011aefd3ca8.cpe.net.cable.rogers.com) has joined ##uportal
[19:18:32 EST(-0500)] * lennard1 (n=sparhk@72.215.204.133) has left ##uportal
[19:40:58 EST(-0500)] * Sememmon (n=Sememmon@unaffiliated/sememmon) has joined ##uportal
[20:16:53 EST(-0500)] * Sememmon (n=Sememmon@unaffiliated/sememmon) has joined ##uportal