Re: [VOTE] retire zeta components from incubation

2012-04-20 Thread Henri Bergius
Hi,

On Apr 20, 2012 11:26 AM, Tobias Schlitt tob...@schlitt.info wrote:
 sadly, I did not find time to look into all this stuff. This also seems
 the reason that Zeta is dying: Time lack.

 I'm a bit sad, that Zeta is being closed down, but I think that it's the
 logical way to go.

I think the important part is that PHP is finally starting to have a
reasonable infrastructure for having a proper ecosystem:

* Composer for dependency handling and easy library publishing
* PSR-0 for standard autoloading
* GitHub for collaborative development
* Travis for continuous integration

These four combined make it much easier to publish simpler, more decoupled
libraries that just works. Node.js has a very similar infrastructure with
NPM, and there indeed this has produced hundreds of compatible modules that
are widely used, and that don't need any sort of monolithic project
governance structure.

I think there is still a place for an effort advocating library
interoperability, quality and coding standards. Zeta could be that, but it
needs to be part of this new ecosystem, not something standing outside of
it.

 Toby

/Henri


Re: [zeta-dev] The Piwi Framework

2011-11-04 Thread Henri Bergius
On Thu, Nov 3, 2011 at 3:48 PM, Christian Grobmeier grobme...@gmail.com wrote:
 But it seems, there is less interest. Don't know whats wrong, but it
 seems the PHP world is overloaded with frameworks. It seems, even a
 high quality framework as Zeta does suffer from this fact.

In general, PHP has too many frameworks, and too few reusable
libraries. I think for AZC it would be better to position itself as a
managed collection of high-quality libraries than to try and position
as a framework. After all, Zeta components can already be used outside
of Zeta-managed framework code (for example, both Midgard MVC and
Symfony2 have integrations with the Workflows component).

Which brings me to another point I wanted to take up. How about
packaging and distributing AZC through the new Composer system? That
would make the Zeta components quite accessible and easy to depend on:
http://bergie.iki.fi/blog/composer_solves_the_php_code-sharing_problem/

 Christian

/Henri

-- 
Henri Bergius
Motorcycle Adventures and Free Software
http://bergie.iki.fi/

Jabber: henri.berg...@gmail.com
Microblogs: @bergie


Re: [zeta-dev] The Piwi Framework

2011-11-04 Thread Henri Bergius
On Fri, Nov 4, 2011 at 12:35 PM, Fabrice PICCINALI
f.piccin...@fazae.com wrote:
 And what about pear ?

 pear install zeta

 It is well-know, easy to use and you can have your custom depot.

PEAR is ok for end users, but quite a pain for developers. It also
assumes a global installation of packages, while Composer installs
everything into your project. Way easier when you have multiple
projects on a machine.

Composer also generates an autoloader for you.

-- 
Henri Bergius
Motorcycle Adventures and Free Software
http://bergie.iki.fi/

Jabber: henri.berg...@gmail.com
Microblogs: @bergie


Re: [zeta-dev] PHP based build system : Phing VS Pake

2011-04-12 Thread Henri Bergius
Hi,

On Tue, Apr 12, 2011 at 6:49 PM, Gaetano Giunta
giunta.gaet...@gmail.com wrote:
 As I proposed pake in the 1szt place, no need to assert any more that I like
 it enough.

+1 from here as well. We use Pake anyway for Midgard packaging and
installation. So at least Zeta Components have already been installed
on a bunch of machines via Pake ;-)

/Bergie


Re: [zeta-dev] PHP based build system : Phing VS Pake

2011-04-12 Thread Henri Bergius
On Tue, Apr 12, 2011 at 11:31 PM, Christian Grobmeier
grobme...@gmail.com wrote:
 And while we are at it, consider to join the incubator.apache.org with
 pake. I am pretty sure there are some supporters around.

I wouldn't mind seeing Pake and some other stuff from Alexey - like
the AppServer in PHP project - under the Apache / Zeta Components
roof. At least AiP is PHP 5.3-only, though. That might be an issue?

BTW, here is a bit more complex Pake example, the Midgard MVC
installer we use:
https://github.com/midgardproject/midgardmvc_installer

/Henri


Re: [zeta-dev] Proposal: Location component

2010-11-30 Thread Henri Bergius
Hi,

On Fri, Nov 26, 2010 at 4:05 PM, Derick Rethans der...@apache.org wrote:
 You surely would like to call this a point instead? Also, are you
 thinking of only doing WGS-84 here?

WGS-84 only for now. But agreed, Point makes more sense.

 Bounding box at a radius ... that doesn't make sense. A box is not a
 circle :P

True, not the best wording there. The edges of the bbox are at the end
of the radius.

 All of those services provide information in a slightly different way
 though. Especially with admin-levels. There ought to be an abstraction
 for this.

Certainly.

 - Obtaining the location through Google's geolocation services:
  http://talks.php.net/show/maps-afup10/18 and
  http://talks.php.net/show/maps-ipc10/22 (by providing ssid/mac
  addresses).
 - Skyhook also provides an interface.

Sure, why not. Maybe not in the initial version but would make sense
to add. There are some special scenarios where talking to GeoClue
would also make sense.

 Derick

/Henri


Re: [zeta-dev] Proposal: Location component

2010-11-26 Thread Henri Bergius
Hi,

On Fri, Nov 26, 2010 at 7:45 AM, Christian Grobmeier
grobme...@gmail.com wrote:
 this component is currently GPL code. This is not compatible with the
 AL. Will this change?
 Are you the sole copyright holder for this component?

Any code we submit to Zeta will of course have its copyrights
transferred to ASF, and licensing changed to ASL. In cases where I'm
not the sole owner we will handle the necessary CLAs with the other
participants.

 Christian

/Henri


Re: [zeta-dev] Proposal: Location component

2010-11-25 Thread Henri Bergius
Hi,

On Thu, Nov 25, 2010 at 7:32 PM, Tobias Schlitt tob...@schlitt.info wrote:
 I'm not sure if it is a good thing to couple additional data to a spot
 from scratch. Wouldn't it be better to keep this part open to the user,
 so that he can extend it to fit his needs?

User can of course implement another way to represent locations, but
there is a quite standard DMS representation that I feel should be
provided by the library. Internally the library keeps all coordinates
in DD system. Third thing we should probably support is DM. All
coordinates we handle are in WGS-84.

http://www.sunearthtools.com/dp/tools/conversion.php

 Geocoding is a service for converting human-readable locations to
 actual coordinates (spots).
 I'm not sure, if the service based stuff fits into a base component,
 depending on its focus. I would imagine that the pure Location component
 should only deal with mathematical representations of geo-data and maybe
 leave the geo coding parts to a tiein.

Geocoding could be a tiein, but generally it is quite a common part of
geolocation services on other platforms. I'm sort of following GeoClue
as the reference implementation here:
http://en.wikipedia.org/wiki/GeoClue

I would draw parallels between different geocoding services supported
in this component and for example different feed modules in the Feed
component.

 AFAIK Derick has also experience in the geo location area from his
 latest work with OSM. So I CC him explicitly to get involved here.

Great! Additional contributions and ideas are certainly welcome here.
That is after all the whole point of moving the geolocation
functionality from Midgard to the wider PHP ecosystem :-)

 Toby

/Henri


Re: [zeta-dev] Autoloads and autoload file

2010-11-24 Thread Henri Bergius
Hi,

On Wed, Nov 24, 2010 at 10:44 AM, Maxime Thomas maxime.t...@gmail.com wrote:
 I've got a small reflexion about the base mechanism of ezcBase that allows
 us to add an outside repository of classes [1].

Sounds like a good idea. A common complaint about PEAR packaging from
for example Debian Policy is that you get PHP classes coming from
native packages and PHP classes coming from PEAR packages jumbled
together in /usr/share. If we want to be compliant with their policy
then a normal deployment would have multiple roots, for example like:

/usr/share/php/ZetaComponents
/usr/share/php/MidgardMVC
/usr/local/share/php/MyCoolApp

 Max

/Henri

-- 
Henri Bergius
Motorcycle Adventures and Free Software
http://bergie.iki.fi/

Skype: henribergius
Jabber: henri.berg...@gmail.com
Microblog: http://www.qaiku.com/home/bergie/


Re: [zeta-dev] Autoloads and autoload file

2010-11-24 Thread Henri Bergius
On Wed, Nov 24, 2010 at 11:43 AM, Ole Marius Smestad o...@ez.no wrote:
 For production environments it makes sense, and we have been toying with the 
 idea of adopting the scripts to also create a similar list,
 which could work with components.

In regular situations you probably need two setups:

* Production: Zeta Components and other classes coming from PEAR or
native packages (I'd love to see Zeta in Debian as soon as there is an
official Apache release)
* Development: Zeta Components and other classes coming from various
Git/SVN checkouts

The paths are likely to be quite different in these two scenarios.

For production setups the relevant Debian policies are quite
interesting. I recently packaged OpenPSA (a Midgard-based business
management suite) to Debian and the policies made things quite clear:
http://webapps-common.alioth.debian.org/draft-php/html/
http://webapps-common.alioth.debian.org/draft/html/

 Ole Marius

/Henri

-- 
Henri Bergius
Motorcycle Adventures and Free Software
http://bergie.iki.fi/

Skype: henribergius
Jabber: henri.berg...@gmail.com
Microblog: http://www.qaiku.com/home/bergie/


Re: [zeta-dev] Introducing myself

2010-11-24 Thread Henri Bergius
On Wed, Nov 24, 2010 at 12:32 PM, Tobias Schlitt tob...@schlitt.info wrote:
 The first doc should wrap up why such a library is needed and which use
 cases it should satisfy. The idea here is that we first gather all
 potential requirements before discussing a flexible design for the
 component. As you already have working source code, noting down the
 requirements you had in mind should be easy.

Ok, will do. Expect to see this mail today or tomorrow.

 Finally, when the design has been discussed here on the list, you can
 start adjusting the code to the result of the discussion. It might be,
 that this requires some refactoring to keep the new component open for
 further extension (open-close-principle) and some class name changes.

Certainly. The names are now all midgardmvc-prefixed, and we use the
classical Midgard underscores-instead-of-CamelCase policy there.
http://www.midgard-project.org/documentation/concepts-midcom-specs-components-styleguide/

 We already have MvcTools, which provides interfaces for implementing a
 clean MVC and a dummy implementation of these interfaces. So, adding a
 second MVC component does not sound reasonable to me. Otherwise we will
 end up like PEAR. But maybe our MVC component can profit from the
 Midgard MVC somehow?

Yes, looking a bit more at MVCTools I think it is better to look at
using some of the classes there in our MVC, and contributing some
alternative implementations (like our route system) back to MVCTools.
This needs a bit more thought.

 * Midgard provider for the Zeta Database layer
 * Midgard provider for the Zeta authentication layer

 I'm not sure how this would fit into Zeta Components themselves. What
 exactly do you imagine?

Just like you have Database implementations for MySQL and Postgres you
could have one that talks to database via the Midgard abstraction.

 * Maybe Alexey's PHP Application Server:
 https://github.com/indeyets/appserver-in-php

 I'll have a look at that. The title sounds interesting, though. :)

It is indeed quite cool. You have a persistent PHP process which can
help to make things quite fast (though it means you really need to
know request isolation), and you don't need to mess with setting up a
web server. I use it for all my development servers, though not yet in
production.

Alexey will be visiting us next week, so I'll pitch the idea of Zeta to him.

 The discussion about having a Repository component already came up once
 in a while on the old eZ Components list. I'd love to see a generic and
 flexible repository component for Zeta, but this must be very well
 thought out and maybe splitted up into several tie-in components.

