You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(7) |
Dec
(45) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(16) |
Feb
(23) |
Mar
(62) |
Apr
(33) |
May
(35) |
Jun
(37) |
Jul
(45) |
Aug
(15) |
Sep
(22) |
Oct
(41) |
Nov
(23) |
Dec
(17) |
2004 |
Jan
(14) |
Feb
|
Mar
(55) |
Apr
(8) |
May
(1) |
Jun
(11) |
Jul
|
Aug
|
Sep
(20) |
Oct
(11) |
Nov
(10) |
Dec
(14) |
2005 |
Jan
(4) |
Feb
(2) |
Mar
(6) |
Apr
(26) |
May
(5) |
Jun
(11) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(18) |
Dec
(40) |
2007 |
Jan
(7) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Adam R. <Ad...@Kn...> - 2003-03-21 20:15:21
|
It would be nice to make some cafepress merchandise... I find WORKRAVE to be inspiring... :) Adam -----Original Message----- From: Rohit Khare [mailto:ro...@ic...] Sent: Friday, March 21, 2003 9:39 AM To: Adam Rifkin Cc: Ben Sittler Subject: open source gone mad (sittler would be proud :-) Begin forwarded message: > Ostensibly, WORKRAVE is an applet with the simplest of jobs: > it tells you to take a period break from typing to save your > poor wrists. In real life, it's like one of those "let's > build an C++ application" documentation examples gone > completely nuts. From its humble beginnings, it's now an > excrutiatingly well-engineered taskbar applet that runs on > GNOME and KDE. Oh, and Windows. It's got a statistics > feature, so it can tell you how many miles you've moved your > mouse. Yeah, yeah, we know - but it's also got a networked > client-server facility. Built-in. So not only can you now > never escape from its persistent "take a break" fascism, but > you can gather facts on how many miles *all* your mice have > moved, from your laptop to your desktop to your VNCed Win2K > server. It's GPLed. The author has a cafepress shop where > you can buy Workrave t-shirts. There's also a leaflet you > can print out and hand to your non-cult friends. The name > appears to be a play on a $55 commercial program that does a > similiar job - but, Jesus, what else could that do for the > money? Operate a little crane to lift your hands up and down > on the keys? > http://workrave.sourceforge.net/ > - I actually blew my tendons trying to change all the settings |
From: Strata R. C. <st...@vi...> - 2003-03-20 16:38:52
|
That is a very fine toy! I hope it's just the first splash of a wave of intuitive output devices. If you want a similar bang for a slightly more complex buck, go implement a few of the L-systems flower or foliage routines in "The Algorithmic Beauty of Plants" [1,2] and set color/growth tweaks on them. Your virtual garden could tell you all kinds of things depending on what color the flowers were today or how lush the ferns were growing. Each plant could have a different pubsub event queue, and you could let the graphics clipping routines decide how to display the overall plant growth. Been on my to-do list since about 1992, and will probably still be there in 2012, alas. But there seems to be some software out there from the author and his students. [3] [1] http://www.accu.org/bookreviews/public/reviews/a/a000160.htm [2] http://citeseer.nj.nec.com/219337.html [3] http://www.cpsc.ucalgary.ca/Research/bmv/index.html cheers, Strata Adam Rifkin wrote: > > A $200 wireless ORB whose color I can manipulate with an HTTP GET?! > Oh man, I bet it has a million and one uses... > > "There's also a developer interface where any semi-savvy web > programmer can control the color of their Orb with a simple > HTTP GET call. Track how full your hard drive is, traffic on > your website, Slashdot posts, or your credit-card debt." > > Hey, *I* am a semi-savvy web programmer! Cool, it speaks to me!! > > http://www.thinkgeek.com/gadgets/electronic/5da2/ > > Information just a glance away > > The Ambient Orb is a device that slowly transitions between thousands of colors to show changes in the weather, the health of your stock portfolio, or if your boss or friend is on instant messenger. It is a simple wireless object that unobtrusively presents information. Imagine if you had to go to your computer and type in your zip code whenever you wanted to check what time it was. Your important information should be as accessible as looking at a clock, now the Ambient Orb can make a variety of information just a glance away. > > The Orb arrives set to indicate the Dow - glowing more green to indicate market movement up and red to indicate movement down, or yellow when the market is calm. If the market is up or down more than 1.5% the Orb will pulsate. It can be customized to a set of free channels, such as market indices (Dow, Nasdaq, S&P 500) or weather in select cities. Optionally, you can upgrade to access more premium channels, such as your customized portfolio, local weather, pollen count, or IM buddy watch. There's also a developer interface where any semi-savvy web programmer can control the color of their Orb with a simple http "get" call. Track how full your hard drive is, traffic on your website, Slashdot posts, or your credit-card debt. > > The Ambient Orb is simply plugged into any standard 110V power outlet and it is up and running on a nationwide wireless network - no internet connection required. The Orb does not attach to a PC. The channel for the Orb can be selected via a web interface and will update in a short period of time. Depending on which channel the Orb is monitoring, it will receive updates every few minutes, or perhaps once per hour for some channels. > > The Ambient Orb has these features: > > LED lighting that can produce thousands of color combinations > Orb can also produce color pulses > The Orb is made of glass > Pre-configured to monitor the Dow - can be reconfirgured online > Premium content available for about $1/week > Does not require a computer, phone or internet connection > Three brightness level settings > Includes power supply, receiver, 7' power cord, and glass Orb > One-year manufaturer warranty > > > ---------------------------------------------------------------------------------------------------- > Name: winmail.dat > winmail.dat Type: application/ms-tnef > Encoding: base64 -- ======================================================================== Strata Rose Chalup [KF6NBZ] strata "@" virtual.net VirtualNet Consulting http://www.virtual.net/ ** Project Management & Architecture for ISP/ASP Systems Integration ** ========================================================================= |
From: Adam R. <Ad...@Kn...> - 2003-03-18 03:27:00
|
Our next Pubsub User Group meeting will be Tuesday March 25 in Redwood City, let's call it 7pmish. I still don't have a place; does someone want to suggest somewhere? Otherwise I'll pick one randomly. :) Adam http://sourceforge.net/projects/mod-pubsub P.S. -- The v0.8 tarball is now available for download at = http://sourceforge.net/project/showfiles.php?group_id=3D66293&release_id=3D= 146530 We now have seven PubSub Client Libraries, which we nicknamed after = dwarves:=20 1. c_pubsub/libkn: "grumpy" (C)=20 single-threaded, partially non-blocking [tunnel non-blocking, other = requests block]=20 2. cxx_pubsub/LibKN: "happy" (C++/COM/ActiveX/.NET/PocketPC)=20 multi-threaded, blocking=20 3. cgi-bin/PubSub: "dopey" (Perl)=20 single-threaded, partially non-blocking [tunnel non-blocking, other = requests block]=20 4. kn_apps/kn_lib/pubsub{,_raw}.js: "bashful" (JavaScript)=20 single-threaded, non-blocking=20 5. python_pubsub/pubsublib.py: "doc" (Python)=20 single-threaded, non-blocking=20 6. python_pubsub/libkn/libkn.py: "sneezy" (Python)=20 multi-threaded, blocking=20 7. ruby_pubsub/libkn/libkn.rb: "sleepy" (Ruby)=20 multi-threaded, blocking=20 Other changes include the addition of a few new kn_apps (power and = linkmonkey), some bug fixes to python_pubsub, and added documentation. Note that post-v0.8 Mike started checking in Java PubSub Client Library = goodies... so there's still more great things to come in future days... ---- Ad...@Kn... Note to Scott Andrew regarding when does use of mod_pubsub make sense = with weblogs.=20 It generally doesn't since you'd probably go nuts. However, having a = configurable option when posting to allow you selectively track things = in real-time would be very useful. Especially when posting those = incendiary items that you just know will get responses :-) -- http://chrisheller.org/blog/archives/000041.html |
From: Adam R. <Ad...@Kn...> - 2003-03-18 03:25:22
|
"I had to be really careful to ensure I wasn't interrupting his answers. The only way you can really do this in traditional chat systems is to=20 say 'Over' or similar when you've finished saying something. (Either=20 that or limit responses to a single message). "Being the naive geek that I am, I went looking for a technological=20 solution to the problem, and I think I have one (though it needs=20 coding): Basically it's a special type of chat system devoted to the=20 creation of interviews that are to be written up later. The main=20 difference lies in a baton-style system - only one person has the=20 'chat baton' at once, and they have to give it up before anyone else=20 can talk. However, other users can request the baton (or forcibly=20 snatch it - security and good behaviour is low-priority in the=20 design, since I assume that all the users have been invited). At=20 least, that's how it works in the main chat stream - there's also a=20 parallel stream where the same users can talk *around* the chat=20 rather than in it, and this doesn't have the baton in it. Plus,=20 users can go back and alter previous messages in the log, though=20 everyone gets notified when this happens. And at the end there's a=20 button that outputs the chat log in a choice of formats.=20 "The reason I mention mod_pubsub is that it's a nice easy platform to=20 implement on which ensures no one has to download anything to use=20 it. Of course, I still have to code the bloody thing.=20 "If any skilled JavaScript coders want to have a crack at it, they should give me a yell." Quoted from... <http://www.gorjuss.com/luvly/20030305-interviewing-yozcomments.html> More on interviewing electronically=20 Posted by Giles Turnbull Yoz (<http://cheerleader.yoz.com>) was interested by my commments = (<http://www.gorjuss.com/luvly/20030229-interviewing.html>) about = electronic interviewing, and came back with this considered reply = (forwarded to luvly with his permission).=20 >The electronic-interviewing thing is something I've been wondering=20 >about for the past couple of weeks, catalysed by a combination of=20 >two events:=20 >=20 >1) Interviewing Nir Arbel, creator of Soulseek, for my blog=20 >2) Discovering mod_pubsub, which has a web-based chat client among=20 >its many demos=20 >=20 >The chat with Nir came about because I had him on my user list for=20 >Soulseek and one day I simply asked him if I could interview him. He=20 >agreed, so I hurriedly gathered a bunch of questions together into=20 >an email which I fired off to him and he then ignored, because he's=20 >an incredibly busy bloke. And this was fair enough, since I was=20 >having doubts about the whole interview-by-email thing anyway,=20 >mainly for the reasons that Cory talks about. It just doesn't sound=20 >conversational; there's no reaction from the interviewer to anything=20 >the interviewee says.=20 >=20 >A few months ago I tried doing a similar thing with a few people I=20 >know on the topic of dramatic role-playing game design, and there I=20 >took a different tack of doing it conversationally by email - firing=20 >off a question, then getting answers from the different people, each=20 >person copying the others in, so that everyone could react to=20 >everyone else's answers. However, then we had the problem you always=20 >get with these things, in that people quote each other's emails and=20 >break up the quoting so the conversation threads go fractal, and it=20 >becomes a complete nightmare to turn into a single linear piece of=20 >writing.=20 >=20 >This nearly happened with the Arbel interview, when I got it: I=20 >cornered him again a couple of weeks after firing off the questions=20 >and asked if I could just grab an hour of his online time to do the=20 >interview in chat, and we did it there and then. Here, I had to be=20 >really careful to ensure I wasn't interrupting his answers - the=20 >only way you can really do this in traditional chat systems is to=20 >say "Over" or similar when you've finished saying something. (Either=20 >that or limit responses to a single message)=20 >=20 >Being the naive geek that I am, I went looking for a technological=20 >solution to the problem, and I think I have one (though it needs=20 >coding): Basically it's a special type of chat system devoted to the=20 >creation of interviews that are to be written up later. The main=20 >difference lies in a baton-style system - only one person has the=20 >"chat baton" at once, and they have to give it up before anyone else=20 >can talk. However, other users can request the baton (or forcibly=20 >snatch it - security and good behaviour is low-priority in the=20 >design, since I assume that all the users have been invited). At=20 >least, that's how it works in the main chat stream - there's also a=20 >parallel stream where the same users can talk *around* the chat=20 >rather than in it, and this doesn't have the baton in it. Plus,=20 >users can go back and alter previous messages in the log, though=20 >everyone gets notified when this happens. And at the end there's a=20 >button that outputs the chat log in a choice of formats.=20 >=20 >The reason I mention mod_pubsub is that it's a nice easy platform to=20 >implement on which ensures no one has to download anything to use=20 >it. Of course, I still have to code the bloody thing.=20 >=20 >-- Yoz=20 He adds, later that "if any skilled Javascript coders want to have a = crack at it, they should give me a yell".=20 Posted to the luvly mailing list = <http://lists.dessicated.org/mailman/listinfo/luvly> on Thu, 6 Mar 2003 = 00:03:13 +0000 , under Creative Commons licence = <http://creativecommons.org/licenses/by-nd-nc/1.0>. Contact: giles at gorjuss dot com.=20 |
From: Adam R. <Ad...@Kn...> - 2003-03-18 03:23:24
|
Mike wrote: > I've commited a non-working snapshot of a java client. Thanks, looks like a great start! I have added a link to this from the mod_pubsub/index.html file. > It requires HTTPClient from Ronald Tschalar (innovation.ch). > http://www.innovation.ch/java/HTTPClient/ > The .jar is included in the lib directory. A very nice package. (He's > looking for C/Java work in Silicon Valley) Looks like Ronald has done some fine work. Ihave updated the mod_pubsub/README file to acknowledge him. > There will be quite a few changes to this over time (interfaces, etc), > but I wanted to save my work at this point. > It seems able to publish events. I'm working on the listening. Listening is always the more challenging part. Funny that. > I am building a router class that creates a connection and > thread for each subscribed listener. Don't panic, this will > later be connected to a listener/router that manages multiple > listeners and dispatches accordingly - so one thread serves > multiple subscriptions. Ok, for now I'm listing it as "multi-threaded, blocking" but that will change in the future. > Issues I need help with > - what is the url to get a persistent response, does it need > /kn_journal on the end or something? This is from mod_pubsub/python_pubsub/pubsublib.py in the __init__ constructor of the Client class... self._C_tunnelurl =3D "%s/who/anonymous/s/%s/kn_journal" % ( self.getServerURL(), str(self._C_random.random()).replace(".","_")) It does need to end in /kn_journal -- the rest is pretty much free-form; our conventional default is %serverURL%/who/%username%/s/%random%/kn_journal For more "how to build a PubSub Client Library", look at the comments in mod_pubsub/python_pubsub/pubsublib.py ... this is where you can look for things like kn_response_format=3Dsimple and kn_uri and kn_status_from and kn_route_location (oh my!). > - what is the format for the persistent response (I think I saw > some docs somewheres...) for 'simple' format This is from mod_pubsub/python_pubsub/pubsublib.py in the SimpleParser class comments... Parser of messages from a PubSub server in simple response = format: 1. A framing format: (repeat until connection closes) Arbitrary amounts of ignored whitespace separating frames.* Each frame is prefixed by a decimal bytecount. Arbitrary amounts of ignored whitespace. A newline. The counted number of bytes, which form the frame. * whitespace =3D vertical_whitespace + horizontal_whitespace vertical_whitespace =3D { \\f, \\v, \\n, \\r } horizonal_whitespace =3D { \\0, \\t, ' ' } 2. An event format used inside the frames: Zero or more named headers. Each header consists of a name, colon followed by horizontal_whitespace, a value, and then a newline. Header name and value, for the named headers, may contain quoted bytes written quoted-printable style as an equal sign followed by 2 hexadecimal digits. Specifically, any colons in the header name, any leading horizonal_whitespace in the value, and any vertical_whitespace or equal signs in the header or value, must be quoted this way. After the named headers, there's a newline. The rest of the bytes in the frame are the message payload, conventionally treated as if it were a header named kn_payload. This payload value is not quoted in any way. Once all quoting has been removed, header names and values and payload value are assumed to be in UTF-8. > (and why wasn't that done with a > 'do_accept=3Dapplication/kn_event_stream' approach?) So you can view it in a Web browser. ;) More questions? Adam |
From: Mark B. <di...@ac...> - 2003-03-16 03:59:30
|
On Sat, Mar 15, 2003 at 12:49:43PM -0800, Adam Rifkin wrote: > A $200 wireless ORB whose color I can manipulate with an HTTP GET?! Sure, why not?! Only if you care what colour your ORB is, would a GET interface cause you problems. Scatter some links to colours around your site, then sit back and watch Googlebot do its thing. 8-) MB -- Mark Baker. Ottawa, Ontario, CANADA. http://www.markbaker.ca Web architecture consulting, technical reports, evaluation & analysis |
From: Asynch M. <asy...@ho...> - 2003-03-16 01:13:13
|
I've commited a non-working snapshot of a java client. It requires HTTPClient from Ronald Tschalar (innovation.ch). http://www.innovation.ch/java/HTTPClient/ The .jar is included in the lib directory. A very nice package. (He's looking for C/Java work in Silicon Valley) There will be quite a few changes to this over time (interfaces, etc), but I wanted to save my work at this point. It seems able to publish events. I'm working on the listening. I am building a router class that creates a connection and thread for each subscribed listener. Don't panic, this will later be connected to a listener/router that manages multiple listeners and dispatches accordingly - so one thread serves multiple subscriptions. Issues I need help with - what is the url to get a persistent response, does it need /kn_journal on the end or something? - what is the format for the persistent response (I think I saw some docs somewheres...) for 'simple' format (and why wasn't that done with a 'do_accept=application/kn_event_stream' approach?) |
From: Asynch M. <asy...@ho...> - 2003-03-15 21:49:06
|
> ----- Original Message ----- > From: "Adam Rifkin" <Ad...@Kn...> > "... can control the color of their Orb with a simple HTTP GET call" Doesn't sound too RESTful to me.... ;) |
From: Adam R. <Ad...@Kn...> - 2003-03-15 20:54:06
|
A $200 wireless ORB whose color I can manipulate with an HTTP GET?! Oh man, I bet it has a million and one uses... "There's also a developer interface where any semi-savvy web programmer can control the color of their Orb with a simple HTTP GET call. Track how full your hard drive is, traffic on your website, Slashdot posts, or your credit-card debt." Hey, *I* am a semi-savvy web programmer! Cool, it speaks to me!! http://www.thinkgeek.com/gadgets/electronic/5da2/ Information just a glance away The Ambient Orb is a device that slowly transitions between thousands of = colors to show changes in the weather, the health of your stock = portfolio, or if your boss or friend is on instant messenger. It is a = simple wireless object that unobtrusively presents information. Imagine = if you had to go to your computer and type in your zip code whenever you = wanted to check what time it was. Your important information should be = as accessible as looking at a clock, now the Ambient Orb can make a = variety of information just a glance away.=20 The Orb arrives set to indicate the Dow - glowing more green to indicate = market movement up and red to indicate movement down, or yellow when the = market is calm. If the market is up or down more than 1.5% the Orb will = pulsate. It can be customized to a set of free channels, such as market = indices (Dow, Nasdaq, S&P 500) or weather in select cities. Optionally, = you can upgrade to access more premium channels, such as your customized = portfolio, local weather, pollen count, or IM buddy watch. There's also = a developer interface where any semi-savvy web programmer can control = the color of their Orb with a simple http "get" call. Track how full = your hard drive is, traffic on your website, Slashdot posts, or your = credit-card debt.=20 The Ambient Orb is simply plugged into any standard 110V power outlet = and it is up and running on a nationwide wireless network - no internet = connection required. The Orb does not attach to a PC. The channel for = the Orb can be selected via a web interface and will update in a short = period of time. Depending on which channel the Orb is monitoring, it = will receive updates every few minutes, or perhaps once per hour for = some channels.=20 The Ambient Orb has these features:=20 LED lighting that can produce thousands of color combinations=20 Orb can also produce color pulses=20 The Orb is made of glass=20 Pre-configured to monitor the Dow - can be reconfirgured online=20 Premium content available for about $1/week=20 Does not require a computer, phone or internet connection=20 Three brightness level settings=20 Includes power supply, receiver, 7' power cord, and glass Orb=20 One-year manufaturer warranty=20 =20 |
From: Adam R. <Ad...@Kn...> - 2003-03-15 05:41:05
|
I'm thinking about creating another tarball soon. Meanwhile, here are some recent commits. Do "cvs update -Pd" to get the new directories. 1. mod_pubsub/ruby_pubsub/libkn.rb Added Greg's Ruby PubSub Client Library. (Finally! :) This is a great way to learn how the client libraries do publish, subscribe, and unsubscribe. 2. mod_pubsub/index.html Updated the main index to tell you about our seven glorious pubsub client libraries. Hopefully PHP and Java are coming soon... = :) mod_pubsub/INSTALL Updated to reflect the fact that we now have mod_pubsub up and working with Apache and mod_perl on Mac OS X. Apparently, the revolution *will* be televised. 3. mod_pubsub/kn_apps/power/ Rohit's infamous "power grid" app -- itself an evolution of one of the earliest live browser apps written by Mike (!). Uses animated gifs to show what happens when the price of energy shoots up or down. Demonstrates web pop-up notifications and email notifications. Xander used this application to sell with in 2001. I'm proud to resurrect it for my homies in the 'hood. 4. mod_pubsub/kn_apps/linkmonkey/ Danny Quist's "shared bookmarks" web application. I'm still of the opinion that anything with "monkey" in its name is good: http://www.thinkgeek.com/cubegoodies/toys/5bb0/ Ben & I think it would be cool to modify linkmonkey so it does on client-side what Jeff Barr's "Popularity Contest" does = server-side: http://www.vertexdev.com/~jeff/popcon.shtml It could make use of techniques in applications such as kn_apps/vote1 and kn_apps/todo1 and kn_apps/todo2 ... stay tuned. 5. mod_pubsub/python_pubsub/libkn/libkn.py Added PhilH's and Andrew's original Python PubSub Client Library. It's a classic, and supports a multi-threaded, blocking model. By contrast, the other Python PubSub Client Library: mod_pubsub/python_pubsub/pubsublib.py supports a single-threaded, non-blocking model. That's right, Python developers, you have a choice! Let a thousand sensors bloom!! To get you started, enjoy Andrew's sensors framework: mod_pubsub/python_pubsub/libkn/sensors/ While patching, we also modified python_pubsub/scheduler.py and python_pubsub/wakeup.py -- the former adds a try/except clause that fixes a crash in kn_apps/sitewatch/sitewatch_sensor.py and the latter now allows dynamic allocation of listening ports. I also made a few cosmetic changes to pubsub.py and pubsublib.py ... nothing major this time around, though. I think next on the "to do" list there is getting off-host routes working, adding SSL support, and writing a cleaner.py that deletes expired events. Maybe Pythonize some of the mod_pubsub/kn_tools too. The mod_pubsub distribution keeps getting bigger and more stable. I now can get c_pubsub and cxx_pubsub compiled and running. My python_pubsub/pubsub.py has been up and running for weeks without reboot. And to make life even sweeter... O'Reilly just published a book on Google Hacks = http://www.amazon.com/exec/obidos/tg/detail/-/0596004478/qid=3D1047706152= /sr=3D2-1/002-8282366-2091249?v=3Dglance&s=3Dbooks Google Hacks + mod_pubsub =3D a little slice of heaven. Mmmmm... heaven.... :) Adam P.S. -- When's there gonna be a book on Amazon Hacks??? |
From: Adam R. <Ad...@Kn...> - 2003-03-15 02:42:25
|
Regarding cxx_pubsub, Rajeev wrote: > You need to comment the Unicode builds from > Build->Batch build since this stuff ain't supported - yet. Thanks for the tip! With the help of "Mr. T" I have managed to get the cxx_pubsub "C++ PubSub Library for COM/ActiveX/.NET/PocketPC" running after having compiled them in Visual Studio 6 and Visual Studio .NET. Works great! I am in the process of adding two PubSub Client Libraries (Greg's Ruby and PhilH's Python) to our growing family of 5 others currently in the distribution (C, C++/COM/ActiveX/.NET/PocketPC, JavaScript, Python, = Perl). Since these magnificent seven client libraries were once known as "microservers", we thought it would be fun(ny) to name them after the Seven Dwarves... 1. c_pubsub/libkn: "grumpy" (C) single-threaded, partially non-blocking [tunnel NB, other requests = block] 2. cxx_pubsub/LibKN: "happy" (C++/COM/ActiveX/.NET/PocketPC) multi-threaded, blocking 3. cgi-bin/PubSub: "dopey" (Perl) single-threaded, partially non-blocking [tunnel NB, other requests = block] 4. kn_apps/kn_lib/pubsub{,_raw}.js: "bashful" (JavaScript) single-threaded, non-blocking 5. python_pubsub/pubsublib.py: "doc" (Python) single-threaded, non-blocking 6. python_pubsub/libkn/libkn.py: "sneezy" (Python) multi-threaded, blocking 7. ruby_pubsub/libkn/libkn.rb: "sleepy" (Ruby) multi-threaded, blocking I'll send another post once I've finished adding these last two... Notice how each language can have multiple flavors due to: 1. Multi-threaded vs single-threaded/event-loop 2. Blocking vs partial blocking vs nonblocking A discussion with Mike Dierken this week opened my eyes to the fact that different people have different preferences: I find the fully asynchronous, single-threaded "doc" pubsublib.py to be intuitive, whereas Mike indicated that a multi-threaded Java library would be more intuitive for some Java developers. We aim to please. The directory hierarchy is setup in a way to support multiple (differing) client libraries per language, if different people want to check-in different styles. (Another possibility is to have a wrapper in one style implemented using another style.) Adam |
From: Rajeev D. <rm...@ya...> - 2003-03-14 18:45:52
|
You need to comment the Unicode builds from Build->Batch build since this stuff ain't supported - yet. -rmd __________________________________________________ Do you Yahoo!? Yahoo! Web Hosting - establish your business online http://webhosting.yahoo.com |
From: Asynch M. <asy...@ho...> - 2003-03-13 06:04:18
|
> ----- Original Message ----- > From: "Adam Rifkin" <Ad...@Kn...> > Mike replied: > > Not to be obtuse, but the point of mod_pubsub is that the /message/ is the > > multi-language enabler. The client is there to enable programmers to adopt it. > > Sure, but in theory a Java client library would appeal to lots of programmers, > and bring them into the mod_pubsub fold. That's what I said. > Mike also wrote: > > Also, you don't need NIO for client stuff - it's a nice bit of shiny > > technology, but two or three threads on the client should do fine. > > Depending on the app, maybe. The reason you'd want to use NIO is to simplify > the threading model the app developer has to work with. Basically, simplify > what would otherwise be a threading problem into an event loop problem -- > since it seems like such problems are easier for developers to reason about. I don't have a lot of experience with this, but I think multiple threads are a lot easier. > And, Mike asked: > >> Someone do this in pure Java. > > If I only had the time.. > Would you want a JMS interface based approach or what? > I agree with Greg... no reason someone should have to learn JMS to learn > how to use mod_pubsub (or Pub/Sub in general -- looking at the book on my > bookcase, JMS is too fricking much API than is needed for a nice simple app...) Lots and lots of people know JMS. Nobody knows mod_pubsub. You are forcing 100% of the potential to learn something new, rather than (100-n)%. They will be learning the same concepts in either case. I'm not talking about an app server framework for acquiring TopicFactory, etc. Just making some portion of the API identical to some JMS interfaces. Like using javax.jms.Message and javax.jms.MessageListener interfaces. (Okay, Message may be too big, but pick a subset of methods & make your proprietary API similar) > Is there any reason not to use the publish-subscribe-unsubscribe API of > the JavaScript client library? It seems relatively simple and straightforward > to copy... Sounds reasonable. A secondary project could be an Java API that is well suited to be called by JavaScript. The way you build the Java API strongly influences whether JavaScript looks good - and even whether it matches the other pure JavaScript API. . |
From: Adam R. <Ad...@Kn...> - 2003-03-13 03:17:37
|
On Wednesday, March 12, 2003, at 07:01pm, I wrote: > Is there any reason not to use the publish-subscribe-unsubscribe API = of > the JavaScript client library? It seems relatively simple and=20 > straightforward to copy... Greg replied: > Please use its (the JavaScript's) API. It and the Ruby (yes, the one = I=20 > wrote) mimic each other and are easy to learn and use. > > Just: >=20 > 1. pub > 2. sub > 3. unsub >=20 > ... okay, then route, etc too but you get my drift. This API is documented in=20 mod_pubsub/kn_docs/javascript_reference.html and in the source code for the JavaScript pubsub client library mod_pubsub/kn_apps/kn_lib/pubsub_raw.js and actually, the Python pubsub client library mimics exactly the same API, too. See its source code mod_pubsub/python_pubsub/pubsublib.py and/or when I check in Greg's Ruby pubsub client library you can peruse that source's APIs as well. Whatever you like. FWIW, I believe the Perl pubsub client library is similar flavor mod_pubsub/cgi-bin/PubSub/Client.pm and the C++/Windows pubsub client library is similar, too mod_pubsub/cxx_pubsub/LibKN/cpp/Connector.cpp and what can I say, the C pubsub client library likes to do its own thing, but man oh man are its APIs readable :) mod_pubsub/c_pubsub/libkn/... Actually, Greg's Ruby pubsub client library is *very* readable. Even if you don't know Ruby, it's a good one to look at to learn the mod_pubsub way. So I'll put Greg's Ruby pubsub library next on the "to add" list, as someone around here was asking about Ruby (I kid you not!). Hopefully I'll get to this, this week. Kudos to you, Greg! Adam |
From: Gregory B. <gre...@ya...> - 2003-03-13 02:23:21
|
Please use its (the JavaScript's) API. It and the Ruby (yes, the one I wrote) mimic each other and are easy to learn and use. Just: 1. pub 2. sub 3. unsub ... okay, then route, etc too but you get my drift. -greg On Wednesday, March 12, 2003, at 07:01 PM, Adam Rifkin wrote: > Is there any reason not to use the publish-subscribe-unsubscribe API of > the JavaScript client library? It seems relatively simple and > straightforward > to copy... > > Adam |
From: Adam R. <Ad...@Kn...> - 2003-03-13 01:51:02
|
I was finally able to get the C PubSub client library to compile successfully on Debian Linux, and all the tests work for me. Kudos to deity Fred! My problem was that I didn't have libtool and g++ installed. God bless Debian. When I sudo apt-get install'ed them, configure worked. (I noted this in the README and checked it into cvs, and I also checked into cvs the new config.guess and config.sub in the c_pubsub/libkn/buildconf directory.) make still didn't work for me because I don't have openssl installed, so I put some more #ifdef HAVE_OPENSSL's into some of the files that were calling ssl, and now make works fine for me. (I checked those updates into cvs, too.) Then "make test" wasn't working for me because I don't have proxy support on my machine. So I put in some if's into kn_test.c, and now "make test" works and all the tests are successful. (I checked those updates into cvs, too.) So now I have a working c_pubsub! Hooray! (For anyone who wants to use c_pubsub between now and the time that I get around to making another tarball, make sure to do a "cvs update" on the c_pubsub directory.) Next up, I try to figure out how to compile cxx_pubsub... I don't suppose Mike or Jeff have tried this yet? Adam P.S. -- I have not tried to get kn_sense/apache_logfile.sh working yet... or Fred's recently posted PubSubAppender... so many things to play with, so little time! (Fred, is it ok if we add PubSubAppender to the distribution?) |
From: Adam R. <Ad...@Kn...> - 2003-03-13 00:28:04
|
Fred wrote: > Java isn't a very friendly language when you are trying to mix in > other languages. Even if otherwise, creating cross-language > dependencies is a real pain in the ass for people who have to then > deal with it. Mike replied: > Not to be obtuse, but the point of mod_pubsub is that the /message/ is = the > multi-language enabler. The client is there to enable programmers to = adopt it. Sure, but in theory a Java client library would appeal to lots of = programmers, and bring them into the mod_pubsub fold. Mike also wrote: > Also, you don't need NIO for client stuff - it's a nice bit of shiny > technology, but two or three threads on the client should do fine. Depending on the app, maybe. The reason you'd want to use NIO is to = simplify the threading model the app developer has to work with. Basically, = simplify what would otherwise be a threading problem into an event loop problem = -- since it seems like such problems are easier for developers to reason = about. That was the philosophy behind python_pubsub/pubsublib.py -- and NIO = would allow us to port the Python client library to Java much more easily. Jython could represent an avenue to explore. And, Mike asked: >> Someone do this in pure Java. > If I only had the time.. > Would you want a JMS interface based approach or what? Greg replied: > JMS is too much club for the shot. My suggestion is to create a nice=20 > clean Java API usable in any type of Java client (app server based or=20 > not) and then layer a JMS provider interface on top of that. This = will=20 > make it easier to develop and easier to maintain over time while=20 > covering all the bases. I agree with Greg... no reason someone should have to learn JMS to learn how to use mod_pubsub (or Pub/Sub in general -- looking at the book on = my bookcase, JMS is too fricking much API than is needed for a nice simple = app...) Is there any reason not to use the publish-subscribe-unsubscribe API of the JavaScript client library? It seems relatively simple and = straightforward to copy... Adam |
From: Gregory B. <gre...@ya...> - 2003-03-11 16:09:52
|
On Sunday, March 9, 2003, at 08:41 PM, Asynch Messaging wrote: > > ----- Original Message ----- > From: "Gregory Burd" <gre...@ya...> > > >> Someone do this in pure Java. > If I only had the time.. > Would you want a JMS interface based approach or what? JMS is too much club for the shot. My suggestion is to create a nice clean Java API usable in any type of Java client (app server based or not) and then layer a JMS provider interface on top of that. This will make it easier to develop and easier to maintain over time while covering all the bases. -greg |
From: Asynch M. <asy...@ho...> - 2003-03-11 05:01:12
|
----- Original Message ----- From: "Adam Rifkin" <Ad...@Kn...> > Java isn't a very friendly language when you are trying to mix in > other languages. Even if otherwise, creating cross-language > dependancies is a real pain in the ass for people who have to then > deal with it. Not to be obtuse, but the point of mod_pubsub is that the /message/ is the multi-language enabler. The client is there to enable programmers to adopt it. Also, you don't need NIO for client stuff - it's a nice bit of shiny technology, but two or three threads on the client should do fine. |
From: Adam R. <Ad...@Kn...> - 2003-03-10 20:18:04
|
On Friday, March 7, 2003, at 09:18PM, I wrote: > How useful would a Java PubSub client library be? Fred responded: > If you're a Java weenie, it's the difference between being able to do=20 > it and not. Makes sense to me. Enough people have pressed on me that this is a fine idea. We could base it on the cxx_pubsub library or the Python pubsub library. JDK 1.4 has NIO which is fairly similar to asyncore (which is used in pubsublib.py). I wrote: > Alternatively, how hard would it be to write a JNI wrapper for > c_pubsub and/or compile python_pubsub/pubsublib.py using Jython > into Java bytecodes? Fred responded: > c_pubsub isn't thread-safe that I can verify, and that's a bigger=20 > deal in Java than in C. Good point. cxx_pubsub and Python pubsub are both thread-safe, I = believe. > Java isn't a very friendly language when you are trying to mix in=20 > other languages. Even if otherwise, creating cross-language=20 > dependancies is a real pain in the ass for people who have to then > deal with it. Another good point. Ok, will put it on the "to do" list as its own separate entity to write and play with... Also, on Friday, March 7, 2003, at 08:49pm, I wrote: >> Adam, if you still can't build on Linux, send me the error. >> It should work. > It still doesn't work for me on Linux... > adam@oyster:~/sandbox/mod_pubsub/c_pubsub/libkn$ ./configure > loading cache ./config.cache > checking whether make sets ${MAKE}... yes > checking host system type... configure: error: can not guess host = type; > you must specify one > adam@oyster:~/sandbox/mod_pubsub/c_pubsub/libkn$ > Can I buy a clue? ;) Fred responded: > Looks like you have a new linux version not accounted for in=20 > config.guess/config.sub? adam@oyster:~$ uname -a Linux oyster 2.2.19pre17 #1 Tue Mar 13 22:37:59 EST 2001 i686 unknown My (primitive) read of the config.guess looks like it's in there. > I reckon we should update these two. I forget where to get them = from... Maybe here? http://www.gnu.org/directory/autoconf.html I wrote: > Ok, from now on when we build a tarball we will run make first to > include the compressed pubsub.js with the release. Fred concurred: "Good idea." It's in the v0.7 download, for example. = http://sourceforge.net/project/showfiles.php?group_id=3D66293&release_id=3D= 144907 I wrote: > The man page claims nl is from the gnu textutils. What system doesn't > ship with it? Fred replied: > Any system that doesn't ship with GNU textutils. :-) > Mac OS X, Solaris, *BSD come to mind. Wow, that's a shame. Ok, your point is well-taken, we will ship with a pre-built pubsub.js from now on... Fred: > It's good to keep dependencies down. Seems like a pain to=20 > have to build and install textutils just to get the compressed js = file. The ship with the pre-built pubsub.js should ease the pain, right? So should we also modify the INSTALL file to make the point that you = need nl to run the compression tool? Fred: > This is a problem with the perl module as well; you have you install=20 > a pile of other perl modules first. CPAN is helpful, but not useful = on=20 > servers where you want something you can just unpack to install. =20 > Having CPAN alter you perl install automatically on a server you do=20 > other things on is pretty iffy. That's true; you can always find and install all the required modules by hand to avoid that risk. Is there a better way to ship the tarball given the pain of CPAN = installation? Adam |
From: Asynch M. <asy...@ho...> - 2003-03-10 04:20:11
|
----- Original Message ----- From: "Gregory Burd" <gre...@ya...> > Someone do this in pure Java. If I only had the time.. Would you want a JMS interface based approach or what? |
From: <wsa...@ws...> - 2003-03-09 08:15:22
|
On Friday, March 7, 2003, at 08:49 PM, Adam Rifkin wrote: >> Adam, if you still can't build on Linux, send me the error. >> It should work. > > It still doesn't work for me on Linux... > > adam@oyster:~/sandbox/mod_pubsub/c_pubsub/libkn$ ./configure > loading cache ./config.cache > checking whether make sets ${MAKE}... yes > checking host system type... configure: error: can not guess host type; > you must specify one > adam@oyster:~/sandbox/mod_pubsub/c_pubsub/libkn$ > > Can I buy a clue? ;) Looks like you have a new linux version not accounted for in config.guess/config.sub? I reckon we should update these two. I forget where to get them from... > Ok, from now on when we build a tarball we will run make first to > include > the compressed pubsub.js with the release. Good idea. > The man page claims nl is from the gnu textutils. What system doesn't > ship with it? Any system that doesn't ship with GNU textutils. :-) Mac OS X, Solaris, *BSD come to mind. > It should be easy to install on any system it's not a standard part of, > right? Yes, but it's good to keep dependencies down. Seems like a pain to have to build and install textutils just to get the compressed js file. This is a problem with the perl module as well; you have you install a pile of other perl modules first. CPAN is helpful, but not useful on servers where you want something you can just unpack to install. Having CPAN alter you perl install automatically on a server you do other things on is pretty iffy. -wsv |
From: Adam R. <Ad...@Kn...> - 2003-03-09 01:09:42
|
(For those of you who remember when "PubSub Client Libraries" were called "Microservers", I salute you. :) (Bonus for Jeff & Mike: the cxx_pubsub bugfixes & reorganization checked in last night -- the Windows/ActiveX/COM/.NET/PocketPC PubSub client library is much-improved and fairly advanced now -- includes a super RSS feed sample app... thanks Tommy!) (Bonus for Rohit: your Connect Four and Reversi game apps now have a home in kn_apps. I did the port last night, and though they have some robustness issues they seem to work reasonably well.) On Saturday, March 8, 2003, at 12:18AM, I wrote: > How useful would a Java PubSub client library be? > Alternatively, how hard would it be to write a JNI wrapper for > c_pubsub and/or compile python_pubsub/pubsublib.py using Jython > into Java bytecodes? Greg replied: > Someone do this in pure Java. It shouldn't be all that hard with all > the example code from the other pubsub client libraries. A Java/JNI > solution would slow adoption. I'm thinking that we're close to feature-completing the Python PubSub client library and standalone Python PubSub server (in python_pubsub, these are called "pubsublib.py" and "pubsub.py", respectively), I can tackle the issue of porting a Java standalone server and/or Java PubSub client library. If someone else wants to get started on either of these before I have time, I will wholeheartedly endorse/support/help you... :) Also, on Saturday, March 8, 2003, at 12:12AM, I wrote: > Coming soon, I'm adding in Greg Burd's elisp and ruby pubsub client > libraries... and there was much rejoicing... Greg replied: > Glad to hear it. You do realize that the "elisp pubsub client=20 > library" was just a twinkle in my eye and never really any functional=20 > code, right? Of course I do! Remember, I'm stuck being my own marketing department right now -- I regularly talk about the PHP pubsub client library and the Java pubsub client library even though neither of those are functional code yet, either. Now, the actual marketing value of "elisp connectivity" is debatable... though some people around here have accumulated considerable fame points playing Lisp programmers on the Internet: e.g., #10 in http://www.troutworks.com/Joycelog/100_things.php :) And though we do have functional code in c_pubsub and cxx_pubsub, I so far have not compiled them myself. Still working on that. The philosophy we're using here is one of "iterative improvement", where buggy, incomplete, and non-working code is checked in and iteratively evolved and improved over time as we use it more. elisp and Java and PHP... man, I'm never gonna find time to build a Konfabulator connector out of the JavaScript PubSub Library... :) Greg also wrote: > On the other hand, the ruby pubsub client library was a joy to write > and is quite functional although it could use some fixup as well. Seriously, it's one of the better PubSub client libraries we have. It'll be a happy addition to the C++, C, JavaScript, Perl, and Python PubSub client libraries...=20 BTW, Fred's new Apache watcher looks way-cool. When I get c_pubsub working on my Linux box, I'm going to update the sitewatch app in kn_apps to make use of it. Having fun, Adam P.S. -- Jeff Barr's "Popularity Contest" application from a few years ago might make a fun PubSub-enabled app: http://www.vertexdev.com/~jeff/popcon.shtml |
From: Gregory B. <gre...@ya...> - 2003-03-08 12:42:42
|
Someone do this in pure Java. It shouldn't be all that hard with all the example code from the other pubsub client libraries. A Java/JNI solution would slow adoption. -greg On Saturday, March 8, 2003, at 12:18 AM, Adam Rifkin wrote: > How useful would a Java PubSub client library be? > > Alternatively, how hard would it be to write a JNI wrapper for > c_pubsub and/or compile python_pubsub/pubsublib.py using Jython > into Java bytecodes? > > Adam > |
From: Gregory B. <gre...@ya...> - 2003-03-08 12:39:33
|
Adam, Glad to hear it. You do realize that the "elisp pubsub client library" was just a twinkle in my eye and never really any functional code, right? On the other hand, the ruby pubsub client librarb was a joy to write and is quite functional although it could use some fixup as well. -greg On Saturday, March 8, 2003, at 12:12 AM, Adam Rifkin wrote: > Coming soon, I'm adding in Greg Burd's elisp and ruby pubsub client > libraries... > and there was much rejoicing... > > :) Adam > > |