From me at heyjay.com Mon Jun 1 10:14:02 2009 From: me at heyjay.com (Jay Strauss) Date: Mon, 1 Jun 2009 12:14:02 -0500 Subject: [Chicago-talk] New system architecture Message-ID: <39eaccc10906011014n138593b1ne81deab3a53f5e07@mail.gmail.com> Hi all, need some advice. I want to build a new system. My bro and I have a small equity/options trading application. We cobbled it together in Perl and Oracle years ago. Things have broken, some of the stuff we want to change. Ultimately we want to start over. I'm just trying to decide on what architecture to use going forward. I know this is a pretty wide question. Most (all) of the processes will run on a single box. I don't really have an idea of which presentation route we'll go (full rich client maybe using Java/Swing, maybe a Java Script client using GWT, maybe plain HTML). The client will probably request functionality from the server. I was thinking we'd do the whole API for asking for quotes, requesting analytics, inserting transactins... via HTTP (SOAP). Can anyone give me their thoughts on their lessons learned, maybe routes to try, stuff I should be thinking of... (again I know this is pretty open ended, but I'm interested in what others have done with success) Thanks Jay From michael at potter.name Mon Jun 1 10:35:22 2009 From: michael at potter.name (Michael Potter) Date: Mon, 1 Jun 2009 12:35:22 -0500 Subject: [Chicago-talk] New system architecture In-Reply-To: <39eaccc10906011014n138593b1ne81deab3a53f5e07@mail.gmail.com> References: <39eaccc10906011014n138593b1ne81deab3a53f5e07@mail.gmail.com> Message-ID: <2379dacc0906011035y62853dfexe054481894a5c83b@mail.gmail.com> Jay, Here is my 2 cents: If you are intending to replace Perl with Java then consider Groovy instead of Java. Groovy has a lot of the benefits of Perl (Dynamic Language), but runs on the JVM and can interface with class files that were created with javac. Let us know what you decide. -- Michael Potter On Mon, Jun 1, 2009 at 12:14 PM, Jay Strauss wrote: > Hi all, need some advice. > > I want to build a new system. My bro and I have a small > equity/options trading application. We cobbled it together in Perl > and Oracle years ago. Things have broken, some of the stuff we want > to change. Ultimately we want to start over. > > I'm just trying to decide on what architecture to use going forward. > I know this is a pretty wide question. > > Most (all) of the processes will run on a single box. I don't really > have an idea of which presentation route we'll go (full rich client > maybe using Java/Swing, maybe a Java Script client using GWT, maybe > plain HTML). The client will probably request functionality from the > server. > > I was thinking we'd do the whole API for asking for quotes, requesting > analytics, inserting transactins... via HTTP (SOAP). > > Can anyone give me their thoughts on their lessons learned, maybe > routes to try, stuff I should be thinking of... > > (again I know this is pretty open ended, but I'm interested in what > others have done with success) > > Thanks > Jay > _______________________________________________ > Chicago-talk mailing list > Chicago-talk at pm.org > http://mail.pm.org/mailman/listinfo/chicago-talk > -------------- next part -------------- An HTML attachment was scrubbed... URL: From joel.limardo at forwardphase.com Mon Jun 1 10:37:52 2009 From: joel.limardo at forwardphase.com (Joel Limardo) Date: Mon, 1 Jun 2009 12:37:52 -0500 Subject: [Chicago-talk] New system architecture In-Reply-To: <39eaccc10906011014n138593b1ne81deab3a53f5e07@mail.gmail.com> References: <39eaccc10906011014n138593b1ne81deab3a53f5e07@mail.gmail.com> Message-ID: <001301c9e2df$b1dd1410$15973c30$@limardo@forwardphase.com> If this is an academic exercise please disregard the remainder of this e-mail. I don't suggest you write much more code unless you cannot get the prototype system that you currently have up and running. If you want to make money (which I suspect that you do) then your next set of requirements ought to come from the people who are going to pay you for use/access to your system. I suggest that you spend some time documenting the system you have now; fix its bugs; make some presentations and other materials and then take it out for a test drive with real or strongly representative users. Since there are many existing trading applications out there I suggest you focus on why yours shows promise and/or is different. From this collect usage data and complaints, classify them from High to Low (where "high" means "sure, I would pay for this damn software if only it did X") and then ask the question you just posed again armed with real metrics like the number of users your application will support; the amount of data it will need; how much data processing you expect it to perform; cost for operation; etc. There's an old Chinese proverb I go by which goes something like this -- when all doors are open, all doors are closed. I translate that to mean when all requirements are open you are likely to start spinning your wheels. I go to actual users and ask them what they want, which typically eliminates the problem entirely. That's my two cents. -----Original Message----- From: chicago-talk-bounces+joel.limardo=forwardphase.com at pm.org [mailto:chicago-talk-bounces+joel.limardo=forwardphase.com at pm.org] On Behalf Of Jay Strauss Sent: Monday, June 01, 2009 12:14 PM To: Chicago.pm chatter Subject: [Chicago-talk] New system architecture Hi all, need some advice. I want to build a new system. My bro and I have a small equity/options trading application. We cobbled it together in Perl and Oracle years ago. Things have broken, some of the stuff we want to change. Ultimately we want to start over. I'm just trying to decide on what architecture to use going forward. I know this is a pretty wide question. Most (all) of the processes will run on a single box. I don't really have an idea of which presentation route we'll go (full rich client maybe using Java/Swing, maybe a Java Script client using GWT, maybe plain HTML). The client will probably request functionality from the server. I was thinking we'd do the whole API for asking for quotes, requesting analytics, inserting transactins... via HTTP (SOAP). Can anyone give me their thoughts on their lessons learned, maybe routes to try, stuff I should be thinking of... (again I know this is pretty open ended, but I'm interested in what others have done with success) Thanks Jay _______________________________________________ Chicago-talk mailing list Chicago-talk at pm.org http://mail.pm.org/mailman/listinfo/chicago-talk From me at heyjay.com Mon Jun 1 11:24:37 2009 From: me at heyjay.com (Jay Strauss) Date: Mon, 1 Jun 2009 13:24:37 -0500 Subject: [Chicago-talk] New system architecture In-Reply-To: <5236007079323364169@unknownmsgid> References: <39eaccc10906011014n138593b1ne81deab3a53f5e07@mail.gmail.com> <5236007079323364169@unknownmsgid> Message-ID: <39eaccc10906011124h649c2bc5tb8fd6bea33fa7ce0@mail.gmail.com> Well, the users are really just me and my brother, so at least we can probably get access to them :) Yep there are a lot of trading apps out there, but most seem to do more stuff like technical indicators that you can build some sort of if-then-else on a bunch of indicators to give a trade signal. We are doing something a bit different, and have our money management routines. Most of our problems come from having switched brokerages (and thus our data gathering is now different), switching some of our accounting (making it simpler), and just not maintaining some of our stuff. Why fix when we can spend twice as much time re-writing :) On Mon, Jun 1, 2009 at 12:37 PM, Joel Limardo wrote: > If this is an academic exercise please disregard the remainder of this > e-mail. > > I don't suggest you write much more code unless you cannot get the prototype > system that you currently have up and running. If you want to make money > (which I suspect that you do) then your next set of requirements ought to > come from the people who are going to pay you for use/access to your system. > I suggest that you spend some time documenting the system you have now; fix > its bugs; make some presentations and other materials and then take it out > for a test drive with real or strongly representative users. Since there are > many existing trading applications out there I suggest you focus on why > yours shows promise and/or is different. From this collect usage data and > complaints, classify them from High to Low (where "high" means "sure, I > would pay for this damn software if only it did X") and then ask the > question you just posed again armed with real metrics like the number of > users your application will support; the amount of data it will need; how > much data processing you expect it to perform; cost for operation; etc. > > There's an old Chinese proverb I go by which goes something like this -- > when all doors are open, all doors are closed. I translate that to mean when > all requirements are open you are likely to start spinning your wheels. ?I > go to actual users and ask them what they want, which typically eliminates > the problem entirely. > > That's my two cents. > > -----Original Message----- > From: chicago-talk-bounces+joel.limardo=forwardphase.com at pm.org > [mailto:chicago-talk-bounces+joel.limardo=forwardphase.com at pm.org] On Behalf > Of Jay Strauss > Sent: Monday, June 01, 2009 12:14 PM > To: Chicago.pm chatter > Subject: [Chicago-talk] New system architecture > > Hi all, need some advice. > > I want to build a new system. ?My bro and I have a small > equity/options trading application. ?We cobbled it together in Perl > and Oracle years ago. ?Things have broken, some of the stuff we want > to change. ?Ultimately we want to start over. > > I'm just trying to decide on what architecture to use going forward. > I know this is a pretty wide question. > > Most (all) of the processes will run on a single box. ?I don't really > have an idea of which presentation route we'll go (full rich client > maybe using Java/Swing, maybe a Java Script client using GWT, maybe > plain HTML). ?The client will probably request functionality from the > server. > > I was thinking we'd do the whole API for asking for quotes, requesting > analytics, inserting transactins... ?via HTTP (SOAP). > > Can anyone give me their thoughts on their lessons learned, maybe > routes to try, stuff I should be thinking of... > > (again I know this is pretty open ended, but I'm interested in what > others have done with success) > > Thanks > Jay > _______________________________________________ > Chicago-talk mailing list > Chicago-talk at pm.org > http://mail.pm.org/mailman/listinfo/chicago-talk > > _______________________________________________ > Chicago-talk mailing list > Chicago-talk at pm.org > http://mail.pm.org/mailman/listinfo/chicago-talk > From merlyn at stonehenge.com Mon Jun 1 11:25:07 2009 From: merlyn at stonehenge.com (Randal L. Schwartz) Date: Mon, 01 Jun 2009 11:25:07 -0700 Subject: [Chicago-talk] New system architecture In-Reply-To: <39eaccc10906011014n138593b1ne81deab3a53f5e07@mail.gmail.com> (Jay Strauss's message of "Mon, 1 Jun 2009 12:14:02 -0500") References: <39eaccc10906011014n138593b1ne81deab3a53f5e07@mail.gmail.com> Message-ID: <86y6sbx14s.fsf@blue.stonehenge.com> >>>>> "Jay" == Jay Strauss writes: Jay> I want to build a new system. My bro and I have a small Jay> equity/options trading application. We cobbled it together in Perl Jay> and Oracle years ago. Things have broken, some of the stuff we want Jay> to change. Ultimately we want to start over. Smalltalk/Seaside, using GemStone/S for the storage. Once you learn how to avoid ORMs, you'll never look back. :) -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc. See http://methodsandmessages.vox.com/ for Smalltalk and Seaside discussion From me at heyjay.com Mon Jun 1 11:25:37 2009 From: me at heyjay.com (Jay Strauss) Date: Mon, 1 Jun 2009 13:25:37 -0500 Subject: [Chicago-talk] New system architecture In-Reply-To: <2379dacc0906011035y62853dfexe054481894a5c83b@mail.gmail.com> References: <39eaccc10906011014n138593b1ne81deab3a53f5e07@mail.gmail.com> <2379dacc0906011035y62853dfexe054481894a5c83b@mail.gmail.com> Message-ID: <39eaccc10906011125g2522102clddf5729c1c8821b3@mail.gmail.com> I don't think we've set upon Java or not. But I don't feel there is a good Perl rich GUI alternative (I know about wxperl, and am not in love) On Mon, Jun 1, 2009 at 12:35 PM, Michael Potter wrote: > Jay, > > Here is my 2 cents:? If you are intending to replace Perl with Java then > consider Groovy instead of Java.? Groovy has a lot of the benefits of Perl > (Dynamic Language), but runs on the JVM and can interface with class files > that were created with javac. > > Let us know what you decide. > -- > Michael Potter > > On Mon, Jun 1, 2009 at 12:14 PM, Jay Strauss wrote: >> >> Hi all, need some advice. >> >> I want to build a new system. ?My bro and I have a small >> equity/options trading application. ?We cobbled it together in Perl >> and Oracle years ago. ?Things have broken, some of the stuff we want >> to change. ?Ultimately we want to start over. >> >> I'm just trying to decide on what architecture to use going forward. >> I know this is a pretty wide question. >> >> Most (all) of the processes will run on a single box. ?I don't really >> have an idea of which presentation route we'll go (full rich client >> maybe using Java/Swing, maybe a Java Script client using GWT, maybe >> plain HTML). ?The client will probably request functionality from the >> server. >> >> I was thinking we'd do the whole API for asking for quotes, requesting >> analytics, inserting transactins... ?via HTTP (SOAP). >> >> Can anyone give me their thoughts on their lessons learned, maybe >> routes to try, stuff I should be thinking of... >> >> (again I know this is pretty open ended, but I'm interested in what >> others have done with success) >> >> Thanks >> Jay >> _______________________________________________ >> Chicago-talk mailing list >> Chicago-talk at pm.org >> http://mail.pm.org/mailman/listinfo/chicago-talk > > > _______________________________________________ > Chicago-talk mailing list > Chicago-talk at pm.org > http://mail.pm.org/mailman/listinfo/chicago-talk > From jason at hostedlabs.com Mon Jun 1 11:54:53 2009 From: jason at hostedlabs.com (Jason Rexilius) Date: Mon, 01 Jun 2009 13:54:53 -0500 Subject: [Chicago-talk] New system architecture In-Reply-To: <39eaccc10906011125g2522102clddf5729c1c8821b3@mail.gmail.com> References: <39eaccc10906011014n138593b1ne81deab3a53f5e07@mail.gmail.com> <2379dacc0906011035y62853dfexe054481894a5c83b@mail.gmail.com> <39eaccc10906011125g2522102clddf5729c1c8821b3@mail.gmail.com> Message-ID: <4A2423FD.9030408@hostedlabs.com> Sorry to chime in here late in the conversation. I was an architect at JP morgan for FX and fixed income web-based trading apps and some desktop apps so have a bit of experience in related fields. For fat client, I would suggest C++ if your desktop app needs good performance and Qt if your app needs good cross platform capability. If you do not need that level of performance I would jump all the way to the other end of the spectrum and look at Flex/Flash for fat-client-like capability or really well engineered AJAX interactivity (I built web-based FX trading apps using java, perl and javascript/HTML back in the day that moved very, very fast). Swing sux big time and you can get pretty close to its performance with well engineered flash client, particularly if the server component is local network. For server side, java is one choice, I think perl is still a strong candidate depending on _how_ you code. Python is also a strong candidate. If you are really looking to rock it hard, the best might be Erlang. But really it comes down to what language you are comfortable with. A good perl coder can build a faster app than a bad Java coder.. Me personally, unless you were doing heavy real-time trading based on market timing, I would build client in HTML/JS and server side with LAMP stack (perl, python or PHP) with shared mem or other high performance IPC mechanism to whatever your trading data feed provider is (reuters, bloomberg, etc.). If you needed to do transforms or manips on data feed I'd right that in C/C++ or erlang. If youre just talking to a DB, then the basic principles of a good handler that wraps all access to DBs and good schema design should really be enough. ORMs are often more baggage than help but maybe use a simple code generator to do light ORM class building or something.. Jay Strauss wrote: > I don't think we've set upon Java or not. But I don't feel there is a > good Perl rich GUI alternative (I know about wxperl, and am not in > love) > > On Mon, Jun 1, 2009 at 12:35 PM, Michael Potter wrote: >> Jay, >> >> Here is my 2 cents: If you are intending to replace Perl with Java then >> consider Groovy instead of Java. Groovy has a lot of the benefits of Perl >> (Dynamic Language), but runs on the JVM and can interface with class files >> that were created with javac. >> >> Let us know what you decide. >> -- >> Michael Potter >> >> On Mon, Jun 1, 2009 at 12:14 PM, Jay Strauss wrote: >>> Hi all, need some advice. >>> >>> I want to build a new system. My bro and I have a small >>> equity/options trading application. We cobbled it together in Perl >>> and Oracle years ago. Things have broken, some of the stuff we want >>> to change. Ultimately we want to start over. >>> >>> I'm just trying to decide on what architecture to use going forward. >>> I know this is a pretty wide question. >>> >>> Most (all) of the processes will run on a single box. I don't really >>> have an idea of which presentation route we'll go (full rich client >>> maybe using Java/Swing, maybe a Java Script client using GWT, maybe >>> plain HTML). The client will probably request functionality from the >>> server. >>> >>> I was thinking we'd do the whole API for asking for quotes, requesting >>> analytics, inserting transactins... via HTTP (SOAP). >>> >>> Can anyone give me their thoughts on their lessons learned, maybe >>> routes to try, stuff I should be thinking of... >>> >>> (again I know this is pretty open ended, but I'm interested in what >>> others have done with success) >>> >>> Thanks >>> Jay >>> _______________________________________________ >>> Chicago-talk mailing list >>> Chicago-talk at pm.org >>> http://mail.pm.org/mailman/listinfo/chicago-talk >> >> _______________________________________________ >> Chicago-talk mailing list >> Chicago-talk at pm.org >> http://mail.pm.org/mailman/listinfo/chicago-talk >> > _______________________________________________ > Chicago-talk mailing list > Chicago-talk at pm.org > http://mail.pm.org/mailman/listinfo/chicago-talk From daveviner at pobox.com Mon Jun 1 12:27:59 2009 From: daveviner at pobox.com (Dave Viner) Date: Mon, 1 Jun 2009 12:27:59 -0700 Subject: [Chicago-talk] New system architecture In-Reply-To: <4A2423FD.9030408@hostedlabs.com> References: <39eaccc10906011014n138593b1ne81deab3a53f5e07@mail.gmail.com> <2379dacc0906011035y62853dfexe054481894a5c83b@mail.gmail.com> <39eaccc10906011125g2522102clddf5729c1c8821b3@mail.gmail.com> <4A2423FD.9030408@hostedlabs.com> Message-ID: <9a39b88d0906011227v4db8aac6rb43881c96edf5819@mail.gmail.com> I would tend to agree with Jason. Personally, I don't like most desktop apps. I like to use my browser. So, AJAX is perfect. Just architect your web services to respond in JSON, and use jQuery to handle the communication. This setup allows you to grow - if you and your brother hire other people, or want to license the software - and it allows you to make changes to the appropriate component (front-end versus service layer vs database). (Note that many system would allow for similar levels of encapsulation. I'm just pointing out that a well-designed AJAX system allows the same flexibility as a well-designed desktop app or flash app or whatever else.) Another alternative to consider is AIR. You can make a pretty simple desktop app using just HTML and JS. Depending on your comfort with using Adobe as the main execution platform, it's an interesting approach that also buys you cross-platform compatibility. Seesmic Desktop is a full AIR app which has some pretty cool features. HTH Dave Viner On Mon, Jun 1, 2009 at 11:54 AM, Jason Rexilius wrote: > Sorry to chime in here late in the conversation. ?I was an architect at JP > morgan for FX and fixed income web-based trading apps and some desktop apps > so have a bit of experience in related fields. > > > For fat client, I would suggest C++ if your desktop app needs good > performance and Qt if your app needs good cross platform capability. > > If you do not need that level of performance I would jump all the way to the > other end of the spectrum and look at Flex/Flash for fat-client-like > capability or really well engineered AJAX interactivity (I built web-based > FX trading apps using java, perl and javascript/HTML back in the day that > moved very, very fast). > > Swing sux big time and you can get pretty close to its performance with well > engineered flash client, particularly if the server component is local > network. > > > For server side, java is one choice, I think perl is still a strong > candidate depending on _how_ you code. ?Python is also a strong candidate. > ?If you are really looking to rock it hard, the best might be Erlang. But > really it comes down to what language you are comfortable with. ?A good perl > coder can build a faster app than a bad Java coder.. > > Me personally, unless you were doing heavy real-time trading based on market > timing, I would build client in HTML/JS and server side with LAMP stack > (perl, python or PHP) with shared mem or other high performance IPC > mechanism to whatever your trading data feed provider is (reuters, > bloomberg, etc.). ?If you needed to do transforms or manips on data feed I'd > right that in C/C++ or erlang. ?If youre just talking to a DB, then the > basic principles of a good handler that wraps all access to DBs and good > schema design should really be enough. ORMs are often more baggage than help > but maybe use a simple code generator to do light ORM class building or > something.. > > > > > Jay Strauss wrote: >> >> I don't think we've set upon Java or not. ?But I don't feel there is a >> good Perl rich GUI alternative (I know about wxperl, and am not in >> love) >> >> On Mon, Jun 1, 2009 at 12:35 PM, Michael Potter >> wrote: >>> >>> Jay, >>> >>> Here is my 2 cents: ?If you are intending to replace Perl with Java then >>> consider Groovy instead of Java. ?Groovy has a lot of the benefits of >>> Perl >>> (Dynamic Language), but runs on the JVM and can interface with class >>> files >>> that were created with javac. >>> >>> Let us know what you decide. >>> -- >>> Michael Potter >>> >>> On Mon, Jun 1, 2009 at 12:14 PM, Jay Strauss wrote: >>>> >>>> Hi all, need some advice. >>>> >>>> I want to build a new system. ?My bro and I have a small >>>> equity/options trading application. ?We cobbled it together in Perl >>>> and Oracle years ago. ?Things have broken, some of the stuff we want >>>> to change. ?Ultimately we want to start over. >>>> >>>> I'm just trying to decide on what architecture to use going forward. >>>> I know this is a pretty wide question. >>>> >>>> Most (all) of the processes will run on a single box. ?I don't really >>>> have an idea of which presentation route we'll go (full rich client >>>> maybe using Java/Swing, maybe a Java Script client using GWT, maybe >>>> plain HTML). ?The client will probably request functionality from the >>>> server. >>>> >>>> I was thinking we'd do the whole API for asking for quotes, requesting >>>> analytics, inserting transactins... ?via HTTP (SOAP). >>>> >>>> Can anyone give me their thoughts on their lessons learned, maybe >>>> routes to try, stuff I should be thinking of... >>>> >>>> (again I know this is pretty open ended, but I'm interested in what >>>> others have done with success) >>>> >>>> Thanks >>>> Jay >>>> _______________________________________________ >>>> Chicago-talk mailing list >>>> Chicago-talk at pm.org >>>> http://mail.pm.org/mailman/listinfo/chicago-talk >>> >>> _______________________________________________ >>> Chicago-talk mailing list >>> Chicago-talk at pm.org >>> http://mail.pm.org/mailman/listinfo/chicago-talk >>> >> _______________________________________________ >> Chicago-talk mailing list >> Chicago-talk at pm.org >> http://mail.pm.org/mailman/listinfo/chicago-talk > > _______________________________________________ > Chicago-talk mailing list > Chicago-talk at pm.org > http://mail.pm.org/mailman/listinfo/chicago-talk > From me at heyjay.com Tue Jun 2 07:28:38 2009 From: me at heyjay.com (Jay Strauss) Date: Tue, 2 Jun 2009 09:28:38 -0500 Subject: [Chicago-talk] New system architecture In-Reply-To: <4A2423FD.9030408@hostedlabs.com> References: <39eaccc10906011014n138593b1ne81deab3a53f5e07@mail.gmail.com> <2379dacc0906011035y62853dfexe054481894a5c83b@mail.gmail.com> <39eaccc10906011125g2522102clddf5729c1c8821b3@mail.gmail.com> <4A2423FD.9030408@hostedlabs.com> Message-ID: <39eaccc10906020728i2c8e98c1yfc0547cd59327189@mail.gmail.com> Hi, the client side of things isn't very complex. My client is really just display of our indicators and trade suggestions. We are not doing high frequency trades or trades that require lighting fast execution. HTML is probably fine. I'm more concerned with the server side of things. It seems like there are some many different architectures these days I don't know where to begin. I could do everything in Perl, just having modules talk to each other or I could go all the way to the other end like some sort of spring/struts or SOAP kinda thing. Furthermore, while I'm much more comfortable in Perl, It seems like Java is the direction to go if I ever want to put my app on a web host or some other app server. I'm just sort of overwhelmed these days. On Mon, Jun 1, 2009 at 1:54 PM, Jason Rexilius wrote: > Sorry to chime in here late in the conversation. ?I was an architect at JP > morgan for FX and fixed income web-based trading apps and some desktop apps > so have a bit of experience in related fields. > > > For fat client, I would suggest C++ if your desktop app needs good > performance and Qt if your app needs good cross platform capability. > > If you do not need that level of performance I would jump all the way to the > other end of the spectrum and look at Flex/Flash for fat-client-like > capability or really well engineered AJAX interactivity (I built web-based > FX trading apps using java, perl and javascript/HTML back in the day that > moved very, very fast). > > Swing sux big time and you can get pretty close to its performance with well > engineered flash client, particularly if the server component is local > network. > > > For server side, java is one choice, I think perl is still a strong > candidate depending on _how_ you code. ?Python is also a strong candidate. > ?If you are really looking to rock it hard, the best might be Erlang. But > really it comes down to what language you are comfortable with. ?A good perl > coder can build a faster app than a bad Java coder.. > > Me personally, unless you were doing heavy real-time trading based on market > timing, I would build client in HTML/JS and server side with LAMP stack > (perl, python or PHP) with shared mem or other high performance IPC > mechanism to whatever your trading data feed provider is (reuters, > bloomberg, etc.). ?If you needed to do transforms or manips on data feed I'd > right that in C/C++ or erlang. ?If youre just talking to a DB, then the > basic principles of a good handler that wraps all access to DBs and good > schema design should really be enough. ORMs are often more baggage than help > but maybe use a simple code generator to do light ORM class building or > something.. > > > > > Jay Strauss wrote: >> >> I don't think we've set upon Java or not. ?But I don't feel there is a >> good Perl rich GUI alternative (I know about wxperl, and am not in >> love) >> >> On Mon, Jun 1, 2009 at 12:35 PM, Michael Potter >> wrote: >>> >>> Jay, >>> >>> Here is my 2 cents: ?If you are intending to replace Perl with Java then >>> consider Groovy instead of Java. ?Groovy has a lot of the benefits of >>> Perl >>> (Dynamic Language), but runs on the JVM and can interface with class >>> files >>> that were created with javac. >>> >>> Let us know what you decide. >>> -- >>> Michael Potter >>> >>> On Mon, Jun 1, 2009 at 12:14 PM, Jay Strauss wrote: >>>> >>>> Hi all, need some advice. >>>> >>>> I want to build a new system. ?My bro and I have a small >>>> equity/options trading application. ?We cobbled it together in Perl >>>> and Oracle years ago. ?Things have broken, some of the stuff we want >>>> to change. ?Ultimately we want to start over. >>>> >>>> I'm just trying to decide on what architecture to use going forward. >>>> I know this is a pretty wide question. >>>> >>>> Most (all) of the processes will run on a single box. ?I don't really >>>> have an idea of which presentation route we'll go (full rich client >>>> maybe using Java/Swing, maybe a Java Script client using GWT, maybe >>>> plain HTML). ?The client will probably request functionality from the >>>> server. >>>> >>>> I was thinking we'd do the whole API for asking for quotes, requesting >>>> analytics, inserting transactins... ?via HTTP (SOAP). >>>> >>>> Can anyone give me their thoughts on their lessons learned, maybe >>>> routes to try, stuff I should be thinking of... >>>> >>>> (again I know this is pretty open ended, but I'm interested in what >>>> others have done with success) >>>> >>>> Thanks >>>> Jay >>>> _______________________________________________ >>>> Chicago-talk mailing list >>>> Chicago-talk at pm.org >>>> http://mail.pm.org/mailman/listinfo/chicago-talk >>> >>> _______________________________________________ >>> Chicago-talk mailing list >>> Chicago-talk at pm.org >>> http://mail.pm.org/mailman/listinfo/chicago-talk >>> >> _______________________________________________ >> Chicago-talk mailing list >> Chicago-talk at pm.org >> http://mail.pm.org/mailman/listinfo/chicago-talk > > _______________________________________________ > Chicago-talk mailing list > Chicago-talk at pm.org > http://mail.pm.org/mailman/listinfo/chicago-talk > From me at heyjay.com Tue Jun 2 07:47:00 2009 From: me at heyjay.com (Jay Strauss) Date: Tue, 2 Jun 2009 09:47:00 -0500 Subject: [Chicago-talk] New system architecture In-Reply-To: <9a39b88d0906011227v4db8aac6rb43881c96edf5819@mail.gmail.com> References: <39eaccc10906011014n138593b1ne81deab3a53f5e07@mail.gmail.com> <2379dacc0906011035y62853dfexe054481894a5c83b@mail.gmail.com> <39eaccc10906011125g2522102clddf5729c1c8821b3@mail.gmail.com> <4A2423FD.9030408@hostedlabs.com> <9a39b88d0906011227v4db8aac6rb43881c96edf5819@mail.gmail.com> Message-ID: <39eaccc10906020747g3fa63247gaf4e47f0f79b9112@mail.gmail.com> I like the idea of a java script (AJAX) client, although I don't know javascript, which just means more learning curve. You say use JSON. I've never used it (reading about it now), do you typically build really atomic pieces of code and communicate via JSON, even between processes on the same host? Where do the API of individual components end where you pass data in native format, and the JSON begin? Thanks Jay On Mon, Jun 1, 2009 at 2:27 PM, Dave Viner wrote: > I would tend to agree with Jason. ?Personally, I don't like most > desktop apps. ?I like to use my browser. ?So, AJAX is perfect. ?Just > architect your web services to respond in JSON, and use jQuery to > handle the communication. ?This setup allows you to grow - if you and > your brother hire other people, or want to license the software - and > it allows you to make changes to the appropriate component (front-end > versus service layer vs database). ?(Note that many system would allow > for similar levels of encapsulation. ?I'm just pointing out that a > well-designed AJAX system allows the same flexibility as a > well-designed desktop app or flash app or whatever else.) > > Another alternative to consider is AIR. ?You can make a pretty simple > desktop app using just HTML and JS. ?Depending on your comfort with > using Adobe as the main execution platform, it's an interesting > approach that also buys you cross-platform compatibility. ?Seesmic > Desktop is a full AIR app which has some pretty cool features. > > HTH > Dave Viner > > > On Mon, Jun 1, 2009 at 11:54 AM, Jason Rexilius wrote: >> Sorry to chime in here late in the conversation. ?I was an architect at JP >> morgan for FX and fixed income web-based trading apps and some desktop apps >> so have a bit of experience in related fields. >> >> >> For fat client, I would suggest C++ if your desktop app needs good >> performance and Qt if your app needs good cross platform capability. >> >> If you do not need that level of performance I would jump all the way to the >> other end of the spectrum and look at Flex/Flash for fat-client-like >> capability or really well engineered AJAX interactivity (I built web-based >> FX trading apps using java, perl and javascript/HTML back in the day that >> moved very, very fast). >> >> Swing sux big time and you can get pretty close to its performance with well >> engineered flash client, particularly if the server component is local >> network. >> >> >> For server side, java is one choice, I think perl is still a strong >> candidate depending on _how_ you code. ?Python is also a strong candidate. >> ?If you are really looking to rock it hard, the best might be Erlang. But >> really it comes down to what language you are comfortable with. ?A good perl >> coder can build a faster app than a bad Java coder.. >> >> Me personally, unless you were doing heavy real-time trading based on market >> timing, I would build client in HTML/JS and server side with LAMP stack >> (perl, python or PHP) with shared mem or other high performance IPC >> mechanism to whatever your trading data feed provider is (reuters, >> bloomberg, etc.). ?If you needed to do transforms or manips on data feed I'd >> right that in C/C++ or erlang. ?If youre just talking to a DB, then the >> basic principles of a good handler that wraps all access to DBs and good >> schema design should really be enough. ORMs are often more baggage than help >> but maybe use a simple code generator to do light ORM class building or >> something.. >> >> >> >> >> Jay Strauss wrote: >>> >>> I don't think we've set upon Java or not. ?But I don't feel there is a >>> good Perl rich GUI alternative (I know about wxperl, and am not in >>> love) >>> >>> On Mon, Jun 1, 2009 at 12:35 PM, Michael Potter >>> wrote: >>>> >>>> Jay, >>>> >>>> Here is my 2 cents: ?If you are intending to replace Perl with Java then >>>> consider Groovy instead of Java. ?Groovy has a lot of the benefits of >>>> Perl >>>> (Dynamic Language), but runs on the JVM and can interface with class >>>> files >>>> that were created with javac. >>>> >>>> Let us know what you decide. >>>> -- >>>> Michael Potter >>>> >>>> On Mon, Jun 1, 2009 at 12:14 PM, Jay Strauss wrote: >>>>> >>>>> Hi all, need some advice. >>>>> >>>>> I want to build a new system. ?My bro and I have a small >>>>> equity/options trading application. ?We cobbled it together in Perl >>>>> and Oracle years ago. ?Things have broken, some of the stuff we want >>>>> to change. ?Ultimately we want to start over. >>>>> >>>>> I'm just trying to decide on what architecture to use going forward. >>>>> I know this is a pretty wide question. >>>>> >>>>> Most (all) of the processes will run on a single box. ?I don't really >>>>> have an idea of which presentation route we'll go (full rich client >>>>> maybe using Java/Swing, maybe a Java Script client using GWT, maybe >>>>> plain HTML). ?The client will probably request functionality from the >>>>> server. >>>>> >>>>> I was thinking we'd do the whole API for asking for quotes, requesting >>>>> analytics, inserting transactins... ?via HTTP (SOAP). >>>>> >>>>> Can anyone give me their thoughts on their lessons learned, maybe >>>>> routes to try, stuff I should be thinking of... >>>>> >>>>> (again I know this is pretty open ended, but I'm interested in what >>>>> others have done with success) >>>>> >>>>> Thanks >>>>> Jay >>>>> _______________________________________________ >>>>> Chicago-talk mailing list >>>>> Chicago-talk at pm.org >>>>> http://mail.pm.org/mailman/listinfo/chicago-talk >>>> >>>> _______________________________________________ >>>> Chicago-talk mailing list >>>> Chicago-talk at pm.org >>>> http://mail.pm.org/mailman/listinfo/chicago-talk >>>> >>> _______________________________________________ >>> Chicago-talk mailing list >>> Chicago-talk at pm.org >>> http://mail.pm.org/mailman/listinfo/chicago-talk >> >> _______________________________________________ >> Chicago-talk mailing list >> Chicago-talk at pm.org >> http://mail.pm.org/mailman/listinfo/chicago-talk >> > _______________________________________________ > Chicago-talk mailing list > Chicago-talk at pm.org > http://mail.pm.org/mailman/listinfo/chicago-talk > From daveviner at pobox.com Tue Jun 2 09:03:50 2009 From: daveviner at pobox.com (Dave Viner) Date: Tue, 2 Jun 2009 09:03:50 -0700 Subject: [Chicago-talk] New system architecture In-Reply-To: <39eaccc10906020747g3fa63247gaf4e47f0f79b9112@mail.gmail.com> References: <39eaccc10906011014n138593b1ne81deab3a53f5e07@mail.gmail.com> <2379dacc0906011035y62853dfexe054481894a5c83b@mail.gmail.com> <39eaccc10906011125g2522102clddf5729c1c8821b3@mail.gmail.com> <4A2423FD.9030408@hostedlabs.com> <9a39b88d0906011227v4db8aac6rb43881c96edf5819@mail.gmail.com> <39eaccc10906020747g3fa63247gaf4e47f0f79b9112@mail.gmail.com> Message-ID: <9a39b88d0906020903p57cfb23dof896878fda50edd@mail.gmail.com> Hi Jay, JSON is a transport mechanism. Your web service returns some information. Traditionally, it would be something like XML. JSON is just easier when the code invoking the web service is Javascript. That's all. The more challenging part is figuring out what web services you really need. Usually, you start with either REST or SOAP as the primary definition of your architecture. Personally, I always start with REST because it's more in tune with the general architecture of the web as a whole. (This is a bit of a philosophical debate, but you can read more about that elsewhere.) You can develop a REST-afarian system by thinking through the "objects" or "resources" of your system. To use a language metaphor, in a REST architecture, the resources are the nouns - the things on which you act. The verbs are limited to GET, PUT, POST, and DELETE. GET returns the "representation of the resource". DELETE removes the resource. PUT (usually) creates the resource, and POST updates an existing resource. You can get a decent grounding in REST architecture design by reading just a few articles: "How to create a REST Protocol" - http://www.xml.com/pub/a/2004/12/01/restful-web.html - this is one of the first solid walkthroughs of how to make your own protocol. (Note that for the purposes of this discussion, "protocol" and "web service" are roughly synonymous.) Read this 3 page article first. "PUT or POST" - http://jcalcote.wordpress.com/2008/10/16/put-or-post-the-rest-of-the-story/ - this article focuses on the distinction between PUT and POST. Both create or modify existing resources, so people frequently get confused as to why and when to use each. Those should give you a pretty solid understanding of how to get going in the REST world. Here are some thoughts on your specific questions: "do you typically build really atomic pieces of code and communicate via JSON, even between processes on the same host?" - yes. You define what your resources are. Then you define what each REST verb means for each resource. The response from your server will be in JSON. Location of the host doesn't matter. All communication between components is HTTP. This has the rather spectacular benefit of allowing you to scale - when it's architected correctly. "Where do the API of individual components end where you pass data in native format, and the JSON begin?" - This is hard to answer without knowing more of your process. I'd suggest starting with the definition of your resources, then the verbs. That should help you define what the services are, and what actions you "take" or "effect" on them. JSON is just the way to send information in response to the service request. You could substitute XML for JSON and the resulting system would be identical. Or you could use plain text of specified formats (e.g., csv, tsv, or simple new-line delimited keywords) and it's still the same. HTH Dave Viner On Tue, Jun 2, 2009 at 7:47 AM, Jay Strauss wrote: > I like the idea of a java script (AJAX) client, although I don't know > javascript, which just means more learning curve. > > You say use JSON. ?I've never used it (reading about it now), do you > typically build really atomic pieces of code and communicate via JSON, > even between processes on the same host? > > Where do the API of individual components end where you pass data in > native format, and the JSON begin? > > Thanks > Jay > > On Mon, Jun 1, 2009 at 2:27 PM, Dave Viner wrote: >> I would tend to agree with Jason. ?Personally, I don't like most >> desktop apps. ?I like to use my browser. ?So, AJAX is perfect. ?Just >> architect your web services to respond in JSON, and use jQuery to >> handle the communication. ?This setup allows you to grow - if you and >> your brother hire other people, or want to license the software - and >> it allows you to make changes to the appropriate component (front-end >> versus service layer vs database). ?(Note that many system would allow >> for similar levels of encapsulation. ?I'm just pointing out that a >> well-designed AJAX system allows the same flexibility as a >> well-designed desktop app or flash app or whatever else.) >> >> Another alternative to consider is AIR. ?You can make a pretty simple >> desktop app using just HTML and JS. ?Depending on your comfort with >> using Adobe as the main execution platform, it's an interesting >> approach that also buys you cross-platform compatibility. ?Seesmic >> Desktop is a full AIR app which has some pretty cool features. >> >> HTH >> Dave Viner >> >> >> On Mon, Jun 1, 2009 at 11:54 AM, Jason Rexilius wrote: >>> Sorry to chime in here late in the conversation. ?I was an architect at JP >>> morgan for FX and fixed income web-based trading apps and some desktop apps >>> so have a bit of experience in related fields. >>> >>> >>> For fat client, I would suggest C++ if your desktop app needs good >>> performance and Qt if your app needs good cross platform capability. >>> >>> If you do not need that level of performance I would jump all the way to the >>> other end of the spectrum and look at Flex/Flash for fat-client-like >>> capability or really well engineered AJAX interactivity (I built web-based >>> FX trading apps using java, perl and javascript/HTML back in the day that >>> moved very, very fast). >>> >>> Swing sux big time and you can get pretty close to its performance with well >>> engineered flash client, particularly if the server component is local >>> network. >>> >>> >>> For server side, java is one choice, I think perl is still a strong >>> candidate depending on _how_ you code. ?Python is also a strong candidate. >>> ?If you are really looking to rock it hard, the best might be Erlang. But >>> really it comes down to what language you are comfortable with. ?A good perl >>> coder can build a faster app than a bad Java coder.. >>> >>> Me personally, unless you were doing heavy real-time trading based on market >>> timing, I would build client in HTML/JS and server side with LAMP stack >>> (perl, python or PHP) with shared mem or other high performance IPC >>> mechanism to whatever your trading data feed provider is (reuters, >>> bloomberg, etc.). ?If you needed to do transforms or manips on data feed I'd >>> right that in C/C++ or erlang. ?If youre just talking to a DB, then the >>> basic principles of a good handler that wraps all access to DBs and good >>> schema design should really be enough. ORMs are often more baggage than help >>> but maybe use a simple code generator to do light ORM class building or >>> something.. >>> >>> >>> >>> >>> Jay Strauss wrote: >>>> >>>> I don't think we've set upon Java or not. ?But I don't feel there is a >>>> good Perl rich GUI alternative (I know about wxperl, and am not in >>>> love) >>>> >>>> On Mon, Jun 1, 2009 at 12:35 PM, Michael Potter >>>> wrote: >>>>> >>>>> Jay, >>>>> >>>>> Here is my 2 cents: ?If you are intending to replace Perl with Java then >>>>> consider Groovy instead of Java. ?Groovy has a lot of the benefits of >>>>> Perl >>>>> (Dynamic Language), but runs on the JVM and can interface with class >>>>> files >>>>> that were created with javac. >>>>> >>>>> Let us know what you decide. >>>>> -- >>>>> Michael Potter >>>>> >>>>> On Mon, Jun 1, 2009 at 12:14 PM, Jay Strauss wrote: >>>>>> >>>>>> Hi all, need some advice. >>>>>> >>>>>> I want to build a new system. ?My bro and I have a small >>>>>> equity/options trading application. ?We cobbled it together in Perl >>>>>> and Oracle years ago. ?Things have broken, some of the stuff we want >>>>>> to change. ?Ultimately we want to start over. >>>>>> >>>>>> I'm just trying to decide on what architecture to use going forward. >>>>>> I know this is a pretty wide question. >>>>>> >>>>>> Most (all) of the processes will run on a single box. ?I don't really >>>>>> have an idea of which presentation route we'll go (full rich client >>>>>> maybe using Java/Swing, maybe a Java Script client using GWT, maybe >>>>>> plain HTML). ?The client will probably request functionality from the >>>>>> server. >>>>>> >>>>>> I was thinking we'd do the whole API for asking for quotes, requesting >>>>>> analytics, inserting transactins... ?via HTTP (SOAP). >>>>>> >>>>>> Can anyone give me their thoughts on their lessons learned, maybe >>>>>> routes to try, stuff I should be thinking of... >>>>>> >>>>>> (again I know this is pretty open ended, but I'm interested in what >>>>>> others have done with success) >>>>>> >>>>>> Thanks >>>>>> Jay >>>>>> _______________________________________________ >>>>>> Chicago-talk mailing list >>>>>> Chicago-talk at pm.org >>>>>> http://mail.pm.org/mailman/listinfo/chicago-talk >>>>> >>>>> _______________________________________________ >>>>> Chicago-talk mailing list >>>>> Chicago-talk at pm.org >>>>> http://mail.pm.org/mailman/listinfo/chicago-talk >>>>> >>>> _______________________________________________ >>>> Chicago-talk mailing list >>>> Chicago-talk at pm.org >>>> http://mail.pm.org/mailman/listinfo/chicago-talk >>> >>> _______________________________________________ >>> Chicago-talk mailing list >>> Chicago-talk at pm.org >>> http://mail.pm.org/mailman/listinfo/chicago-talk >>> >> _______________________________________________ >> Chicago-talk mailing list >> Chicago-talk at pm.org >> http://mail.pm.org/mailman/listinfo/chicago-talk >> > _______________________________________________ > Chicago-talk mailing list > Chicago-talk at pm.org > http://mail.pm.org/mailman/listinfo/chicago-talk > From me at heyjay.com Tue Jun 2 09:52:08 2009 From: me at heyjay.com (Jay Strauss) Date: Tue, 2 Jun 2009 11:52:08 -0500 Subject: [Chicago-talk] New system architecture In-Reply-To: <9a39b88d0906020903p57cfb23dof896878fda50edd@mail.gmail.com> References: <39eaccc10906011014n138593b1ne81deab3a53f5e07@mail.gmail.com> <2379dacc0906011035y62853dfexe054481894a5c83b@mail.gmail.com> <39eaccc10906011125g2522102clddf5729c1c8821b3@mail.gmail.com> <4A2423FD.9030408@hostedlabs.com> <9a39b88d0906011227v4db8aac6rb43881c96edf5819@mail.gmail.com> <39eaccc10906020747g3fa63247gaf4e47f0f79b9112@mail.gmail.com> <9a39b88d0906020903p57cfb23dof896878fda50edd@mail.gmail.com> Message-ID: <39eaccc10906020952i3bfeb8c3nff9e0fd3fc2b88cf@mail.gmail.com> Hi, Dave, Thanks for the time you put into the response. I'm going to need to read some more on this stuff. Its seems there are so many different / competing ideas and frameworks, its sort of impossible to know which way to go. Struts / Springs / JSP / some templating engine... I'll start by working up my exact list of tasks and maybe objects I expect. Maybe things will become more obvious. On Tue, Jun 2, 2009 at 11:03 AM, Dave Viner wrote: > Hi Jay, > > JSON is a transport mechanism. Your web service returns some > information. Traditionally, it would be something like XML. JSON is > just easier when the code invoking the web service is Javascript. > That's all. > > The more challenging part is figuring out what web services you really > need. Usually, you start with either REST or SOAP as the primary > definition of your architecture. Personally, I always start with REST > because it's more in tune with the general architecture of the web as > a whole. (This is a bit of a philosophical debate, but you can read > more about that elsewhere.) You can develop a REST-afarian system by > thinking through the "objects" or "resources" of your system. To use > a language metaphor, in a REST architecture, the resources are the > nouns - the things on which you act. The verbs are limited to GET, > PUT, POST, and DELETE. GET returns the "representation of the > resource". DELETE removes the resource. PUT (usually) creates the > resource, and POST updates an existing resource. > > You can get a decent grounding in REST architecture design by reading > just a few articles: > "How to create a REST Protocol" - > http://www.xml.com/pub/a/2004/12/01/restful-web.html - this is one of > the first solid walkthroughs of how to make your own protocol. (Note > that for the purposes of this discussion, "protocol" and "web service" > are roughly synonymous.) Read this 3 page article first. > > "PUT or POST" - > http://jcalcote.wordpress.com/2008/10/16/put-or-post-the-rest-of-the-story/ > - this article focuses on the distinction between PUT and POST. Both > create or modify existing resources, so people frequently get confused > as to why and when to use each. > > > Those should give you a pretty solid understanding of how to get going > in the REST world. > > Here are some thoughts on your specific questions: > "do you typically build really atomic pieces of code and communicate > via JSON, even between processes on the same host?" > - yes. You define what your resources are. Then you define what each > REST verb means for each resource. The response from your server will > be in JSON. Location of the host doesn't matter. All communication > between components is HTTP. This has the rather spectacular benefit > of allowing you to scale - when it's architected correctly. > > "Where do the API of individual components end where you pass data in > native format, and the JSON begin?" > - This is hard to answer without knowing more of your process. I'd > suggest starting with the definition of your resources, then the > verbs. That should help you define what the services are, and what > actions you "take" or "effect" on them. JSON is just the way to send > information in response to the service request. You could substitute > XML for JSON and the resulting system would be identical. Or you > could use plain text of specified formats (e.g., csv, tsv, or simple > new-line delimited keywords) and it's still the same. > > HTH > Dave Viner > > > > On Tue, Jun 2, 2009 at 7:47 AM, Jay Strauss wrote: > > I like the idea of a java script (AJAX) client, although I don't know > > javascript, which just means more learning curve. > > > > You say use JSON. I've never used it (reading about it now), do you > > typically build really atomic pieces of code and communicate via JSON, > > even between processes on the same host? > > > > Where do the API of individual components end where you pass data in > > native format, and the JSON begin? > > > > Thanks > > Jay > > > > On Mon, Jun 1, 2009 at 2:27 PM, Dave Viner wrote: > >> I would tend to agree with Jason. Personally, I don't like most > >> desktop apps. I like to use my browser. So, AJAX is perfect. Just > >> architect your web services to respond in JSON, and use jQuery to > >> handle the communication. This setup allows you to grow - if you and > >> your brother hire other people, or want to license the software - and > >> it allows you to make changes to the appropriate component (front-end > >> versus service layer vs database). (Note that many system would allow > >> for similar levels of encapsulation. I'm just pointing out that a > >> well-designed AJAX system allows the same flexibility as a > >> well-designed desktop app or flash app or whatever else.) > >> > >> Another alternative to consider is AIR. You can make a pretty simple > >> desktop app using just HTML and JS. Depending on your comfort with > >> using Adobe as the main execution platform, it's an interesting > >> approach that also buys you cross-platform compatibility. Seesmic > >> Desktop is a full AIR app which has some pretty cool features. > >> > >> HTH > >> Dave Viner > >> > >> > >> On Mon, Jun 1, 2009 at 11:54 AM, Jason Rexilius > wrote: > >>> Sorry to chime in here late in the conversation. I was an architect at > JP > >>> morgan for FX and fixed income web-based trading apps and some desktop > apps > >>> so have a bit of experience in related fields. > >>> > >>> > >>> For fat client, I would suggest C++ if your desktop app needs good > >>> performance and Qt if your app needs good cross platform capability. > >>> > >>> If you do not need that level of performance I would jump all the way > to the > >>> other end of the spectrum and look at Flex/Flash for fat-client-like > >>> capability or really well engineered AJAX interactivity (I built > web-based > >>> FX trading apps using java, perl and javascript/HTML back in the day > that > >>> moved very, very fast). > >>> > >>> Swing sux big time and you can get pretty close to its performance with > well > >>> engineered flash client, particularly if the server component is local > >>> network. > >>> > >>> > >>> For server side, java is one choice, I think perl is still a strong > >>> candidate depending on _how_ you code. Python is also a strong > candidate. > >>> If you are really looking to rock it hard, the best might be Erlang. > But > >>> really it comes down to what language you are comfortable with. A good > perl > >>> coder can build a faster app than a bad Java coder.. > >>> > >>> Me personally, unless you were doing heavy real-time trading based on > market > >>> timing, I would build client in HTML/JS and server side with LAMP stack > >>> (perl, python or PHP) with shared mem or other high performance IPC > >>> mechanism to whatever your trading data feed provider is (reuters, > >>> bloomberg, etc.). If you needed to do transforms or manips on data > feed I'd > >>> right that in C/C++ or erlang. If youre just talking to a DB, then the > >>> basic principles of a good handler that wraps all access to DBs and > good > >>> schema design should really be enough. ORMs are often more baggage than > help > >>> but maybe use a simple code generator to do light ORM class building or > >>> something.. > >>> > >>> > >>> > >>> > >>> Jay Strauss wrote: > >>>> > >>>> I don't think we've set upon Java or not. But I don't feel there is a > >>>> good Perl rich GUI alternative (I know about wxperl, and am not in > >>>> love) > >>>> > >>>> On Mon, Jun 1, 2009 at 12:35 PM, Michael Potter > >>>> wrote: > >>>>> > >>>>> Jay, > >>>>> > >>>>> Here is my 2 cents: If you are intending to replace Perl with Java > then > >>>>> consider Groovy instead of Java. Groovy has a lot of the benefits of > >>>>> Perl > >>>>> (Dynamic Language), but runs on the JVM and can interface with class > >>>>> files > >>>>> that were created with javac. > >>>>> > >>>>> Let us know what you decide. > >>>>> -- > >>>>> Michael Potter > >>>>> > >>>>> On Mon, Jun 1, 2009 at 12:14 PM, Jay Strauss wrote: > >>>>>> > >>>>>> Hi all, need some advice. > >>>>>> > >>>>>> I want to build a new system. My bro and I have a small > >>>>>> equity/options trading application. We cobbled it together in Perl > >>>>>> and Oracle years ago. Things have broken, some of the stuff we want > >>>>>> to change. Ultimately we want to start over. > >>>>>> > >>>>>> I'm just trying to decide on what architecture to use going forward. > >>>>>> I know this is a pretty wide question. > >>>>>> > >>>>>> Most (all) of the processes will run on a single box. I don't > really > >>>>>> have an idea of which presentation route we'll go (full rich client > >>>>>> maybe using Java/Swing, maybe a Java Script client using GWT, maybe > >>>>>> plain HTML). The client will probably request functionality from > the > >>>>>> server. > >>>>>> > >>>>>> I was thinking we'd do the whole API for asking for quotes, > requesting > >>>>>> analytics, inserting transactins... via HTTP (SOAP). > >>>>>> > >>>>>> Can anyone give me their thoughts on their lessons learned, maybe > >>>>>> routes to try, stuff I should be thinking of... > >>>>>> > >>>>>> (again I know this is pretty open ended, but I'm interested in what > >>>>>> others have done with success) > >>>>>> > >>>>>> Thanks > >>>>>> Jay > >>>>>> _______________________________________________ > >>>>>> Chicago-talk mailing list > >>>>>> Chicago-talk at pm.org > >>>>>> http://mail.pm.org/mailman/listinfo/chicago-talk > >>>>> > >>>>> _______________________________________________ > >>>>> Chicago-talk mailing list > >>>>> Chicago-talk at pm.org > >>>>> http://mail.pm.org/mailman/listinfo/chicago-talk > >>>>> > >>>> _______________________________________________ > >>>> Chicago-talk mailing list > >>>> Chicago-talk at pm.org > >>>> http://mail.pm.org/mailman/listinfo/chicago-talk > >>> > >>> _______________________________________________ > >>> Chicago-talk mailing list > >>> Chicago-talk at pm.org > >>> http://mail.pm.org/mailman/listinfo/chicago-talk > >>> > >> _______________________________________________ > >> Chicago-talk mailing list > >> Chicago-talk at pm.org > >> http://mail.pm.org/mailman/listinfo/chicago-talk > >> > > _______________________________________________ > > Chicago-talk mailing list > > Chicago-talk at pm.org > > http://mail.pm.org/mailman/listinfo/chicago-talk > > > _______________________________________________ > Chicago-talk mailing list > Chicago-talk at pm.org > http://mail.pm.org/mailman/listinfo/chicago-talk > -------------- next part -------------- An HTML attachment was scrubbed... URL: From daveviner at pobox.com Tue Jun 2 10:23:00 2009 From: daveviner at pobox.com (Dave Viner) Date: Tue, 2 Jun 2009 10:23:00 -0700 Subject: [Chicago-talk] New system architecture In-Reply-To: <39eaccc10906020952i3bfeb8c3nff9e0fd3fc2b88cf@mail.gmail.com> References: <39eaccc10906011014n138593b1ne81deab3a53f5e07@mail.gmail.com> <2379dacc0906011035y62853dfexe054481894a5c83b@mail.gmail.com> <39eaccc10906011125g2522102clddf5729c1c8821b3@mail.gmail.com> <4A2423FD.9030408@hostedlabs.com> <9a39b88d0906011227v4db8aac6rb43881c96edf5819@mail.gmail.com> <39eaccc10906020747g3fa63247gaf4e47f0f79b9112@mail.gmail.com> <9a39b88d0906020903p57cfb23dof896878fda50edd@mail.gmail.com> <39eaccc10906020952i3bfeb8c3nff9e0fd3fc2b88cf@mail.gmail.com> Message-ID: <9a39b88d0906021023t7c332dd6g6234a39329586383@mail.gmail.com> No problem. If you need help, feel free to ping me off-list or contact me via my consulting group http://www.vinertech.com. Good luck! Dave Viner On Tue, Jun 2, 2009 at 9:52 AM, Jay Strauss wrote: > Hi, Dave, > > Thanks for the time you put into the response.? I'm going to need to read > some more on this stuff.? Its seems there are so many different / competing > ideas and frameworks, its sort of impossible to know which way to go. > Struts / Springs / JSP / some templating engine... > > I'll start by working up my exact list of tasks and maybe objects I expect. > Maybe things will become more obvious. > > On Tue, Jun 2, 2009 at 11:03 AM, Dave Viner wrote: >> >> Hi Jay, >> >> JSON is a transport mechanism. ?Your web service returns some >> information. ?Traditionally, it would be something like XML. ?JSON is >> just easier when the code invoking the web service is Javascript. >> That's all. >> >> The more challenging part is figuring out what web services you really >> need. ?Usually, you start with either REST or SOAP as the primary >> definition of your architecture. ?Personally, I always start with REST >> because it's more in tune with the general architecture of the web as >> a whole. ?(This is a bit of a philosophical debate, but you can read >> more about that elsewhere.) ?You can develop a REST-afarian system by >> thinking through the "objects" or "resources" of your system. ?To use >> a language metaphor, in a REST architecture, the resources are the >> nouns - the things on which you act. ?The verbs are limited to GET, >> PUT, POST, and DELETE. ?GET returns the "representation of the >> resource". ?DELETE removes the resource. ?PUT (usually) creates the >> resource, and POST updates an existing resource. >> >> You can get a decent grounding in REST architecture design by reading >> just a few articles: >> "How to create a REST Protocol" - >> http://www.xml.com/pub/a/2004/12/01/restful-web.html - this is one of >> the first solid walkthroughs of how to make your own protocol. ?(Note >> that for the purposes of this discussion, "protocol" and "web service" >> are roughly synonymous.) ?Read this 3 page article first. >> >> "PUT or POST" - >> >> http://jcalcote.wordpress.com/2008/10/16/put-or-post-the-rest-of-the-story/ >> - this article focuses on the distinction between PUT and POST. ?Both >> create or modify existing resources, so people frequently get confused >> as to why and when to use each. >> >> >> Those should give you a pretty solid understanding of how to get going >> in the REST world. >> >> Here are some thoughts on your specific questions: >> "do you typically build really atomic pieces of code and communicate >> via JSON, even between processes on the same host?" >> - yes. ?You define what your resources are. ?Then you define what each >> REST verb means for each resource. ?The response from your server will >> be in JSON. ?Location of the host doesn't matter. ?All communication >> between components is HTTP. ?This has the rather spectacular benefit >> of allowing you to scale - when it's architected correctly. >> >> "Where do the API of individual components end where you pass data in >> native format, and the JSON begin?" >> - This is hard to answer without knowing more of your process. ?I'd >> suggest starting with the definition of your resources, then the >> verbs. ?That should help you define what the services are, and what >> actions you "take" or "effect" on them. ?JSON is just the way to send >> information in response to the service request. ?You could substitute >> XML for JSON and the resulting system would be identical. ?Or you >> could use plain text of specified formats (e.g., csv, tsv, or simple >> new-line delimited keywords) and it's still the same. >> >> HTH >> Dave Viner >> >> >> >> On Tue, Jun 2, 2009 at 7:47 AM, Jay Strauss wrote: >> > I like the idea of a java script (AJAX) client, although I don't know >> > javascript, which just means more learning curve. >> > >> > You say use JSON. ?I've never used it (reading about it now), do you >> > typically build really atomic pieces of code and communicate via JSON, >> > even between processes on the same host? >> > >> > Where do the API of individual components end where you pass data in >> > native format, and the JSON begin? >> > >> > Thanks >> > Jay >> > >> > On Mon, Jun 1, 2009 at 2:27 PM, Dave Viner wrote: >> >> I would tend to agree with Jason. ?Personally, I don't like most >> >> desktop apps. ?I like to use my browser. ?So, AJAX is perfect. ?Just >> >> architect your web services to respond in JSON, and use jQuery to >> >> handle the communication. ?This setup allows you to grow - if you and >> >> your brother hire other people, or want to license the software - and >> >> it allows you to make changes to the appropriate component (front-end >> >> versus service layer vs database). ?(Note that many system would allow >> >> for similar levels of encapsulation. ?I'm just pointing out that a >> >> well-designed AJAX system allows the same flexibility as a >> >> well-designed desktop app or flash app or whatever else.) >> >> >> >> Another alternative to consider is AIR. ?You can make a pretty simple >> >> desktop app using just HTML and JS. ?Depending on your comfort with >> >> using Adobe as the main execution platform, it's an interesting >> >> approach that also buys you cross-platform compatibility. ?Seesmic >> >> Desktop is a full AIR app which has some pretty cool features. >> >> >> >> HTH >> >> Dave Viner >> >> >> >> >> >> On Mon, Jun 1, 2009 at 11:54 AM, Jason Rexilius >> >> wrote: >> >>> Sorry to chime in here late in the conversation. ?I was an architect >> >>> at JP >> >>> morgan for FX and fixed income web-based trading apps and some desktop >> >>> apps >> >>> so have a bit of experience in related fields. >> >>> >> >>> >> >>> For fat client, I would suggest C++ if your desktop app needs good >> >>> performance and Qt if your app needs good cross platform capability. >> >>> >> >>> If you do not need that level of performance I would jump all the way >> >>> to the >> >>> other end of the spectrum and look at Flex/Flash for fat-client-like >> >>> capability or really well engineered AJAX interactivity (I built >> >>> web-based >> >>> FX trading apps using java, perl and javascript/HTML back in the day >> >>> that >> >>> moved very, very fast). >> >>> >> >>> Swing sux big time and you can get pretty close to its performance >> >>> with well >> >>> engineered flash client, particularly if the server component is local >> >>> network. >> >>> >> >>> >> >>> For server side, java is one choice, I think perl is still a strong >> >>> candidate depending on _how_ you code. ?Python is also a strong >> >>> candidate. >> >>> ?If you are really looking to rock it hard, the best might be Erlang. >> >>> But >> >>> really it comes down to what language you are comfortable with. ?A >> >>> good perl >> >>> coder can build a faster app than a bad Java coder.. >> >>> >> >>> Me personally, unless you were doing heavy real-time trading based on >> >>> market >> >>> timing, I would build client in HTML/JS and server side with LAMP >> >>> stack >> >>> (perl, python or PHP) with shared mem or other high performance IPC >> >>> mechanism to whatever your trading data feed provider is (reuters, >> >>> bloomberg, etc.). ?If you needed to do transforms or manips on data >> >>> feed I'd >> >>> right that in C/C++ or erlang. ?If youre just talking to a DB, then >> >>> the >> >>> basic principles of a good handler that wraps all access to DBs and >> >>> good >> >>> schema design should really be enough. ORMs are often more baggage >> >>> than help >> >>> but maybe use a simple code generator to do light ORM class building >> >>> or >> >>> something.. >> >>> >> >>> >> >>> >> >>> >> >>> Jay Strauss wrote: >> >>>> >> >>>> I don't think we've set upon Java or not. ?But I don't feel there is >> >>>> a >> >>>> good Perl rich GUI alternative (I know about wxperl, and am not in >> >>>> love) >> >>>> >> >>>> On Mon, Jun 1, 2009 at 12:35 PM, Michael Potter >> >>>> wrote: >> >>>>> >> >>>>> Jay, >> >>>>> >> >>>>> Here is my 2 cents: ?If you are intending to replace Perl with Java >> >>>>> then >> >>>>> consider Groovy instead of Java. ?Groovy has a lot of the benefits >> >>>>> of >> >>>>> Perl >> >>>>> (Dynamic Language), but runs on the JVM and can interface with class >> >>>>> files >> >>>>> that were created with javac. >> >>>>> >> >>>>> Let us know what you decide. >> >>>>> -- >> >>>>> Michael Potter >> >>>>> >> >>>>> On Mon, Jun 1, 2009 at 12:14 PM, Jay Strauss wrote: >> >>>>>> >> >>>>>> Hi all, need some advice. >> >>>>>> >> >>>>>> I want to build a new system. ?My bro and I have a small >> >>>>>> equity/options trading application. ?We cobbled it together in Perl >> >>>>>> and Oracle years ago. ?Things have broken, some of the stuff we >> >>>>>> want >> >>>>>> to change. ?Ultimately we want to start over. >> >>>>>> >> >>>>>> I'm just trying to decide on what architecture to use going >> >>>>>> forward. >> >>>>>> I know this is a pretty wide question. >> >>>>>> >> >>>>>> Most (all) of the processes will run on a single box. ?I don't >> >>>>>> really >> >>>>>> have an idea of which presentation route we'll go (full rich client >> >>>>>> maybe using Java/Swing, maybe a Java Script client using GWT, maybe >> >>>>>> plain HTML). ?The client will probably request functionality from >> >>>>>> the >> >>>>>> server. >> >>>>>> >> >>>>>> I was thinking we'd do the whole API for asking for quotes, >> >>>>>> requesting >> >>>>>> analytics, inserting transactins... ?via HTTP (SOAP). >> >>>>>> >> >>>>>> Can anyone give me their thoughts on their lessons learned, maybe >> >>>>>> routes to try, stuff I should be thinking of... >> >>>>>> >> >>>>>> (again I know this is pretty open ended, but I'm interested in what >> >>>>>> others have done with success) >> >>>>>> >> >>>>>> Thanks >> >>>>>> Jay >> >>>>>> _______________________________________________ >> >>>>>> Chicago-talk mailing list >> >>>>>> Chicago-talk at pm.org >> >>>>>> http://mail.pm.org/mailman/listinfo/chicago-talk >> >>>>> >> >>>>> _______________________________________________ >> >>>>> Chicago-talk mailing list >> >>>>> Chicago-talk at pm.org >> >>>>> http://mail.pm.org/mailman/listinfo/chicago-talk >> >>>>> >> >>>> _______________________________________________ >> >>>> Chicago-talk mailing list >> >>>> Chicago-talk at pm.org >> >>>> http://mail.pm.org/mailman/listinfo/chicago-talk >> >>> >> >>> _______________________________________________ >> >>> Chicago-talk mailing list >> >>> Chicago-talk at pm.org >> >>> http://mail.pm.org/mailman/listinfo/chicago-talk >> >>> >> >> _______________________________________________ >> >> Chicago-talk mailing list >> >> Chicago-talk at pm.org >> >> http://mail.pm.org/mailman/listinfo/chicago-talk >> >> >> > _______________________________________________ >> > Chicago-talk mailing list >> > Chicago-talk at pm.org >> > http://mail.pm.org/mailman/listinfo/chicago-talk >> > >> _______________________________________________ >> Chicago-talk mailing list >> Chicago-talk at pm.org >> http://mail.pm.org/mailman/listinfo/chicago-talk > > > _______________________________________________ > Chicago-talk mailing list > Chicago-talk at pm.org > http://mail.pm.org/mailman/listinfo/chicago-talk > From fire at dls.net Thu Jun 18 05:03:57 2009 From: fire at dls.net (Bradley Slavik) Date: Thu, 18 Jun 2009 07:03:57 -0500 Subject: [Chicago-talk] XML DTD validation In-Reply-To: <9a39b88d0906020903p57cfb23dof896878fda50edd@mail.gmail.com> References: <39eaccc10906011014n138593b1ne81deab3a53f5e07@mail.gmail.com> <2379dacc0906011035y62853dfexe054481894a5c83b@mail.gmail.com> <39eaccc10906011125g2522102clddf5729c1c8821b3@mail.gmail.com> <4A2423FD.9030408@hostedlabs.com> <9a39b88d0906011227v4db8aac6rb43881c96edf5819@mail.gmail.com> <39eaccc10906020747g3fa63247gaf4e47f0f79b9112@mail.gmail.com> <9a39b88d0906020903p57cfb23dof896878fda50edd@mail.gmail.com> Message-ID: Dear Chicago PerlMongers, I have been working with XML::Checker::Parser (part of libxml-enno) and found that many of the tests are broken, and it probably could use to be upgraded to using Test::More. I have fixed most of it, but maybe I should be expending my efforts on a different perl package? I know that Andy has worked extensively with XML so maybe he has some opinion on how to validate XML DTDs, and whether it is worth any effort at all. (I could be wasting my time) Also I don't want to offend the author, and I have never really done clean-up on a CPAN package before. I was hoping that someone could give me pointers on how to do that correctly too. Also, I just sat down and learned the perl Test packages today, so I will probably have some questions about what is the preferred mode to use these. It seems that this coder rolled his own, and in most cases I can replace the test calls with Test::More ones, but I did have a concern about lines 223 and 249 of t/chk_batch.t. It has this curious line: local *XML::DOM::warning = \&append_str; which produces this error during testing: Subroutine XML::DOM::warning redefined at t/chk_batch.t line 223. Subroutine XML::DOM::warning redefined at t/chk_batch.t line 249. It is pretty lame, and there is probably a better way to do it, but if it is better to override the warning routine? Just let it get called? Here is the subroutine (so you don't have to look it up) sub append_str { $error_str .= shift() . "\n"; } Probably there is an accepted idiom to use for this purpose when writing tests, and I would rather go with the flow than create my own wheel. Thanks for your assistance. Bradley Slavik fire at dls.net -------------- next part -------------- An HTML attachment was scrubbed... URL: From fire at dls.net Thu Jun 18 05:04:12 2009 From: fire at dls.net (Bradley Slavik) Date: Thu, 18 Jun 2009 07:04:12 -0500 Subject: [Chicago-talk] XML DTD validation In-Reply-To: <9a39b88d0906020903p57cfb23dof896878fda50edd@mail.gmail.com> References: <39eaccc10906011014n138593b1ne81deab3a53f5e07@mail.gmail.com> <2379dacc0906011035y62853dfexe054481894a5c83b@mail.gmail.com> <39eaccc10906011125g2522102clddf5729c1c8821b3@mail.gmail.com> <4A2423FD.9030408@hostedlabs.com> <9a39b88d0906011227v4db8aac6rb43881c96edf5819@mail.gmail.com> <39eaccc10906020747g3fa63247gaf4e47f0f79b9112@mail.gmail.com> <9a39b88d0906020903p57cfb23dof896878fda50edd@mail.gmail.com> Message-ID: Dear Chicago PerlMongers, I have been working with XML::Checker::Parser (part of libxml-enno) and found that many of the tests are broken, and it probably could use to be upgraded to using Test::More. I have fixed most of it, but maybe I should be expending my efforts on a different perl package? I know that Andy has worked extensively with XML so maybe he has some opinion on how to validate XML DTDs, and whether it is worth any effort at all. (I could be wasting my time) Also I don't want to offend the author, and I have never really done clean-up on a CPAN package before. I was hoping that someone could give me pointers on how to do that correctly too. Also, I just sat down and learned the perl Test packages today, so I will probably have some questions about what is the preferred mode to use these. It seems that this coder rolled his own, and in most cases I can replace the test calls with Test::More ones, but I did have a concern about lines 223 and 249 of t/chk_batch.t. It has this curious line: local *XML::DOM::warning = \&append_str; which produces this error during testing: Subroutine XML::DOM::warning redefined at t/chk_batch.t line 223. Subroutine XML::DOM::warning redefined at t/chk_batch.t line 249. It is pretty lame, and there is probably a better way to do it, but if it is better to override the warning routine? Just let it get called? Here is the subroutine (so you don't have to look it up) sub append_str { $error_str .= shift() . "\n"; } Probably there is an accepted idiom to use for this purpose when writing tests, and I would rather go with the flow than create my own wheel. Thanks for your assistance. Bradley Slavik fire at dls.net -------------- next part -------------- An HTML attachment was scrubbed... URL: From fire at dls.net Fri Jun 19 09:15:58 2009 From: fire at dls.net (Bradley Slavik) Date: Fri, 19 Jun 2009 11:15:58 -0500 Subject: [Chicago-talk] XML DTD validation Message-ID: <41436.1245428158@dls.net> Dear Perl XML list, I have been working with XML::Checker::Parser (part of libxml-enno) and found that many of the tests are broken, and it probably could use to be upgraded to using Test::More. I have fixed most of it, but maybe I should be expending my efforts on a different perl package? Is there a better package in Perl to validate XML files against DTDs or Schemas? I currently only have DTDs for these XML files. It was interesting to see this project as well: http://vtd-xml.sourceforge.net/ but I did not see how to use it for validating DTDs or Schemas. This project also looked promising: http://www.textuality.com/Lark/ And there is always the faithful libxml and Xerces to fall back on. I just want to get a little feedback, so if I do this, it is done right and benefits the perl/xml community as a whole, not just me. It would be nice if someone who has submitted CPAN modules previously could look over the code before I submit it. I feel confident there are some nice perl idioms for packages that might make the package more standard. I just learned the perl Test packages today. I think if the libxml-enno is still in favor then I should clean up the test suite and go over the code. Here is an example of a simple question that I just don't know the answer to: Lines 223 and 249 of t/chk_batch.t: local *XML::DOM::warning = \&append_str; which produces this error during testing: Subroutine XML::DOM::warning redefined at t/chk_batch.t line 223. Subroutine XML::DOM::warning redefined at t/chk_batch.t line 249. It is pretty lame, and there is probably a better way to do it, but if it is better to overwrite it, how to avoid the warning? I now know that I can use no warnings to get around this, but is this the BEST perl practice? Here is the subroutine (so you don't have to look it up) sub append_str { $error_str .= shift() . "\n"; } Probably there is an accepted idiom to use for this purpose when writing tests, and I would rather go with the flow than create my own wheel. I am not trying to get someone else to do the work here, just hoping to get a modicum of support. Thanks for your assistance. Bradley Slavik fire at dls.net From darren.young at chicagobooth.edu Tue Jun 23 13:12:48 2009 From: darren.young at chicagobooth.edu (Young, Darren) Date: Tue, 23 Jun 2009 15:12:48 -0500 Subject: [Chicago-talk] Array::Diff Message-ID: <07A371D457B501478C1DB3C3DE8372D703FE48C8@GSBHEX2V.gsb.uchicago.edu> Anyone used Array::Diff before? I have the following but am getting back ref's for the arrays: # determine additions and removals from the list @curmembers = sort(@curmembers); @newmembers = sort(@newmembers); my $diff = Array::Diff->diff( \@curmembers, \@newmembers ); my @addmembers = $diff->added; my @delmembers = $diff->deleted; logmsg("Adds: " . scalar(@addmembers)); logmsg("Dels: " . scalar(@delmembers)); foreach my $add (@addmembers) { logmsg("ADD MEMBER: $add"); } foreach my $del (@delmembers) { logmsg("DEL MEMBER: $del"); } Results: [2009-06-23 15:05:05] main(): Adds: 1 [2009-06-23 15:05:05] main(): Dels: 1 [2009-06-23 15:05:05] main(): ADD MEMBER: ARRAY(0x90db898) [2009-06-23 15:05:05] main(): DEL MEMBER: ARRAY(0x9107658) >From the docs I was assuming the return was an array of diff's. From lee at laylward.com Tue Jun 23 14:47:10 2009 From: lee at laylward.com (Lee Aylward) Date: Tue, 23 Jun 2009 17:47:10 -0400 Subject: [Chicago-talk] Array::Diff In-Reply-To: <07A371D457B501478C1DB3C3DE8372D703FE48C8@GSBHEX2V.gsb.uchicago.edu> References: <07A371D457B501478C1DB3C3DE8372D703FE48C8@GSBHEX2V.gsb.uchicago.edu> Message-ID: <06AFEA96-DAA3-4ECD-85D2-3E28DAB521ED@laylward.com> I just checked the docs on search.cpan.org and it looks like ->added() and ->deleted() both return array refs. e.g. (from the synposis) $diff->added # [ 'd' ]; $diff->deleted # [ 'a' ]; -- Lee On Jun 23, 2009, at 4:12 PM, Young, Darren wrote: > Anyone used Array::Diff before? I have the following but am getting > back > ref's for the arrays: > > # determine additions and removals from the list > @curmembers = sort(@curmembers); > @newmembers = sort(@newmembers); > my $diff = Array::Diff->diff( \@curmembers, \@newmembers ); > my @addmembers = $diff->added; > my @delmembers = $diff->deleted; > > logmsg("Adds: " . scalar(@addmembers)); > logmsg("Dels: " . scalar(@delmembers)); > > foreach my $add (@addmembers) { > logmsg("ADD MEMBER: $add"); > } > foreach my $del (@delmembers) { > logmsg("DEL MEMBER: $del"); > } > > Results: > [2009-06-23 15:05:05] main(): Adds: 1 > [2009-06-23 15:05:05] main(): Dels: 1 > [2009-06-23 15:05:05] main(): ADD MEMBER: ARRAY(0x90db898) > [2009-06-23 15:05:05] main(): DEL MEMBER: ARRAY(0x9107658) > >> From the docs I was assuming the return was an array of diff's. > _______________________________________________ > Chicago-talk mailing list > Chicago-talk at pm.org > http://mail.pm.org/mailman/listinfo/chicago-talk > From Darren.Young at chicagobooth.edu Tue Jun 23 15:08:53 2009 From: Darren.Young at chicagobooth.edu (Young, Darren) Date: Tue, 23 Jun 2009 17:08:53 -0500 Subject: [Chicago-talk] Array::Diff In-Reply-To: <06AFEA96-DAA3-4ECD-85D2-3E28DAB521ED@laylward.com> References: <07A371D457B501478C1DB3C3DE8372D703FE48C8@GSBHEX2V.gsb.uchicago.edu> <06AFEA96-DAA3-4ECD-85D2-3E28DAB521ED@laylward.com> Message-ID: <07A371D457B501478C1DB3C3DE8372D703FE49E7@GSBHEX2V.gsb.uchicago.edu> Yea, description doesn't really say that. > -----Original Message----- > From: chicago-talk-bounces+darren.young=chicagobooth.edu at pm.org > [mailto:chicago-talk-bounces+darren.young=chicagobooth.edu at pm.org] On > Behalf Of Lee Aylward > Sent: Tuesday, June 23, 2009 4:47 PM > To: Chicago.pm chatter > Subject: Re: [Chicago-talk] Array::Diff > > I just checked the docs on search.cpan.org and it looks like ->added() > and ->deleted() both return array refs. > > e.g. (from the synposis) > $diff->added # [ 'd' ]; > $diff->deleted # [ 'a' ]; > -- > Lee > > On Jun 23, 2009, at 4:12 PM, Young, Darren wrote: > > > Anyone used Array::Diff before? I have the following but am getting > > back > > ref's for the arrays: > > > > # determine additions and removals from the list > > @curmembers = sort(@curmembers); > > @newmembers = sort(@newmembers); > > my $diff = Array::Diff->diff( \@curmembers, \@newmembers ); > > my @addmembers = $diff->added; > > my @delmembers = $diff->deleted; > > > > logmsg("Adds: " . scalar(@addmembers)); > > logmsg("Dels: " . scalar(@delmembers)); > > > > foreach my $add (@addmembers) { > > logmsg("ADD MEMBER: $add"); > > } > > foreach my $del (@delmembers) { > > logmsg("DEL MEMBER: $del"); > > } > > > > Results: > > [2009-06-23 15:05:05] main(): Adds: 1 > > [2009-06-23 15:05:05] main(): Dels: 1 > > [2009-06-23 15:05:05] main(): ADD MEMBER: ARRAY(0x90db898) > > [2009-06-23 15:05:05] main(): DEL MEMBER: ARRAY(0x9107658) > > > >> From the docs I was assuming the return was an array of diff's. > > _______________________________________________ > > Chicago-talk mailing list > > Chicago-talk at pm.org > > http://mail.pm.org/mailman/listinfo/chicago-talk > > > > _______________________________________________ > Chicago-talk mailing list > Chicago-talk at pm.org > http://mail.pm.org/mailman/listinfo/chicago-talk From joshua.mcadams at gmail.com Wed Jun 24 08:35:58 2009 From: joshua.mcadams at gmail.com (Joshua) Date: Wed, 24 Jun 2009 11:35:58 -0400 Subject: [Chicago-talk] YAPC Houston t-shirts Message-ID: <49d805d70906240835v121fd4ceqb91fcdffce4cd1c6@mail.gmail.com> There is a huge pile of YAPC::Houston t-shirts here at YAPC::Pittsburgh. If anyone wants one, please let me know your size and I'll do my best to bring some shirts back... no guarantees though :) From hwigoda at mindspring.com Wed Jun 24 08:49:37 2009 From: hwigoda at mindspring.com (Hal Wigoda) Date: Wed, 24 Jun 2009 10:49:37 -0500 Subject: [Chicago-talk] YAPC Houston t-shirts In-Reply-To: <49d805d70906240835v121fd4ceqb91fcdffce4cd1c6@mail.gmail.com> References: <49d805d70906240835v121fd4ceqb91fcdffce4cd1c6@mail.gmail.com> Message-ID: <549B99C0-145F-4C75-91DF-9ADCA3F86315@mindspring.com> The biggest you have 4XL of possible. Hal Sent from my iPhone On Jun 24, 2009, at 10:35 AM, Joshua wrote: > There is a huge pile of YAPC::Houston t-shirts here at > YAPC::Pittsburgh. If anyone wants one, please let me know your size > and I'll do my best to bring some shirts back... no guarantees though > :) > _______________________________________________ > Chicago-talk mailing list > Chicago-talk at pm.org > http://mail.pm.org/mailman/listinfo/chicago-talk From merlyn at stonehenge.com Wed Jun 24 09:19:59 2009 From: merlyn at stonehenge.com (Randal L. Schwartz) Date: Wed, 24 Jun 2009 09:19:59 -0700 Subject: [Chicago-talk] YAPC Houston t-shirts In-Reply-To: <549B99C0-145F-4C75-91DF-9ADCA3F86315@mindspring.com> (Hal Wigoda's message of "Wed, 24 Jun 2009 10:49:37 -0500") References: <49d805d70906240835v121fd4ceqb91fcdffce4cd1c6@mail.gmail.com> <549B99C0-145F-4C75-91DF-9ADCA3F86315@mindspring.com> Message-ID: <86skhpzjrk.fsf@blue.stonehenge.com> >>>>> "Hal" == Hal Wigoda writes: Hal> The biggest you have 4XL of possible. Aka - "Programmer Size". :) -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc. See http://methodsandmessages.vox.com/ for Smalltalk and Seaside discussion From kent at c2group.net Wed Jun 24 14:50:03 2009 From: kent at c2group.net (Kent Cowgill) Date: Wed, 24 Jun 2009 17:50:03 -0400 Subject: [Chicago-talk] YAPC Houston t-shirts In-Reply-To: <86skhpzjrk.fsf@blue.stonehenge.com> References: <49d805d70906240835v121fd4ceqb91fcdffce4cd1c6@mail.gmail.com> <549B99C0-145F-4C75-91DF-9ADCA3F86315@mindspring.com> <86skhpzjrk.fsf@blue.stonehenge.com> Message-ID: <75E30FA3-0612-44C8-BC8B-0ACE02AB7554@c2group.net> On Jun 24, 2009, at 12:19 PM, Randal L. Schwartz wrote: >>>>>> "Hal" == Hal Wigoda writes: > > Hal> The biggest you have 4XL of possible. > > Aka - "Programmer Size". :) Erm. Speak for yourself? Kent Cowgill kent at c2group.net http://kentcowgill.org/blog http://youtube.com/kcowgill http://kentcowgill.org/photos http://flickr.com/people/kcowgill From fire at dls.net Wed Jun 24 15:02:12 2009 From: fire at dls.net (Bradley Slavik) Date: Wed, 24 Jun 2009 17:02:12 -0500 Subject: [Chicago-talk] YAPC Houston t-shirts Message-ID: <15581.1245880932@dls.net> On Wed 09/06/24 16:50 , Kent Cowgill kent at c2group.net sent: > > On Jun 24, 2009, at 12:19 PM, Randal L. Schwartz wrote: > > >>>>>> "Hal" == Hal > Wigoda a at mindspring.com> writes:> > > Hal> The biggest you have 4XL of > possible.> > > Aka - "Programmer Size". :) > > > Erm. Speak for yourself? > > Kent Cowgill kent at c2group > .net > http://kentcowgill.org/blog > http://youtube.com/kcowgillhttp://kentcowgill.org/photos > http://flickr.com/people/kcowgill > > > _______________________________________________ > Chicago-talk mailing list > Chicago-t > alk at pm.orghttp://mail.pm.org/mailman/listinfo/chicago-talk Sorry that you can't fit in "programmer size". I use mine as a survival tent in the wilderness of Barsoom. Bradley From richard at rushlogistics.com Sat Jun 27 13:24:30 2009 From: richard at rushlogistics.com (Richard Reina) Date: Sat, 27 Jun 2009 16:24:30 -0400 (EDT) Subject: [Chicago-talk] =?utf-8?q?Database_or_Code=3F?= Message-ID: <20090627202430.22E2424E9@alexander.xo.com> I have to create a summary report out of a database that contains data about flight departures. Example: Chicago, IL Phoenix, AZ United Each report has to summarize an airline's quantity of unique monthly flights so that in the end I get: Continental Airlines: Chicago, IL to New York 21 New York, NY to Dallas 17 Houston, TX to Dallas 45 Chicago, IL to Phoenix 5 I can't find an SQL query that allows me to parse the data in such a way so I was wondering if I could get some general opinions on what would be the easiest way to do this in perl? From imranjj at gmail.com Sat Jun 27 13:55:55 2009 From: imranjj at gmail.com (imran javaid) Date: Sat, 27 Jun 2009 15:55:55 -0500 Subject: [Chicago-talk] Database or Code? In-Reply-To: <20090627202430.22E2424E9@alexander.xo.com> References: <20090627202430.22E2424E9@alexander.xo.com> Message-ID: There are many ways to slice and dice this. One is to build a hash of hashes: $data->{$airline}->{$origin}->{$destination}++ On 6/27/09, Richard Reina wrote: > I have to create a summary report out of a database that contains data about > flight departures. > > Example: > > Chicago, IL Phoenix, AZ United > > Each report has to summarize an airline's quantity of unique monthly flights > so that in the end I get: > > Continental Airlines: > Chicago, IL to New York 21 > New York, NY to Dallas 17 > Houston, TX to Dallas 45 > Chicago, IL to Phoenix 5 > > I can't find an SQL query that allows me to parse the data in such a way so > I was wondering if I could get some general opinions on what would be the > easiest way to do this in perl? > _______________________________________________ > Chicago-talk mailing list > Chicago-talk at pm.org > http://mail.pm.org/mailman/listinfo/chicago-talk > -- Sent from my mobile device From warren.lindsey at gmail.com Sat Jun 27 15:37:04 2009 From: warren.lindsey at gmail.com (Warren Lindsey) Date: Sat, 27 Jun 2009 17:37:04 -0500 Subject: [Chicago-talk] Database or Code? Message-ID: <4a469f52.1ac1f10a.2a55.3f36@mx.google.com> Select depart, arrive, count(*) from flights group by depart, arrive; -----Original Message----- From: imran javaid Sent: Saturday, June 27, 2009 3:55 PM To: Chicago.pm chatter Subject: Re: [Chicago-talk] Database or Code? There are many ways to slice and dice this. One is to build a hash of hashes: $data->{$airline}->{$origin}->{$destination}++ On 6/27/09, Richard Reina wrote: > I have to create a summary report out of a database that contains data about > flight departures. > > Example: > > Chicago, IL Phoenix, AZ United > > Each report has to summarize an airline's quantity of unique monthly flights > so that in the end I get: > > Continental Airlines: > Chicago, IL to New York 21 > New York, NY to Dallas 17 > Houston, TX to Dallas 45 > Chicago, IL to Phoenix 5 > > I can't find an SQL query that allows me to parse the data in such a way so > I was wondering if I could get some general opinions on what would be the > easiest way to do this in perl? > _______________________________________________ > Chicago-talk mailing list > Chicago-talk at pm.org > http://mail.pm.org/mailman/listinfo/chicago-talk > -- Sent from my mobile device _______________________________________________ Chicago-talk mailing list Chicago-talk at pm.org http://mail.pm.org/mailman/listinfo/chicago-talk From warren.lindsey at gmail.com Sat Jun 27 15:41:08 2009 From: warren.lindsey at gmail.com (Warren Lindsey) Date: Sat, 27 Jun 2009 17:41:08 -0500 Subject: [Chicago-talk] Database or Code? Message-ID: <4a46a046.48c3f10a.13a7.3c27@mx.google.com> Whoops, missed by carrier. Select airline, depart, arrive, count(*) from flights group by airline, depart, arrive; -----Original Message----- From: imran javaid Sent: Saturday, June 27, 2009 3:55 PM To: Chicago.pm chatter Subject: Re: [Chicago-talk] Database or Code? There are many ways to slice and dice this. One is to build a hash of hashes: $data->{$airline}->{$origin}->{$destination}++ On 6/27/09, Richard Reina wrote: > I have to create a summary report out of a database that contains data about > flight departures. > > Example: > > Chicago, IL Phoenix, AZ United > > Each report has to summarize an airline's quantity of unique monthly flights > so that in the end I get: > > Continental Airlines: > Chicago, IL to New York 21 > New York, NY to Dallas 17 > Houston, TX to Dallas 45 > Chicago, IL to Phoenix 5 > > I can't find an SQL query that allows me to parse the data in such a way so > I was wondering if I could get some general opinions on what would be the > easiest way to do this in perl? > _______________________________________________ > Chicago-talk mailing list > Chicago-talk at pm.org > http://mail.pm.org/mailman/listinfo/chicago-talk > -- Sent from my mobile device _______________________________________________ Chicago-talk mailing list Chicago-talk at pm.org http://mail.pm.org/mailman/listinfo/chicago-talk From richard at rushlogistics.com Sat Jun 27 16:20:55 2009 From: richard at rushlogistics.com (richard at rushlogistics.com) Date: Sat, 27 Jun 2009 23:20:55 +0000 Subject: [Chicago-talk] Database or Code? In-Reply-To: <4a46a046.48c3f10a.13a7.3c27@mx.google.com> References: <4a46a046.48c3f10a.13a7.3c27@mx.google.com> Message-ID: <1047315676-1246144771-cardhu_decombobulator_blackberry.rim.net-1146764949-@bxe1188.bisx.prod.on.blackberry> Wow! I'm not at the office to try this but it looks very promising! Hopefully it will work with MySQL. Thank you so much. I will let you know how it goes. Sent via my BlackBerry. Ignore all the typos. -----Original Message----- From: Warren Lindsey Date: Sat, 27 Jun 2009 17:41:08 To: Chicago pm chatter Subject: Re: [Chicago-talk] Database or Code? Whoops, missed by carrier. Select airline, depart, arrive, count(*) from flights group by airline, depart, arrive; -----Original Message----- From: imran javaid Sent: Saturday, June 27, 2009 3:55 PM To: Chicago.pm chatter Subject: Re: [Chicago-talk] Database or Code? There are many ways to slice and dice this. One is to build a hash of hashes: $data->{$airline}->{$origin}->{$destination}++ On 6/27/09, Richard Reina wrote: > I have to create a summary report out of a database that contains data about > flight departures. > > Example: > > Chicago, IL Phoenix, AZ United > > Each report has to summarize an airline's quantity of unique monthly flights > so that in the end I get: > > Continental Airlines: > Chicago, IL to New York 21 > New York, NY to Dallas 17 > Houston, TX to Dallas 45 > Chicago, IL to Phoenix 5 > > I can't find an SQL query that allows me to parse the data in such a way so > I was wondering if I could get some general opinions on what would be the > easiest way to do this in perl? > _______________________________________________ > Chicago-talk mailing list > Chicago-talk at pm.org > http://mail.pm.org/mailman/listinfo/chicago-talk > -- Sent from my mobile device _______________________________________________ Chicago-talk mailing list Chicago-talk at pm.org http://mail.pm.org/mailman/listinfo/chicago-talk _______________________________________________ Chicago-talk mailing list Chicago-talk at pm.org http://mail.pm.org/mailman/listinfo/chicago-talk From tzz at lifelogs.com Sun Jun 28 06:15:37 2009 From: tzz at lifelogs.com (Ted Zlatanov) Date: Sun, 28 Jun 2009 08:15:37 -0500 Subject: [Chicago-talk] Database or Code? In-Reply-To: <4a46a046.48c3f10a.13a7.3c27@mx.google.com> (Warren Lindsey's message of "Sat, 27 Jun 2009 17:41:08 -0500") References: <4a46a046.48c3f10a.13a7.3c27@mx.google.com> Message-ID: On Sat, 27 Jun 2009 17:41:08 -0500 Warren Lindsey wrote: WL> Whoops, missed by carrier. WL> Select airline, depart, arrive, count(*) from flights group by airline, depart, arrive; If you don't need high performance, and you'd rather compose SQL queries through Perl objects (ignoring the MySQL vs. Postgres vs. Oracle vs. Sybase vs. others SQL incompatibilities), I found Rose::DB::Object to be very good. There's a few other Perl ORMs out there, a recent review is at http://blog.afoolishmanifesto.com/archives/822 If you want performance (you issue lots of queries or you have lots of objects), and of course if you're doing more advanced queries, RDBO will probably not be right for you. Ted From andy at petdance.com Sun Jun 28 12:20:13 2009 From: andy at petdance.com (Andy Lester) Date: Sun, 28 Jun 2009 14:20:13 -0500 Subject: [Chicago-talk] What Perl stuff is everyone doing? Message-ID: <6D262F32-338D-4C14-B684-8D243EF403BD@petdance.com> What kinds of Perl things is everyone doing these days? YAPC::NA just concluded out in Pittsburgh. Anyone have reports from the field to share? I know Josh McAdams and Kent Cowgill and Jason Crome all went. The Movable Type fork looks pretty cool as a concept, although I haven't looked at the underlying code. See Mark Stosberg's article at http://mark.stosberg.com/blog/2009/06/movable-type-fork-is-an-opportunity-to-harness-cpan.html . He's in Indiana, so I think we should count him as honorary Chicago.pm. xoxo, Andy -- Andy Lester => andy at petdance.com => www.theworkinggeek.com => AIM:petdance From andy at petdance.com Sun Jun 28 12:21:34 2009 From: andy at petdance.com (Andy Lester) Date: Sun, 28 Jun 2009 14:21:34 -0500 Subject: [Chicago-talk] What I've been doing lately: Not much Perl Message-ID: I've been pretty busy lately with my just-released book "Land The Tech Job You Love", and getting ready for the webcast I'm doing with Chad Fowler, Ruby guru, on Wednesday titled "Radical Career Success in a Down Economy". To sign up for the webcast, go to http://www.oreillynet.com/pub/e/1360 If you're interested in the book, check out http://www.pragprog.com/titles/algh/land-the-tech-job-you-love I'm hoping that once I get the initial publicity about the book out of the way, I'll have more time to deal with my backlog of module fixes. Most of my Perl these days has just been maintaining Perlbuzz. xoxo, Andy -- Andy Lester => andy at petdance.com => www.theworkinggeek.com => AIM:petdance From andy at petdance.com Sun Jun 28 12:22:25 2009 From: andy at petdance.com (Andy Lester) Date: Sun, 28 Jun 2009 14:22:25 -0500 Subject: [Chicago-talk] Promote Perl 6 by saying "Perl 5" Message-ID: <5A5B1B0A-FF2A-4E11-9766-246EF8F7CCFD@petdance.com> From http://perlbuzz.com/2009/06/promote-perl-6-by-saying-perl-5.html Perl 6 is hurtling toward completion. The specification is nearly complete, and Rakudo now passes 68% of the specification tests. Applications like November are being written in Perl 6. Perl 6 is no vaporware, and the day when Perl 6 is ready for widespread use is coming quickly. Perl 6 has been in development since 2000, and in that time many people may have forgotten about the plans we've had for Perl 6. There may be those who have never even heard about the plans for Perl 6. Those of us who live in the Perl world are aware of the great changes afoot, but there are plenty of people who are not. I think that the time is right to help make those people aware of Perl 6, and to remind them constantly of what's coming. My proposed technique is simple and it takes advantage of the key elements of time and repetition to help remind everyone about Perl 6. We need to stop referring to Perl 5 as "Perl" and start calling it "Perl 5." Specifying the "5" in "Perl 5" calls attention to the fact that there is more than one Perl. It makes the listener or reader who is unaware of Perl 6 wonder why the 5 is specified. For the reader who knows about Perl 6, hearing "Perl 5" reminds her that Perl 6 also exists. I don't think it will be too tough. All I ask is that, at the very least, when writing about Perl 5 in your blogs or mailing lists that you specify the version you're talking about. It doesn't even need to be every instance. I'm guessing we'll find that repeatedly saying "Perl 5" in a long message will get tedious both for writer and reader. I think the way to look at it is that "Perl 5" is the formal name for the language, and later references can refer to it as "Perl," almost like a nickname. Just that first reminder of "Perl 5" will be enough to help lodge in the reader's brain. With enough time & repetition, it will get to be habit in our minds. With enough time & repetition, the computing world will be reminded of Perl 6 coming soon. xoxo, Andy -- Andy Lester => andy at petdance.com => www.theworkinggeek.com => AIM:petdance From shlomif at iglu.org.il Sun Jun 28 13:14:38 2009 From: shlomif at iglu.org.il (Shlomi Fish) Date: Sun, 28 Jun 2009 23:14:38 +0300 Subject: [Chicago-talk] What Perl stuff is everyone doing? In-Reply-To: <6D262F32-338D-4C14-B684-8D243EF403BD@petdance.com> References: <6D262F32-338D-4C14-B684-8D243EF403BD@petdance.com> Message-ID: <200906282314.38742.shlomif@iglu.org.il> Hi all, On Sunday 28 June 2009 22:20:13 Andy Lester wrote: > What kinds of Perl things is everyone doing these days? > well, I've been working on quite a few Perl projects, actually. The first one worth mentioning is CPANHQ. See my blog post about it: http://community.livejournal.com/shlomif_tech/28209.html Essentially CPANHQ aims to be an open-source, unified, meta-data-enhanced, and community-driven interface to CPAN. At the moment, we have little to show for, but we've been making progress. CPANHQ was my chance to finally get my feet wet with Catalyst and DBIX-Class, and they both seem pretty nice so far. I also did some work on File-Find-Object and File-Find-Object-Rule : http://www.shlomifish.org/open-source/projects/File-Find-Object/ In case, you don't know, F-F-O is an object-oriented alternative to File::Find that can be instantiated, has an iterative/incremental interface and can return result objects. File-Find-Object-Rule is a port of File-Find-Rule to use it instead of File::Find, and lately, I've made its ->start() and - >match() methods truly iterative instead of using ->in() which just collected all the results into one humongous array and kept shifting stuff from it. This was a severe mis-feature of File-Find-Rule, IMO, and was implied by the limitations of File::Find. Another thing I've done was did some cosmetic work on the Build.PL files of some my CPAN distributions. Namely I added some links to resources and keywords (that can also be thought of as tags or labels) as specified in the META.yml spec: http://module-build.sourceforge.net/META-spec.html resources are displayed in the the distribution's pages on search.cpan.org and other sites. Author keywords (when they exist, and very few have been defined) are currently under-utilised. However, but I recently added some rudimentary support for them in CPANHQ (see above), and I hope that they will soon become more popular. A different aspect of my cleanup was clarifying the licensing terms of the distributions. My original distributions are under the MIT/X11 licence, but I wrote "All rights reserved" there as well, which I was told was incompatible with it (or with "The same terms as Perl" for that matter). I also added a COPYING file where appropriate. I've finished reading Mastering Perl. I "forked" its github repository and made some corrections, which brian d foy has pulled. I did some similar forks too that way for Perl projects. I did some other work on the CPAN modules that I maintain see: http://search.cpan.org/~shlomif/?R=D As a result of experimenting with these various Perl-based technologies, I've been building many CPAN distributions as RPM packages on my Mandriva Linux system. I found this bash function useful: <<< function up() { urpmi "perl($1)" ; } >>> So I can say "up MyModule::Sub" and it will install the package containing the Perl .pm "MyModule::Sub". Sometimes building the packages was straightforward, but often I needed to apply some patches to the build .spec or the tests. On the non-Perl related (but still open-source) front, I've been working on http://fc-solve.berlios.de/ . I released a stable version only to discover its build process was severly broken (especially on Windows) so I had to release a x.y.1 release. Regards, Shlomi Fish -- ----------------------------------------------------------------- Shlomi Fish http://www.shlomifish.org/ Interview with Ben Collins-Sussman - http://xrl.us/bjn8s God gave us two eyes and ten fingers so we will type five times as much as we read. From michael at potter.name Sun Jun 28 15:20:43 2009 From: michael at potter.name (Michael Potter) Date: Sun, 28 Jun 2009 17:20:43 -0500 Subject: [Chicago-talk] What Perl stuff is everyone doing? In-Reply-To: <6D262F32-338D-4C14-B684-8D243EF403BD@petdance.com> References: <6D262F32-338D-4C14-B684-8D243EF403BD@petdance.com> Message-ID: <2379dacc0906281520o76e2c1c0x480c8ee18bc42f52@mail.gmail.com> On Sun, Jun 28, 2009 at 2:20 PM, Andy Lester wrote: > > What kinds of Perl things is everyone doing these days? > Mongers, I am just wrapping up a data conversion project using Perl 5 and Groovy. I used Groovy to do some address validation using a Java based package called MelissaData. Besides the pretty complex conversions I wrote dozens of reports to identify inconsistent data so it could be cleaned up before the conversion. The client was pretty happy with how fast I could create new reports and make changes to the conversion algorithm. I did not miss an opportunity to mention that I was using Perl. About a year ago I was working on a project to generate Java code using Perl 5. The Perl reads XML to generate Axis2 based webservices. The Perl code generates .java, .wsdl, and .html. The XML is documentation of mainframe transactions. The idea was to turn mainframe transactions into webservices. Anyway, I am looking for another gig; I am especially interested in the Financial SW. I have been studying CUDA in hopes of using it for financial SW. For those of you who may not be familiar: CUDA is a C library used to turn an nVidia graphics coprocessor into a math coprocessor. -- Michael Potter -------------- next part -------------- An HTML attachment was scrubbed... URL: From richard at rushlogistics.com Mon Jun 29 09:34:25 2009 From: richard at rushlogistics.com (Richard Reina) Date: Mon, 29 Jun 2009 12:34:25 -0400 (EDT) Subject: [Chicago-talk] =?utf-8?q?Database_or_Code=3F?= In-Reply-To: <4a46a046.48c3f10a.13a7.3c27@mx.google.com> Message-ID: <20090629163425.62D8B2142@victory.xo.com> This query turned out to be just what I needed thank you very much. ---- Chicago.pm chatter wrote: > > Whoops, missed by carrier. > > Select airline, depart, arrive, count(*) from flights group by airline, depart, arrive; > > -----Original Message----- > From: imran javaid > Sent: Saturday, June 27, 2009 3:55 PM > To: Chicago.pm chatter > Subject: Re: [Chicago-talk] Database or Code? > > There are many ways to slice and dice this. One is to build a hash of hashes: > $data->{$airline}->{$origin}->{$destination}++ > > > > On 6/27/09, Richard Reina wrote: > > I have to create a summary report out of a database that contains data about > > flight departures. > > > > Example: > > > > Chicago, IL Phoenix, AZ United > > > > Each report has to summarize an airline's quantity of unique monthly flights > > so that in the end I get: > > > > Continental Airlines: > > Chicago, IL to New York 21 > > New York, NY to Dallas 17 > > Houston, TX to Dallas 45 > > Chicago, IL to Phoenix 5 > > > > I can't find an SQL query that allows me to parse the data in such a way so > > I was wondering if I could get some general opinions on what would be the > > easiest way to do this in perl? > > _______________________________________________ > > Chicago-talk mailing list > > Chicago-talk at pm.org > > http://mail.pm.org/mailman/listinfo/chicago-talk > > > > -- > Sent from my mobile device > _______________________________________________ > Chicago-talk mailing list > Chicago-talk at pm.org > http://mail.pm.org/mailman/listinfo/chicago-talk > > _______________________________________________ > Chicago-talk mailing list > Chicago-talk at pm.org > http://mail.pm.org/mailman/listinfo/chicago-talk > From Andy_Bach at wiwb.uscourts.gov Tue Jun 30 10:22:01 2009 From: Andy_Bach at wiwb.uscourts.gov (Andy_Bach at wiwb.uscourts.gov) Date: Tue, 30 Jun 2009 12:22:01 -0500 Subject: [Chicago-talk] Dr. Dobb's Update - 06/30/09 - Book review of "Land the Tech Job You Love" In-Reply-To: <12592586.156902161246378402759.JavaMail.?@rbg01.pdkp2> References: <12592586.156902161246378402759.JavaMail.?@rbg01.pdkp2> Message-ID: Latest Dr. Dobbs update http://links.techwebnewsletters.com/servlet/MailView?ms=MzM0NzQ5MDkS1&r=MjIxNTU0Mjk1NAS2&j=NTIyODE4ODQS1&mt=1&rt=0 has a review of Andy Lester's new book! http://dobbscodetalk.com/index.php?option=com_myblog&show=Land-the-Tech-Job-You-Love-Book-Review.html&Itemid=29 Land the Tech Job You Love Book Review It goes without saying that times are tough and finding the perfect job is even tougher. Chicago-based technologist and author Andy Lester offers no-nonsense job search and interview advice in his recent Pragmatic Bookshelf title, Land the Tech Job You Love. Read on to find out if the tips he shares are worth the book's cover price. [...] a ---------------------- Andy Bach Systems Mangler Internet: andy_bach at wiwb.uscourts.gov Voice: (608) 261-5738; Cell: (608) 658-1890 The trouble with doing something right the first time is that nobody appreciates how difficult it was. -------------- next part -------------- An HTML attachment was scrubbed... URL: