Re: Please suggest script
On 11/17/10 10:30 AM, Timothy Miller wrote: I tried: get the selectedText revGoUrl it That worked, to my amazement. Cool. Didn't know about RevGoUrl. OTOH, the docs say revGoUrl is deprecated. I'm not sure what to use instead. Try: get the selectedText launch url it -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Method question
Hi Glen, See if this works: -- card script -- local h1, h2, v1, v2 on mouseDown put the clickH into h1 put the clickV into v1 end mouseDown on mouseUp put the mouseH into h2 put the mouseV into v2 put grcDragRegion() end mouseUp function grcDragRegion -- define mouse drag rect put min(h1,h2) into tMouseLeft put max(h1,h2) into tMouseRight put min(v1,v2) into tMouseTop put max(v1,v2) into tMouseBottom -- define overlap of mouse drag rect grc rect put max(tMouseLeft, the left of grc 1) into item 1 of tOverlapRect put max(tMouseTop, the top of grc 1) into item 2 of tOverlapRect put min(tMouseRight, the right of grc 1) into item 3 of tOverlapRect put min(tMouseBottom, the bottom of grc 1) into item 4 of tOverlapRect -- return it return tOverlapRect end grcDragRegion Phil Davis On 11/9/10 10:48 AM, Glen Bojsza wrote: I have a problem which I am not certain which method is valid or should be used (with Rev / Livecode there are sometimes too many ways of achieving a goal). I have a graphic on a card left 62 right 462. My objective is to allow a user to left click and drag across the graphic as if selecting a section of it. I need start left,top,right,bottom and end left,top,right,bottom. The only interest is knowing the start of the drag when inside the graphic and the end of the drag inside the graphic... with the following caveats. - The user may start the drag either outside the graphic and then continue the drag into the graphic (which is the start point) or start the drag inside the graphic which would be the start point. - The user may release the mouse button inside the graphic which indicates the stop point or release the mouse button outside the graphic where the stop point is at the point of the mouse leaving the graphic. This seems like it should be simple but I am getting tied down but trying to over complicate it? This is for Windows and Linux . Any elegant or simple solutions out there? ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Method question
Ah! I overlooked that. Here's a fix: -- card script -- local h1, h2, v1, v2, wasWithinGrc on mouseDown put false into wasWithinGrc put the clickH into h1 put the clickV into v1 end mouseDown on mouseMove h,v if h,v is within the rect of grc 1 then put true into wasWithinGrc end mouseMove on mouseUp -- exit if mouse never entered the grc if wasWithinGrc = true then put the mouseH into h2 put the mouseV into v2 put grcDragRegion() else put empty end if end mouseUp function grcDragRegion -- define mouse drag rect put min(h1,h2) into tMouseLeft put max(h1,h2) into tMouseRight put min(v1,v2) into tMouseTop put max(v1,v2) into tMouseBottom -- define overlap of mouse drag rect grc rect put max(tMouseLeft, the left of grc 1) into item 1 of tOverlapRect put max(tMouseTop, the top of grc 1) into item 2 of tOverlapRect put min(tMouseRight, the right of grc 1) into item 3 of tOverlapRect put min(tMouseBottom, the bottom of grc 1) into item 4 of tOverlapRect -- return it return tOverlapRect end grcDragRegion On 11/9/10 11:57 AM, Glen Bojsza wrote: Hi Phil, Yes it works BUT it doesn't constrain itself to the graphic. I want it to only to report the points if the user includes the graphic when they d their drag... as it currently stands it reports coordinates even if the user does not drag across the graphic. But other that that it is total a different perspective on how I was looking at the problem... I was too focused on the graphic. thanks, Glen On Tue, Nov 9, 2010 at 12:27 PM, Phil Davisrev...@pdslabs.net wrote: Hi Glen, See if this works: -- card script -- local h1, h2, v1, v2 on mouseDown put the clickH into h1 put the clickV into v1 end mouseDown on mouseUp put the mouseH into h2 put the mouseV into v2 put grcDragRegion() end mouseUp function grcDragRegion -- define mouse drag rect put min(h1,h2) into tMouseLeft put max(h1,h2) into tMouseRight put min(v1,v2) into tMouseTop put max(v1,v2) into tMouseBottom -- define overlap of mouse drag rect grc rect put max(tMouseLeft, the left of grc 1) into item 1 of tOverlapRect put max(tMouseTop, the top of grc 1) into item 2 of tOverlapRect put min(tMouseRight, the right of grc 1) into item 3 of tOverlapRect put min(tMouseBottom, the bottom of grc 1) into item 4 of tOverlapRect -- return it return tOverlapRect end grcDragRegion Phil Davis On 11/9/10 10:48 AM, Glen Bojsza wrote: I have a problem which I am not certain which method is valid or should be used (with Rev / Livecode there are sometimes too many ways of achieving a goal). I have a graphic on a card left 62 right 462. My objective is to allow a user to left click and drag across the graphic as if selecting a section of it. I need start left,top,right,bottom and end left,top,right,bottom. The only interest is knowing the start of the drag when inside the graphic and the end of the drag inside the graphic... with the following caveats. - The user may start the drag either outside the graphic and then continue the drag into the graphic (which is the start point) or start the drag inside the graphic which would be the start point. - The user may release the mouse button inside the graphic which indicates the stop point or release the mouse button outside the graphic where the stop point is at the point of the mouse leaving the graphic. This seems like it should be simple but I am getting tied down but trying to over complicate it? This is for Windows and Linux . Any elegant or simple solutions out there? ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: [OT] Mac App Store
On 10/21/10 11:34 AM, Scott Rossi wrote: Recently, Richard Gaskin wrote: Is there anyone here with apps in the current iOS App Store who can answer that? As far as I can tell, no, they only offer tools/Web pages that display statistical data of your sales. How would it be possible for a developer to know if someone who calls is actually eligible for technical support? I am quite a novice in the whole iApp arena, but barring any methods of cracking I haven't heard about yet, apps are more or less tied to a device -- you cannot arbitrarily move apps from one device to another, FWIW - Recently I got an iPod Touch and restored by iPhone onto it, making it a mirror image of my phone app-wise except for the ability to call. Phil Davis and you cannot distribute apps outside the app store (aside from testing and limited distribution apps). So presumably, the someone wanting help legitimately obtained your app. Your question does raise another question: what about folks who deliver paid apps with no restrictions on the devices they can run on? Regards, Scott Rossi Creative Director Tactile Media, UX Design ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: revServer installation issues
On 10/22/10 8:19 AM, Devin Asay wrote: On Oct 21, 2010, at 8:02 PM, Phil Davis wrote: Thanks Andre! This is a crazy problem. I just made the changes you recommend and added the .htaccess back into the mix, but no joy! I'm guessing I made a change to my httpd.conf at some point without commenting it and that's what is keeping your solution from working here. I'll see if I can track it down and post an explanation. However I am not without a solution: Mike sent me a copy of his httpd.conf, I replaced mine with it and *BAM* my .irev pages are now working! Can you do a diff on the two conf files and maybe find where yours went wrong? Will do. It won't do it immediately as I have to catch up with some other stuff, but I'll get there. Hopefully by tonight. I am truly amazed at (and grateful for) the level of support provided by you guys, Andre and Mike, and so many other people on this list. It's an honor to be Ditto. This list is one of the best things about the LiveCode community. Of course your name is right up there too, Devin. Thanks for the input on this one. Regards, Devin Devin Asay Humanities Technology and Research Support Center Brigham Young University ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: revServer installation issues
On 10/21/10 5:49 AM, Mike Bonner wrote: From your description, it sounds like the new directives aren't getting loaded at all. If you run: /usr/sbin/httpd -V |grep -i server_config_file does it show the correct config file is at -D SERVER_CONFIG_FILE=/private/etc/apache2/httpd.conf? Yes, that's what I get. And you're using the server document root not your Sites directory. Yep. Oh, and have you checked to make sure revserver is executable? This should NOT be the problem, if it were your browser should get an internal server error response, but doesn't hurt to confirm. Right. revserver permissions are 755. (rwxr-xr-x) Also noticed you added the line: ScriptAlias /cgi-bin/revserver /Library/WebServer/CGI-Executables/revserver ## PD 20101020 added I don't believe this is required as long as revserver is at the toplevel inside the CGI-Executables folder. The existing: ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) /Library/WebServer/CGI-Executables/$1 should handle it. Thanks. I chose to put the data, extensions, and handlers folders in /opt/revserver as per one of the options in the readme.txt but i'm sure the other 2 methods would work just fine. OK. Thanks for the feedback Mike. On Thu, Oct 21, 2010 at 12:23 AM, Andre Garziaan...@andregarzia.comwrote: On Thu, Oct 21, 2010 at 3:49 AM, Phil Davisrev...@pdslabs.net wrote: I managed to replicate your problem here on my mac os x, am trying to solve it. Wow. Thanks Andre! That's huge! I am good at breaking things, specially my computers! Phil -- http://www.andregarzia.com All We Do Is Code. ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: revServer installation issues
On 10/21/10 7:59 AM, Devin Asay wrote: On Oct 20, 2010, at 11:01 PM, Phil Davis wrote: On 10/20/10 4:57 PM, Devin Asay wrote: Phil, I had to do it this way: Action irev-script /cgi-bin/revserver/revserver Because I had moved the entire revserver folder into cgi-bin (well, really CGI-Executables.) Until I did I was having similar problems to yours. In other words the Action had to point to the executable file, not just the enclosing folder. I did try that at one point (and changed the appropriate paths in the config file) but it didn't work there either, so I went back to the current placement. Still, it won't hurt anything to look at that approach again. I'm more a blunder-around-in-the-dark guy when it comes to this stuff, so it's probably just an accident that I got it to work. :-) A man after my own heart! ;-) Devin Devin Asay Humanities Technology and Research Support Center Brigham Young University ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: revServer installation issues
Thanks Andre! This is a crazy problem. I just made the changes you recommend and added the .htaccess back into the mix, but no joy! I'm guessing I made a change to my httpd.conf at some point without commenting it and that's what is keeping your solution from working here. I'll see if I can track it down and post an explanation. However I am not without a solution: Mike sent me a copy of his httpd.conf, I replaced mine with it and *BAM* my .irev pages are now working! I am truly amazed at (and grateful for) the level of support provided by you guys, Andre and Mike, and so many other people on this list. It's an honor to be here! Phil On 10/21/10 2:26 PM, Andre Garzia wrote: Folks, This is FIXED!! Damn Phil, check out your http.conf for AllowOverride None. By default this comes set for the documents folder and for the cgi-bin folder. You need to change it to AllowOverride All and then you can place your .htaccess files and they will work. Just did it here. Andre ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
revServer installation issues
Hey folks - I'm trying to figure out where I'm going wrong as I try to get revServer going on my Mac Mini. I have followed all the advice (I think) in the great emails from Devin Asay and Mike Bonner from July 20 and I see my test.irev page being served but without the ?rev ... ? stuff being preprocessed - in fact the HTML isn't rendered as HTML either; it all comes into my browser window as text. Any clues? Yes, I'm restarting apache after making each carefully-commented-so-I can-back-out change to httpd.conf. My apache logs don't show anything unusual. My outcomes don't seem any different whether the revserver filess are owned by nobody:wheel or phil:admin. Thanks for any ideas. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: revServer installation issues
On 10/20/10 4:57 PM, Devin Asay wrote: Phil, It seems clear that the config file isn't quite right, and that the revServer engine isn't being launched. Where are your revServer files installed, /Library/WebServer/CGI-Executables I copied all the files from the 'revserver' folder into the 'CGI-Executables' folder - without the enclosing 'revserver' folder. ... and can you post the mods you made to your httpd.conf file? My mods were applied to the /private/etc/apache2/httpd.conf file, and each changed line has a '## PD 201010xx' tag on the end of it. First, for the record: DocumentRoot /Library/WebServer/Documents Note - I tried adding some directives in an .htaccess file inside this directory but since removed the file. --- Now the first set of changes - Directory /Library/WebServer/Documents AddHandler irev-script .irev ## PD 20101018 added Action irev-script /cgi-bin/revserver ## PD 20101018 added Options Indexes FollowSymLinks MultiViews ExecCGI ## PD 20101018 added 'ExecCGI' AllowOverride All ## PD 20101018 replaced 'None' with 'All' for .htaccess overrides # # Controls who can get stuff from this server. # Order allow,deny Allow from all /Directory --- Second set of changes - IfModule alias_module # ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) /Library/WebServer/CGI-Executables/$1 ScriptAlias /cgi-bin/revserver /Library/WebServer/CGI-Executables/revserver ## PD 20101020 added /IfModule --- Third set of changes --- IfModule mime_module # # TypesConfig points to the file containing the list of mappings from # filename extension to MIME-type. # TypesConfig /private/etc/apache2/mime.types AddType application/x-compress .Z AddType application/x-gzip .gz .tgz # For type maps (negotiated resources): #AddHandler type-map var AddHandler irev-script .irev ## PD 20101020 added Action irev-script /cgi-bin/revserver ## PD 20101020 added #AddType text/html .shtml #AddOutputFilter INCLUDES .shtml /IfModule Also, which OS version are you running? 10.5.8 Build 9L30 - not OS X server. Devin On Oct 20, 2010, at 5:19 PM, Phil Davis wrote: Hey folks - I'm trying to figure out where I'm going wrong as I try to get revServer going on my Mac Mini. I have followed all the advice (I think) in the great emails from Devin Asay and Mike Bonner from July 20 and I see my test.irev page being served but without the?rev ... ? stuff being preprocessed - in fact the HTML isn't rendered as HTML either; it all comes into my browser window as text. Any clues? Yes, I'm restarting apache after making each carefully-commented-so-I can-back-out change to httpd.conf. My apache logs don't show anything unusual. My outcomes don't seem any different whether the revserver filess are owned by nobody:wheel or phil:admin. Thanks for any ideas. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution Devin Asay Humanities Technology and Research Support Center Brigham Young University ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution Thanks Devin. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: revServer installation issues
Hi Mike, On 10/20/10 4:57 PM, Mike Bonner wrote: out of curiosity, are you changing the files in /etc/httpd or /etc/apache2 if in httpd, try apache2 (if you're pretty sure you're setting them up right) or if trying apache2 try httpd Assuming both folders exist. Nope, only the 'apache2' folder exists. And did you turn in ExecCGI in the options for whatever directory you're setting up? Pretty much just the 3 things and add ExecCGI to the options line Options Your Options Here plus ExecCGI AddHandler rev-script .irev Action /cgi-bin/revserver All within adirectory... ... /Directory block. Maybe I'm overlooking something - see my response to Devin for more detail. Thanks Mike - Phil On Wed, Oct 20, 2010 at 5:19 PM, Phil Davisrev...@pdslabs.net wrote: Hey folks - I'm trying to figure out where I'm going wrong as I try to get revServer going on my Mac Mini. I have followed all the advice (I think) in the great emails from Devin Asay and Mike Bonner from July 20 and I see my test.irev page being served but without the?rev ... ? stuff being preprocessed - in fact the HTML isn't rendered as HTML either; it all comes into my browser window as text. Any clues? Yes, I'm restarting apache after making each carefully-commented-so-I can-back-out change to httpd.conf. My apache logs don't show anything unusual. My outcomes don't seem any different whether the revserver filess are owned by nobody:wheel or phil:admin. Thanks for any ideas. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: revServer installation issues
On 10/20/10 10:25 PM, Andre Garzia wrote: Phil, check your error_log after you try to access your irev file, see if there is a premature end of headers and a permission error, one next to the other. That usually means suEXEC error. Nope, nothing like that. I have an image missing so I get that error but nothing else. I managed to replicate your problem here on my mac os x, am trying to solve it. Wow. Thanks Andre! That's huge! Phil andre On Thu, Oct 21, 2010 at 3:02 AM, Phil Davisrev...@pdslabs.net wrote: Hi Mike, On 10/20/10 4:57 PM, Mike Bonner wrote: out of curiosity, are you changing the files in /etc/httpd or /etc/apache2 if in httpd, try apache2 (if you're pretty sure you're setting them up right) or if trying apache2 try httpd Assuming both folders exist. Nope, only the 'apache2' folder exists. And did you turn in ExecCGI in the options for whatever directory you're setting up? Pretty much just the 3 things and add ExecCGI to the options line Options Your Options Here plus ExecCGI AddHandler rev-script .irev Action /cgi-bin/revserver All within adirectory... .../Directory block. Maybe I'm overlooking something - see my response to Devin for more detail. Thanks Mike - Phil On Wed, Oct 20, 2010 at 5:19 PM, Phil Davisrev...@pdslabs.net wrote: Hey folks - I'm trying to figure out where I'm going wrong as I try to get revServer going on my Mac Mini. I have followed all the advice (I think) in the great emails from Devin Asay and Mike Bonner from July 20 and I see my test.irev page being served but without the?rev ... ? stuff being preprocessed - in fact the HTML isn't rendered as HTML either; it all comes into my browser window as text. Any clues? Yes, I'm restarting apache after making each carefully-commented-so-I can-back-out change to httpd.conf. My apache logs don't show anything unusual. My outcomes don't seem any different whether the revserver filess are owned by nobody:wheel or phil:admin. Thanks for any ideas. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: determining if user has shell access
Another thought - I remember from my Unix days that you can put at the end of a line command to make it run in the background and make it non-blocking. Of course you have to redirect its output to a text file. Would that work here? (Probably not on Windows though.) Just throwing it against the wall to see if it sticks... Phil Davis On 10/14/10 2:56 AM, Monte Goulding wrote: Write a tiny script that does something trivial in shell (e.g. shell ls), and build that as a tiny executable. Have your real script run that as a separate process and see if it never returns. That's not a bad plan. Cheers -- Monte Goulding M E R Goulding Software Development Bespoke application development for vertical markets InstallGadget - How to create an installer in 10 seconds revObjective - Making behavior scripts behave ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
fun with elevated processes
I can now easily restart Apache from a LC handler: on mouseUp constant kRestartApache = apachectl -k graceful open elevated process kRestartApache for neither if the result empty then answer Could not restart server. close process kRestartApache end if -- process will normally close itself when finished end mouseUp Cool! -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: fun with elevated processes
Hi Ken, On 10/14/10 9:34 AM, Ken Ray wrote: I can now easily restart Apache from a LC handler: on mouseUp constant kRestartApache = apachectl -k graceful open elevated process kRestartApache for neither if the result empty then answer Could not restart server. close process kRestartApache end if -- process will normally close itself when finished end mouseUp That's cool, Phil! What did you have to do before 'open elevated process'? I would have used an AppleScript approach: put do shell script \ quote kRestartApache quote \ with administrator privileges \ into tAppleScriptCommand do tAppleScriptCommand as appleScript Does this take the place of trying to pass an admin password on the command line? Yes! The elevated keyword apparently causes Rev to ask the OS to do its admin dialog thing before running the process. Ken Ray Sons of Thunder Software, Inc. Email: k...@sonsothunder.com Web Site: http://www.sonsothunder.com/ ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Constant command
On 10/14/10 12:26 PM, J. Landman Gay wrote: On 10/14/10 11:28 AM, dunb...@aol.com wrote: About the constant command that Phil used in his process gadget. What does it do that a variable does not? I see it cannot be altered in the same handler, and I see that it can overRide a built-in constant, which might be useful. Anyone ever come up with a compelling reason to use such a thing? In Phil's example a variable would work just as well. I use constants more often at the top of scripts. Me too. In the case of scripts, local variables have to be set at some point before they will have a value, so I use those for things that are specific to the user setup (file paths I'll need repeatedly, for example.) Constant values are permanent until you change the script, so they're good for things that rarely change, like version numbers, lists of related objects you need to loop through often, and other script-related uses. I almost never use constants inside a handler, but that's just personal style. Me neither. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Workaround For No selectionChanged Message?
Hi Scott, Your experience is consistent with mine. So when my code makes selection change, it sends selectionChanged to the target field right after doing so. Phil Davis On 10/12/10 5:42 PM, Scott Rossi wrote: Am I living on another planet or is the selectionChanged message not triggered by selecting the contents of a field via script? I have recently begun to struggle again with a simple text editor project and it seems when the contents of a field are selected via script (select text of fld 1), no selectionChanged message is sent. I have a frontScript with a selectionChanged routine that is supposed to track any changes in text selection. It works as expected when selections are changed via mouse, click, and drag, but when text is selected by script using the above select text of fld 1 nothing happens. Admittedly, this is Rev 4.0, but is this correct behavior? I could use a klunky workaround of a looping script that constantly polls the selectedText but this is, er, klunky. Might there be another way? Thanks for any suggestions/clarifications. Regards, Scott Rossi Creative Director Tactile Media, UX Design ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Elevated Process
For completeness, I'll throw in this option - not exactly what you are asking for but it could work too: put do shell script q(tShellCommand) with administrator privileges into tASCommand do tASCommand as AppleScript This approach puts up a system password dialog. Phil On 10/7/10 7:09 AM, Generic Email wrote: I am on OS X, and I want to click a button, and have that button run a sudo command. but it needs to prompt for a password. Is there a way from LC to use the standard OS X elevated process dialogs? Thanks! -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: [ANN] scroll wheel object for RevMobile iPhone made with Rev
Klaus - Try this (note caps in .zip file name): http://berndniggemann.on-rev.com/scrollwheel/scrollwheelstack/scrollWheeliPhone.rev.zip I had the same problem so I went to the '/scrollwheelstack' directory and got the link from the file list. Phil Davis On 10/7/10 1:04 PM, Klaus on-rev wrote: Hi Bernd, some time ago someone was looking for native iPhone controls for RevMobile. I tried to emulate an iPhone scroll wheel through Rev objects that looks close to the native scroll wheel. The advantage of an Rev object is that it is all graphics and scalable. The disadvantage that RevMobile and the iPhone are not the fastest. (small scroll wheels work acceptably on an iPhone 3G, much better experience on an iPad) As a revlet look here: http://berndniggemann.on-rev.com/scrollwheel/scrollWheeliPhone/index.html as a zipped stack here: http://berndniggemann.on-rev.com/scrollwheel/scrollwheelstack/scrollwheeliphone.rev.zip I get a file not found error here? click and drag on the wheels, if at first not responsive click outside the revlet and than inside again. Comments welcome regards Bernd Best Klaus -- Klaus Major http://www.major-k.de kl...@major.on-rev.com ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: LiveCode Application Error upon quitting
On 10/4/10 9:20 PM, J. Landman Gay wrote: On 10/4/10 5:41 PM, Paul Looney wrote: Bob, Jaque, I've had Quit errors in the IDE from version 3.5 onward; OS X version 10.4.11 onward - through 10.6.4. The problem line is: wait 0 seconds which we use many times elsewhere, with no problem. Just curious, why would you wait for zero? What - would you prefer to wait longer? -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: LiveCode Application Error upon quitting
On 10/4/10 9:53 PM, Mark Wieder wrote: Phil- Monday, October 4, 2010, 9:40:00 PM, you wrote: On 10/4/10 9:20 PM, J. Landman Gay wrote: On 10/4/10 5:41 PM, Paul Looney wrote: The problem line is: wait 0 seconds which we use many times elsewhere, with no problem. Just curious, why would you wait for zero? What - would you prefer to wait longer? Some of us are impatient. Right - like Paul. ;-) Hey, it's his code... no need to dwell on the fact that I steered him there. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Storing an Array as a Custom Property
On 10/1/10 9:04 AM, Gregory Lypny wrote: Hi everyone, Page 236 of the LiveCode user guide says that arrays cannot be stored as single custom properties. Can anyone confirm this please? The reason I ask is that I thought that I had read in a past Rev newsletter that it was now possible, but I may be mistaken. I'm developing an app in LiveCode and have been saving uni-dimensional arrays as single customs props without apparent problems; however, it may be another story with multi-dimensional arrays. For multi-dimensional arrays you need arrayEncode() and arrayDecode(): put ice cream into aMyFoods[favorites][desserts][cold] set the uMyFoods of stack dataContainer to arrayEncode(aMyFoods) Regards, Gregory -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Storing an Array as a Custom Property
On 10/1/10 11:06 AM, Mike Bonner wrote: You can put multidimensional arrays into properties, at least as of what.. 3.5? If I recall correctly, the only real issue with this is that you have to pull the whole thing back out as a unit to work with it. I'm not positive, but I don't think it arrayencodes and decodes when you get and set. bit not sure. I stand corrected! Thanks. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Listing all the unique words in a piece of text (Resource Center broken?)
Hi Mark, It's not hard! repeat for each word tWord in tYourtext add 1 to aWordCounts[tWord] end repeat put the keys of aWordCounts into tList sort lines of tList put tList ... but you probably figured this out by now. Phil On 9/30/10 8:17 PM, Mark Swindell wrote: There's a sample script in the LiveCode Resource Center called listing all the unique words in a piece of text. It's located under Resource Center/Sample Scripts/Text/Listing all the ... There's a button available to download the script. Unfortunately it doesn't appear to work and I can't peek into the actual button containing the script. I used both LiveCode and Rev Studio 4.0... same result. If anyone has a minute to look and see if this is consistent with their setup, I'd appreciate it. (Or if anyone has the code, I'd appreciate getting it.) Thanks, Mark___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Scripts that are already running
Richard's approach would be my approach also. It's usually easier to make the solution overly complex, than to make it this simple. Phil Davis On 9/24/10 11:12 AM, Richard Gaskin wrote: DunbarX wrote: This all came about because someone wanted a single universal watchdog on his stack. He had several handlers in several places, all of which could create a condition he wanted to act upon. So the send in time handler fit that bill. If he created yet another such handler somewhere, it would be covered. But it occurred to be that if the condition was met and the handler still had much to do and might take a long time to do it, then the condition could not be dealt with until that handler ends. It seemed intriguing to think that something could monitor, say, the state of variables, from outside the handler while it was running. Anyone think this is a useful, perhaps monumental, feature? Indeed it would: Add Threaded messaging and or execution in Transcript http://quality.runrev.com/qacenter/show_bug.cgi?id=2832 But threading comes with an additional level of responsibility. Right now we almost never have to worry about race conditions, an area where a lot of programmers using threaded languages spend thousands of hours each year debugging hard-to-track-down issues. Once you introduce threading into the language it's like handing someone a loaded gun with a map to their foot. Still very useful, and well worth implementing, but it would so fundamentally change the messaging system that it would raise the learning curve and open up many new ways to make mistakes. :) For those who need it threading would be a godsend, and RunRev couldn't add this fast enough for me. Many server processes could be much more optimized with a threaded implementation. In the meantime, for single-user apps working within a non-threading system isn't usually so bad. As we've seen in this example, it usually requires no more than a single line of code to have any additional checking happening inside of any handler you like, and with that requirement it leaves the scripter explicitly in control of the interactions between things. For property settings this might even be reduced to zero additional lines of code in the repeat loop if you include a setProp handler that will respond to the change: -- Main handler: on mouseUp repeat with i = 1 to 100 set the uMyProp of this stack to i end repeat end mouseUp -- In stack script, library, or any other place in the -- message path: setProp uMyProp pValue if pValue = 50 then DoSomethingCool end if end uMyProp It can be tempting to use getProp and setProp in places where more controllable and concise function and command calls can work well as accessors, but when you need 'em they're handy to have available. -- Richard Gaskin Fourth World LiveCode training and consulting: http://www.fourthworld.com Webzine for LiveCode developers: http://www.LiveCodeJournal.com LiveCode Journal blog: http://LiveCodejournal.com/blog.irv ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: uuencode/uudecode
Hi Matthias, With LiveCode on Mac OS X you could use a shell() command and let the 'uuencode' line command do the work. Not sure about Windows... there doesn't seem to be a direct way to uuencode a file - no 'uuencode' command, nor any way to do it using PowerShell (AFAIK). Do you feel like writing your own LC uu library? That should be doable. More info about the uuencode spec: http://en.wikipedia.org/wiki/Uuencoding http://www.opengroup.org/onlinepubs/009695399/utilities/uuencode.html Phil On 9/23/10 7:42 AM, Matthias Rebbe wrote: Hi, how can i uuencode data with LiveCode? Do i need 3rd party tools for that? i cannot find anything about it, when searching the dictionary for uuencode. Regards, Matthias___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Mac OS X - how to darken screen?
Good idea. On a couple of my machines (one Mac, one Win) the speed was so fast that the fade was almost undetectable, so I went with: repeat with N = 100 down to 1 set the blendLevel of stack screencover to N wait 4 milliseconds with messages end repeat ... and a similar repeat with N = 1 to 100. That made the fade last .4 sec to about 1 sec depending on the machine, which is an acceptable range for my need. Thanks for the ideas! Phil On 9/17/10 5:16 PM, Scott Rossi wrote: Phil: I don't know if you tried Klaus's suggestion (programmatically setting the blendLevel), but you'll have more control compared to using the built-in dissolve effect, and if I'm not mistaken the dissolve will look like crap on Windows without QT installed. Just a suggestion. on mouseUp put the screenRect into pTargetScreenRect showBlackScreen pTargetScreenRect wait 3 seconds with messages send showNormalScreen to me end mouseUp command showBlackScreen pTargetScreenRect # pTargetScreenRect = the rect of your target screen -- make a 'cover' stack to fill screen create inv stack screencover -- temp stack, no need to save it set the backgroundColor of stack screencover to black set the blendLevel of stack screencover to 100 -- transparent palette stack screencover -- make this stack the frontmost layer set the rect of stack screencover to pTargetScreenRect -- size to screen show stack screencover -- but it's still transparent -- make the screen go dark repeat with N = 19 down to 0 set blendLevel of stack screencover to N * 5 wait 20 millisecs with messages end repeat end showBlackScreen command showNormalScreen -- make the screen look normal again repeat with N = 1 to 20 set blendLevel of stack screencover to N * 5 wait 20 millisecs with messages end repeat delete stack screencover -- end the stack's existence end showNormalScreen Best Regards, Scott Rossi Creative Director Tactile Media, UX Design Recently, Phil Davis wrote: Thanks so much everyone! Great tips all. Here is my final code, tested on Mac OS X 10.5.8 and Windows 7: command showBlackScreen pTargetScreenRect # pTargetScreenRect = the rect of your target screen -- make a 'cover' stack to fill screen create inv stack screencover -- temp stack, no need to save it set the backgroundColor of stack screencover to black set the blendLevel of stack screencover to 100 -- transparent palette stack screencover -- make this stack the frontmost layer set the rect of stack screencover to pTargetScreenRect -- make it same size as screen show stack screencover -- but it's still transparent -- make the screen go dark lock screen -- hide changes until all is ready for display set the blendLevel of stack screencover to 1 -- almost opaque (0 causes flash on Win 7) set the defaultStack to screencover -- to make dissolve work right unlock screen with effect dissolve fast -- to reveal black stack end showBlackScreen command showNormalScreen -- make the screen look normal again lock screen -- hide changes until all is ready for display set the defaultStack to screencover -- to make dissolve work right set the blendLevel of stack screencover to 100 -- transparent unlock screen with effect dissolve fast -- to reveal normal screen delete stack screencover -- end the stack's existence end showNormalScreen Best - Phil ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: What is the name of that function...
Hey, it works for the government! Key: Johnny = US Treasury Fred = Federal Reserve Bank :-) (OK, it would be funnier if it were less true - I'll say no more) On 9/18/10 3:51 PM, Mark Wieder wrote: If Johnny owes nine dollars and gives five of those dollars he doesn't have to Fred, how many does he have left over? -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Mac OS X - how to darken screen?
Thanks so much everyone! Great tips all. Here is my final code, tested on Mac OS X 10.5.8 and Windows 7: command showBlackScreen pTargetScreenRect # pTargetScreenRect = the rect of your target screen -- make a 'cover' stack to fill screen create inv stack screencover -- temp stack, no need to save it set the backgroundColor of stack screencover to black set the blendLevel of stack screencover to 100 -- transparent palette stack screencover -- make this stack the frontmost layer set the rect of stack screencover to pTargetScreenRect -- make it same size as screen show stack screencover -- but it's still transparent -- make the screen go dark lock screen -- hide changes until all is ready for display set the blendLevel of stack screencover to 1 -- almost opaque (0 causes flash on Win 7) set the defaultStack to screencover -- to make dissolve work right unlock screen with effect dissolve fast -- to reveal black stack end showBlackScreen command showNormalScreen -- make the screen look normal again lock screen -- hide changes until all is ready for display set the defaultStack to screencover -- to make dissolve work right set the blendLevel of stack screencover to 100 -- transparent unlock screen with effect dissolve fast -- to reveal normal screen delete stack screencover -- end the stack's existence end showNormalScreen Best - Phil On 9/17/10 10:27 AM, Klaus on-rev wrote: Hi all, important addition! ... something like this should work: 1. set some properties for the templatestack: the rect to the screenrect backgroundcolor to black decorations to empty! loc to the screenloc blendlevel to 100 = completely transparent 2. create stack the_cover 3. set blendlevel in a repeat loop up to 0** 4. Now do your work behind this stack 5. set blendlevel of htat stack in a repeat loop to 0** 6. Close stack the_cover ** Experiment a bit wiht the step in the repeat loop, maybe step 5 or step 10 will do Best Klaus -- Klaus Major http://www.major-k.de kl...@major.on-rev.com ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Mac OS X - how to darken screen?
I want to darken my Mac screen (not just a stack window) the way a slide presentation would do it at its beginning, and then bring it up again to reveal what has been changed. Does anyone have an AppleScript or a shell() command for this that can be run from Rev? Thanks! -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Mac OS X - how to darken screen?
Outrageous! Very cool. Thanks Andre. Phil On 9/16/10 6:41 PM, Andre Garzia wrote: You can take a screenshot of the screen and manipulate it to darken it. On Thu, Sep 16, 2010 at 10:32 PM, Phil Davisrev...@pdslabs.net wrote: I want to darken my Mac screen (not just a stack window) the way a slide presentation would do it at its beginning, and then bring it up again to reveal what has been changed. Does anyone have an AppleScript or a shell() command for this that can be run from Rev? Thanks! -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: how to identify a 64-bit Windows machine in Rev
You give the most complete answers! Thanks Dar. You've been missed in these parts! Phil On 9/14/10 5:37 PM, Dar Scott wrote: On Sep 13, 2010, at 6:06 PM, Phil Davis wrote: Does anyone have a clear-cut way for Rev to know whether it's running in a 32-bit or a 64-bit environment on Windows? Hardware CPU: Under... HKLM\HARDWARE\DESCRIPTION\System\CentralProcessor\0 ...find... Identifier REG_SZ If 64 is in the value, the hardware is 64. If x86 is, you don't know ProcessorStringName If 64 is in the name, the hardware is 64. Otherwise, you don't know. OS: You can check the environment variable PROCESSOR_ARCHITECTURE. If 64 in the value, then you seem to be running a 64-bit Rev on a 64-bit system. Otherwise look at environment variable PROCESSOR_ARCHITEW6432. If 64 is in the value, you are running on a 64-bit OS. If it is x86, then you are running a 32-bit OS. You can also look for a folder normally only found in the 64-bit OS, such as \\program files (x86). If it is there, the OS is very likely 64. If it is missing, the OS is very likely 32-bit. I don't know if reinstalling over another OS will affect this. If the OS is 64, then the hardware is. Dar ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: how to identify a 64-bit Windows machine in Rev
Thanks Pierre - what thing in the registry should I check? Phil On 9/14/10 3:51 AM, Pierre Sahores wrote: Hi Phil, Why not check the Registry trough a rev command line call ? HTH, Pierre Le 14 sept. 2010 à 02:06, Phil Davis a écrit : Does anyone have a clear-cut way for Rev to know whether it's running in a 32-bit or a 64-bit environment on Windows? Bonus points for being able to identify hardware software 'bits' separately. Many thanks! -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Pierre Sahores mobile : (33) 6 03 95 77 70 www.wrds.com www.sahores-conseil.com ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: how to identify a 64-bit Windows machine in Rev
Thanks Andy. On 9/14/10 3:28 PM, AndyP wrote: Hi Phil, Try this is the message box. put shell(systeminfo) Part of the retuned info will include System Type: X86-based PC So. x86-based PC: It’s a 32-bit computer. x64-based PC: It’s a 64-bit computer. On Win7 If you have a 64 bit version of Win7 you will have these two folders System32C:\Windows\System32 Windows System folder (system directory) for 64-bit files SysWOW64 C:\Windows\SysWOW64Windows System folder (system directory) for 32-bit files Hope this helps Andy Piddock - Andy Piddock -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
how to identify a 64-bit Windows machine in Rev
Does anyone have a clear-cut way for Rev to know whether it's running in a 32-bit or a 64-bit environment on Windows? Bonus points for being able to identify hardware software 'bits' separately. Many thanks! -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Collecting Web Form Information Using a Loop
On 9/1/10 9:34 AM, Gregory Lypny wrote: Hello everyone, On-rev question about collecting web form information. Suppose I have a questionnaire that uses 40 sequentially named menus for the answer choices. I could collect them individually like this. put $_POST[Q1] into q1 put $_POST[Q2] into q2 put $_POST[Q3] into q3 put $_POST[Q4] into q4 put $_POST[Q5] into q5 ... put $_POST[Q40] into q40 But of course my first inclination is to avoid 40 lines and use a loop. So I tried repeat with i=1 to 40 put $_POST[(quote Q i quote)] comma after theSubmission end repeat and a number of variations, such as, (quote Q the value of i quote) but all I ever get returned is an empty list, i.e., {}. Any suggestions? Maybe break your one-liner into two: repeat with i = 1 to 40 put Q i into tKey put $_POST[tKey] comma after theSubmission end repeat I would be surprised if this didn't work. Best - Phil Davis Regards, Gregory ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Copying binary files over a LAN using Rev
First I assume each stack is running in its own execution session on the respective machines - both stacks are not running under the same copy of the engine on one machine. If that were true, both stacks would be running on the same machine, no? Given the above, I can think of 2 ways. 1) Set up a socket connection between the two stacks and write a TCP data stream from one to the other. If you do this, it might be a good idea to base64Encode the data before transferring it. And it would help the receiving machine know what to expect if line 1 of the data contains only a number which tells the total number of chars being transferred in lines 2 to the end of the data. Then the receiving computer can read the socket for 1 line, and then read for line-1-number chars. When the data has been transferred, the receiving machine can base64Decode it and put it into url binfile:newFilePath. I believe that should work. 2) Open a socket connection between the two and transfer only a URL. Then the receiving machine could grab the file by its URL (that sounds painful!) and copy it over. This assumes the file whose URL was passed is sitting in a place on the sending machine that is accessible to the receiving one. 3) I bet there are other ways. Hope this helps - Phil Davis On 8/5/10 11:46 AM, Alejandro Tejada wrote: Hi all, How could i use Rev to copy a binary file between stacks opened in two different computers over a local area network? In this LAN, every computer reports at least two different IP directions: The first IP (reported by IPconfig) are in the range 192.168.1.[0-255]. The second IP (visible from the web) are in the range from 201.229.179.[0-255] Every idea is welcome! Thanks in advance. Al -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: [RevServer tips] Spreading the load or why wise developers use asynchronous workflows
Excellent piece, Andre! Thanks. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: [RevServer tips] Spreading the load or why wise developers use asynchronous workflows
You already give back a lot to this community, but along with others I think it would be great if you could create an example like you mentioned. There's nothing like the real thing! Phil On 8/4/10 10:56 AM, Andre Garzia wrote: Thanks Phil! :-D On Wed, Aug 4, 2010 at 2:51 PM, Phil Davisrev...@pdslabs.net wrote: Excellent piece, Andre! Thanks. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Jailbreaking Everything
memoryLane I remember a magazine article from my youth (1960's) describing how someone had taken a Fiat 600 and put a Porsche engine in it (I forget if it was a 912 or 911 engine - either one would be quite radical). Now THAT's a jailbreak I can appreciate! I guess it resonated with me because I had a Fiat 600 at the time. /memoryLane Phil Davis On 7/26/10 11:16 AM, Paul Looney wrote: Richard, I'd like to see everything jail broken. Next up: The ability to order a GM car with a Ford transmission and a Mercedes engine (especially the four cylinder, twin turbo, Diesel they have in Europe and Canada). This might spread beyond the US. Sarah could get a Ford Falcon with mechanicals from a Holden Commodore. Meanwhile in the European Union: Jan could get a Audi A8 with brakes from a BMW 7i. Kevin could upgrade his next Bentley with seats from a Ferrari. Hugh could get that wonderful Peugot suspension and put it into... Think I'll order a new Citroen catalog. Wonder if they still have the 2CV? Would be nice with the sound system from a ... Paul Looney On Jul 26, 2010, at 10:03 AM, Richard Gaskin wrote: Michael Kann wrote: http://www.appleinsider.com/articles/10/07/26/us_government_legalizes_iphone_jailbreaking_for_unauthorized_apps.html -- watch for line breaks Interesting. If we get the freedom to run our choice of apps on a given hardware system, will we someday get the freedom to run our choice of OSes on the hardware we choose? I trust Andrew Kluthe and I aren't the only people who daydream about being able to legally enjoy OS X on hardware not made by Apple. This is an interesting precedent, possibly the beginning of a deep sea change favoring consumer choice -- Richard Gaskin Fourth World Rev training and consulting: http://www.fourthworld.com Webzine for Rev developers: http://www.revjournal.com revJournal blog: http://revjournal.com/blog.irv ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: How can I delete an object when clicked?
Hi Bill, Try this: on mouseUp send (delete the long name of me) to this card in 0 secs end mouseUp That will: 1) allow the current handler to quit executing before the delete is attempted. 2) let the delete be done by an object not being deleted. Phil On 7/24/10 12:59 PM, Bill Vlahos wrote: I have an object (in this case an image) on a card that I want the user to delete. If I put the following script into the image, Rev complains that the script is still executing so it won't complete. on mouseUp delete me end mouseUp Error: (Object: stack locked, or object's script is executing) Bill Vlahos -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: editing group fails
Another way to move the object into a group: put the layer of grp myTargetGroup into x set the relayerGroupedControls to true set the layer of control myTargetControl to x+1 set the relayerGroupedControls to false Phil Davis On 22/07/10 12:49 PM, dunb...@aol.com wrote: But this leaves the original, no? I was wondering if one could simply make an existing object join an existing group. Thanks. In a message dated 7/22/10 3:39:40 PM, zryip.thes...@gmail.com writes: Copy [object] to group MyGroup __ -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
garbage collection
Hi folks, Almost a year ago I posted the following with no response, and now the need to know has come up again: In ancient times I used the hasMemory() function to force garbage collection and free up memory. But maybe it only worked that way in SuperCard... can anyone comment on its effectiveness in Revolution? Any takers? -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: garbage collection
Thanks guys. I know garbage collection is pretty reliable when long-running code is structured to take advantage of timers (send command to target in time), so I won't rely hasMemory() for it. Best - Phil On 7/8/10 11:10 AM, Ben Rubinstein wrote: I fear that this sentence from the dictionary entry for hasMemory is correct: This function is only partially implemented, and may not return useful values on some platforms. It is included in Revolution for compatibility with imported SuperCard projects. See also http://quality.runrev.com/qacenter/show_bug.cgi?id=6791 Poor memory handling is, for me, one of the biggest reasons not to use Rev for certain projects. If it doesn't bite you, you're fine, and one of the great benefits of Rev is not having to worry about memory; but if it does bite you, you're SOL. Also see also http://quality.runrev.com/qacenter/show_bug.cgi?id=2772 Ben On 08/07/2010 18:55, william humphrey wrote: Phil I've been using a fairly complex system of stacks for years now in RunRev and never heard of or felt a need for freeing up memory. It seems to me it allocates a certain amount on start-up and stays that way through out. Of course all my data is stored separately in an external database (valentina). Bill On Thu, Jul 8, 2010 at 1:32 PM, Phil Davisrev...@pdslabs.net wrote: Hi folks, Almost a year ago I posted the following with no response, and now the need to know has come up again: In ancient times I used the hasMemory() function to force garbage collection and free up memory. But maybe it only worked that way in SuperCard... can anyone comment on its effectiveness in Revolution? Any takers? -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
more crashes with Rev 3.5 and above?
Hi folks, I'm trying to understand the experience one client is having. We moved his Mac-only standalone app from the 3.0 engine to 3.5, then a couple of weeks later to 4.0. Since moving beyond 3.0, his customers seem to be experiencing a lot more app unexpectedly quit crashes. Is it just my perception, or is that your experience too? If you have the same increase in crashes, have you found any particular commands or command sequences that either increase or decrease the crash frequency? Or has your crash rate remained unchanged since 3.0? When the problem happens, it's normally during a file read. Like this: from crash log -- Exception Type: EXC_BAD_ACCESS (SIGBUS) Exception Codes: KERN_PROTECTION_FAILURE at 0x Crashed Thread: 0 Dispatch queue: com.apple.main-thread Thread 0 Crashed: Dispatch queue: com.apple.main-thread 0 libSystem.B.dylib 0x0916 __memcpy + 374 1 libSystem.B.dylib 0x9848de4f fread + 132 2 ...ss.app.rev 0x001405df MCS_read(void*, unsigned int, unsigned int, IO_header*) + 111 3 ...ss.app.rev 0x001bab88 MCVariableArray::loadkeys(IO_header*, bool) + 744 4 ...ss.app.rev 0x00112eb8 MCObject::load(IO_header*, char const*) + 1880 5 ...ss.app.rev 0x001a15e0 MCStack::load(IO_header*, char const*, unsigned char) + 64 6 ...ss.app.rev 0x00072a0c MCDispatch::readfile(char const*, char const*, IO_header*, MCStack*, bool) + 1260 7 ...ss.app.rev 0x00072ed9 MCDispatch::loadfile(char const*, MCStack*) + 585 8 ...ss.app.rev 0x00073247 MCDispatch::findstackname(MCString const) + 343 9 ...ss.app.rev 0x00029677 MCChunk::getobj(MCExecPoint, MCObject*, unsigned int, unsigned char) + 2103 end of crash log -- But the same files are most often read without a problem. This makes me think there's something environmental going on, but that's a guess. Thanks for any responses. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: more crashes with Rev 3.5 and above?
On 7/7/10 6:16 PM, Curry Kenworthy wrote: Since moving beyond 3.0, his customers seem to be experiencing a lot more app unexpectedly quit crashes. I've had some crashes and lock-ups with Rev 4.0 Mac, not sure what all patterns. (Rev 4.0 Win is rock-solid.) If you have problems for that standalone you might go back to the 3.0 or 3.5 engine temporarily, then move back up at the next Rev update. File format compatibility between versions is great, isn't it! Yes indeed! Phil Best wishes, Curry Kenworthy -- WordLib: Import MS Word and OpenOffice documents http://curryk.com/wordlib.html Need custom software development or RunRev help? http://curryk.com/consulting/ -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Group [vertical] scroll bars huge on Windows
Hi Jeff - What happens if you set the scrollbarWidth of the object to 15 or 10 or yourNumberHere? On 6/17/10 11:24 AM, Jeff Massung wrote: Anyone know how to easily fix this? They are... disproportionately wide. Jeff M. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Big Flat Stacks - NULLs
On 6/16/10 8:27 PM, Paul Looney wrote: Jacque, Thanks for the excellent explanation. So far we have imported over a thousand HC stacks into our Rev-based business system. These are mostly databases from our customers. We noticed that, with some customers, up to a third of the archived orders did not make it into the new system. When checking further, we found these were customers who regularly pasted text from MS Word or AppleWorks into one of the Notes fields. Incidentally, removing the NULLs before import was not always successful, either. Another NULL problem in Rev has been sorts. We've found that information is often missing when sorting data containing NULLs (on one occasion, the pre-sort data was two megabytes larger than the post-sort). Removing NULLS from the data before sorting (which we always do now) has fixed the problem for us. Paul Looney The filter command can also malfunction if the data contains nulls. I ran into that this week. Phil Davis On 16/06/2010, at 7:21 PM, J. Landman Gay wrote: Bob Sneidar wrote: I vaguely recall that HC was not supposed to have nulls, but some bug or other caused them and wrecked havoc with HC stacks. Compacting the stack seemed to eliminate them. HC used nulls as end-of-field markers, so if text containing nulls was pasted into an HC field, the text would truncate at the first null. I once had to debug a stack like that, where someone had pasted some text from AppleWorks into the stack. It wasn't a bug, just a result of pasting. Rev handles nulls in fields fine. But during a normal Rev import, the Rev engine knows that nulls were end-of-field markers in HC and so probably truncates the incoming text at that point too, just as HC did. I'm not sure why Paul would need to replace incoming nulls with empty though, since the Rev engine shouldn't bring any of them in when it opens a HC stack. -- Jacqueline Landman Gay | jac...@hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: [OT] Google Drops Windows
The late Grant Schempel? (not sure about spelling) On 6/2/10 2:04 PM, Kurt Kaufman wrote: S.R.: One hundred rubles says an army of Russian virus writers is working in the office next door to Kasparsky, and they all take cigarette breaks together every morning. :-) LOL! Wasn't there someone who, years ago on the SC list, would occasionally spin fanciful tales of KGB and Stasi intrigue? Kurt -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: [OT] Divine Bliss
On 23/05/10 4:57 AM, Richmond Mathewson wrote: While I wouldn't advocate giving everything else up, I would advocate getting into RunRev in a big way; the deeper one digs the more 'gold' one finds Amen! Phil Davis ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Monitor Shell Copy File Progress
I bet you could use cURL for this, using the FILE protocol. Build your curl command line with filenames formatted for curl; open it as a process for read; read that process's output every 500 msecs or so to get the progress info. I'm on assignment in NZ right now so I don't have everything at my fingertips. Josh Mellicker made me aware of curl a few months ago, and Ken Ray may have made a rev library of it by now. ;-) Also Mark Smith created a rev curl lib some time ago. Food for thought... Phil Davis On 23/05/10 12:26 PM, Alex Tweedly wrote: First thought : I thought (according to Dictionary) that shell would wait until the command was complete before returning - dictionary says The current handler pauses until the shell returns its result. If the command was successful but did not return anything, the shell function returns empty. Second try : why take a checksum, why not just use the file size ? Getting the checksum may involve copying the file from the remote server into your laptop to calculate the checksum. Third try : instead of doing shell 'cp file ' could you do load url (file: tRemotepathname) check the cachedURLs put url(file: tRemotepathname) into url('file: tLocalfilename) -- Alex. On 22/05/2010 23:35, Sivakatirswami wrote: Work working on an in-house file manager - RCS for Indesign (since Adobe did an end of life for Version Cue) It's coming along well, in fact really well. One challenge is that I'm using lots of these: put (mv quote gLocalFilePath quote quote (gLocalProjectPath / tShortFileName) quote) into tShell get shell (tShell) put (cp quote (gLocalProjectPath / tShortFileName) quote quote (gServerProjectPath / tShortFileName) quote) into tShell get shell (tShell) to more files around and rename them... it works great. Is there a way to monitor a background shell process like this? The problem is if you copy from the Big Server on the LAN... to my Little MacBook Pro... you won't know when the file is completely copied to the local hard drive before doing: launch (gLocalProjectPath / pFileName) with the uInDesignPath of this stack Typically RunRev will issue the unix cp command and then immediately launch inDesign, which crokes because the file is incomplete on the local hard drive. Now I have some ideas about how to do this: get the checksum some of the remote file, do a send in 30 ticks (repeatedly) test of the local file until the local file's checksum matches the remote file and then launch it. But before I go after this, I was wondering if anyone had any other method? Most cool would be a progress bar, but I'm not sure RunRev can monitor a local unix copy file processor, if it can, how to do it. Thanks! Sivakatirswami ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Accessing stacks without opening
Hi Marty, When you reference a stack that is not open, it is brought into memory. Even this will do it: -- set 'it' to true or false get (there is a stack abc) -- looks in the default folder for the stack Or you can reference the stack by its filename. When a stack file is brought into memory this way, none of the normal preOpen / open messages are sent to it or its parts. AND visible stacks are not shown. You can definitely use this to your advantage in certain cases! It is not bad form. The important thing is that you know what's happening. Phil Davis On 4/26/10 6:47 PM, Marty Knapp wrote: So it appears that you can set custom properties of a stack and put information into fields of stacks that are not open, from a stack that is open. I just did it by accident! That being the case, is there anything that I should be aware of when doing this? Is the referenced stack loaded into memory? Is this considered bad form? Thanks, Marty Knapp -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Is there a maximum data size for groups?
This list is never dull! Phil Davis On 4/17/10 9:37 AM, Richmond Mathewson wrote: On 17/04/2010 19:17, J. Landman Gay wrote: Richmond Mathewson wrote: On 17/04/2010 18:47, Jonathan Lynch wrote: Hi guys, I think you must be right that I am using up my RAM. Drat, this is gonna be a pain in the bahonkus. One pain in the bahonkus now is probably better than a whole slew of pains in the bahonkus later on . . . :) Oh so true. In one project right now, due to a lack of foresight, I can hardly sit down. Hmm; that's interesting - I was wondering exactly where the bahonkus was: not being a North American - we Europeans have different anatomy . . . :) All right; we use different euphemistic terms for the same bits of anatomy . . . - While I'm here; I suffer from a lack of foresight too, having had it circumscribed at an early age . . . the old jokes are always the best! ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Java Socket read problem
Comment inserted below - On 4/6/10 10:54 AM, Shani wrote: HI, I have problem with the revcode. It cant display This result. Server Started Client Syas: AllowServer I start the process then write AllowServer as a client but it cant work. Kindly tell me on which line is the problem, Java program is working. Th eproblem is rev side. StartProcessButton 3 on mouseUp local tDefaultFolder, tProcess -- put the defaultFolder into tDefaultFolder set the defaultFolder to StackPath() -- put java Server 54321 into tProcess open process tProcess for neither -- set the defaultFolder to tDefaultFolder end mouseUp ## Socketbutton ### on mouseUp local tDefaultFolder, tResult, tSocket -- put (localhost:54321) into tSocket open socket tSocket write AllowServer return to socket tResult The above line should say: write AllowServer return to socket tSocket There may be other things, but this one caught my eye. Phil Davis answer tResult end mouseUp function StackPath local tPath -- put the effective filename of this stack into tPath set the itemDelimiter to slash delete item -1 of tPath -- return tPath end StackPath Java coding: import java.io.DataInputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main (String[] args) throws IOException{ ServerSocket server=new ServerSocket(54321); System.out.println(Server Started); Socket client= server.accept(); DataInputStream in= new DataInputStream(client.getInputStream()); System.out.println(Client Syas: + in.readUTF()); } } You can see the example on this link: http://www.4shared.com/file/258393507/808220ec/javaServer.html Regards, SHANI ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: text-to-speech API? SAPI?
There is a world of difference in quality between voices included with the Windows OS and those available from third parties. When I was exploring this a few years ago, I discovered that Cepstral offered some higher quality voices for not that much money (relative to my need at the time). This was several years ago so I'm sure the market has changed, but you might check them out anyway: http://www.cepstral.com/demos/ HTH - Phil Davis On 3/4/10 4:58 AM, Nicolas Cueto wrote: Look at revSpeechVoices() and revSetSpeechVoice in the dictionary. There are a bunch of different voices you can try, That's the first thing I did. I'm on XP so only have Microsoft Sam. Not sufficient at all. Have also listened to Vista's Microsoft Anna. So-so, but still too unnatural. Perhaps alternate voices aren't the solution... -- Nicolas Cueto -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: FTP uploads with curl - monitoring progress - any ideas?
Hi Ken, If you open curl as a process, you can then read the status info one line at a time. Would that work? Here's one way (courtesy of Josh Mellicker, with some mods): -- a button script -- local vCurlProcess on mouseUp put empty into fld output put formattedForCurl(fld filename) into tFiles put (curl -T tFiles fld server -C -) into vCurlProcess open process vCurlProcess for read get the result if it = empty then send getCurlReport to me in 12 ticks else answer it end mouseUp on getCurlReport read from process vCurlProcess for 1 line put it after fld output if it = empty then closeCurl else send getCurlReport to me in 12 ticks end getCurlReport on closeCurl close process vCurlProcess answer Done. end closeCurl function formattedForCurl pFileList -- handle single file selection if the number of lines in pFileList = 1 then return quote pFileList quote -- handle multi file selections replace CR with , in pFileList put quote { pFileList } quote into tList return tList end formattedForCurl There you have it! Phil On 3/4/10 10:28 AM, Ken Ray wrote: I have some large files (100MB +) that I need to FTP to a customer's server. I have tried to use libURL to do the uploading, but I get odd results/random timeouts/errant status messages when the file I'm uploading is over 40MB. I've tried many different workarounds to this, but none have been consistent/acceptable so for this project I'm seeing if I can use curl. The pain is that there doesn't seem to be a way to retrieve the progress of an FTP upload so I can display a custom upload box. If I redirect it to dev/null, I get control back after the upload starts, but I can't get any progress data: curl -T filePath -u user:pass serverAdress /dev/null 21 If I redirect to stdin, it's blocking and I only get anything when the upload is complete: curl -T filePath -u user:pass serverAdress stdin I've also tried: curl -T filePath -u user:pass serverAdress stdin curl -T filePath -u user:pass serverAdress stdin 21 Is there any way to make a non-blocking call to curl, but then to get back the progress text that would normally be displayed in the Terminal? Any help would be appreciated... Ken Ray Sons of Thunder Software, Inc. Email: k...@sonsothunder.com Web Site: http://www.sonsothunder.com/ ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: How do I 'shorten' this script?
Hi William, You were almost there. The statement that sets the 'tName' variable value AND the condition-check that uses it must BOTH be inside the repeat loop, like this: on mouseUp repeat with x = 1 to 5 put Ax into tName if the backgroundcolor of grc tName of grp A \ = the backgroundcolor of grc tName of grp B then answer AnswerA else answer AnswerB end repeat end mouseUp HTH - Phil Davis On 3/4/10 10:01 PM, William de Smet wrote: Hi there, I am having trouble with 'shortening' some script but don't know why. The first script works but the second one doesn't. What am I doing wrong? Thanks! Greetings, William * * * * *on mouseUp* *if* the backgroundcolor of grc A1 of grp A = the backgroundcolor of grc A1 of grp B and \ *if the backgroundcolor of grc A2 of grp A = the backgroundcolor of grc A2 of grp B and \* *if the backgroundcolor of grc A3 of grp A = the backgroundcolor of grc A3 of grp B and \* *if* the backgroundcolor of grc A4 of grp A = the backgroundcolor of grc A4 of grp B and \ *if* the backgroundcolor of grc A5 of grp A = the backgroundcolor of grc A5 of grp B *then* *answer* AnswerA *else* *answer* AnswerB *end* mouseUp *on* mouseUp *repeat* with x = 1 to 5 *put* Ax into tName *end* *repeat* *if* the backgroundcolor of grc tName of grp A = the backgroundcolor of grc tName of grp B *then* *answer* AnswerA *else* *answer* AnswerB *end* mouseUp -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: [On-Rev] sending email thru sendmail?!
Hi Andre, A few months ago, Tereza and I created a revweb test for my client to use with his customers. At the end it emails test results automatically from a CGI on the on-rev server. I just now tested it and it works. It's emailing from a CGI, not from irev code, so maybe it won't answer your need; but maybe it will: on sendReport pEmail, pReport -- start process put (mail -s q(RevWeb Test Results) \ revwebt...@domain1.com -a q(From: donotre...@domain2.com)) cr into tMailProcess open process tMailProcess for write put the result into tPID put open: tPID cr after tLog -- write body --put Here are the results from your Rev Web Test: cr pReport into tBody put cr pReport into tBody write tBody to process tMailProcess put write body: the result cr after tLog -- provide a CC write cr to process tMailProcess put write CC: the result cr after tLog close process tMailProcess put close: the result cr after tLog wait until tMailProcess is not in the openProcesses end sendReport Best - Phil Davis On 3/3/10 8:10 AM, Andre Garzia wrote: Ralf, this is a self contained system to be distributted, can't use revIgniter because this is supposed to integrate into other people works... it is a minimal system. Tried using mail and sendmail... I am almost about to code SMTP on my own, I did it before... damn andre On Wed, Mar 3, 2010 at 12:58 PM, Ralf Bitterra...@dimensionb.de wrote: Hi Andre, with revIgniter it works, plus there is a debugger function. Cheers Ralf On 03.03.2010, at 16:27, Andre Garzia wrote: Ha! Logged thru SSH and tried both mail and sendmail and none works! :D \o/ Doing the happy dance, it is definitely broken or configured so badly that it doesn't work as all the other installations I've found. Anyone is able to send mail in On-Rev? Cheers andre On Wed, Mar 3, 2010 at 12:09 PM, Andre Garziaan...@andregarzia.com wrote: Just tried the mail + shell commands and it doesn't work as well... no error is triggered but the email also never arrives. It would be useful is On-Rev Team would add the sendmail/mail log to the cPanel thing. :-/ can't even see the logs! Argh! Cheers andre On Wed, Mar 3, 2010 at 11:57 AM, Andre Garziaan...@andregarzia.com wrote: Bernard Jeffrey, thanks for the reply. On On-Rev cPanel there's a information label with the sendmail location, which I used on my script but the thing is not working. I have code for mail as well as I used this on mac os x... silly computers never working the way they should, let me try mail. Cheers andre On Wed, Mar 3, 2010 at 11:50 AM, Bernard Devlinbdrun...@gmail.com wrote: On Wed, Mar 3, 2010 at 1:55 PM, Andre Garziaan...@andregarzia.com wrote: Aloha Folks, Did anyone here is able to send email using sendmail in On-Rev, my code that I use everywhere is not working anymore, somehow it can't open the sendmail process. Some linux installations have a CLI mailer called 'mail' instead of 'sendmail'. I know on some installations where Postfix is the smtpd I've had to install that 'mail' program separately. I don't have the details to hand, but can look them up if necessary. You could try 'there is a file /usr/bin/sendmail' to check for the existence of sendmail with on-rev. Bernard ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- http://www.andregarzia.com All We Do Is Code. -- http://www.andregarzia.com All We Do Is Code. -- http://www.andregarzia.com All We Do Is Code. ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: geek-meter might go right into overload
On 2/23/10 12:38 PM, J. Landman Gay wrote: Robert Cole wrote: I saw this article today about the iPhone and Photoshop. http://www.tuaw.com/2010/02/23/found-footage-photoshop-v1-0-recreated-on-iphone/ The second paragraph of the article contains a reference to HyperCard. I wonder if the author knows about Revolution. It would be great if you'd add a comment there telling him. Done. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Search / replace
Thanks Kee. This is simple and clear, and is a great way to do it for the exact reason you gave. Phil Davis On 2/20/10 4:04 PM, Kee Nethery wrote: This may not be the fastest but I think it is easy to grok a year later when you are revisiting the code repeat with x = 0 to 9 replace (x [) with (x _) in theField end repeat For all [ in the field I need to check to see if the character to it's immediate left is a number. If it is a number then the [ is to be converted into an _. If it is not a number then the [ is to be removed (no substitution or spaces). I need to be able to cycle through the entire field which each line may contain several [. Any thoughts would be appreciated as I have tried using a combination of find characters and foundchunk on the field without success. thanks, - I check email roughly 2 to 3 times per business day. Kagi main office: +1 (510) 550-1336 -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: SuperDuper textSize property
On 2/19/10 8:48 AM, dunb...@aol.com wrote: This is nothing new, and has always been the case in HC. I make a field and I set the textSize of the field to 12. I write three lines of text. I then set the textSize of line 2 of the field to 24. That line gets bigger. If I ask for the textSize of line 2, I get 24. If I ask for the textSize of the field, I get 12. If I then set the textSize of the field to 10, all lines but line 2 obey. OK, they always did. Lines (or chunks in general) remember their textSize (or textStyle, or textAnything) as a personal property, taking precedence over the field property. So is it true that in order to globally change one of these properties I have to explicitly use some sort of chunk expression: set line 1 to the number of lines of fld myField to plain Hi Craig, You want to REMOVE the chunk-based text property, not set it to another value, right? So try this: set the textAnything of line 1 to -1 of fld myField to empty If you set it to a non-empty value, you've only traded one chunk-based setting for another. At least that's my understanding. Phil Davis I only ask because Rev seems to have a property for everything. There isn't an overArchingTextStyle property? Craig Newman ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: relative position of a target within a group
Hi Mark, Here's one way you can use with any grouped object. on mouseUp -- in a grouped button put the locWithinGroup of me end mouseUp getProp locWithinGroup -- return card-relative loc if target object is not in a group if word 1 of the name of the owner of the target is not group then return the loc of the target -- return the loc of the target object relative to its 'owner' group return \ (item 1 of the loc of the target - the left of the owner of the target), \ (item 2 of the loc of the target - the top of the owner of the target) end locWithinGroup HTH - Phil Davis On 2/19/10 1:55 PM, Mark Swindell wrote: How does one get the relative position of a button within a group of buttons? I want to put the (relative to group myGroup) number of the target into vMyVar One can say select button 3 of group myGroup without problem. But how would one best do this using the target function? Thanks, Mark ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Script Editor Handler List
On 2/19/10 8:50 PM, Scott Rossi wrote: Recently, Cal Horner wrote: Is anybody out there having trouble with disappearing Handler Lists. Or is it only me? The list is there for a while and then it must decide to take a tea break. Happens here as well. Also, the message box becomes non-responsive (becomes tied to a hidden or non-open stack). In both cases, a close of the window and reopen solves it. Also you can click the current script editor tab (but not the close dot!) and the handler list is refreshed. Regards, Scott Rossi Creative Director Tactile Media, UX Design -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Getting some chars from a string?
Hi Richmond, Here's another way: on mouseEnter put myNumber(the short name of me) end mouseEnter function myNumber pNOMEN set the itemDelimiter to . return char 2 to -1 of item 1 of pNOMEN end myNumber Phil On 2/9/10 11:01 AM, Richmond Mathewson wrote: I have a series of image names for the type: f#.png where # can be a number anywhere between 1 and 6 figures long. what I need is to extract the number from the image name. SO, starting with on mouseEnter put the short name of me into NOMEN ? -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Andre's house - Bill's house [OT]
On 2/8/10 8:31 AM, william humphrey wrote: Andre It is always between 72 and 85 degrees F up here in the rainforest. But the humidity is often 100%. I have to store all data on hard drives (music CD's and movie DVD's don't last) and keep them warm. Not complaining. I love it here. Anytime you want to come to our bed and breakfast and stay for free you are welcome ( http://www.rainforestinn.com ). That invitation is, of course, open to all you other RunRev programmers who have many magnitudes of ability greater than I. Bill WOW! Thanks Bill. So... RevCon 2011 at your place? ;-) -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Getting list of files in a folder
Hi Mark, Gotta love this list! I'm not really trying to improve on the solutions from Terry and Sarah, just offering an alternative. Instead of prepending each filename with the path via a repeat loop like this: repeat for each line L in tFileList put pFolder L cr after tFullList end repeat You could do it this way: put (CR tFileList) into tFullList replace CR with (CR pFolder) in tFullList delete char 1 of tFullList So you have 3 lines that execute, even with a list of 1000 files. I haven't timed this to see if there's a speed gain - just thought I would throw it out there. Phil Davis On 2/8/10 9:20 PM, Mark Swindell wrote: Terry, Sarah, Wow, that was fast! Thank you so much. Mark On Feb 8, 2010, at 9:19 PM, Sarah Reichelt wrote: On Tue, Feb 9, 2010 at 3:05 PM, Mark Swindellmdswind...@cruzio.com wrote: How do I return a list of the files in a given folder on disk along with their full path? Manually :-) Here is a function I wrote that lists files in a folder for you, resetting the defaultFolder when it's got the list. function listFiles pFolder, pGiveFullPath if there is not a folder pFolder then return empty -- get the list of files reset default folder put the defaultFolder into tOldDefault set the defaultFolder to pFolder put the files into tFileList set the defaultFolder to tOldDefault -- filter out OS X's invisible files filter tFileList without .* -- add folder path to file name if required if pGiveFullPath is among the items of true,yes,full then put empty into tFullList if the last char of pFolder / then put / after pFolder repeat for each line L in tFileList put pFolder L cr after tFullList end repeat delete last char of tFullList return tFullList else return tFileList end if end listFiles If you use: put listFiles(tFolder) into fld Files you get tust the file names, but if you use: put listFiles(tFolder, full) into fld Data you will get the full file paths. Cheers, Sarah -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Calling stack?
Hi Bill, This works: on openStack answer the name of the owner of the recent card end openStack Phil On 2/2/10 9:03 PM, Bill Vlahos wrote: I have a stack that opens another stack. How do I refer to the name of the calling stack in the freshly opened stack which is now on top? Bill Vlahos _ InfoWallet (http://www.infowallet.com) is about keeping your important life information with you, accessible, and secure. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: is the platform on 64bit windows systems also win32?
Hi Tiemo, I'm not sure if anyone answered your question directly, so... on my 64-bit Win 7 machine, the platform returns Win32 in Rev 4.0. Phil Davis On 1/27/10 5:13 AM, Tiemo Hollmann TB wrote: Thank you Luis, I just wanted to get sure not to exclude 64 Bit Users when selecting the platform with Win32 :) Tiemo -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Modal dialog not modal... any hints?
Hi Tereza, So you call YesOrNo() from preOpenStack? If so, I bet that's the problem. Hide your mainStack in preOpenStack, and call AskYesOrNo() in openStack (after the stack window has been drawn, even if invisible). And before calling AskYesOrNo() be sure the modal stack is visible. This is a guess, but I think I did something like that when I had troubles with modal stacks in the past. Phil Davis On 1/19/10 2:37 PM, Tereza Snyder wrote: On Jan 19, 2010, at 4:02 PM, Jacques Hausser wrote: Hi Tereza I checked your handler in a stack modaling a substack AskYesOrNo with both RR 3.5 and 4, and both seem to work perfectly... Do you have something else than filling fields with the custom properties and setting the dialogData in the scripts of AskYesOrNo ? Jacques Thanks Jacques! In preopenstack I move buttons around to suit the platform and default value, and I arrange to return the default value on returnkey. But I do nothing unusual. I've had to revert to using an answer dialog--which works--but I wish my own dialog would work! This is old code that worked for years that I revived for this project (I wanted my own look-and-feel). Convinces me I really AM losing my grip! t Le 19 janv. 2010 à 21:22, Tereza Snyder a écrit : On Jan 19, 2010, at 1:56 PM, Jerry Daniels wrote: Tereza, modal stack AskYesOrNo Don't you have to put the word stack in there? The (mis)behavior is the same whether it's modal stack or just modal On Jan 19, 2010, at 1:05 PM, Tereza Snyder wrote: I have this handler in a script: function YesOrNo pQuestion, pDefaultAnswer set the Question of stack AskYesOrNo to pQuestion set the DefaultAnswer of stack AskYesOrNo to pDefaultAnswer modal AskYesOrNo return the dialogData end YesOrNo The stack AskYesOrNo is intended to do what you'd expect: it displays the question with yes or no and returns yes or no in the dialog data. However, when I call this handler, it returns empty before it even displays the dialog. If I insert a put statement AFTER the modal statement, the putted text is visible in the message box while the dialog is on the screen, and statements in the caller of the YesOrNo function are executed before I exit the dialog. In other words, modal seems broken. Before I start making test stacks, has anyone encountered this before? Could there be a bug in the dialog scripts that causes the dialog to fail silently? (Revolution 3.5, MacOS 10.6.2) -- Tereza Snyder Califex Software, Inc. www.califexsoftware.com ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ** Prof. Jacques Hausser Department of Ecology and Evolution Biophore / Sorge University of Lausanne CH 1015 Lausanne please use my private address: 6 route de Burtigny CH-1269 Bassins tel/fax:++ 41 22 366 19 40 mobile: ++ 41 79 757 05 24 E-Mail: jacques.haus...@unil.ch *** ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Ask window and foreign language
Try this: set the label of btn Cancel of stack ask dialog to ask Use what value? Phil On 1/15/10 11:59 PM, Ludovic Thébault wrote: Hello, It is possible to translate the Cancel button in the ask window ? Thanks. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Ask window and foreign language
LOL - maybe I should have said: set the label of btn Cancel of stack ask dialog to ;-) On 1/16/10 12:34 AM, Mark Wieder wrote: Phil- Saturday, January 16, 2010, 12:16:08 AM, you wrote: Try this: set the label of btn Cancel of stack ask dialog to ask Use what value? I fell asleep waiting for an answer... -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: USB dance-pad with Rev?
Yes, what Björnke (and Dave C) said is true - in USB termonology the device interaction requirements are defined by the class it belongs to. * Mass Storage class = flash drives etc. Rev lists them in the volumes * Communications class = Björnke's serial over USB - controller boards, modems etc that have a command set of their own. These usually have drivers that Rev lists in the driverNames although they don't always get listed. (I have a 'deviceNames()' function somewhere (thanks to Dar Scott and Ken Ray) that returns a more complete list - I'll see if I can dig it out and post it.) These require that you open driver / read from driver / write to driver / close driver. I learned a lot from Sarah Reichelt about working with this device type. Here is a description of her work with one such device: http://www.pdslabs.net/usb/rev-usb1.pdf * HID class = keyboards, mice etc. There are about a dozen USB device classes in all, but the ones listed above are the ones most relevant to the current discussion. Phil Davis On 1/14/10 8:15 AM, Björnke von Gierke wrote: Another boon is that usb developers are lazy (like all developers). Thus they often use some standard lib for their device, especially if it isn't a network adapter or other exotic device. and the most standardised libs are: disk space (USB memory stick or HD) user interface (mouses, keyboard, ...) serial over usb so it might be worth a shot to check the drivernames when you connect your device or before and after you install relevant drivers... of course this is pretty much a shot into the dark... bjoernke -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Simple Arrays
Thanks Dick - I hadn't thought about handling common cases differently. Good idea! Phil On 1/11/10 12:10 PM, Dick Kriesel wrote: On 1/10/10 1:25 PM, Phil Davisrev...@pdslabs.net wrote: The things some people do for fun... ;-) ... can make others want to get in on the fun, like by fixing something that ain't broke. Here's an elaboration on your idea that handles your sample data more than twice as fast, primarily by avoiding the do for typical cases. Thanks for the cue, Phil. -- Dick postscript_with_line_wraps function table_split tTable,pLineDel,pItemDel filter tTable without empty set the lineDelimiter to coalesce(pLineDel,cr) set the itemDelimiter to coalesce(pItemDel,tab) switch number of items in line 1 of tTable - 1 -- number of dimensions case 1 repeat for each line tLine in tTable put item 2 of tLine into tArray[item 1 of tLine] end repeat break case 2 repeat for each line tLine in tTable put item 3 of tLine into tArray[item 1 of tLine][item 2 of tLine] end repeat break case 3 repeat for each line tLine in tTable put item 4 of tLine into tArray[item 1 of tLine][item 2 of tLine][item 3 of tLine] end repeat break default repeat for each line tLine in tTable do put last item of tLine into tArray[ replaceText(item 1 to -2 of tLine,the itemDelimiter,][) ] end repeat end switch return tArray end table_split function coalesce -- return the first non-empty parameter repeat with i = 1 to the paramCount if param(i) is not empty then return param(i) end if end repeat end coalesce /postscript_with_line_wraps ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Bill Marriott
On 1/11/10 4:59 PM, Bob Sneidar wrote: So very sorry for your loss. May we all take a moment and remember how much the work and passions of others help us in our everyday lives, and be thankful for every day, and every friend given us. Bob I say amen to Bob's comment. I believe we will all miss Bill's considerable contribution to our greater joy with Rev (and often the improvement of our work lives) through his work improving it. Phil On Jan 11, 2010, at 3:42 PM, Kevin Miller wrote: Hi all, It is with great sadness that I must inform you that Bill, our Marketing Director here at RunRev, passed away unexpectedly on Friday. Bill was in his mid 40s, had diabetes and had suffered a number of health problems recently, including a heart attack. Unfortunately I’m not in a position to say much more about the circumstances of his passing at the moment. During his time with us Bill spearheaded a number of initiatives which in part, contributed to some of the most successful growth we have seen in recent times. Bill was often quirky, sometimes controversial, but usually he was right. His strategies and campaigns were never boring and the results speak for themselves. Outside of work I came to consider Bill a close friend. In time we will be able to find someone to fill his position but I will always remember him for his unique contribution. His death comes for me right after the death of my brother’s young daughter during the holidays, so between these events it will take me a little time to find my feet again. If you have emailed me about something and not received a reply I would ask that you be patient, normal service will resume shortly. Thank you Bill, for everything. I hope you rest in peace. Kind regards, Kevin Kevin Miller ~ ke...@runrev.com ~ http://www.runrev.com/ RunRev - Software construction for everyone -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Simple Arrays
All this discussion of arrays inspired me to create a general-purpose function that 'splits' table data into an array. It will handle data that has any number of 'lookup key' items before the final 'lookup data' item in each row. Some sample data: 1,1,1,data111 1,1,2,data112 1,1,3,data113 1,2,1,data121 1,2,2,data122 1,3,1,data131 1,3,2,data132 1,3,3,data133 1,3,4,data134 2,1,1,data211 2,1,2,data212 2,2,1,data221 2,2,2,data222 2,2,3,data223 2,2,4,data224 2,2,5,data225 The code (watch for line wraps): on mouseUp put table_Split(fld 2,,comma) into tArray -- then do things with array data end mouseUp function table_Split pTable, pLineDel, pItemDel #--- # pTable = REQUIRED rows of column data, where # .all rows have the same number of columns # .cols 1 to -2 of each row are the lookup keys for the value # .col -1 of each row is the value to be looked up # pLineDel = OPTIONAL non-CR line delimiter used in pTable # pItemDel = OPTIONAL non-tab item delimiter used in pTable #--- local vArray -- make sure variable exists for 'do' command -- prep if pLineDel = empty then put CR into pLineDel if pItemDel = empty then put tab into pItemDel set the itemDel to pItemDel set the lineDel to pLineDel filter pTable without empty -- remove blank lines from data repeat for each line tLine in pTable -- prep key put vArray[ quote item 1 to -2 of tLine quote ] into tArrayElementName replace pItemDel with (quote ][ quote) in tArrayElementName -- store data item in array element do (put last item of tLine into tArrayElementName) end repeat put vArray into tArray delete variable vArray -- so it will be empty next time through return tArray end table_Split You can set a breakpoint at the return tArray line to see the array in the script editor's variable viewer. The things some people do for fun... ;-) -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Simple Arrays
Hi Bob, On 1/9/10 5:12 PM, Bob Sneidar wrote: Hi all. Apparently I am not getting arrays AT ALL. I would think that given: put 1 comma A comma Green return into theData put 2 comma B comma Blue return after theData put 3 comma C comma Orange return after theData put 4 comma D comma White return after theData which would get me: 1,A,Green 2,B,Blue 3,C,Orange 4,D,White Actually either of these: split theData with cr split theData by row -- where the rowDelimiter is CR would get you this: theData[1] = 1,A,Green theData[2] = 2,B,Blue theData[3] = 3,C,Orange theData[4] = 4,D,White I could then split by column (or by row I get confused) and get a simple array where: theData[1,1] = 1 theData[1,2] = A theData[2,1] = 2 theData[4,3] = White And so forth. However, this is NOT the case! Right. Technically speaking, comma is not an array index separator. Commas in our array keys help us conceptually represent multiple array dimensions in our own minds, but Rev sees an array with such keys as a simple one-dimensional array with alphabetic keys (since commas are not numerals). Until version 3.0, Rev couldn't handle true multi-dimensional arrays. Since then, the thing that tells Rev this is a multi-dimensional array is multiple keys per element, with each key in its own bracket. Like this: theData[1][1] = 1 theData[1][2] = A theData[1][3] = Green Now do you see why 'transpose()' wouldn't work with your array? In part it's because your keys aren't numeric - they contain commas. (Also they have to be sequential numbers.) Welcome to array re-education camp! ;-) Phil Davis If it were, I could issue a command: put transpose(theData) into myArray and: myArray[1,2] = 2 myArray[1,3] = 3 and so on. If I got the entire row (I think there's a function for that) then I would have effectively gotten the column of the original data. Seems reasonable eh? So can someone please explain to me why I cannot get a simple x,y row,column grid-like array using these simple commands? Revolution seems to think that the first column MUST be the key! I would LIKE for revolution to simply create it's OWN numerical keys and let my data be my data. Maybe in the future add an argument to the split and combine commands to tell it whether or not I WANT Revolution to treat my first column as the key? If arrays worked like I described above, it would be a simple matter to get a single column of an array, just by transposing it and getting an entire row, instead of writing complex repeat loops to get a column of data. Am I missing something here? Thanks for any wisdom you can give. I can save some helpful souls the trouble of responding by saying I am capable of making repeat loops to accomplish this. I was just hoping that maybe I was missing something and I can in fact do what I thought I could. Bob___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Finding the name of a USB volume
Hi Richard, I believe this does include the volume names as they appear in the Finder. Look for the Volumes: tag in each output line. Phil On 1/7/10 7:43 AM, Richard Gaskin wrote: Phil Davis wrote: Here is an simplified 'system_profiler' output approach. It returns one tab-delimited line of info per detachable USB storage device, with all the data items known to system_profiler for each device. NOTE: It expects system_profiler output to be in English. function macUsbDrives -- get USB device info from system profiler put shell(system_profiler -detailLevel full SPUSBDataType) into tData -- convert data to one line per USB device replace (colon cr cr) with numToChar(245) in tData -- device name replace (cr cr) with numtoChar(250) in tData replace cr with tab in tData replace numtoChar(245) with (colon tab) in tData replace numtoChar(250) with cr in tData -- remove records for all but USB drives (English data only) filter tData with *Detachable Drive: Yes* -- remove space-padding from items in each line set the itemDel to tab repeat for each line tLine in tData repeat for each item tItem in tLine put word 1 to -1 of tItem tab after tNewData end repeat put cr into last char of tNewData end repeat delete last char of tNewData -- return the data return tNewData end macUsbDrives Very helpful Phil, and I appreciate your posting it, but unfortunately the issue I found with using system_profiler is that it doesn't report the volume name as it appears to the user on the desktop. I had hoped there would be some reasonably simple way to get a list of mounted volumes that looks something like this: driveName mountPoint type ...where driveName is the name as it appears in the Finder, mountPoint is either / or Volumes/drivename, and type is either ATA, SCSI, CD/DVD, USB, etc. With what I've learned in this thread it seems I may be able to use output from system_profiler checked against output from AppleScript calls to obtain such a list. For the future, I see that Jeanne DeVoto had submitted an RQCC request for the detailed volumes which could do what I need if implemented as described there: http://quality.runrev.com/qacenter/show_bug.cgi?id=101 In the meantime, it looks like I have some parsing to do and some homework to figure out the details of getting this info for Win Vista, Win 7, and Linux. I'll post the result here once I get it working. -- Richard Gaskin Fourth World Rev training and consulting: http://www.fourthworld.com Webzine for Rev developers: http://www.revjournal.com revJournal blog: http://revjournal.com/blog.irv ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Finding the name of a USB volume
On 1/7/10 9:36 PM, Scott Morrow wrote: Very nice. Thanks, Phil! Scott Morrow Elementary Software (Now with 20% less chalk dust!) web http://elementarysoftware.com/ email sc...@elementarysoftware.com -- You're welcome! Here is an improved version of the original handler. It adds a Device: label to the device name and replaces the single Volumes: label before ALL volume descriptions with a Volume: label before EACH volume description (should make it easier to break out descriptions of each partition on a USB drive). function macUsbDrives -- get USB device info from system profiler put shell(system_profiler -detailLevel full SPUSBDataType) into tData -- convert data to one line per USB device replace (colon cr cr) with numToChar(245) in tData -- device name replace (cr cr) with numtoChar(250) in tData replace cr with tab in tData replace numtoChar(245) with (colon tab) in tData replace numtoChar(250) with cr in tData -- remove records for all but USB drives (English data only) filter tData with *Detachable Drive: Yes* -- remove space-padding from items in each line set the itemDel to tab repeat for each line tLine in tData put empty into tNewLine repeat for each item tItem in tLine put word 1 to -1 of tItem tab after tNewLine end repeat -- insert a device tag at beginning of device description delete last char of item 1 of tNewLine -- trailing colon put Device: before item 1 of tNewLine -- remove single 'volumes:' tag at beginning of all volume descriptions replace Volumes: tab with empty in tNewLine -- insert a volume: tag at the start of each volume description replace (colon tab) with cr in tNewLine -- break after each volume name repeat with x = 1 to (the number of lines in tNewLine - 1) put Volume: before last item of line x of tNewLine end repeat replace cr with tab in tNewLine -- append finished line to rest of data put cr into last char of tNewLine put tNewLine after tNewData end repeat delete last char of tNewData -- return the data return tNewData end macUsbDrives -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Finding the name of a USB volume
On 1/6/10 3:31 PM, Richard Gaskin wrote: tsj wrote: Richard - I haven't got an unnamed USB drive handy to test this with but what does the volumes function return when one is mounted? Does this give you the expected untitled (or untitled 1 etc)? If so, you could iterate through the listed volumes using a couple of applescripts to determine whether the drive was local (false if it's a network drive) ejectable (false if it's internal) and then if you get two false results you can attempt to open a file on the volume. If that gives you an error then the drive is write protected. If it passes all tests then you're left (presumably) with an external USB or Firewire drive. The passes all tests list can also includes mounted .dmg files. Thanks for posting this - very helpful. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Finding the name of a USB volume
Here is an simplified 'system_profiler' output approach. It returns one tab-delimited line of info per detachable USB storage device, with all the data items known to system_profiler for each device. NOTE: It expects system_profiler output to be in English. function macUsbDrives -- get USB device info from system profiler put shell(system_profiler -detailLevel full SPUSBDataType) into tData -- convert data to one line per USB device replace (colon cr cr) with numToChar(245) in tData -- device name replace (cr cr) with numtoChar(250) in tData replace cr with tab in tData replace numtoChar(245) with (colon tab) in tData replace numtoChar(250) with cr in tData -- remove records for all but USB drives (English data only) filter tData with *Detachable Drive: Yes* -- remove space-padding from items in each line set the itemDel to tab repeat for each line tLine in tData repeat for each item tItem in tLine put word 1 to -1 of tItem tab after tNewData end repeat put cr into last char of tNewData end repeat delete last char of tNewData -- return the data return tNewData end macUsbDrives HTH - Phil Davis On 1/6/10 5:50 PM, Phil Davis wrote: On 1/6/10 3:31 PM, Richard Gaskin wrote: tsj wrote: Richard - I haven't got an unnamed USB drive handy to test this with but what does the volumes function return when one is mounted? Does this give you the expected untitled (or untitled 1 etc)? If so, you could iterate through the listed volumes using a couple of applescripts to determine whether the drive was local (false if it's a network drive) ejectable (false if it's internal) and then if you get two false results you can attempt to open a file on the volume. If that gives you an error then the drive is write protected. If it passes all tests then you're left (presumably) with an external USB or Firewire drive. The passes all tests list can also includes mounted .dmg files. Thanks for posting this - very helpful. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: web tables 2 rev tables
Hi Roger, It seems to me the bigger problem is the conversion of nested html tables, which are pretty common. That said, here is a button script that converts a 'simple' html table to a tab-delimited text file. From there the sky is the limit. ;-) NOTE: This code works with only the simplest of tables, but it gives you a starting point if you want to go this way. on mouseUp -- get the file answer file Pick a file that contains an HTML table: if it = empty then exit to top put url (file: it) into tData -- make each html table start at the beginning of a line replace cr with empty in tData replace table with (cr table) in tData -- make each table end at the end of a line replace /table with (/table cr) in tData -- remove all lines but those with complete html tables filter tData with table*/table -- exit if there are no unnested tables if tData = empty then answer No unnested tables found. exit to top end if -- convert tables to tab-delimited lines of data replace tab with empty in tData replace /tr with cr in tData replace /td with tab in tData replace (tab cr) with cr in tData -- eliminate unused table tags replace table with empty in tData replace /table with empty in tData replace tr with empty in tData replace td with empty in tData -- display the converted data put tData into fld 1 end mouseUp Here is the test data I used (in a file of its own): table tr tdTable Cell/td tdTable Cell/td /tr tr tdTable Cell/td tdTable Cell/td /tr /table Merry Christmas! Phil Davis On 12/22/09 3:51 PM, roger.e.el...@sealedair.com wrote: What is the most direct way to convert the data in an html table into data to fill a 'basic table field' (not a dataGrid)? I have tried stripping away tags and plucking data from betweentabletrtdcell data/td/tr/table. This is tedious, and I'm sure there must be a better way. Thanks. ~Roger --- Roger Ellerroger.e.el...@sealedair.com ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: datagrids in revLets on Win (Vista / 7)
Using a straight queryRegistry() call here and without involving a dataGrid, on Win 7 I got: * failure when relying on auto-detect security settings in the SA settings panel * success when I manually checked registry (read) in same So it seems the 'auto-detect' feature doesn't always detect everything? Phil Davis On 12/17/09 5:42 PM, Malte Pfaff-Brill wrote: Hi there, was happiely coding away on a web project. Build the revlet, works fine on the mac. On Win Vista and 7 it fails with the following error (on setting the dgText of the datagrid to empty.: 682,119,17 465,119,1 587,117,1 253,113,1 241,113,1,_Initialize 353,0,0,button id 1005 of bkgnd id 1004 of stack revDataGridLibrary of stack webmon 573,4512,18 253,4512,1 241,4512,1,dgData 353,0,0,button id 1005 of bkgnd id 1004 of stack revDataGridLibrary of stack webmon 90,3205,36 449,3205,5 535,3205,1 241,3205,1,_table.SetText Anybody got an idea what could cause this? Cheers, Malte___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Deriving an angle from three points
On 12/16/09 10:57 AM, Bruce Robertson wrote: No it didn't. On Dec 16, 2009, at 10:44 AM, Colin Holgate wrote: Well, of course it's a triangle, but describing it as a V helped explain which angle was wanted. I thought Mark S identified it well when he called it the 'internal angle' - at least that did it for me: On Dec 15, 2009, at 10:35 PM, Mark Wieder wrote: Mark- Tuesday, December 15, 2009, 10:21:47 PM, you wrote: 40,116 98,186 132,118 How would one determine the angle created from three points, such as those above? There are three angles. Which one are you interested in? --- The above represents roughly a V shape with the center point the vertex. I was trying to detemine the internal angle. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: HTMLText question
On 12/16/09 8:04 PM, Kay C Lan wrote: On Thu, Dec 17, 2009 at 2:49 AM, Robert Brensteinr...@robelko.com wrote: A tad safer and more general technique is to put box before word 2 of tHtml put /box after word 2 of tHtml As other said, variable have htmltext property, just the content which can be html, so you need to work with it directly. Html comes into effect when such a content is put into a field and then displayed to user. Robert I'm totally confused. I am not aware that variables have a htmlText property? When I try to access it I keep getting an error message. You're right. Variables don't have an htmlText property, only fields do. This agrees with the Rev docs description and is the way it really works. I think maybe Robert meant variable DON'T have htmltext property, and was saying you can put the htmlText of a field into a variable, manipulate it, then set the htmlText of the field to the manipulated contents of the variable to display it in rendered form. Secondly, using the keyword 'word' when dealing with htmlText doesn't seem to be a safe option to me at all, in fact it would be the last option I'd think of using. If a field contained multiple lines of words, formatted in all sorts of weird and wonderful ways, and the htmlText of one of those lines might look like this: pfont color=#FFbboink/b/font/p If I were to use the keyword 'word', Rev considers pfont to be the first word and the second word is color=#FFbboink/b/font/p putting box and/box before and after any of these words will result in ill formed HTML. Granted, if you do a grep for([^]*) you can extract just the content between the html tags and then using the 'word' keyword will work for you. But now that I appreciate that this original post is related to another post where I put forward the idea of using the 'token' keyword, I'll suggest it again. Doing grep and trying to keep track of where in a line of html text you are and what word needs to be replaced with what, plus needing to deal with all the punctuation marks that get included inside what Rev considers is a word, is very involved for this old brain and dare I say, unsafe or at least fraught with possible errors. Using token, there are only a few special characters you have to account for, you can then just run through every token and when you get a match: put box token tTokenCounter of tHtmlText /box into token tTokenCounter of tHtmlText Probably not the fastest way, but relatively simple. HTH I'll take simple over snazzy any day of the week. That way, when I come back to it in six months I might be able to look at the code and immediately know what it's doing! I love it when that happens. Another approach I've taken is to reformat the htmlText into something more given to processing, then process it, then restore the original format. Like this: on mouseUp get withBoxTags(the htmlText of fld 1) put it -- so you can inspect the htmltext output set the htmlText of fld 1 to it end mouseUp function withBoxTags pHtmlText -- replace existing CRs with a char not found in pHtmlText replace cr with numToChar(250) in pHtmlText -- reformat the text for processing replace with ( cr) in pHtmlText -- each now ends a line replace with (cr ) in pHtmlText -- each now starts a line filter pHtmlText without empty -- remove blank lines -- insert box tags repeat for each line tLine in pHtmlText if char 1 of tLine = -- not a 'data' line then put tLine cr after tNewText else put box tLine /box cr after tNewText end repeat -- restore original format replace cr with empty in tNewText replace numToChar(250) with cr in tNewText -- return it to caller return tNewText end withBoxTags The above code may not accomplish exactly what you're trying to do, but it illustrates the idea. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: interrupting a repeat loop
Another way to check for any key being down is: command runTheLoop repeat forever if the keysDown empty then exit repeat -- do what you want end repeat end runTheLoop HTH - Phil Davis On 12/15/09 7:59 AM, Robert Brenstein wrote: On 15.12.2009 at 16:01 Uhr +0100 Jacques Hausser apparently wrote: Hi Tim it depends of the kind of loop you are using. Several possibilities For example in a card script: local stoploop command runTheLoop repeat forever if stoploop = S then exit repeat -- do what you want wait 10 milliseconds with message end repeat end runTheLoop on keyDown thekey put thekey into stoploop end keydown The wait x milliseconds with message is the important trick here. Jacques If it is not relevant which key is being pressed, then a tad simpler variation is command runTheLoop repeat forever if the shiftkey is down then exit repeat -- do what you want end repeat end runTheLoop It could also be altKey/optionKey or controlKey/commandKey instead of shiftkey. Robert -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Deriving an angle from three points
I never took trig, but I imagine some of Rev's trig functions might be helpful in determining this. If it's any help, here's a button handler that draws the angle: on mouseUp put 40,116/98,186/132,118 into tPointsList replace / with cr in tPointsList set the style of the templateGraphic to polygon set the lineSize of the templateGraphic to 1 set the showBorder of the templateGraphic to true -- to show the grc edge create grc angle set the points of grc angle to tPointsList end mouseUp When I draw it, I see there is a right angle at the bottomRight of it that might serve as a reference point of some sort? Of course a real numbers person wouldn't need to draw anything to see this. It would be highestCol1Number,highestCol2Number. I'll be interested to see the solution too. Phil Davis On 12/15/09 10:21 PM, Mark Swindell wrote: 40,116 98,186 132,118 How would one determine the angle created from three points, such as those above? Thanks, Mark___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: finding revlet limits in a controlled environment
I'm answering my own question - see below. Maybe it will answer questions that come up in your world. Phil Phil Davis wrote: Hello - My client wants to sell revlet-based software to his customers in a large US govt agency. If they are able to download install the revweb plugin, we don't know what limitations to a revlet's capabilities might be enforced by IT in their computing environment. To answer this question, we've built a web site his customers can use in their world that steps them through a series of revlets that each try different kinds of activity. The activities include: * load the plugin and do nothing * create, read, rename, delete a file on the local HD * get a web URL (google.com) * run a shell command (dir or ls) * create, delete a stack in memory; get a stackfile from a web server * print to their printer Those are all the tests so far. The test web site emails the revlet test results back to me. Now my question: Are we testing the right things? If not, what else should we test for? Here's a response from an off-list, non-Rev-user, IT network security friend of mine: As for what apps can/can't do in any, or large enterprise sized environments, is going to depend on several things... you can be assured of one thing: federal systems, and even state organizations, are getting locked down tighter and tighter all the time. Local installation is probably going to have to go thru if the app is a local install that will probably be the most difficult to get running 'vanilla' in anyone's environment with the level of security and access controls put on local systems and lock down of the registry. Here's what you can probably count on: 1) full read/write from and to the users' My Document and temp space. 2) outbound connections on port 80 and 443 (SSL v3 or TLS) 3) no inbound connections allowed 4) be prepared to illustrate the application/web tool security from a security scanner report (Nessus is a great open source tool that is kept up to date for vulnerabilities and provides risk mitigation instructions). 5) If the app/tool wants any elevated privileges and it will be run by the general user, probably is not going to be approved. 6) Every organization has (or not) its own security posture and policies. Those organizations with CISSP (Certified Information Systems Security Professional) don't always mean they are technical and may have to pass the review/approval down to frontline administrators with specific security skills. I've seen managers without any technical, let alone systems security expertise, get the CISSP cert and throw it around like they're the best thing since sliced bread(all you have to do is mentions something about ports, proxy or routing and they will glass over like deer in the headlights) 7) Don't expect any organization to give you their security policy. Their first and best answer will usually be 'no'. This is where your application design and specific requirements listed out will be helpful - they should be able to identify those items that work within their security and those that do not. One thing that should be considered are those organizations that are, have or will be utilizing virtualization such as terminal services, VMware or Citrix. These environments will be controlling the users' systems from services and resources on core servers or clusters. In these cases, even more restrictions may exist than normally exists on standard desktop environments. Virtual environments are at increased risk for implementation of apps/tools on a system that could crash the host and impact many users or resources. Speaking of desktops...the difference between desktop OS can vary. XP, Vista and now Windows 7 have different levels of access control and permissions. The enterprise is going to control these systems through their SMS or SUS services and global policies may restrict some of the things the application wants to do. Also be aware that more restrictive environments, such as the federal organizations, may be utilizing IDS/IPS (intrusion detection/prevention) clients that report to centralized management systems. Automated deployment of a tool in these high security environments could trigger risk alarms and create some confusion. I think the best thing is to be very specific about what types of files are written or read, the level of access each needs, the port calls/requests (ephemeral ports included), etc. The basics of the software design including those elements listed previously would be beneficial for those organizations that will require a security review and/or change control management decisions. The Nessus scanner is the one I used in the federal government and was the basis for directing an enterprise security management platform around which we developed an open source based tool for managing risk identification, mitigation and audit. It runs great
Re: finding revlet limits in a controlled environment
Andre Garzia wrote: Phil, many of those commands might not work if the user do now click the I allow dialog thinghy which might give false results for you. I don't know how introspective rev can be, can revlets return if the user is allowing acces to that kind of stuff or not? I don't know the answer to that either. We're trying to tell the user as clearly as possible how to run the tests. We've provided specific user instructions on each page where you begin a test. Each one has an image of the security dialog with the Allow Once button circled and text saying Choose Allow Once in the security dialog. We'll see how well that works. ;-) Thanks Andre - Phil On Sun, Dec 6, 2009 at 10:59 PM, Phil Davis rev...@pdslabs.net wrote: Hello - My client wants to sell revlet-based software to his customers in a large US govt agency. If they are able to download install the revweb plugin, we don't know what limitations to a revlet's capabilities might be enforced by IT in their computing environment. To answer this question, we've built a web site his customers can use in their world that steps them through a series of revlets that each try different kinds of activity. The activities include: * load the plugin and do nothing * create, read, rename, delete a file on the local HD * get a web URL (google.com) * run a shell command (dir or ls) * create, delete a stack in memory; get a stackfile from a web server * print to their printer Those are all the tests so far. The test web site emails the revlet test results back to me. Now my question: Are we testing the right things? If not, what else should we test for? Thanks for any feedback. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: finding revlet limits in a controlled environment
Richard Gaskin wrote: Andre wrote: Phil Davis wrote: My client wants to sell revlet-based software to his customers in a large US govt agency. If they are able to download install the revweb plugin, we don't know what limitations to a revlet's capabilities might be enforced by IT in their computing environment. To answer this question, we've built a web site his customers can use in their world that steps them through a series of revlets that each try different kinds of activity. The activities include: * load the plugin and do nothing * create, read, rename, delete a file on the local HD * get a web URL (google.com) * run a shell command (dir or ls) * create, delete a stack in memory; get a stackfile from a web server * print to their printer Those are all the tests so far. The test web site emails the revlet test results back to me. Now my question: Are we testing the right things? If not, what else should we test for? many of those commands might not work if the user do now click the I allow dialog thinghy which might give false results for you. I don't know how introspective rev can be, can revlets return if the user is allowing acces to that kind of stuff or not? Sounds like a good argument for a standalone in this case. Phil, what objections does this agency have to a standalone? Their IT dept doesn't allow 'unapproved' installs of executables (which may exclude browser plugins, but we'll see)! And the approval process is, well, difficult. I think you have to know someone. As I [very limited] understanding of it, they use mostly COTS software (at least in the area where my client has customers). Actually I may have heard the COTS part from someone on this list a few months ago. If it were net-savvy and auto-updated itself you could provide the benefits of the browser plugin without the limitations or guesswork. True. I suspect ultimately we'll have to go with an irev-enabled site to deliver the goods, which won't be a bad thing at all - we're just trying to avoid the refactoring of existing desktop app functionality at that extreme. Thanks Richard. -- Richard Gaskin Fourth World Rev training and consulting: http://www.fourthworld.com Webzine for Rev developers: http://www.revjournal.com revJournal blog: http://revjournal.com/blog.irv ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
finding revlet limits in a controlled environment
Hello - My client wants to sell revlet-based software to his customers in a large US govt agency. If they are able to download install the revweb plugin, we don't know what limitations to a revlet's capabilities might be enforced by IT in their computing environment. To answer this question, we've built a web site his customers can use in their world that steps them through a series of revlets that each try different kinds of activity. The activities include: * load the plugin and do nothing * create, read, rename, delete a file on the local HD * get a web URL (google.com) * run a shell command (dir or ls) * create, delete a stack in memory; get a stackfile from a web server * print to their printer Those are all the tests so far. The test web site emails the revlet test results back to me. Now my question: Are we testing the right things? If not, what else should we test for? Thanks for any feedback. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: [Mandelbrot] Code Samples/Comparisons
Bill Marriott wrote: Productivity isn't about processor cycles, and it's not always about lines of code. It's about how much one can accomplish with the knowledge they have. I WILL be quoting you, Bill! That's a good one. -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
RevOnline update: Engine Search plugin
Hi folks, Just a quick note to say I updated the Engine Search Rev IDE plugin on RevOnline. This revision uses the address to locate the currently running Rev engine. Previously the plugin located the engine by setting the defaultFolder to empty, which set it to the engine's folder. This defaultFolder feature was actually a bug and was fixed In Rev 4.0. Hence the update. Happy engine snooping - -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: sending hexadecimal control characters, how to?
Hey Andre - What if the software is published in a different country? Then it would seem like the Brazilian control freak... ummm, government wouldn't be able to control it, at least not in the same way. Food for thought. Phil Davis Peter Alcibiades wrote: Andre Garzia-3 wrote: here, due to law, if a software is to interface with a receipt printer, then you need to approve your software with the goverment..Is this so in other countries? Andre Not in the UK. You will have to comply as a business with the various sale of goods regulations, and of course with the tax regulations, but how you do it is up to you. You probably do have to give receipts if asked, but handwritten ones will be acceptable. Not that I'm going into the POS business! This is a one-off. But if you do, you don't have to get your stuff approved by anyone, as far as I know. Peter -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Speeding a handler?
Hello Ton, This should be MUCH faster because the text is moved to a variable for processing. It assumes all text in the field is either red or black. on mouseUp put 1 into someFld -- I used fld 1 in my test -- get colored text from field put the htmlText of fld someFld into tText -- remove quote char from html (but leave quot; entity) replace quote with empty in tText -- remove all red color from text replace font color=#FF with empty in tText replace /font with empty in tText -- set text line color to red if line contains a quote repeat for each line tLine in tText if quot; is in tLine -- this line contains a quote then -- make the text red put font color=#FF after char 3 of tLine -- after p put /font before char -4 of tLine -- before /p end if put tLine cr after tNewText end repeat delete last char of tNewText -- update the field with recolored text lock screen put the vScroll of fld someFld into x set the htmlText of fld someFld to tNewText set the vScroll of fld someFld to x unlock screen end mouseUp HTH - Phil Davis Ton Cardona wrote: I have a text field with 5.729 lines. 826 of them, those containing quotes, must appear coloured in red so the instruction would be: put 0 into x repeat for each line aLine of fld someFld add 1 to x if quote is in aLine then set the forecolor of line x of fld someFld to red replace quote with empty in line x of fld someFld end if end repeat The problem is it takes 55 seconds. I have reduced this time to 33 seconds by recording previously the numbers of the lines to be coloured and storing them in a customProp, yet it still takes 33 seconds. Does anyone know a faster way of performing this task? Thanks in advance, Ton -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: speeding a handler?
Hey, I'm glad it helped! To get another slight speed increase, you can move your new line of code outside the repeat loop (below the loop) - but instead of: replace quot; with empty in tLine It would say: replace quot; with empty in tNewText One time for the whole list instead of once per line. :-) Phil Ton Cardona wrote: Thanks a lot, Phil. Your handler is as fast as lightning. I've had to add a line of code to replace quotes since they still showed in the fld: repeat for each line tLine in tText if quot; is in tLine -- this line contains a quote then -- make the text red put font color=#FF after char 3 of tLine -- after p put /font before char -4 of tLine -- before /p end if replace quot; with empty in tLine --line added by me put tLine cr after tNewText end repeat I am really very grateful. Best regards, Ton ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: knowing if a printer is connected
Hi Peter, If you filter out all lines from ioreg output except ones that contain IOUSBCompositeDevice, do you see the printer name in any line? If so, maybe available printer names could be matched to the device names in IOUSBDevice and IOUSBCompositeDevice records. Phil Peter Brigham MD wrote: This worked for me on my home printer, and I had high hopes for it, but if fails this morning here at work. The problem seems to be that with some printers the listing from the ioreg call has little relation to the name of the printer. For instance, my Brother laserjet MFC 8220 (combo printer fax copier) has an ioreg listing of: +-o iousbcompositedev...@fd10 class IOUSBDevice, registered, matched, active, busy 0, retain 12 and there is no way of telling that this is a Brother 8220 or relating it to the availablePrinters, not on the face of it, anyway. I'm working on a solution that will involve storing the ioreg name of a given printer as a customprop ioregListing[printerName] More to come. I'm determined to make this work as invisibly as possible. It has long been a irritation for me that the system doesn't automatically just send print jobs to the available printer. There's no reason on earth why you should have to change printers manually (after the first time you use one, of course). The system knows what's plugged in, for goodness sake. [g...] -- Peter Peter M. Brigham pmb...@gmail.com http://home.comcast.net/~pmbrig On Nov 21, 2009, at 11:36 PM, Phil Davis wrote: Everyone is doing it, so... here is what I came up with. Watch line wraps please. Hopefully the comments explain what the code is doing. on mouseUp answer UsbPrinterList() end mouseUp function UsbPrinterList -- set item delimiter set the itemDelimiter to tab -- make a list of all active USB I/O devices put shell(ioreg) into tActiveDeviceList filter tActiveDeviceList with *IOUSBDevice* -- remove all but USB devices from list replace @ with tab in tActiveDeviceList -- isolate device name replace +-o with tab in tActiveDeviceList -- device name is item 2 of each line -- get all known printer names, whether active or not put the availablePrinters into tPrinterNames -- identify active USB printers in the USB device list put empty into tUsbPrinters repeat for each line tDeviceLine in tActiveDeviceList put word 1 to -1 of item 2 of tDeviceLine into tDeviceName -- could be partial device name get tPrinterNames filter it with (* tDeviceName *) if it = empty then next repeat -- device is not a printer -- USB device is a printer, so get full name repeat for each line tFoundPrinter in it put tFoundPrinter cr after tUsbPrinters end repeat end repeat delete last char of tUsbPrinters -- trailing CR return tUsbPrinters end UsbPrinterList Thanks - Phil Davis JosepM wrote: Hi, In English work, but in Spanish and others languages don't. The result of the shell command is: destino por omision del sistema: HP_Photosmart_C4200_series So we must check for the : and get the printer name. set itemdel to : put item 2 of shell(lpstat -d) into tDefaultPrinter function getDefaultPrinter put word 4 of shell(lpstat -d) into tDefaultPrinter -- shell returns: system default destination: HP_DESKJET_845C replace _ with space in tDefaultPrinter return tDefaultPrinter end getDefaultPrinter The getActivePrinter get all the USB devices. In my case, my LaCie disk, the iPhone, the DataTraveler and the HP printer.. How to filter between them? Salut, Josep -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: knowing if a printer is connected
Everyone is doing it, so... here is what I came up with. Watch line wraps please. Hopefully the comments explain what the code is doing. on mouseUp answer UsbPrinterList() end mouseUp function UsbPrinterList -- set item delimiter set the itemDelimiter to tab -- make a list of all active USB I/O devices put shell(ioreg) into tActiveDeviceList filter tActiveDeviceList with *IOUSBDevice* -- remove all but USB devices from list replace @ with tab in tActiveDeviceList -- isolate device name replace +-o with tab in tActiveDeviceList -- device name is item 2 of each line -- get all known printer names, whether active or not put the availablePrinters into tPrinterNames -- identify active USB printers in the USB device list put empty into tUsbPrinters repeat for each line tDeviceLine in tActiveDeviceList put word 1 to -1 of item 2 of tDeviceLine into tDeviceName -- could be partial device name get tPrinterNames filter it with (* tDeviceName *) if it = empty then next repeat -- device is not a printer -- USB device is a printer, so get full name repeat for each line tFoundPrinter in it put tFoundPrinter cr after tUsbPrinters end repeat end repeat delete last char of tUsbPrinters -- trailing CR return tUsbPrinters end UsbPrinterList Thanks - Phil Davis JosepM wrote: Hi, In English work, but in Spanish and others languages don't. The result of the shell command is: destino por omision del sistema: HP_Photosmart_C4200_series So we must check for the : and get the printer name. set itemdel to : put item 2 of shell(lpstat -d) into tDefaultPrinter function getDefaultPrinter put word 4 of shell(lpstat -d) into tDefaultPrinter -- shell returns: system default destination: HP_DESKJET_845C replace _ with space in tDefaultPrinter return tDefaultPrinter end getDefaultPrinter The getActivePrinter get all the USB devices. In my case, my LaCie disk, the iPhone, the DataTraveler and the HP printer.. How to filter between them? Salut, Josep -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: knowing if a printer is connected
Hi Peter, Here is another approach for OS X that might give you info that's easier to use. Or not. put shell(system_profiler SPPrintersDataType) into tDescriptions In my world it returns this: --- start of data --- Printers: Canon iP1700: Status: Idle Print Server: Local Driver Version: 5.8.3 Default: No URI: usb://Canon/iP1700?serial=705357 PPD: Canon iP1700 PPD File Version: 1.0 PostScript Version: (3011.104) 0 HP Color LaserJet 2600n: Status: Idle Print Server: Local Driver Version: 1.3.0501 Default: Yes URI: mdns://HP%20Color%20LaserJet%202600n._pdl-datastream._tcp.local./?bidi PPD: HP Color LaserJet 2600n PPD File Version: 1.0 PostScript Version: (3011.104) 0 Officejet Pro 8500 A909g [7134F4]: Status: Idle Print Server: Local Driver Version: 1.2 Default: No URI: mdns://Officejet%20Pro%208500%20A909g%20%5B7134F4%5D._pdl-datastream._tcp.local./?bidi PPD: HP Officejet Pro 8500 A909g Series PPD File Version: 1.2 PostScript Version: (3011.104) 0 --- end of data --- I see the URI line in each description tells if it is USB or not. BUT it doesn't tell you the status of the printers; I got the same descriptions when my USB printer was turned on/turned off/unplugged. If I learn more I'll post it. Phil Davis Peter Brigham MD wrote: It returns idle in all cases? Are you saying that it doesn't distinguish if the printer is on/connected vs off/disconnected? How would I get the contents of the various printer properties from this script into rev variables to test this out? Do I use an 'on appleEvent' handler -- if so, how? Sorry for the naive questions, but I haven't used applescript much. -- Peter Peter M. Brigham pmb...@gmail.com http://home.comcast.net/~pmbrig On Nov 19, 2009, at 3:33 PM, BNig wrote: Peter, I was a little too fast with my reply, I am afraid this gives me all the information of the current printer unfortunately it does return idle even if the current printer is off. tell application Printer Setup Utility set Current_Printer to name of current printer -- set a variable for the name of your current/default printer set tKind to kind of current printer set tproperties to properties of current printer set tJob to job of current printer end tell Since you are looking for an active/connected printer this is probably not working. regards Bernd BNig wrote: Peter, tell application Printer Setup Utility set Current_Printer to name of current printer -- set a variable for the name of your current/default printer end tell this applescript tells me the currently selected printer on MacOSX 10.5.8 regards Bernd Peter Brigham MD wrote: I have a stack system that is being used on laptops (at this point Mac OSX only). One of my beta testers uses it in three different locations. Among many other things, the stack prints out notes and various other text files from within Rev (running in IDE on RevMedia 4.0 -- eventually I'll get to porting it as a standalone). As it stands now, the user needs to select the currently available printer using the system preferences. I need a way to discover if the printer designated as active in the system preferences is actually the one that is plugged into the USB port. I have a way for the user to change the printer from within the stack, but I'd like to avoid the situation where he tries to print something and gets the bobbing printer driver icon in the dock telling him that that printer is unavailable (because he's at a different site and forgot to change his printer designation). The ideal solution would be to be able to detect the currently connected printer and send any print job automatically to that printer, but I'd settle for just being able to post an alert when trying to print to notify him that he is about to use an unavailable printer. How do I detect what printer is connected? Or at least, detect if a designated printer is connected or not? -- Peter Peter M. Brigham pmb...@gmail.com http://home.comcast.net/~pmbrig -- View this message in context: http://n4.nabble.com/knowing-if-a-printer-is-connected-tp624188p624225.html Sent from the Revolution - User mailing list archive at Nabble.com. ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing
Re: knowing if a printer is connected
BNig wrote: The last item of the properties of a printer is the status, it unfortunately returns idle. At least you get the names of the printers. The current printer is the default printer. regards Bernd You can also get the names of the printers with: put the availablePrinters into tList :-) -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: knowing if a printer is connected
Here's another OS X shell command that will list only the USB printers turned on. Unfortunately, it doesn't list them by their full names. Here's the code (in a button): on mouseUp put shell(ioreg) into tList filter tList with *IOUSBDevice* put the number of lines in tList cr tList into fld list2 end mouseUp Here's the output on my machine: 8 | | | +-o IR recei...@450 class IOUSBDevice, registered, matched, active, busy 0, retain 8 | | | +-o Apple Cinema disp...@2432 class IOUSBDevice, registered, matched, active, busy 0, retain 8 | | | +-o C-Media USB Audio @2433 class IOUSBDevice, registered, matched, active, busy 0, retain 9 | | | +-o Apple Cinema disp...@2472 class IOUSBDevice, registered, matched, active, busy 0, retain 8 | | | +-o ip1...@2431 class IOUSBDevice, registered, matched, active, busy 0, retain 8 | | | +-o Microsoft 3-Button Mouse with IntelliEye(TM)@640 class IOUSBDevice, registered, matched, active, busy 0, retain 8 | | | +-o Bluetooth USB Host control...@611 class IOUSBDevice, registered, matched, active, busy 0, retain 11 | | | +-o Apple keybo...@2622 class IOUSBDevice, registered, matched, active, busy 0, retain 9 Line 5 above is the USB printer. When I turn the printer off and run the code again, I get 7 lines and the printer line is missing. This printer shows up in the availablePrinters list as Canon iP1700. So there's a partial association between the 2 sets of data. FWIW - Phil Phil Davis wrote: BNig wrote: The last item of the properties of a printer is the status, it unfortunately returns idle. At least you get the names of the printers. The current printer is the default printer. regards Bernd You can also get the names of the printers with: put the availablePrinters into tList :-) -- Phil Davis PDS Labs Professional Software Development http://pdslabs.net ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution