Discussion:
Splitter
Steve Roy
2004-09-08 20:57:25 UTC
Permalink
Hi!

I just realized there is no split control built into REALbasic. Is
there a split control plugin somewhere out there? Free would be nice
too. :)

Steve
--
Steve Roy <sroy-***@public.gmane.org>
Personal homepage: <http://homepage.mac.com/sroy>
Projects homepage: <http://www.roydesign.net>

_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://www.realsoftware.com/listarchives/lists.html>
Brad Rhine
2004-09-08 20:59:59 UTC
Permalink
Post by Steve Roy
I just realized there is no split control built into REALbasic. Is
there a split control plugin somewhere out there? Free would be nice
too. :)
<http://harryhooie.com/>

--
brad-96Ul9/***@public.gmane.org
http://truetech.org
<><

_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://www.realsoftware.com/listarchives/lists.html>
Dave
2004-09-08 21:11:44 UTC
Permalink
Yes, The SmartSplitter is an excellent free one. However, I've had
some interesting side effects of using the Smart Splitter: Controls
don't completely redraw when the splitter is moved, so I'll end up
with only half a popup menu. =P However, for it's price, it's an
excellent buy! =D

If you're willing to shell out small bucks, I'd recommend the Oxalyn
Window Divider (www.oxalyn.net), and for big bucks, the Einhugur
Window Splitter (but you also get all of the other amazingly awesome
Einhugur plugins).

HTH,

Dave
Post by Brad Rhine
Post by Steve Roy
I just realized there is no split control built into REALbasic. Is
there a split control plugin somewhere out there? Free would be nice
too. :)
<http://harryhooie.com/>
--
http://truetech.org
<><
_______________________________________________
<http://www.realsoftware.com/support/listmanager/>
<http://www.realsoftware.com/listarchives/lists.html>
--
"You take the blue pill. The dream ends, you wake up in bed and
believe whatever you want to believe. You take the red pill. You stay
in Wonderland and I show you how deep the rabbit-hole goes. You take
the purple pill. The pain stops, you are relieved from heartburn, and
the lining of your esophagus returns."

There's no place like ~/

Want Gmail? I have invitations and I'm not afraid to use them...
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://www.realsoftware.com/listarchives/lists.html>
Steve Roy
2004-09-09 01:35:43 UTC
Permalink
Post by Brad Rhine
<http://harryhooie.com/>
http://software.oxalyn.com/Divider/
This is great stuff! Thank you!

Steve
--
Steve Roy <sroy-***@public.gmane.org>
Personal homepage: <http://homepage.mac.com/sroy>
Projects homepage: <http://www.roydesign.net>

_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://www.realsoftware.com/listarchives/lists.html>
Eric M.Williams
2004-09-08 21:17:15 UTC
Permalink
It's not free, but my Oxalyn Window Divider is close at just $10. I've
been using it in my own projects, and I think it's pretty darn good. :)
It has all the functionality I've seen in splitter controls, including
custom thumbs, split threshold collapsing (which I have not seen in
other splitters) and custom interfaces to allow your controls to set
limits on their own sizes. Plus, it's got a pretty neat-o debug mode to
help you figure out what limits work.

Download it here:

http://software.oxalyn.com/Divider/

Eric M. Williams
Oxalyn Software
http://software.oxalyn.com/

AE Monitor
http://software.oxalyn.com/AEMonitor/
Post by Steve Roy
Hi!
I just realized there is no split control built into REALbasic. Is
there a split control plugin somewhere out there? Free would be nice
too. :)
Steve
--
Personal homepage: <http://homepage.mac.com/sroy>
Projects homepage: <http://www.roydesign.net>
_______________________________________________
<http://www.realsoftware.com/support/listmanager/>
<http://www.realsoftware.com/listarchives/lists.html>
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://www.realsoftware.com/listarchives/lists.html>
Theodore H.Smith
2004-09-08 21:55:56 UTC
Permalink
Post by Dave
Controls
don't completely redraw when the splitter is moved, so I'll end up
with only half a popup menu. =P
Sounds like it's living up to it's name.

--
Theodore H. Smith - Software Developer.
http://www.elfdata.com

_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://www.realsoftware.com/listarchives/lists.html>
Dave
2004-09-08 22:03:03 UTC
Permalink
Hahahahaha! So true.... =D

Dave
Post by Theodore H.Smith
Post by Dave
Controls
don't completely redraw when the splitter is moved, so I'll end up
with only half a popup menu. =P
Sounds like it's living up to it's name.
--
"You take the blue pill. The dream ends, you wake up in bed and
believe whatever you want to believe. You take the red pill. You stay
in Wonderland and I show you how deep the rabbit-hole goes. You take
the purple pill. The pain stops, you are relieved from heartburn, and
the lining of your esophagus returns."

There's no place like ~/

Want Gmail? I have invitations and I'm not afraid to use them...
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://www.realsoftware.com/listarchives/lists.html>
Theodore H.Smith
2004-09-08 22:23:54 UTC
Permalink
What is a cross platform fast method of interprocess communication?

I've done some tests with the socket, and it appears that the over head
really is in creating a new client socket, and then asking to be sent
some data.

If I send 1MB of data total, to 10 users, it takes 10x as long as
sending 1MB of data total to 1 user. I'm getting 0.1 seconds of
overhead... Thats not good for a high volume server. Lets say I have a
website getting 1000 hits a second. Well you can see it won't add up, I
can only manage to create 10 connections a second if I have 0.1 seconds
of overhead.

Thats a really nasty overhead. For all I know, its inherant in Mac
sockets in general, but I don't know.

Is there some fast cross platform method of interprocess communication?
Otherwise... I guess it will be a mediocre solution.

It would be nice to create a solution for putting RB code into web
pages, using SSI. Like this.

<HTML>
<HEAD>
<BODY>
<!--#include virtual="/cgi-bin/grabarticle.rbscript?article=fred"-->
</BODY>
</HEAD>

The rbscript shell would be a tiny C app that passes the request to an
RB Daemon. That way, we could do our web development in RB. But NOT if
we have a really sucky overhead per script. So does anyone want to help
out with inter process communication ideas?

I envision having caching in my server, so that each RBScript only gets
compiled if its not in side the cache. The cache size would be server
configurable. I envision the server using my ElfData plugin, as my
plugin is really the solution you want when you want to do fast string
processing. People won't have to use my plugin, it will just be an
available feature.

Actually, the more I think about it, the less likely it seems to be. I
think that unless RS develop some kind of way explicitly for web
servers, it won't be practical. Look at DoEvents, it puts the app to
sleep, OR it hogs the CPU. There is no generalised "push" mechanism,
its all pull (polling).

For a webserver, you want a mean and lean push mechanism, all done
through STDIN/STDOUT not using sockets or other silly things in the
way.

Basically, I'd need RB to have these two things:

1) A very fast cross platform IPC technique that worked for C apps. IE
allocating some RAM that can be read and written to by any process.
This is quite easy in fact for someone with a knowledge of Mac Windows
and Linux. (I only have very good Mac knowledge).
2) A push mechanism for it's code. That is, I can get my C app to ask
something from my RB app and get the answer immediately, not having to
poll for answers or use sockets. Some kind of event messaging.

On Unix basically both of these things I need, are STDIN and STDOUT.
But unfortunately they don't work for Daemons!

I suppose, if there was some cross platform way to get Daemons to
respond to STDIN and STDOUT, that would be perfect.

_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://www.realsoftware.com/listarchives/lists.html>
Aaron Ballman
2004-09-08 22:36:12 UTC
Permalink
Post by Theodore H.Smith
What is a cross platform fast method of interprocess communication?
IPCSocket
Post by Theodore H.Smith
I've done some tests with the socket, and it appears that the over
head really is in creating a new client socket, and then asking to be
sent some data.
No, the overhead is in the min packet size because of the headers.
Sending a byte of data still carries about 48 bytes of header
information. Just creating a socket isn't too terribly slow (there's
obviously a hit there, but over the lifetime of the socket, the main
hit is the packet header size).

The other bottleneck is it has to hit the loopback before being sent
around the horn.
Post by Theodore H.Smith
If I send 1MB of data total, to 10 users, it takes 10x as long as
sending 1MB of data total to 1 user. I'm getting 0.1 seconds of
overhead... Thats not good for a high volume server. Lets say I have a
website getting 1000 hits a second. Well you can see it won't add up,
I can only manage to create 10 connections a second if I have 0.1
seconds of overhead.
You are confusing your networking terms. Connecting != Data Transfer
(well, it does at a very low level, but you needn't concern yourself
with that). When one socket is sending data out, you can still be
accepting connections. And when connections are coming in and being
accepted, more connections can still backlog. So if you get 1000 hits
a second, they can all be accepted assuming your SeverSocket is set up
to handle that many connections. As for sending the data out, that
depends on your bandwidth. If you have to run a lot of local scripts,
then that depends more on your processor speed and RAM. For anyone
who's serious about performance, they'll have enough of each to handle
it.
Post by Theodore H.Smith
Is there some fast cross platform method of interprocess
communication? Otherwise... I guess it will be a mediocre solution.
IPCSockets are typically going to be faster than a TCPSocket, so I'd
start there. If that's still too slow for you, perhaps you can use a
memory mapped file to do all communications in memory (no file access
whatsoever then). It's a pain to get right tho -- so watch out if you
go that route.
Post by Theodore H.Smith
On Unix basically both of these things I need, are STDIN and STDOUT.
But unfortunately they don't work for Daemons!
I suppose, if there was some cross platform way to get Daemons to
respond to STDIN and STDOUT, that would be perfect.
You seem to be missing the entire point to a daemonized application.
They _do not have_ an stdin or stdout handle (or stderr). When an
application is daemonized, it is forked multiple times and has all open
file descriptors for it closed (along with some other voodoo). This
includes stdin and stdout. The general thought is that a daemon does
not communicate with the user ever. That's why the standard streams
are closed off. This isn't a limitation of a daemon -- it's one of the
definitions of it. You can re-open stdin and stdout as pipes to
something else (like xinetd does), but you cannot attach it to a
terminal because the daemon isn't owned by the terminal (which is why
it stays resident in memory even if there are no terminals open, or the
launching terminal is closed).

~Aaron
--
"Where a calculator on the ENIAC is equipped with 18,000 vacuum tubes
and weighs 30 tons, computers in the future may have only 1,000 vacuum
tubes and weigh only 1 1/2 tons." -- Popular Mechanics, 1949

_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://www.realsoftware.com/listarchives/lists.html>
Andy Dent
2004-09-08 22:42:11 UTC
Permalink
Theodore H.Smith writes
Post by Theodore H.Smith
What is a cross platform fast method of interprocess communication?
sockets
Post by Theodore H.Smith
it appears that the over head really is in creating a new client
socket, and >then asking to be sent some data.
why have a multiple process/socket architecture (and I'm not
convinced that you're right about the overhead being that high)?

I missed your original question so don't know if this is the first
time you've said you want these sockets for a RB backend to a
webserver?

In answer to the question "what architecture would you suggest for an
RB app handling web server requests" I'd say:
- a mod_rbscript Apache module, written in C
- socket-based communications from the mod_rbscript module to the RB process
- ONE RB Process used to respond to socketed requests
- a simple loop blocks on the socket read, which makes your RB
process driven by a zero-overhead "push mechanism"

Caveat - the above is an idea only, I haven't written anything
precisely like that using a console app but have written other stuff
using RB sockets receiving data from a server.

_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://www.realsoftware.com/listarchives/lists.html>
Edward Craft
2004-09-09 05:23:25 UTC
Permalink
Thanks, Jerry. As it turns out I was pounding my head for hours over an even
more basic error. Your suggestion to check out the MDI, which I really
didn't even know about before, was the silver lining. Thanks again.

Ted Craft
Subject: Re: No Menu Bar Running Virtual PC
Date: Wed, 8 Sep 2004 16:25:49 -0500
It may have to do with the setting you have made (or haven't made) for
Multiple Document Interface, or simply MDI (specific to Windows builds) in
RB's Build Settings menu. Don't know what to add, absent further details, but
it should not have to do with differences between VPC and a 'real' one.
I'm using Virtual PC (6) to do a test of an early version of an application.
For some reason, the menu bar doesn't show up when the compiled app runs. (It
works fine in a Mac build.) The menu bar is pretty basic at this point, only
containing the normal Edit menu and a standard File menu with New, Open,
Save, Save As, Print and Quit.
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://www.realsoftware.com/listarchives/lists.html>
Will Leshner
2004-09-09 13:46:06 UTC
Permalink
Post by Edward Craft
Thanks, Jerry. As it turns out I was pounding my head for hours over an even
more basic error. Your suggestion to check out the MDI, which I really
didn't even know about before, was the silver lining. Thanks again.
I'm guessing, though, that the reason your window show up with no
menubar is that you hadn't set it's menubar property in the properties
window.

--
REALbasic database options: http://sqlabs.net
REALbasic news and tips: http://rbgazette.com
KidzMail & KidzLog: http://haranbanjo.com

_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://www.realsoftware.com/listarchives/lists.html>

Loading...