Discussion:
[Openinteract-dev] JIRA notifications not working
Chris Winters
2005-03-11 03:36:27 UTC
Permalink
Just so you know: JIRA notifications are currently not working. I think
it's a DNS issue and have asked the folks who maintain the
openinteract.org domain to check on something. But that may be a red
herring...

I hate mail servers.

Chris

--
Chris Winters
Creating enterprise-capable snack systems since 1988
Teemu Arina
2005-03-20 15:15:28 UTC
Permalink
Hello,

I tested latest 1.99_06 and I'm working on making my software
compliant with it.

I'm running Debian Sarge. OI2 works just fine under apache 1.x, directly from
the official debian packages. I also wanted to test OI2 under Apache2 but
it didn't work. I get the following error in error_log_mp2:

Can't locate object method "FETCH" via package "APR::Table" at
/usr/share/perl5/Class/Accessor/Fast.pm line 39.

I have installed libapache2-mod-perl2 (provides APR::Table) and libapache2-request-perl.

Has anyone successfully installed OI2 with Apache2 under Debian Sarge?
Salve?
--
Teemu Arina, CTO

Ionstream Oy / Dicole
Komeetankuja 4 A
02210 Espoo
FINLAND
Tel: +358-(0)50 - 555 7636
skype: infe00
Corporate website: http://www.dicole.com
FLOSS in education blog: http://flosse.dicole.org
Personal weblog: http://infedelic.blogspot.com

"Discover, collaborate, learn."
Teemu Arina
2005-03-20 17:24:05 UTC
Permalink
I did not test with debian, but RH 9 at that time and remember the
error. What happens here is, that modperl 1.x classes are used. Just
drop in Apache::compat() somewhere ( like startup.pl ) and it should
work.
Thanks,

but well it starts through startup_mp2.pl and I tried to add that one in there,
just reports that an undefined subroutine has been called.

I've included httpd_mp2_solo.conf in apache2.

- Teemu
Andreas Nolte
2005-03-20 17:32:05 UTC
Permalink
Post by Teemu Arina
but well it starts through startup_mp2.pl and I tried to add that one in there,
just reports that an undefined subroutine has been called.
I've included httpd_mp2_solo.conf in apache2.
- Teemu
hm - maybe I do not remember right. Here is my startup_mp2.pl
--------------
#!/usr/bin/perl

use strict;
use Apache2 ();
# enable if the mod_perl 1.0 compatibility is needed
use Apache::compat ();

use ModPerl::Util (); #for CORE::GLOBAL::exit

use Apache::RequestRec ();
use Apache::RequestIO ();
use Apache::RequestUtil ();

use Apache::ServerRec ();
use Apache::ServerUtil ();
use Apache::Connection ();
use Apache::Log ();

use APR::Table ();

use ModPerl::Registry ();

use Apache::Const -compile => ':common';
use APR::Const -compile => ':common';

use Apache2::OpenInteract2;
use CGI;
use Log::Log4perl;
use OpenInteract2::Config::Base;
use OpenInteract2::Constants qw( :log );
use OpenInteract2::Context;

CGI->compile( ':all' );

my $BASE_CONFIG_FILE = '/web/kloeterbregen/conf/base.conf';

{
Log::Log4perl::init( '/web/kloeterbregen/conf/log4perl.conf' );
my $base_config = OpenInteract2::Config::Base->new(
{ filename => $BASE_CONFIG_FILE } );
my $ctx = OpenInteract2::Context->create(
$base_config, { temp_lib_create => 'create' } );
$ctx->assign_request_type( 'apache2' );
$ctx->assign_response_type( 'apache2' );
}

1;
--------------
I did not add anything intersting to the httpd.conf - I think...

hope this helps

Andreas
Post by Teemu Arina
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
openinteract-dev mailing list
https://lists.sourceforge.net/lists/listinfo/openinteract-dev
--
Andreas Nolte <***@kloeterbregen.de>
Teemu Arina
2005-03-20 17:46:16 UTC
Permalink
Post by Andreas Nolte
use APR::Table ();
This line did it.
Maybe it should be included in the default startup_mp2.pl?
--
Teemu Arina, CTO

Ionstream Oy / Dicole
Komeetankuja 4 A
02210 Espoo
FINLAND
Tel: +358-(0)50 - 555 7636
skype: infe00
Corporate website: http://www.dicole.com
FLOSS in education blog: http://flosse.dicole.org
Personal weblog: http://infedelic.blogspot.com

"Discover, collaborate, learn."
Chris Winters
2005-03-21 01:58:09 UTC
Permalink
Post by Teemu Arina
Post by Andreas Nolte
use APR::Table ();
This line did it.
Maybe it should be included in the default startup_mp2.pl?
It's in there now.

I haven't tried OI2 with mp2 for quite some time. IIRC I had to use
CGI.pm to get the parameters working rather than mp2 implementation for
Apache::Request. It would be cool to get that working and if anyone's
got the time...

Chris

--
Chris Winters
Creating enterprise-capable snack systems since 1988
Teemu Arina
2005-03-21 23:40:48 UTC
Permalink
Hello,

I ported my applications from 1.99_04 to 1.99_06.

A couple of things that I had problems with:

1.
task_name and action_name are not anymore in CTX->request. Is there
other way to access those through the context?

2.
My stock debian apache2 with mod_perl2 segfaults after the APR::Table fix.
Haven't checked any further.

3.
If you have packages that use spops objects from one and another, you can't
remove all of the packages with the remove_package manage task, you only end up
breaking things. That's because oi2_manage doesn't work anymore if the package
classes do not include properly (i.e., SPOPS class is missing). You have to manually
edit repository.ini

4.
Why not introduce a parameter for remove_package that also deletes the package
directory in pkg/[package_name-version]? You can't reinstall the package again
with the same version once it has been removed, you have to remove the directory
in pkg/ first. A parameter to do this at the same time would be nice.

5.
The user sometimes receives the following message instead of the page one
is browsing:
Failed to save error object: Cannot overwrite existing file
/usr/local/oi/error/2005-03/22/071417-000.txt with error contents at OIAppender.pm line 52.

So the application kinda breaks. Maybe it happens if you receive two errors at the same time?

6.
I had to modify some of the OI2 source code. I did not commit any of these to the CVS,
because I need to know what you think. Attached is a patch to OI2 1.99_06 with some
changes I had to do:

lib/OpenInteract2/I18N/Initializer.pm
Well formed .PO file looks like this:

---
msgid ""
msgstr ""
"Project-Id-Version: Dicole\n"
"Last-Translator: Teemu Arina <***@dicole.com>\n"
"POT-Creation-Date: 2005-03-22 02:06:45+0000\n"
"PO-Revision-Date: 2005-03-22 02:06:45+0000\n"
"Language-Team: Dicole <***@dicole.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Dicole\n"

msgid "Add folder"
msgstr "Add folder"
...
---

It has a header with a null msgid that tells something about the content
of the translation.

OI2 Initializer.pm does some black voodoo magic with Template toolkit
to build %Lexicon in the new class. This breaks because the msgstr of the
header has a set of new lines. Anyway, is this TT hack really that necessary? Think
if we move to UTF8 support later, this Template toolkit hack will break things
(utf flags, I guess). Is there a better way (not copying the msg variables)?

Another problem with the TT stuff is once again the way it constructs the key
of the hash. It doesn't take into account that the key might contain characters
like ' or \. Also, msgstr ending in \ or strings containing {} will also break
the TT hack.

My patch is a quick hack fix to some of the above problems (removes null msgid
key completely, fixes the TT stuff a little bit) but a more robust solution
should be written.

Also, my patch removes unnecessary dublicate key errors. If you use strings
as keys, you most likely end up with dublicate key errors with common strings because
all the strings are global in OI2 (fix coming soon?). This is not life threattening but
useful to developers, so I moved the error from warn to debug (logs in end user installations
should not fill up with errors like this).

lib/OpenInteract2/I18N.pm
Changes the system so that instead of returning "Message error for '$key'"
it returns the key itself in case no translation is found.
This is to ensure that in incomplete translations the english version is
displayed instead (if you use strings as keys instead of some ID values).
There are perfectly good examples when you might want to run some strings through
_msg and the strings will return them selves if no translation is found.
Also moved from warn to debug the information of untranslated strings.

This is once again, only useful information for developers.

lib/OpenInteract2/Request.pm
OI2 always selects the language provided by the browser (user agent). Well, it was a bit
difficult to change the language as a user, because it had no effect ;)
I changed this chain to something more logical:

Changes the order in how the language is selected:
- prefers $lang_config->{choice_param_name} over user or session language
- prefers user and session language over user agent provided languages
- prefers everything else over $lang_config->{default_language}


Regards,

Teemu Arina, CTO

Ionstream Oy / Dicole
Komeetankuja 4 A
02210 Espoo
FINLAND
Tel: +358-(0)50 - 555 7636
skype: infe00
Corporate website: http://www.dicole.com
FLOSS in education blog: http://flosse.dicole.org
Personal weblog: http://infedelic.blogspot.com

"Discover, collaborate, learn."
Chris Winters
2005-03-23 13:19:08 UTC
Permalink
Post by Teemu Arina
I ported my applications from 1.99_04 to 1.99_06.
Thanks for posting these, they're very helpful.
Post by Teemu Arina
1.
task_name and action_name are not anymore in CTX->request. Is there
other way to access those through the context?
Why do you need them? I thought of keeping them in the request after
implementing the ActionResolver but couldn't think of a good
reason. (And that's not saying there isn't one.)
Post by Teemu Arina
2.
My stock debian apache2 with mod_perl2 segfaults after the APR::Table fix.
Haven't checked any further.
My mp2 experience is lacking as well.
Post by Teemu Arina
3.
If you have packages that use spops objects from one and another, you can't
remove all of the packages with the remove_package manage task, you only end up
breaking things. That's because oi2_manage doesn't work anymore if the package
classes do not include properly (i.e., SPOPS class is missing). You have to manually
edit repository.ini
I think a change I made to the 'install_package' management task would
help here -- instead of creating the context and running all setup
tasks it skips 'read packages'. (This was in response to similar
problems raised in OIN-147 and OIN-148.)

I'll give this a shot with 'remove_package' and see how it goes.
Post by Teemu Arina
4.
Why not introduce a parameter for remove_package that also deletes the package
directory in pkg/[package_name-version]? You can't reinstall the package again
with the same version once it has been removed, you have to remove the directory
in pkg/ first. A parameter to do this at the same time would be nice.
Great idea -- I'll create an issue for it.
Post by Teemu Arina
5.
The user sometimes receives the following message instead of the page one
Failed to save error object: Cannot overwrite existing file
/usr/local/oi/error/2005-03/22/071417-000.txt with error contents at OIAppender.pm line 52.
So the application kinda breaks. Maybe it happens if you receive two errors at the same time?
Yeah, within the same second. DateTime apparently doesn't store
milliseconds properly (or maybe we have to use Time::HiRes somewhere?)
and that's what the '-000' on the end is supposed to be using.

I'll add an 'if exists then change name' check in the error storage
function.
Post by Teemu Arina
6.
I had to modify some of the OI2 source code. I did not commit any of these to the CVS,
because I need to know what you think. Attached is a patch to OI2 1.99_06 with some
lib/OpenInteract2/I18N/Initializer.pm
msgid ""
msgstr ""
"Project-Id-Version: Dicole\n"
...
"X-Generator: Dicole\n"
msgid "Add folder"
msgstr "Add folder"
...
It has a header with a null msgid that tells something about the content
of the translation.
The PO parsing is done entirely in Locale::Maketext::Lexicon::Gettext,
so if there's a bug in the parsing we should probably let them know.
Post by Teemu Arina
OI2 Initializer.pm does some black voodoo magic with Template toolkit
to build %Lexicon in the new class. This breaks because the msgstr of the
header has a set of new lines. Anyway, is this TT hack really that necessary? Think
if we move to UTF8 support later, this Template toolkit hack will break things
(utf flags, I guess). Is there a better way (not copying the msg variables)?
Hmmm... well, I don't think it qualifies as black voodoo magic, but I
see your point. We may just want to do something like:

- create classes for all supported languages
- assign keys/values directly into created class

That way there should be no modification of the original variable and
it will maintain its utf8 (or other) metadata.
Post by Teemu Arina
Another problem with the TT stuff is once again the way it constructs the key
of the hash. It doesn't take into account that the key might contain characters
like ' or \. Also, msgstr ending in \ or strings containing {} will also break
the TT hack.
My patch is a quick hack fix to some of the above problems (removes null msgid
key completely, fixes the TT stuff a little bit) but a more robust solution
should be written.
I think the proposition above should take care of this.
Post by Teemu Arina
Also, my patch removes unnecessary dublicate key errors. If you use strings
as keys, you most likely end up with dublicate key errors with common strings because
all the strings are global in OI2 (fix coming soon?). This is not life threattening but
useful to developers, so I moved the error from warn to debug (logs in end user installations
should not fill up with errors like this).
No problem, I didn't know how often this sort of thing happened.

The global string issue is slated for fixing and I had some ideas on
how to do it:

http://jira.openinteract.org/browse/OIN-29
Post by Teemu Arina
lib/OpenInteract2/I18N.pm
Changes the system so that instead of returning "Message error for '$key'"
it returns the key itself in case no translation is found.
This is to ensure that in incomplete translations the english version is
displayed instead (if you use strings as keys instead of some ID values).
There are perfectly good examples when you might want to run some strings through
_msg and the strings will return them selves if no translation is found.
Also moved from warn to debug the information of untranslated
strings.
That makes sense.
Post by Teemu Arina
This is once again, only useful information for developers.
lib/OpenInteract2/Request.pm
OI2 always selects the language provided by the browser (user agent). Well, it was a bit
difficult to change the language as a user, because it had no effect ;)
- prefers $lang_config->{choice_param_name} over user or session language
- prefers user and session language over user agent provided languages
- prefers everything else over $lang_config->{default_language}
That makes sense too. If you've got these on your system already why
don't you go ahead and commit them? If not I'll patch and commit.

Thanks!

Chris
--
Chris Winters (http://www.cwinters.com)
Building enterprise-capable snack solutions since 1988
Teemu Arina
2005-03-23 13:45:55 UTC
Permalink
Post by Chris Winters
Post by Teemu Arina
1.
task_name and action_name are not anymore in CTX->request. Is there
other way to access those through the context?
Why do you need them? I thought of keeping them in the request after
implementing the ActionResolver but couldn't think of a good
reason. (And that's not saying there isn't one.)
Actually I don't. Just noticed they are removed (docs not updated!). I used
them in several places for various reasons in my code and I had to change the
code to just get that stuff out of url_relative. I think it's cleaner
now, I think request has nothing to do with actions anyway.

url_relative and url_absolute include the GET parameters now. Nice, now I can
work with the state as I proposed a long time ago. I used those also as something
like:

$url = CTX->request->url_relative . '/help';

If the URL includes GET parameters, that piece of code obviously doesn't work anymore
as it did previously. Thinking aloud: No problem with that, I can always strip the GET
parameters when I use it like that so a GETless accessor is not really required.
Post by Chris Winters
My mp2 experience is lacking as well.
This is still important, some distros like Fedora include (I think?) only Apache2.
Post by Chris Winters
The PO parsing is done entirely in Locale::Maketext::Lexicon::Gettext,
so if there's a bug in the parsing we should probably let them know.
Nothing wrong with the parser, it works ok. This null entry just breaks the
TT stuff you already suggested to fix.
Post by Chris Winters
- create classes for all supported languages
- assign keys/values directly into created class
That way there should be no modification of the original variable and
it will maintain its utf8 (or other) metadata.
That's great. While you are at it, change the OI2 stock .msg file parser to read
keys that have spaces etc. in them as well.
Post by Chris Winters
Post by Teemu Arina
Also, my patch removes unnecessary dublicate key errors.
lib/OpenInteract2/I18N.pm
Changes the system so that instead of returning "Message error for '$key'"
it returns the key itself in case no translation is found.
One thing with this. If the requested translation is:

Hello [_1]!

If a translation is found, it gets replaced something like:

Hello John!

But if the key is returned (no translation found) that [_1] is not replaced.
I think this is perfectly ok, although we could just add something like this:

$key =~ s/\[_(\d+)\]/\%$1/g;
Post by Chris Winters
Post by Teemu Arina
lib/OpenInteract2/Request.pm
OI2 always selects the language provided by the browser (user agent). Well, it was a bit
difficult to change the language as a user, because it had no effect ;)
- prefers $lang_config->{choice_param_name} over user or session language
- prefers user and session language over user agent provided languages
- prefers everything else over $lang_config->{default_language}
--
Teemu Arina, CTO

Ionstream Oy / Dicole
Komeetankuja 4 A
02210 Espoo
FINLAND
Tel: +358-(0)50 - 555 7636
skype: infe00
Corporate website: http://www.dicole.com
FLOSS in education blog: http://flosse.dicole.org
Personal weblog: http://infedelic.blogspot.com

"Discover, collaborate, learn."
Chris Winters
2005-03-23 14:39:16 UTC
Permalink
Post by Teemu Arina
Actually I don't. Just noticed they are removed (docs not updated!). I used
them in several places for various reasons in my code and I had to change the
code to just get that stuff out of url_relative. I think it's cleaner
now, I think request has nothing to do with actions anyway.
They'll be updated shortly, sorry about that.
Post by Teemu Arina
url_relative and url_absolute include the GET parameters now. Nice, now I can
work with the state as I proposed a long time ago. I used those also as something
$url = CTX->request->url_relative . '/help';
If the URL includes GET parameters, that piece of code obviously doesn't work anymore
as it did previously. Thinking aloud: No problem with that, I can always strip the GET
parameters when I use it like that so a GETless accessor is not really required.
Yeah, if you think it's useful to have a non-param version of the URL
we can add it in there.
Post by Teemu Arina
Post by Chris Winters
My mp2 experience is lacking as well.
This is still important, some distros like Fedora include (I think?) only Apache2.
Absolutely. Just a matter of finding time...
Post by Teemu Arina
Nothing wrong with the parser, it works ok. This null entry just breaks the
TT stuff you already suggested to fix.
Ok.
Post by Teemu Arina
That's great. While you are at it, change the OI2 stock .msg file
parser to read keys that have spaces etc. in them as well.
Yep, good idea.
Post by Teemu Arina
...
Hello [_1]!
Hello John!
But if the key is returned (no translation found) that [_1] is not replaced.
$key =~ s/\[_(\d+)\]/\%$1/g;
Good idea.

(Implementation note: will that work? The resulting %1, %2... do not
seem like valid sprintf syntax... Regardless, the intent is clear.)

Chris
--
Chris Winters (http://www.cwinters.com)
Building enterprise-capable snack solutions since 1988
Teemu Arina
2005-03-23 21:33:54 UTC
Permalink
We need a new website for OpenInteract. Something that kicks ass == clean but visual
design, grabs your attention in first 2 minutes and has a nice image / videos
/ screencasts so that you crasp the core idea faster than you say SPOPS.

Excellent example (atleast, we need the architecture chart and the FAQ):
http://www.rubyonrails.com/

What do you say?
--
Teemu Arina, CTO

Ionstream Oy / Dicole
Komeetankuja 4 A
02210 Espoo
FINLAND
Tel: +358-(0)50 - 555 7636
skype: infe00
Corporate website: http://www.dicole.com
FLOSS in education blog: http://flosse.dicole.org
Personal weblog: http://infedelic.blogspot.com

"Discover, collaborate, learn."
Chris Winters
2005-03-24 00:26:49 UTC
Permalink
(cc'd to -help since more folks are there)
Post by Teemu Arina
We need a new website for OpenInteract. Something that kicks ass ==
clean but visual design, grabs your attention in first 2 minutes and
has a nice image / videos / screencasts so that you crasp the core
idea faster than you say SPOPS.
I had the same idea and grabbed a video capture tool a short while
ago; maybe I'll try it out tonight... :-)
Post by Teemu Arina
http://www.rubyonrails.com/
Those RoR people are everywhere!

Seriously, I'm very impressed by how quickly they've got everyone
talking about Rails. Part of the reason is that Ruby is on everyone's
"I need to learn that" list and part is that they make easy things
really easy. (I haven't heard as much about how well tough things go,
but I wouldn't underestimate them.) They've also got conference
heavyweights like Dave Thomas pushing, a big deal.

I think another thing we can do is get a number of useful applications
ready-to-go as well as framework enhancers like
OI2::Action:RSS. Leveraging CPAN for this helps us a lot.

Redesigning the website is an area where I'll be overjoyed to
delegate. (As anyone who has seen my website knows, my design sense is
very limited.) Of course, simpler is better.

So if you've got some free time and design skills, we need you!

Chris
--
Chris Winters (http://www.cwinters.com)
Building enterprise-capable snack solutions since 1988
Teemu Arina
2005-03-24 00:57:44 UTC
Permalink
I've got a slight problem with Bricks. I have now successfully ported
my stuff on OI2 1.99_06 and everything seems to work ok.

I made an installer for debian that grabs available packages from
apt and installs the rest from my home-made .deb packages, even OI2
now that it is based on bricks.

For my own application I wanted to do a similar thing by creating Bricks.
But I keep getting the following:

# oi2_manage install_package --package_class=OpenInteract2::Brick::DicoleBase
[oi2_manage]: Caught exception during task execution
[oi2_manage]: Factory type [] is not defined in [OpenInteract2::Brick::DicoleBase]

The generated code of my brick looks identical to other Bricks, just the package name
and embedded base64 stuff is different (obviously). I used the same build_bricks
script you use to create the stock packages. I thought there is something wrong
with my packages, but:

oi2_manage install_package --package_file=dicole_base-0.01.zip

...works just fine.

Any ideas?

- Teemu
Chris Winters
2005-03-24 01:12:57 UTC
Permalink
Post by Teemu Arina
I've got a slight problem with Bricks. I have now successfully ported
my stuff on OI2 1.99_06 and everything seems to work ok.
Cool.
Post by Teemu Arina
I made an installer for debian that grabs available packages from
apt and installs the rest from my home-made .deb packages, even OI2
now that it is based on bricks.
For my own application I wanted to do a similar thing by creating Bricks.
# oi2_manage install_package
--package_class=OpenInteract2::Brick::DicoleBase
[oi2_manage]: Caught exception during task execution
[oi2_manage]: Factory type [] is not defined in
[OpenInteract2::Brick::DicoleBase]
The 'package_class' reference is supposed to be a OI2::App class rather
than a OI2::Brick class. (I'll update the docs to clarify.) The
'package_class' functionality was implemented for the
CPAN-distributable packages rather than using the bricks directly --
the difference is that CPAN-distributable packages have the .pm files
outside the brick and that everything in the brick is stored as-is.

But it makes some sense to make this available -- particularly since
we'll need to distribute updates to the core packages -- so I'll add a
'--brick_class' to the package installer.

Chris

--
Chris Winters
Creating enterprise-capable snack systems since 1988
Teemu Arina
2005-03-24 01:28:40 UTC
Permalink
Post by Chris Winters
The 'package_class' reference is supposed to be a OI2::App class rather
than a OI2::Brick class. (I'll update the docs to clarify.)
is there a simple way to create this OI2::App out of a package directory?

If not, where is the example on how to create one?

- Teemu
Chris Winters
2005-03-24 01:44:51 UTC
Permalink
Post by Teemu Arina
Post by Chris Winters
The 'package_class' reference is supposed to be a OI2::App class rather
than a OI2::Brick class. (I'll update the docs to clarify.)
is there a simple way to create this OI2::App out of a package
directory?
Umm... I did have a script to do this but I don't think I included it.
Let me see... ah, I do have the script I used for all the OI2 packages.
Basically it processes sample/package/App.pm, generates the right
package name and class name, and replaces [% pod %] with the
docs/foo.pod. It's very simple but you're welcome to it.

I doubt it will be useful to many other folks since all packages
created from now on with oi2_manage will have this by default.

Chris

--
Chris Winters
Creating enterprise-capable snack systems since 1988

Teemu Arina
2005-03-24 01:20:54 UTC
Permalink
Post by Chris Winters
I had the same idea and grabbed a video capture tool a short while
ago; maybe I'll try it out tonight... :-)
Yea I got Camtasia studio and have created several screencasts already
as user manuals for software I've created. Works nice and a lot more informative
compared to 100's of pages of manuals.

We also need a video of Chris throwing a presentation of the OI2 architecture.
Is your software able to show slides and you narrating on top of that stuff?
Post by Chris Winters
Seriously, I'm very impressed by how quickly they've got everyone
talking about Rails. Part of the reason is that Ruby is on everyone's
"I need to learn that" list and part is that they make easy things
really easy. (I haven't heard as much about how well tough things go,
but I wouldn't underestimate them.) They've also got conference
heavyweights like Dave Thomas pushing, a big deal.
Part of success seems to be the way they got their selves on the nerve pulse
of the blogger community. They had a nice low-level platform and also a
nice high-level implementation, Basecamp on top of it. I remember reading about
it in some high-traffic blogs. Of course every blogger featured basecamp because it's
basically a specialized blogging tool, mainly for projects. The top bloggers are
meta-bloggers (blogging about blogging) anyway.
Post by Chris Winters
I think another thing we can do is get a number of useful applications
ready-to-go as well as framework enhancers like
OI2::Action:RSS. Leveraging CPAN for this helps us a lot.
Redesigning the website is an area where I'll be overjoyed to
delegate. (As anyone who has seen my website knows, my design sense is
very limited.) Of course, simpler is better.
So if you've got some free time and design skills, we need you!
I see if I can give it a shot in a few months if I have the time (the usual problem).
Any top-class designers or OI2 coders here? I suggest it's based on a wiki, a static
front page and some weblog tool for the latest news. RSS feeds, obviously. OI has
everything but the wiki, but well that's not really required, although it would be
nice for tutorials etc. Is the current twiki how easy to modify (to just match the look of
the new website, for example) and does it work without the camel case
(i.e. [[New website|NewWebsite]])?

Maybe we can fix that XHTML interface of OI at the same time? =)
--
Teemu Arina, CTO

Ionstream Oy / Dicole
Komeetankuja 4 A
02210 Espoo
FINLAND
Tel: +358-(0)50 - 555 7636
skype: infe00
Corporate website: http://www.dicole.com
FLOSS in education blog: http://flosse.dicole.org
Personal weblog: http://infedelic.blogspot.com

"Discover, collaborate, learn."
Chris Winters
2005-03-24 01:38:49 UTC
Permalink
Post by Teemu Arina
Yea I got Camtasia studio and have created several screencasts already
as user manuals for software I've created. Works nice and a lot more informative
compared to 100's of pages of manuals.
I agree: showing is a lot better than telling.
Post by Teemu Arina
We also need a video of Chris throwing a presentation of the OI2 architecture.
Is your software able to show slides and you narrating on top of that stuff?
I'm not sure... I'll have to see.
Post by Teemu Arina
Part of success seems to be the way they got their selves on the nerve pulse
of the blogger community. They had a nice low-level platform and also a
nice high-level implementation, Basecamp on top of it. I remember reading about
it in some high-traffic blogs. Of course every blogger featured basecamp because it's
basically a specialized blogging tool, mainly for projects. The top bloggers are
meta-bloggers (blogging about blogging) anyway.
Right. I actually had an idea that we could implement an internal
blogging system/aggregator for the place I work and think it would be
incredibly useful. But it's not at all in my work scope.

The idea that you've got one or two useful apps out of the box is very
powerful though. And we've actually got an implementation for one of
the buzzwords (lightweight tagging/folksonomies) in the
'delicious_tags' package, which will almost certainly get moved into
_07 as an 'object_tags' package. Tagging everything is pretty nifty.
Post by Teemu Arina
I see if I can give it a shot in a few months if I have the time (the usual problem).
I hear that. Although the 'we need you!' wasn't just aimed at Teemu, it
was to everyone :-)
Post by Teemu Arina
Any top-class designers or OI2 coders here? I suggest it's based on a wiki, a static
front page and some weblog tool for the latest news. RSS feeds, obviously. OI has
everything but the wiki, but well that's not really required, although it would be
nice for tutorials etc. Is the current twiki how easy to modify (to just match the look of
the new website, for example) and does it work without the camel case
(i.e. [[New website|NewWebsite]])?
I really dislike TWiki -- it's just so crufty. (And I say that having
written a few plugins for it.) I started working on a wiki package a
while ago but didn't have time to see it though -- I'll see what kind
of shape that's in. I would like to have a more structured area of the
site though -- IME wiki works well for support/FAQ/ideas but not as
much as an introduction.
Post by Teemu Arina
Maybe we can fix that XHTML interface of OI at the same time? =)
Absolutely. That reminds me -- I meant to shoot Chris Nandor an email
about this to see if he's got some guidelines because he's been doing
the same to Slashcode recently:

http://use.perl.org/~pudge/journal/23723

Chris

--
Chris Winters
Creating enterprise-capable snack systems since 1988
Andreas Nolte
2005-03-20 17:26:17 UTC
Permalink
Post by Teemu Arina
I'm running Debian Sarge. OI2 works just fine under apache 1.x, directly from
the official debian packages. I also wanted to test OI2 under Apache2 but
Can't locate object method "FETCH" via package "APR::Table" at
/usr/share/perl5/Class/Accessor/Fast.pm line 39.
I have installed libapache2-mod-perl2 (provides APR::Table) and libapache2-request-perl.
Has anyone successfully installed OI2 with Apache2 under Debian Sarge?
Salve?
Hi Teemu,

I did not test with debian, but RH 9 at that time and remember the
error. What happens here is, that modperl 1.x classes are used. Just
drop in Apache::compat() somewhere ( like startup.pl ) and it should
work.

cheers

Andreas
--
Andreas Nolte <***@kloeterbregen.de>
Loading...