That would be great. You already have some repository-related
functionality in Zeta, like Document, Tree, etc. so the question would
be mostly tying those together, with some Midgard repository concept
added to fill the gaps. It would be interesting to get some input from
the Jackalope (https://fosswiki.liip.ch/display/jackalope/Home) guys
as well.

 Toby

/Henri

-- 
Henri Bergius
Motorcycle Adventures and Free Software
http://bergie.iki.fi/

Skype: henribergius
Jabber: henri.berg...@gmail.com
Microblog: http://www.qaiku.com/home/bergie/


[zeta-dev] Proposal: Location component

2010-11-24 Thread Henri Bergius
Hi,

As discussed in my introduction thread[1], I'd like to propose for the
Midgard MVC location library[2] to be contributed to the Zeta
Components stack as a new components. As a first step, here are the
initial requirements for a location library.

Introduction

The purpose of this library is to make it easier for PHP developers to
work with geolocation. Geolocation is one of the emerging trends in
web development, with new possibilities rising from browser
geolocation support. This library focuses on dealing with actual
real-world locations and relations between them, not with map
visualization.

Requirements

In the initial version the location library should only deal with
geolocated points. To build full geoinformation systems there will be
need for lines, connections and areas, but these can be added in later
iterations of the library. The library should provide the following
services:

Spot

A spot is an actual location on a map. This consists of WGS-84
latitude and longitude. Optionally spots may have an altitude,
timestamp, accuracy and a human-readable description.

Spot should also be able to calculate distance and direction to other
spots, and to provide a bounding box around them at a given radius.

For display purposes spots also need to provide a way to convert them
to pretty-printed human-readable coordinates.

Geocoding
-
Geocoding is a service for converting human-readable locations to
actual coordinates (spots). There should be an interface for geocoding
utilizing various online geocoding services like GeoNames and
OpenStreetMap Nominatim. Users of the component should be able to
create their own geocoding service implementations.

Reverse geocoding
-
Reverse geocoding is a service for converting actual coordinates
(spots) into human-readable locations. There should be an interface
for reverse geocoding utilizing various online geocoding services like
GeoNames and OpenStreetMap Nominatim. Users of the component should be
able to create their own reverse geocoding service implementations.

IP geocoding

IP geocoding is a service for converting an IP address to an
approximate geographical location of the network. This can be used to
locate users of a website for instance, in cases where browser
geolocationing is not possible. The IP geocoding interface should be
able to talk to at least HostIP web service to perform geocoding.

1: 
http://mail-archives.apache.org/mod_mbox/incubator-zeta-dev/201011.mbox/%3caanlkti=2j_vhbrmc3x55ekkjojwtuq-=9ddms0zvn...@mail.gmail.com%3e
2: https://github.com/bergie/midgardmvc_helper_location


[zeta-dev] Introducing myself

2010-11-23 Thread Henri Bergius
Hi,

Just to introduce myself, I'm Henri Bergius, one of the core
developers of the Midgard framework. Midgard is one of the oldest open
source web frameworks / CMSs for PHP. Midgard is a bit unique that in
addition to the actual web layer written in PHP we have a content
repository[1] that our system uses for all persistent data storage
written in C (well, Vala in the next iteration, but C is what Vala
anyway generates), with PHP-level access coming from a specific
extension. Midgard has always focused on clean URLs, flexible
templating, valid mark-up, integration with third party web services
and high level of security.

Personally I've been frustrated for a long time with the lack of a
generic PHP ecosystem. As PEAR has largely stagnated, almost all
interesting library and tool work happens either in complete isolation
or within more specific ecosystems like Drupal, ZF, Midgard etc. I see
the introduction of Zeta Components into Apache as a promising
development that might be the beginning of a generic PHP code-sharing
ecosystem[2].

As such, this is an area that both myself, and the Midgard Project in
general should be interested in.

So, how to get started? I guess the main thing is to get familiar with
the existing Zeta Components, and then to start thinking of what of
those we could use within our framework, and what parts of our
framework could be contributed back to Zeta. Some low-hanging fruit
could include:

* Geolocation library: https://github.com/bergie/midgardmvc_helper_location
* Our MVC framework: https://github.com/midgardproject/midgardmvc_core
* Midgard provider for the Zeta Database layer
* Midgard provider for the Zeta authentication layer
* Maybe Alexey's PHP Application Server:
https://github.com/indeyets/appserver-in-php

If collaboration on some of these would sound good, I'll be happy to
start the discussion in the Midgard end of things.

1: http://bergie.iki.fi/blog/what_is_a_content_repository/
2: http://bergie.iki.fi/blog/php-finally_getting_an_ecosystem/

-- 
Henri Bergius
Motorcycle Adventures and Free Software
http://bergie.iki.fi/

Skype: henribergius
Jabber: henri.berg...@gmail.com
Microblog: http://www.qaiku.com/home/bergie/


Re: [zeta-dev] Introducing myself

2010-11-23 Thread Henri Bergius
Hi,

On Tue, Nov 23, 2010 at 11:57 PM, Jerome Renard jerome.ren...@gmail.com wrote:
 As you said, the very first thing to do is to get familiar with Zeta 
 Components.
 But with regards to what you have already done with Midgard, I believe
 it will be a piece of cake.

Yep. I'll do some experiments today, and start pitching the idea to
the rest of our community.

 * Geolocation library: https://github.com/bergie/midgardmvc_helper_location

 This one is really interesting.

Another that might fit into Zeta quite easily is the Forms library.
This also is a completely standalone package, though it has a helper
for autogenerating forms from Midgard2 schemas (which could be adapted
to Zeta database schemas too).

https://github.com/midgardproject/midgardmvc_helper_forms
http://www.qaiku.com/go/6nbc/

As these two have quite minimal external dependencies I guess they
would be the first potential contributions from us to Zeta. The other
pieces are a bit more interconnected, and some overlap with existing
Zeta stuff so probably it is best to work together first on the
simpler stuff and tackle those later.

 If possible I would prefer getting only one MVC component in order to
 avoid confusion
 for users if they want to do MVC. This does not meant yours is bad at
 all, it just means
 that being able to compare differences with MVCTools [3] and your MVC
 framework would
 be ideal first. And then we could see how to manage with this, maybe
 we could integrate
 some parts of your system in MVCTools. This needs to be debated actually.

Agreed that multiple MVC implementations in Zeta doesn't sound like a
good idea. Actually, probably having any full MVC implementation there
doesn't make sense. Therefore the term MVCTools is a good choice, as
the project can provide common building blocks for different MVC/CMS
projects to implement :-)

On a quick look at MVCTools, Midgard MVC is conceptually, and in some
places also API-wise quite similar.

Here's the basic description of how our MVC works:
https://github.com/midgardproject/midgardmvc_core/blob/master/documentation/index.markdown

Some quick points:
* Routes work very similarly, though we use different URL mapping
syntax based on URI templates[1]. So this could be just another
MvcRoute implementation
* We also rely on a Request object, and use it for request isolation
(everything related to a request is kept in that object as we have to
support multiple requests within one PHP run)
* In Midgard MVC we have full subrequest support, so in your template
you can for example make a subrequest to display five latest news
items
* In our case Routing Information would also contain the matched
variables from the URL (so URL /news/meego/2 matched to a route
/news/{$category}/{$number} would provide array('category' = 'meego',
'number' = 2)
* Our routes are also used for generating URLs when applications want
to redirect or display links
* We do not require controllers to extend any baseclass as the
component interface is quite trivial
* In our case controller actions are named with pattern HTTP
verb_action name, so you can define separate action methods for
handling GET and POST (for example) for a route
* Controller's results in our case are just stored to a data array
in the controller, so actions don't return anything. In cases of
errors they're supposed to throw exceptions
* We have a concept similar to MvcTools Filters called Injectors. At
the moment you have only two of these: ones called after request has
been parsed but before controller is called, and ones after controller
has been run but before we go to templating
* Views is probably the area where our approaches diverge the most. In
Midgard the whole thing is run by template composition, where route
only provides aliasing information on how to handle element inclusion
in the template. We use TAL as the default templating system

 Anyway welcome to the Zeta Components community :)

Thanks! The Midgard project has always been quite isolated from the
rest of the PHP world (though I guess many other similar projects are
also quite insular). Hopefully this collaboration can change things
:-)

 Jérôme Renard

/Henri

1: http://tools.ietf.org/html/draft-gregorio-uritemplate-04

-- 
Henri Bergius
Motorcycle Adventures and Free Software
http://bergie.iki.fi/

Skype: henribergius
Jabber: henri.berg...@gmail.com
Microblog: http://www.qaiku.com/home/bergie/