Re: [XMLPipeDB-developer] GenMAPP multitaxon support - CMSI 486T
Brought to you by:
kdahlquist,
zugzugglug
|
From: Richard B. <rbr...@gm...> - 2011-08-01 18:37:57
|
ditto
On Mon, Aug 1, 2011 at 11:13 AM, Kam Dahlquist <kda...@lm...> wrote:
> Hi,
>
> That works for me. Talk to you tomorrow,
> Kam
>
>
> At 11:04 AM 8/1/2011, you wrote:
>
> Greetings,
>
> No worries...for this week the best day turned out to be Tuesday; hope that
> works well for you also. So, tomorrow at 9am unless setting else comes up.
>
> John David N. Dionisio, PhD
> Associate Professor, Computer Science
> Loyola Marymount University
>
>
> On Aug 1, 2011, at 10:46 AM, Kam Dahlquist <kda...@lm...> wrote:
>
> Hi,
>
> I'm so sorry, I was on my "staycation" last week and just completely forgot
> about our scheduled phone call.
>
> I'm back in the office--what are the plans for this week's call?
>
> Thanks,
> Kam
>
> At 08:30 AM 7/28/2011, you wrote:
>
> yes fri works for me. thank you!
>
> richard
>
> On Wed, Jul 27, 2011 at 9:42 PM, John David N. Dionisio <do...@lm...>
> wrote: Greetings,
> 3pm Thursday won't work for me unfortunately. How about 9am Friday? I
> can't stay too long even then but it will still be better than not talking
> at all.
>
> John David N. Dionisio, PhD Associate Professor, Computer Science Loyola
> Marymount University
>
> On Jul 27, 2011, at 7:42 PM, Richard Brous <rbr...@gm...> wrote:
>
> Hi all, Sorry to fall out of touch but with finals and papers due this
> week and and my mother in law back in the hospital, I'm about at my wits
> end. That said, I was wondering if we could move our con call to
> tomorrow afternoon if possible instead of 9am? ... Say 3pm 'ish? I don't
> want to miss it as I would like to discuss a few things but I just can't
> make it at 9am and then rushing to a 10am final exam. Sorry for the late
> notice but I hope you both understand... smc classes will be over tomorrow
> and I can focus much, much more on this afterwards. Richard
> On Wed, Jul 20, 2011 at 10:38 PM, John David N. Dionisio <do...@lm...>
> wrote: Hi Rich,
> Congratulations! Welcome to the world of Swing GUI programming :) It has
> its share of tics and idiosyncrasies, but with some practice one gets the
> hang of it.
> I've reviewed your new code and have interspersed commentary in the context
> of your notes below. We don't have a lot of time tomorrow, so perhaps pick
> and choose the ones that you feel will benefit the most from synchronous
> discussion.
> John David N. Dionisio, PhD Associate Professor, Computer Science Loyola
> Marymount University
>
> On Jul 20, 2011, at 9:22 PM, Richard Brous wrote:
> > Hallelujah!!! - a list box with multiple species of which any combination
> can be selected now exists!!! Thanks Dondi!! (see attachment) > > > OK,
> had a chance to review the code corrections, other comments and think on the
> next steps surrounding the selection of multiple species and their dynamic
> text updating. Here is where I am at the moment: > > A. Dondis
> corrections/additions to my last submission > > 1. Creating a private
> class called SpeciesListModel which extended AbstractListModel > > As soon
> as I saw your code I realized that I had sort of coded it backwards,
> thinking about implementing an interface instead of just extending the
> abstract object and adding methods... duh. My face turned a bit red on that
> one. > > The idea still of creating a list model to manage the entries in
> the JList still seems a bit complicated and foreign but I guess the more I
> work with the java ui stuff, the better I will become with it.
>
> Yes, it can be unwieldy in simple cases (like this one) and can sometimes
> result in repetitive code. However, it is very flexible and truly
> encapsulates the list data from the list presentation (for example, with
> this approach, you can even create a ListModel that does not have a data
> structure behind it; or perhaps one that queries for the list contents
> dynamically).
> > Additionally I did attempt to add a new method under this class called
> clearSpeciesProfiles. This was meant to clear the JList of all species found
> each time the export1 panel was opened instead of aggregating the species in
> the list. It doesn't seem to be working though so I commented it out for
> now. Please let me know if I'm adding this functionality in the wrong way
> and/or in the incorrect location.
> A couple of notes on this one. Observe how setSpeciesProfile *replaces*
> the list of species profiles returned by the list model, and does not add to
> it. Thus, I do not think that the duplication occurs at this level --- I
> believe it occurs at the UniProtDatabaseProfile.checkRequirements method.
> Follow the code from GenMAPPBuilder.doExportToGenMAPP and see if you spot
> the issue. Remember that the symptom occurs when one tries to export more
> than once. Thus, see what the code does to the relevant data structures
> when GenMAPPBuilder.doExportToGenMAPP is called more than once.
> > 2. SpringLayout > > I took a look at the website and got a feel for how
> to adjust panel component locations. Seems like I can use those commands to
> make the adjustment to the species label that you mentioned in comments. >
> > Interesting how the leftPanel uses SpringUtilities.makeCompactGrid while
> the rightPanel uses GridLayout... didn't realize you could combine both
> kinds on content panel.
> Yes, this is the power and complexity of Swing layout management --- you
> can nest them as much as you like, and mix and match them as much as you
> like. Powerful and flexible, yes; potentially complicated, yes also.
> > B. further UI enhancements: > > 1. I dug into export1 design in regard
> to the text description areas of both the Database and Species profiles.
> They are both JTextAreas(3, 15) where 3 denotes rows and 15 denotes columns.
> I changed both fields to be editable and compiled just so I could see how
> big each text field really is. I was able to type in 23 characters across
> and 7 rows downward until the next row was cutoff by the bottom edge of the
> box. I also changed the row and column arguments to JTextAreas(2, 15) and
> JTextAreas(3, 10) and recompiled but didn't see any change in the volume of
> text I could enter... must not understand it completely... are the arguments
> only to manage components placed within the textArea maybe while loose text
> just starts top left and word/line wraps? > > My reason for fooling with
> this was to see what would happen of course but really I had the idea that I
> would shrink the size of the database profileDescriptiontextArea to allow
> for a larger speciesDescriptionTextArea below it. Also I had been thinking
> of how to represent the species and its associated custom or default species
> profile in a way that made the most sense. The species names are pretty long
> so was going to suggest to simply use taxon id, profile type (custom or
> default) since the user could cross reference in the JList just to the left.
>
> This issue rests in some of the tricks behind Swing layout management.
> Unlike conventional GUI design, where components are given fixed, absolute
> coordinates and sizes, Swing tries to "compute" the layout dynamically,
> based on a combination of rules, "preferred sizes," and min/max sizes. The
> exact algorithm for determining the final layout is placed in the
> LayoutManager class. The row/column settings given to JTextArea typically
> pertain to *preferred* sizing, not final sizing. As in, the JTextArea
> "asks" its containing panel that "if possible, I prefer to have this many
> rows and columns." The rule of thumb is that a layout manager tries to give
> its components their preferred sizes *or greater*, if available (the idea
> being that most UI components wouldn't mind getting more space than they
> originally asked for).
> To exercise greater control over this, you'll need to get a better handle
> on the behavior or the various layout managers. Certain layout managers
> *do* cap a UI component's size to no greater than its preference. This
> takes some practice, however, and some familiarity with the layout manager
> "zoo." My suggestion: let's leave well enough alone here for now, get the
> functionality done first, then come back to this later.
> > 2. Dynamic insertion of desired species info into the
> speciesDescriptionTextArea > > In thinking of how to solve this I went
> back to code I had commented out in my last submission - the protected
> method which detected a change in species choice occurred within the
> JComboBox: speciesProfileSelected( Object selectedItem ) {
> Yes, the fundamental change that you are making now is that *more than one
> species profile may be active*. What you need to do, then, is to maintain
> the selected species profiles as a collection, and not as a single value.
> Then, all the code that used to assume that only a species profile gets
> selected need to be modified so that they can accommodate a collection of
> species profiles. Cases in point...
> > I had been struggling with what that method really should be doing now
> that we have a JList where multiple species could be selected. And after
> some review and then walking away from it for a few, I think it only needs
> to handle two things: > a. ensure that all the selected species are added
> to the export dataset. (We then modify the export process itself to account
> for and properly process multiple species.)
> ...This is the fundamental change that dominoes through the rest of the
> export code. Instead of holding on to a single selected species profile,
> you need to maintain a collection of them. Also...
> > b. use the selected indices to populate/depopulate the
> speciesDescriptionTextArea dynamically as a selection/deselection is made
> within the JList. > I have some ideas but would like to talk them through
> on the call tomorrow. I'll also submit my latest pass on the code for
> review.
> ...This part requires some rewriting so that the generated descriptive text
> can accommodate a collection of species profiles. The message generation
> thus gets a little more complicated. But it's just additional logic,
> iterating through the species profiles and incrementally appending a message
> string until you've gone through all of the selected profiles. e.g., "This
> export will use a customized profile for S. typhimurium, a general-purpose
> profile for B. anthracis, and a customized species profile for H. pylori."
> Hope you can see how that string can be computed via iteration through a
> species profile collection.
>
> OK, that would be my 2 cents...let's see what needs live discussion
> tomorrow morning.
> > Richard > > > > On Wed, Jul 20, 2011 at 9:00 AM, John David N. Dionisio
> <do...@lm...> wrote: > Sounds good, talk to everyone Thursday 9am then
> :) > > John David N. Dionisio, PhD > Associate Professor, Computer Science
> > Loyola Marymount University > > > On Jul 20, 2011, at 8:47 AM, Kam
> Dahlquist <kda...@lm...> wrote: > > > Hi, > > > > I'm OK for
> Thursday, too. Sorry, I don't generally check my e-mail > > at night.
> Hope everything is OK. In the future, don't hesitate to > > move things
> if I'm not responding, I'll catch up eventually :) > > > > Best, > > Kam >
> > > > At 08:29 AM 7/20/2011, John David N. Dionisio wrote: > >> OK,
> acknowledged. Take care. > >> > >> John David N. Dionisio, PhD > >>
> Associate Professor, Computer Science > >> Loyola Marymount University >
> >> > >> > >> > >> On Jul 20, 2011, at 8:25 AM, Richard Brous wrote: > >> >
> >>> OK, I am forced to push to tomorrow now because our nanny is > >>
> stuck in traffic, christina is back at the hospital and I have to > >>
> drive my boys to MDR for their camp. > >>> > >>> I'm sorry this is so
> crazy but all is upside down atm. > >>> > >>> I already have a bunch of
> questions which I will lay out via > >> email since they are more high
> level than can be placed in code > >> comments... at least I think so atm.
> > >>> > >>> Either way come hell or high-water I'll get another iteration
> on > >> this prior to a call. > >>> > >>> rb > >>> > >>> On Tue, Jul 19,
> 2011 at 11:21 PM, John David N. Dionisio > >> <do...@lm...> wrote: > >>>
> Hi Rich, > >>> > >>> Sorry to hear about your mother-in-law. Hospital
> wait states are > >> never fun. > >>> > >>> I can do Thursday morning at
> 9am if needed. Let's watch the > >> e-mail in the morning to see if Kam
> can do that too; if so, then > >> Thursday it is, but if not, then we can
> still push for Wednesday 9am. > >>> > >>> John David N. Dionisio, PhD >
> >>> Associate Professor, Computer Science > >>> Loyola Marymount
> University > >>> > >>> > >>> > >>> On Jul 19, 2011, at 10:26 PM, Richard
> Brous wrote: > >>> > >>>> ok, can't get a break... sitting in the ER after
> admitting my > >> mother in law at St. Johns in Santa Monica. We are
> waiting to get > >> her a bed but not sure how long it will take. > >>>> >
> >>>> Luckily I have my laptop with me so I was able to scan the new > >>
> code with all the Dondi comments and compile a build which runs. I > >>
> will review Dondi's changes as best I can from here but likely > >> won't
> be able to do much with it by our call tomorrow. > >>>> > >>>> I'm happy
> to push our call to Thursday morning instead of > >> tomorrow to allow
> more time... but it is late so unless I hear > >> otherwise, tomorrow at
> 9am is still a go. > >>>> > >>>> Richard > >>>> > >>>> On Tue, Jul 19,
> 2011 at 3:00 PM, Richard Brous > >> <rbr...@gm...> wrote: > >>>>
> Thanks will review later this afternoon. Sorry got hung up on > >> this
> but continuing forward comments in code should speed this way up. > >>>> >
> >>>> Rb > >>>> > >>>> Sent from my iPhone > >>>> > >>>> On Jul 19, 2011,
> at 12:04 AM, "John David N. Dionisio" > >> <do...@lm...> wrote: > >>>> >
> >>>>> Greetings, > >>>>> > >>>>> OK, my responses are committed. As noted
> in my "Dondi -" > >> comments, you were fairly close. The main miss was
> how > >> AbstractListModel was to be used. Give it a gander and holler if
> > >> anything else remains unclear. > >>>>> > >>>>> At this point, you'll
> need to start managing what should > >> happen as the user
> selects/deselects species. You'll also want > >> that little
> informational panel on the right that summarizes (for > >> tech types)
> whether the selected species will be using a customized > >> species
> profile or the generic one. > >>>>> > >>>>> Carry on, see how this goes.
> :) > >>>>> > >>>>> John David N. Dionisio, PhD > >>>>> Associate
> Professor, Computer Science > >>>>> Loyola Marymount University > >>>>> >
> >>>>> > >>>>> On Jul 18, 2011, at 10:14 AM, Richard Brous wrote: > >>>>> >
> >>>>>> Ok , took the code as far as I could and submitted export 1 > >> -
> unfortunately broken code even though I made a point not to by > >>
> commenting out unfinished blocks. Take a look at the commit comments for
> info. > >>>>>> > >>>>>> I look forward to your comments which I'm sure
> will help > >> straighten this out! > >>>>>> > >>>>>> Rb > >>>>>> > >>>>>>
> Sent from my iPhone > >>>>>> > >>>>>> On Jul 12, 2011, at 6:35 PM, "John
> David N. Dionisio" > >> <do...@lm...> wrote: > >>>>>> > >>>>>>> Hi
> there, > >>>>>>> > >>>>>>> A code-oriented session is OK with me, though
> this > >> particular question I can take a stab at via e-mail. > >>>>>>> >
> >>>>>>> The trick with full control of a JList is to implement its > >>
> model (a ListModel). For this, I usually create a subclass of > >>
> AbstractListModel and implement the missing methods. This > >>
> AbstractListModel subclass should be able to see the list of > >> species
> found. Then, the implementations of its missing methods > >> would be
> based on that list of species. > >>>>>>> > >>>>>>> With this ListModel
> class in hand, keeping the JList up to > >> date is a matter of
> instantiating the JList with this model: > >>>>>>> > >>>>>>>
> SpeciesListModel speciesListModel = new SpeciesListModel(); > >>>>>>>
> speciesCheckList = new JList(speciesListModel); > >>>>>>> > >>>>>>> If the
> species list changes, have the species list model > >> fire the
> appropriate list change event (the JavaDoc API has a bunch > >> of fire*
> methods). To keep things simple, there is a "full update" > >> event
> which just says "rebuild the entire JList." That one should > >> be OK.
> There are finer-grained ones like "something got inserted" > >> and
> "something got removed," but that really is more for optimization purposes. >
> >>>>>>> > >>>>>>> As for the text display, the simplest approach is to >
> >> implement the toString method of the SpeciesProfile class so that > >>
> they return something that is appropriate for a JList. Sometimes > >>
> that is too limiting though. If you want greater flexibility, you > >>
> will want to implement a ListCellRenderer. There is a class called > >>
> DefaultListCellRenderer that you can extend. Typically the > >> subclass
> would call the superclass's method, which returns a > >> JLabel. You can
> then change the content of the JLabel according to > >> the list item that
> you are trying to display. > >>>>>>> > >>>>>>> See if these leads are
> enough to go on. If not, I can talk > >> you through them more during the
> call. > >>>>>>> > >>>>>>> John David N. Dionisio, PhD > >>>>>>> Associate
> Professor, Computer Science > >>>>>>> Loyola Marymount University >
> >>>>>>> > >>>>>>> > >>>>>>> On Jul 12, 2011, at 6:00 PM, Richard Brous
> wrote: > >>>>>>> > >>>>>>>> Update for tomorrow 7/13/11: > >>>>>>>> >
> >>>>>>>> Clear on what I need to do but can't seem to figure out a > >>
> way to do it. I think the best use of our time tomorrow is to make > >> it
> a code discussion session (giving Dr. Dahlquist the opportunity > >> to
> bow out if so inclined) > >>>>>>>> > >>>>>>>> 1. In regard to the JList, I
> have been working on the best > >> way to implement it but am getting
> stuck on how to populate it and > >> where to do so in the code. >
> >>>>>>>> > >>>>>>>> I'm currently working in ExportPanel1.java and have
> done > >> the following so far: > >>>>>>>> > >>>>>>>> imported JList; >
> >>>>>>>> imported javax.swing.event.*; > >>>>>>>> > >>>>>>>> > >>>>>>>>
> public class ExportPanel1 extends JPanel { > >>>>>>>> added: private JList
> speciesCheckList; > >>>>>>>> > >>>>>>>> private JPanel getContentPanel ()
> { > >>>>>>>> underneath the species combo box entry // species | > >>
> JComboBox | speciesFound |JLabel | Description | ... > >>>>>>>> > >>>>>>>>
> added: speciesCheckList = new JList ( speciesProfilesFound ); > >>>>>>>> >
> >>>>>>>> // registered the listeners > >>>>>>>>
> speciesCheckList.addListSelectionListener ( new > >> ListSelectionListener
> () { > >>>>>>>> // handle list selection > >>>>>>>> public void
> valueChanged ( ListSelectionEvent e ) { > >>>>>>>> // get selected indices
> > >>>>>>>> int [] indices = speciesCheckList.getSelectedIndices (); >
> >>>>>>>> } > >>>>>>>> }); > >>>>>>>> > >>>>>>>> added: //leftPanel.add (
> speciesComboBox ); > >>>>>>>> leftPanel.add ( speciesCheckList ); >
> >>>>>>>> > >>>>>>>> The real issue here is how to populate the JList... I
> took > >> a look at the constructors but can't determine a way to populate
> it > >> after instantiation... maybe using abstract class somehow? >
> >>>>>>>> > >>>>>>>> So instead I have been working to add the > >>
> speciesProfilesFound [] ArrayList as a constructor argument. Then I > >>
> can pre-populate it prior to the contentPanel being > >> initialized???...
> or possibly similar to the init() method which > >> pre-populates the
> Database profileComboBox? > >>>>>>>> > >>>>>>>> Once the initital
> population of the JList is done we can > >> modify it for the later
> methods which dynamically alter content in > >> databaseProfileSelected()
> and speciesProfileSelected(). This will > >> effect the
> selectedSpeciesProfile() method usage and its getter and setter. >
> >>>>>>>> > >>>>>>>> Also we can then work on the text indication which >
> >> dynamically shows the selected species and whether a custom or > >>
> generic profile has been associated. > >>>>>>>> > >>>>>>>> Dondi - I'm
> looking forward to your suggestions and assistance!!! > >>>>>>>> >
> >>>>>>>> Richard > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> On Wed, Jul
> 6, 2011 at 10:58 PM, John David N. Dionisio > >> <do...@lm...> wrote: >
> >>>>>>>> Hi Rich, > >>>>>>>> > >>>>>>>> OK, thanks for the discussion
> setup. We'll work through > >> this during the call. > >>>>>>>> >
> >>>>>>>> John David N. Dionisio, PhD > >>>>>>>> Associate Professor,
> Computer Science > >>>>>>>> Loyola Marymount University > >>>>>>>> >
> >>>>>>>> > >>>>>>>> > >>>>>>>> On Jul 6, 2011, at 7:37 PM, Richard Brous
> wrote: > >>>>>>>> > >>>>>>>>> Update on status: > >>>>>>>>> > >>>>>>>>>
> Over the past two weeks I have spent time doing the following: > >>>>>>>>>
> > >>>>>>>>> 1. Reviewed the taxon id code changes which Don Murphy > >>
> coded and were merged to create version 2.0 b64 > >>>>>>>>> 2. Reviewed
> the UniprotDatabaseProfile, > >> UniprotSpeciesProfile, SpeciesProfile,
> Profile and DatabaseProfile files > >>>>>>>>> 3. Reviewed and discussed
> the process by which GenMAPP > >> matches single taxon ids found in a
> Postgres db with the known > >> species profiles. > >>>>>>>>> > >>>>>>>>>
> Current actions: > >>>>>>>>> > >>>>>>>>> During the last few days I have
> started coding in the > >> ability for the species matching functionality
> to surface multiple > >> taxon ids from within a Postgres db. > >>>>>>>>> >
> >>>>>>>>> The process being the following steps: > >>>>>>>>> > >>>>>>>>>
> 1. Grab all the taxon ids from the Postgres db > >>>>>>>>> The current
> iteration of the software already does this. > >> In the checkRequirements
> method in UniprotDatabaseProfile.java, a > >> query of the Postgres db
> acquires all taxon id's and stores them in > >> ResultSet result variable.
> > >>>>>>>>> > >>>>>>>>> 2. Check to find match between the taxon ids from >
> >> Postgres against existing species profiles for known species. >
> >>>>>>>>> > >>>>>>>>> The current iteration compares each taxon id in
> ResultSet > >> result variable. > >>>>>>>>> First taxon id from result: >
> >>>>>>>>> If match was found, then that species profile with > >>
> associated taxon id was added to the speciesProfilesFound arraylist. >
> >>>>>>>>> If no match was found, a generic species profile > >> associated
> with the current taxon id was added to the > >> speciesProfilesFound
> arraylist. > >>>>>>>>> > >>>>>>>>> Next taxon id from result > >>>>>>>>>
> If match was found, then that species profile with > >> associated taxon
> id was added to the speciesProfilesFound arraylist. > >>>>>>>>> If no
> match was found, a generic species profile > >> associated with the
> current taxon id was added to the > >> speciesProfilesFound arraylist. >
> >>>>>>>>> > >>>>>>>>> Repeat until no more taxon ids are found in
> ResultSet > >> result variable. > >>>>>>>>> > >>>>>>>>> 3. Replace the
> JComboBox with a JList to allow the user > >> to choose a selection of
> multiple species to export. > >>>>>>>>> > >>>>>>>>> Use the
> getSelectedIndices method for JList to determine > >> which species have
> been selected for export. > >>>>>>>>> > >>>>>>>>> 4. Modify the export
> process to run a pass for each > >> species selected to generate a
> multispecies gdb. > >>>>>>>>> details to be determined. > >>>>>>>>> >
> >>>>>>>>> > >>
> -----------------------------------------------------------------------------------------------------------------------------------------------------------
> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> Discussion for tomorrows call: >
> >>>>>>>>> > >>>>>>>>> > >>>>>>>>> We previously discussed allowing user
> input to manually > >> add taxon ids and associate them to the generic
> profile. > >>>>>>>>> > >>>>>>>>> Unless I don't really understand the
> reasoning behind > >> this, it seems to me that it is unnecessary. Why
> would we add a > >> taxon id during the export process that isn't already
> in the Postgres data? > >>>>>>>>> > >>>>>>>>> The current implementation
> already captures every taxon > >> id in speciesProfilesFound regardless if
> its a known species or > >> not. So it seems that we don't need to make
> any modifications in > >> surfacing taxon ids from a Postgres db. >
> >>>>>>>>> > >>>>>>>>> Then we can go directly to #3 above which I have
> mostly > >> coded, but can't seem to figure out how and where to populate
> the > >> JList. In reviewing constructor documentation it indicates 4 ways
> > >> to instantiate. > >>>>>>>>> > >>>>>>>>> My first choice was to create
> an empty JList [ JList () ] > >> and populate it later but I don't see a
> method to do so such as > >> addItems or something similar. > >>>>>>>>> >
> >>>>>>>>> I then tried to instantiate with speciesProfileFound as > >> an
> array argument: JList ( SpeciesProfile[] speciesProfilesFound ) > >> but
> can't resolve. > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> Anyway, I look forward
> to our call at 9am tomorrow. > >>>>>>>>> > >>>>>>>>> Richard > >>>>>>>>>
> <ATT00001..txt><ATT00002..txt> > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>
> ------------------------------------------------------------------------------
> > >>>>>>>> All of the data generated in your IT infrastructure is > >>
> seriously valuable. > >>>>>>>> Why? It contains a definitive record of
> application > >> performance, security > >>>>>>>> threats, fraudulent
> activity, and more. Splunk takes this > >> data and makes > >>>>>>>> sense
> of it. IT sense. And common sense. > >>>>>>>>
> http://p.sf.net/sfu/splunk-d2d-c2 > >>>>>>>>
> _______________________________________________ > >>>>>>>>
> xmlpipedb-developer mailing list > >>>>>>>>
> xml...@li... > >>>>>>>>
> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer >
> >>>>>>>> > >>>>>>>> <ATT00001..txt><ATT00002..txt> > >>>>>>> > >>>>>>> >
> >>>>>>> > >>
> ------------------------------------------------------------------------------
> > >>>>>>> AppSumo Presents a FREE Video for the SourceForge Community by
> Eric > >>>>>>> Ries, the creator of the Lean Startup Methodology on "Lean
> Startup > >>>>>>> Secrets Revealed." This video shows you how to validate
> your ideas, > >>>>>>> optimize your ideas and identify your business
> strategy. > >>>>>>> http://p.sf.net/sfu/appsumosfdev2dev > >>>>>>>
> _______________________________________________ > >>>>>>>
> xmlpipedb-developer mailing list > >>>>>>>
> xml...@li... > >>>>>>>
> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer > >>>>>> >
> >>>>>> > >>
> ------------------------------------------------------------------------------
> > >>>>>> AppSumo Presents a FREE Video for the SourceForge Community by
> Eric > >>>>>> Ries, the creator of the Lean Startup Methodology on "Lean
> Startup > >>>>>> Secrets Revealed." This video shows you how to validate
> your ideas, > >>>>>> optimize your ideas and identify your business
> strategy. > >>>>>> http://p.sf.net/sfu/appsumosfdev2dev > >>>>>>
> _______________________________________________ > >>>>>>
> xmlpipedb-developer mailing list > >>>>>>
> xml...@li... > >>>>>>
> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer > >>>>> >
> >>>>> > >>>>> > >>
> ------------------------------------------------------------------------------
> > >>>>> Magic Quadrant for Content-Aware Data Loss Prevention > >>>>>
> Research study explores the data loss prevention market. > >> Includes
> in-depth > >>>>> analysis on the changes within the DLP market, and the
> criteria used to > >>>>> evaluate the strengths and weaknesses of these
> DLP solutions. > >>>>> http://www.accelacomm.com/jaw/sfnl/114/51385063/ >
> >>>>> _______________________________________________ > >>>>>
> xmlpipedb-developer mailing list > >>>>>
> xml...@li... > >>>>>
> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer > >>>> >
> >>>> <ATT00001..txt><ATT00002..txt> > >>> > >>> > >>> > >>
> ------------------------------------------------------------------------------
> > >>> 10 Tips for Better Web Security > >>> Learn 10 ways to better secure
> your business today. Topics covered include: > >>> Web security, SSL,
> hacker attacks & Denial of Service (DoS), private keys, > >>> security
> Microsoft Exchange, secure Instant Messaging, and much more. > >>>
> http://www.accelacomm.com/jaw/sfnl/114/51426210/ > >>>
> _______________________________________________ > >>> xmlpipedb-developer
> mailing list > >>> xml...@li... > >>>
> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer > >>> >
> >>> <ATT00001..txt><ATT00002..txt> > >> > >> > >>
> ------------------------------------------------------------------------------
> > >> 10 Tips for Better Web Security > >> Learn 10 ways to better secure
> your business today. Topics covered include: > >> Web security, SSL,
> hacker attacks & Denial of Service (DoS), private keys, > >> security
> Microsoft Exchange, secure Instant Messaging, and much more. > >>
> http://www.accelacomm.com/jaw/sfnl/114/51426210/ > >>
> _______________________________________________ > >> xmlpipedb-developer
> mailing list > >> xml...@li... > >>
> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer > > > > >
> >
> ------------------------------------------------------------------------------
> > > 10 Tips for Better Web Security > > Learn 10 ways to better secure
> your business today. Topics covered include: > > Web security, SSL, hacker
> attacks & Denial of Service (DoS), private keys, > > security Microsoft
> Exchange, secure Instant Messaging, and much more. > >
> http://www.accelacomm.com/jaw/sfnl/114/51426210/ > >
> _______________________________________________ > > xmlpipedb-developer
> mailing list > > xml...@li... > >
> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer > >
> ------------------------------------------------------------------------------
> > 10 Tips for Better Web Security > Learn 10 ways to better secure your
> business today. Topics covered include: > Web security, SSL, hacker
> attacks & Denial of Service (DoS), private keys, > security Microsoft
> Exchange, secure Instant Messaging, and much more. >
> http://www.accelacomm.com/jaw/sfnl/114/51426210/ >
> _______________________________________________ > xmlpipedb-developer
> mailing list > xml...@li... >
> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer > >
> <export1-crop.jpg><ATT00001..txt><ATT00002..txt>
>
> ------------------------------------------------------------------------------
> 5 Ways to Improve & Secure Unified Communications Unified Communications
> promises greater efficiencies for business. UC can improve internal
> communications as well as offer faster, more efficient ways to interact
> with customers and streamline customer service. Learn more!
> http://www.accelacomm.com/jaw/sfnl/114/51426253/ _______________________________________________
> xmlpipedb-developer mailing list xml...@li...
> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer
>
>
> ------------------------------------------------------------------------------
> Got Input? Slashdot Needs You. Take our quick survey online. Come on,
> we don't ask for help often. Plus, you'll get a chance to win $100 to
> spend on ThinkGeek. http://p.sf.net/sfu/slashdot-survey _______________________________________________
> xmlpipedb-developer mailing list xml...@li...
> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer
>
> ------------------------------------------------------------------------------
> Got Input? Slashdot Needs You. Take our quick survey online. Come on,
> we don't ask for help often. Plus, you'll get a chance to win $100 to
> spend on ThinkGeek. http://p.sf.net/sfu/slashdot-survey _______________________________________________
> xmlpipedb-developer mailing list xml...@li...
> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer
>
>
>
> ------------------------------------------------------------------------------
> BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA
> The must-attend event for mobile developers. Connect with experts.
> Get tools for creating Super Apps. See the latest technologies.
> Sessions, hands-on labs, demos & much more. Register early & save!
> http://p.sf.net/sfu/rim-blackberry-1
> _______________________________________________
> xmlpipedb-developer mailing list
> xml...@li...
> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer
>
>
>
>
> ------------------------------------------------------------------------------
> BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA
> The must-attend event for mobile developers. Connect with experts.
> Get tools for creating Super Apps. See the latest technologies.
> Sessions, hands-on labs, demos & much more. Register early & save!
> http://p.sf.net/sfu/rim-blackberry-1
> _______________________________________________
> xmlpipedb-developer mailing list
> xml...@li...
> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer
>
>
|