2007-08-30:
[2:42] <Lonnie> hi all[2:42] <Lonnie> What do you guys think about serving websites with Helma?[2:43] <Lonnie> Instead of just web applications?[2:43] <Lonnie> I mean, these days, many websites become web applications slowly but surely.[2:43] <Lonnie> anyone there?[2:56] <Lonnie> This room is dead![2:56] <Lonnie> I don't won't Helma to be dead![2:57] <Lonnie> Someone chat with me.[2:57] <Lonnie> please[2:57] <Lonnie> You can save me a lot of time.[2:58] <Lonnie> I'm trying to make a custom jar accessible from Helma.[2:58] <Lonnie> I see how to create the string builder object in java using javascript.[2:59] <Lonnie> But I can't seem discover how to map my own jar objects to javascript.[2:59] <Lonnie> I'm a c# developer, but I'm trying to move to java. I love javascript most of all though.[3:00] <Lonnie> Helma might be a good fit for me.[3:59] <midnightmonster> still around, lonnie?[4:06] <midnightmonster> easy enough to build mostly-pages sites with Helma. E.g., store semi-static pages as files in whatever format in the prototype dirs or elsewhere if you don't want them mixed in with code. Have some code in the HobObject prototype that turns your pages into proper html site pages (e.g., by wrapping then in your branding). Also in HopObject, create a getChildElement function that also checks the corresponding folder for you[4:06] <midnightmonster> I'll likely implement something similar next mostly-pages site I need to do. I don't plan to go back to PHP, certainly.[4:07] <midnightmonster> and you should be able to just drop your JAR in Helma's extensions folder and then access it through the standard ways Rhino provides[4:12] <midnightmonster> re: servings sites, if you're content to use fully-static HTML or simple SHTML, you can easily reverse-proxy your site through apache (which has some significant advantages anyway) and configure apache to handle .html, .shtml (and .png, .gif, .css, etc.) files itself and only pass on the requests with no extension to Helma.[4:17] <midnightmonster> also, Helma usage is global, so people in chat may be in very different timezones from you. the user mailing list will generally get you a solution in <24 hrs, but you'd probably need to provide more detail about what you've tried[4:17] <Lonnie> I'm back[4:17] <Lonnie> went to Sonic to get coney deal[4:18] <Lonnie> and tots[4:18] <midnightmonster> nice[4:18] <Lonnie> Give me a sec to read what you've written.[4:20] <Lonnie> Most of my server-side code is in C#.[4:20] <Lonnie> For example, I have CSS formater at: www.lonniebest.com/FormatCSS/[4:21] <Lonnie> When someone submits CSS, C# and .net framework do all the work.[4:21] <Lonnie> I was thinking moving that to java instead.[4:21] <Lonnie> but using helma for the front end.[4:22] <Lonnie> I have so much crap that I won't to move away from .net and microsoft.[4:22] <Lonnie> It is overwhelming.[4:23] <Lonnie> I use Ubuntu Linux as my desktop machine. I've downloaded Helma and got the jetty running.[4:23] <Lonnie> I've navigated the welcome application and I like what I've read.[4:24] <Lonnie> I made an application by copying the welcome folder and renaming it Lonnie.[4:24] <Lonnie> Then I manipulated the config files so that the webserver understands the url mappings.[4:25] <Lonnie> I made hello world java application using eclipse.[4:25] <Lonnie> Then I changed it so that is had a static method, then made a jar file.[4:26] <Lonnie> Now, I was able to consume a string builder object via javascript, but when I drop the jar file I made into Helma's jar repository, I could access the object I create.[4:27] <midnightmonster> I'm not the right person to ask re: integrating your hello world java. I'm a fair guru w/ JavaScript, experienced beginner with Helma, write-everything-I-know-on-a-postcard about Java development proper.[4:27] <Lonnie> haha[4:28] <Lonnie> Yeah, I don't know crap about java either. I know a lot about c# and .net and they copied java quite a bit.[4:29] <Lonnie> You see, if I can get one custom jar to work, I'll be set.[4:29] <midnightmonster> (I mean, I pretty much get it at a high level, and I can read and modify Java code, but I don't even have a Java build environment. I'll want to "go there" soon enough, I think, though.)[4:29] <Lonnie> I'll start porting everything to it.[4:29] <midnightmonster> gotcha. I'd repeat all that on the user mailing list and someone will likely be able to help[4:29] <Lonnie> I'm good at javascript (I think).[4:30] <Lonnie> I've made a few things with it client side. I made a table control:[4:30] <Lonnie> http://www.howtoadvice.com/Savings/[4:30] <Lonnie> and this card trick:[4:30] <Lonnie> http://www.lonniebest.com/CardTrick/[4:30] <midnightmonster> so why didn't you write your CSS formatter in javascript? ;-)[4:30] <Lonnie> Javascript has a sucky regular expression engine.[4:31] <Lonnie> it lacks some features that perl and .net engines provide.[4:31] <Lonnie> Plus, it allows me to hide the source code ;)[4:32] <Lonnie> I'll probably give it away anyway soon, but at the time I had other ideas.[4:32] <midnightmonster> hrm. so I've heard, but I learned JavaScript's and PHP's regex stuff first and haven't run into anything I was missing from one to the other, and I've never used another regex engine (except in grep or vi)[4:32] <midnightmonster> so what's missing in JavaScript regex?[4:32] <Lonnie> look behinds[4:33] <Lonnie> ?=<[4:33] <midnightmonster> matches what?[4:34] <Lonnie> (?=<L)onnie would match "Lonnie" but not "Donnie"[4:34] <midnightmonster> (presumably PHP's pcre lib does whatever, but I never learned beyond the JavaScript regexen to notice)[4:34] <Lonnie> I write all my own regEx from scratch.[4:35] <midnightmonster> but so does /Lonnie/ ... so what can the lookbehind do? (me too, just don't know this feature)[4:35] <Lonnie> lookbehind are a nice featur[4:35] <Lonnie> one second[4:38] <Lonnie> Zero-width positive lookbehind assertion. Continues match only if the subexpression matches at this position on the left. For example, (?<=19)99 matches instances of 99 that follow 19. This construct does not backtrack.[4:38] <Lonnie> javascript doesn't support this regular expression.[4:38] <Lonnie> php probably does[4:38] <Lonnie> I don't know[4:39] <Lonnie> I suspect PHP uses a perl regex engine.[4:39] <Lonnie> But I have no clue.[4:40] <Lonnie> Actually, I told you wrong either.[4:40] <Lonnie> earlier[4:41] <Lonnie> (?=<L)onnie would match "onnie" only if preceded by an L.[4:41] <Lonnie> It will not match "onnie" if in "Donnie"[4:42] <midnightmonster> got it now[4:42] <Lonnie> I run into this need a lot in advance regular expressions.[4:43] <midnightmonster> I think I can see why you'd sometimes need that and not simply /19(99)/(string)[1][4:44] <Lonnie> So, you use php a lot?[4:44] <Lonnie> Here's why I want to use java in addition to javascript on the server side:[4:45] <Lonnie> I believe java gets compiled and therefore will run faster then javascript.[4:45] <Lonnie> (than)[4:45] <midnightmonster> used to use PHP for app dev. (PCRE stands for Perl-Compatible Regular Expressions, so presumably that PHP lib does the lookbehind thing) Now using Helma but still maintaining my older PHP sites and also doing repair/integration work on other people's PHP[4:46] <midnightmonster> re: Java vs JavaScript, correct[4:46] <midnightmonster> though for many uses it doesn't matter[4:47] <Lonnie> So, in a web application, where someone is submitting code to be formatted (like my CSS formatter), I would want my javascript doing runtime compiling for something that can be abstracted to a precompiled state.[4:47] <Lonnie> That's my thinking.[4:48] <midnightmonster> yeah, sure. don't optimize too early, though[4:48] <Lonnie> I'm wondering if I should use php.[4:48] <Lonnie> I'm struggling to get up an running with Linux on the server-side.[4:49] <midnightmonster> running PHP on windows is pretty non-standard. can certainly be done, but Helma on win is easier[4:49] <Lonnie> I like Ubuntu for desktop, but it is a big decision to know what to use to replace my ASPX, C#, IIS, etc.[4:50] <Lonnie> I've been using Helma on Ubuntu so far. It has been easy.[4:50] <Lonnie> What about those hop object, what do you use them for?[4:51] <Lonnie> I've played with them in the Welcome application.[4:51] <Lonnie> I like how they directly map to a URL upon creation.[4:51] <midnightmonster> PHP has a lot of built-in functions and libs, but it seems like even more b/c they're all shoved into the same flat namespace. It can be fast, but it's not elegant. It has memory management (of course) but little more expressive power than C.[4:52] <Lonnie> I don't like it when I look at it. I want something elegant.[4:53] <Lonnie> I wish javascript had more server side libraries for Linux like php and python and ruby and perl andandand.......[4:53] <midnightmonster> HopObjects (or mostly your prototypes that extend HopObject) can map onto the DB with Helma's ORM and are the objects that handle all the requests[4:53] <Lonnie> interesting[4:53] <midnightmonster> in Helma it has libs for nearly everything since you can use any Java class[4:53] <Lonnie> good point[4:54] <Lonnie> but I don't see how you can use "any" java class.[4:54] <midnightmonster> that's one of the big selling points. and most of the core web fiddly stuff is handled or provided in Helma for you[4:54] <midnightmonster> you can put any JARs you want in the extensions, and Rhino gives you complete access[4:54] <Lonnie> I mean, I understand how you can use java methods that return primitives types.[4:55] <midnightmonster> you can access and manipulate java objects, too[4:55] <midnightmonster> it's really amazingly powerful[4:55] <Lonnie> I see what you're saying.[4:55] <Lonnie> So, what about the scope of those objects, meaning....[4:56] <Lonnie> In IIS, each request has its own session scope I guess you would call it.[4:56] <midnightmonster> session != request[4:56] <Lonnie> true[4:56] <Lonnie> many request can be in one session[4:57] <Lonnie> so you need a request scope, session scope, and an application scope.[4:57] <Lonnie> Some values need to persist for the duration of each of the scopes I just mentioned.[4:58] <midnightmonster> in helma, the whole app stays alive all the time. req and res objects are created clean each request, and the url->object/action mapping and action call happen each request[4:58] <Lonnie> So, I guess Helma take care of that.[4:58] <midnightmonster> yes[4:58] <midnightmonster> request scope works for any local variables in your actions. there's a session object, and there's an app object[5:00] <midnightmonster> but It's 1am here, and I need to sign off. I'll be around tomorrow (today) during daylight.[5:00] <Lonnie> So, I can consume a java object for a request and then it will die. Or, I can consume a java object that will live for an entire session. And last, I can consume a java object that lasts as long as the application is running. And wait, I assume you can go even further using the hop objects. So that a java object an persist....[5:01] <Lonnie> after the machine is turned off...[5:01] <midnightmonster> you can persist not arbitrary java objects to the db, but ones for which you have setup a mapping, yes[5:02] <Lonnie> We should stay in touch.[5:02] <Lonnie> I'll work on Helma some more tonight.[5:02] <midnightmonster> I'm letterblock.com . There's nothing useful there, but there is an email address[5:02] <Lonnie> I'll email you now.[5:03] <Lonnie> thanks for filling in some of the gaps.[5:03] <midnightmonster> and I don't know for sure about Java objects in the session, but I think that's only my experience with PHP talking. that probably works fine.[5:03] <Lonnie> I want to talk more about the object xml database at some point[5:04] <Lonnie> I have a strong interest in object databases.[5:04] <Lonnie> I[5:04] <midnightmonster> I'm using it so far instead of a SQL DB--lotsa fun.[5:04] <Lonnie> I've looked at Matisse.com in the past.[5:05] <Lonnie> However, there have got to be some major performance limitations using the xml files.[5:05] <midnightmonster> preachingtheword.net is my almost-finished first site built in Helma (built for a client, not me personally)[5:05] <Lonnie> I'll check it out.[5:06] <Lonnie> Did you get the email?[5:07] <midnightmonster> yeah, and replied[5:07] <midnightmonster> I'm going to bed now, but I'll leave the window up and get back later on in the day or possibly when I'm up with the baby.[5:07] <Lonnie> ok, I'll send you my IM and stuff via email.[5:08] <Lonnie> nice chatting with you[7:23] <Lonnie> I have an existing website that I'd like to move to Helma, but it is very important that all the content pages of this website retain their current URL (because these URLs are linked-to by several other websites that I can't automatically update). In javascript, an identifier (the name of a variable) may not contain a forward slash. However, in Helma (from what I've been able to gather) URL paths have the same name as "actions" when are function identifiers in[8:25] <zumbrunn> lonnie, if you just want to handle the legacy urls and do not want to build your new site around the old url structure, you could handle the requests to the old urls separately and redirect them as you please[8:25] <zumbrunn> for example usiing the notfound action or the error action[8:26] <zumbrunn> if your question is about how to mirror the old structure in helma, you'll need to be more specific[8:27] <zumbrunn> btw, I see you had a lively dialog with midnightmonster while I was sleeping :-) ...haven't read through it yet, though[8:28] <zumbrunn> afk for a few minutes[18:29] <ismith> how is everyone?[18:30] <midnightmonster> pretty good here.[18:30] <ismith> were you able to deploy you rHelma app Midnight?[18:31] <midnightmonster> mine's been running at preachingtheword.net for a while. if you're thinking of someone who had trouble deploying, it wasn't me[18:32] <midnightmonster> but if you're just looking for a verified successful deployment, ypu, that's me[18:32] <midnightmonster> (bb shortly, though)[18:33] <ismith> yeah, last we talked you were just working on it and I wanted to make sure you did give up and go with PHP or something :-)[18:34] <ismith> question: where did you get your MP3 player?[19:01] <midnightmonster> http://www.1pixelout.net/code/audio-player-wordpress-plugin/[19:05] <midnightmonster> (not that I'm using WordPress, but it can easily be used without WordPress)[19:15] <midnightmonster> what're you working on, again, ismith?[19:19] <ismith> I work on quotewizard.com as my full time job and built joesgoals.com for the fun of it[19:20] <ismith> I also am working on a sermon site not unlike yours but I like your player better[19:30] <midnightmonster> I just saw it on http://www.scottandrew.com/ but since adding it to my site I've seen it all over[19:32] <ismith> cool[19:32] <ismith> so what do you do for a living, besides the odd site?[19:33] <midnightmonster> a lot of odd sites.[19:34] <midnightmonster> my recently-reconfigured business is maintaining and fixing/upgrading/integrating people's PHP sites and building new sites hopefully just in Helma but in PHP5 if I have to[19:38] <ismith> ahh, cool[19:38] <ismith> do you use Helma's object/database mapper or just write queries?[19:39] <midnightmonster> so far using Helma's built-in object db.[19:39] <midnightmonster> Helma's direct SQL database lib (not the ORM) is not in a condition to be used in production IMO.[19:40] <midnightmonster> Whenever I need to do arbitrary SQL with Helma, I'll have to build a better lib[19:45] <ismith> what makes you feel that way? is it buggy or you just want a better feature set?[19:47] <midnightmonster> I haven't yet used it. but it has no parameterized queries and no way to retrieve result rows except all at once into an array. both of those I regard as fairly essential, and JDBC provides them, so there's no reason the Helma lib that wraps JDBC shouldn't have them[19:49] <midnightmonster> (other than it's significantly more work to provide a nice javascript wrapper for all of those than it was just to do string queries and array recordsets, of course.)[19:56] <midnightmonster> before PDO in PHP5 there were no parameterized queries in PHP--I don't want to go there again. escaping is tedious and error-prone, so I'm always looking for systems that always do the right thing and make manual escaping unnecessary. (hence much of my love for E4X, actually)[20:29] <zumbrunn> http://www.onlamp.com/pub/a/onlamp/2007/08/30/introducing-trimpath-junction.html[20:30] <zumbrunn> (the first mention of Helma on onlamp/oreilly, I believe)[20:30] <midnightmonster> sweet[20:30] <midnightmonster> must read--later![20:44] <midnightmonster> posted to [programming.]reddit.com -- go bump![20:45] <midnightmonster> http://programming.reddit.com/info/2kao3/comments[20:55] <midnightmonster> any idea what happens in res.data.myfile if there's some error in the upload?[21:07] * ismith loves reddit[21:54] <rjb> http://www.russellbeattie.com/blog/what-about-sun-embracing-javascript
In the channel now:
Logs by date: