Electronics & Programming

develissimo

Open Source electronics development and programming

  • You are not logged in.

#1 June 10, 2010 19:45:46

James O.
Registered: 2009-11-02
Reputation: +  0  -
Profile   Send e-mail  

Thinking of Patterns


I've been toying with the idea of building some higher level
components for Python. More of business frameworks for solving
certain kinds of problems. Most of the frameworks I see for Python
and Django are fairly horizontal and low level, for which I think
there is a great need, but my interest is in building more vertical-
market frameworks that developers and businesses can use as building
blocks for applications (By horizontal I mean things like
contrib.auth which solves a technical issue for pretty much any
application and by vertical I have more in mind things like
Scheduling, Asset Tracking, Item-Model sorts of Patterns and setups)

Does this seem like something people could actually find a use for?

--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to
django-users+unsubscr...@googlegroups.com.
For more options, visit this group athttp://groups.google.com/group/django-users?hl=en.

Offline

#2 June 11, 2010 00:17:22

Erkan Ö.
Registered: 2009-11-02
Reputation: +  0  -
Profile   Send e-mail  

Thinking of Patterns


Hi James,

I've been searching for a good way of developing an open source Scheduling,
Asset Tracking and Project Management system too.

But I think your idea is something bigger than mine. I was trying to design
a software system specialized for animation and fx studios. Actually, what I
aim is pretty much like this (www.shotgunsoftware.com). But also has asset
management and pipeline stuff.

I would love to here more about what you have in you mind.

E.Ozgur Yilmaz
Lead Technical Director
eoyilmaz.blogspot.com
www.ozgurfx.com


On Thu, Jun 10, 2010 at 7:54 PM, James O'Connor <jayfr...@gmail.com> wrote:

> I've been toying with the idea of building some higher level
> components for Python. More of business frameworks for solving
> certain kinds of problems. Most of the frameworks I see for Python
> and Django are fairly horizontal and low level, for which I think
> there is a great need, but my interest is in building more vertical-
> market frameworks that developers and businesses can use as building
> blocks for applications (By horizontal I mean things like
> contrib.auth which solves a technical issue for pretty much any
> application and by vertical I have more in mind things like
> Scheduling, Asset Tracking, Item-Model sorts of Patterns and setups)
>
> Does this seem like something people could actually find a use for?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To post to this group, send email to django-us...@googlegroups.com.
> To unsubscribe from this group, send email to
> django-users+unsubscr...@googlegroups.com<django-users%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
>http://groups.google.com/group/django-users?hl=en.
>
>

--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to
django-users+unsubscr...@googlegroups.com.
For more options, visit this group athttp://groups.google.com/group/django-users?hl=en.

Offline

#3 June 12, 2010 01:17:47

James O.
Registered: 2009-11-02
Reputation: +  0  -
Profile   Send e-mail  

Thinking of Patterns


Wel what I have in mind is wondering if it would be useful to build
full implementations of what would normally be called "Analysis
Patterns", like Designed Patterns but commone object modeling
solutions to common domain problems. The simplest is problem the Item-
ItemDecription pattern, which as an abstraction that models Car-
CarModel

Simple Example

class Car:
vin = ''
color = ''
model = CarModel()

class CarModel:
modelName = ''
make = ''

so I may have a given instance of a Car with a given vin and color
( a silver Honda Accord) which is a given Model ( Accord ).

This pattern is nothing new; it's a fairly common occurrence in lot of
software, particularly anything involving Products. It's also fairly
simple.

But similar sorts of "common solutions to common problems" occur
pretty regularly. Assets->CurrentLocation->OwningLocation, etc..

So what I've been thinking about is building up implementations of
those patterns as re-useable components. Similar to what we have in
infrastructures that handle common problems at lower levels (anyone
actually written a CGI handler recently?). When I worked in Smalltalk
I did very similar work and one thing I worked on was the idea of
building up such patterns as interactions of Roles and being able to
assign other classes to play certain roles in those patterns.

For example, I could have Item-ItemDescription as a pattern of classes
and then provide that "Car plays the role of Item, CarModel plays the
role if ItemDescription", not through inheritance but through
aggregation. Thus your local domain class of Car captures your
specific domain information, but also picks up the data, and most
importantly the behavior and relationships within the pattern, of
Item.

Now, as I was thinking about that, I ran across the issue that , at
least with Django (and TG, IIRC) you can't simply write python classes
and count on them to be put in the database properly. They have to be
subclasses of objects.Model. The good part of this is that when you
write your classes, you get DB support for free. The bad part is that
it's a little harder to write "Architecture Neutral" domain classes so
you need implementations of your domain architecture written against
several possible ORM architectures

So, I've been wondering if this is a bit idealistic or whether it
could be of use to anyone (yeah, I can write it, I've done it
before :) would anyone use it? )

Take care,
Jay



On Jun 10, 2:05 pm, Erkan Özgür Yılmaz <eoyil...@gmail.com> wrote:
> Hi James,
>
> I've been searching for a good way of developing an open source Scheduling,
> Asset Tracking and Project Management system too.
>
> But I think your idea is something bigger than mine. I was trying to design
> a software system specialized for animation and fx studios. Actually, what I
> aim is pretty much like this (www.shotgunsoftware.com). But also has asset
> management and pipeline stuff.
>
> I would love to here more about what you have in you mind.
>
> E.Ozgur Yilmaz
> Lead Technical Director
> eoyilmaz.blogspot.comwww.ozgurfx.com
>
>
>
> On Thu, Jun 10, 2010 at 7:54 PM, James O'Connor <jayfr...@gmail.com> wrote:
> > I've been toying with the idea of building some higher level
> > components for Python.  More of business frameworks for solving
> > certain kinds of problems.  Most of the frameworks I see for Python
> > and Django are fairly horizontal and low level, for which I think
> > there is a great need, but my interest is in building more vertical-
> > market frameworks that developers and businesses can use as building
> > blocks for applications  (By horizontal I mean things like
> > contrib.auth which solves a technical issue for pretty much any
> > application and by vertical I have more in mind things like
> > Scheduling, Asset Tracking, Item-Model sorts of Patterns and setups)
>
> > Does this seem like something people could actually find a use for?
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Django users" group.
> > To post to this group, send email to django-us...@googlegroups.com.
> > To unsubscribe from this group, send email to
> > django-users+unsubscr...@googlegroups.com<django-users%2bunsubscr...@google
> > groups.com>
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/django-users?hl=en.

--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to
django-users+unsubscr...@googlegroups.com.
For more options, visit this group athttp://groups.google.com/group/django-users?hl=en.

Offline

#4 June 12, 2010 15:29:18

b.
Registered: 2009-11-02
Reputation: +  0  -
Profile   Send e-mail  

Thinking of Patterns


On Jun 11, 7:17 pm, "James O'Connor" <jayfr...@gmail.com> wrote:
> Wel what I have in mind is wondering if it would be useful to build
> full implementations of what would normally be called "Analysis
> Patterns", like Designed Patterns but commone object modeling
> solutions to common domain problems.  

I've been struggling with much the same idea through several technical
platforms (I am an old Smalltalk programmer, too). My conclusion has
become that starting with the abstractions can cause a lot of
problems. I have evolved to starting with the particular (concrete
users with concrete problems) and generalize reusable apps from
several instances of them.

That's a slow way to go. We'll see if it proves out.

I do have common patterns in the back of my mind, but they tend to
miss a lot of the interesting real-world kinks.

> So what I've been thinking about is building up implementations of
> those patterns as re-useable components.  Similar to what we have in
> infrastructures that handle common problems at lower levels (anyone
> actually written a CGI handler recently?).  When I worked in Smalltalk
> I did very similar work and one thing I worked on was the idea of
> building up such patterns as interactions of Roles and being able to
> assign other classes to play certain roles in those patterns.

I tried an Inventory app like that once, which you can see here:http://dpaste.com/206415/I had in mind a set of reusable/plug-compatible business apps in Pinax
style, but never went any farther, because it always smelled like
premature abstraction for the actual projects I had going.

I'm also an old ERP programmer, and consider those systems to be
dreadful design monstrosities, so would not like to work on anything
that emulates them (which is what I see in most open-source business
software projects).

> Now, as I was thinking about that, I ran across the issue that , at
> least with Django (and TG, IIRC) you can't simply write python classes
> and count on them to be put in  the database properly. They have to be
> subclasses of objects.Model.  The good part of this is that when you
> write your classes, you get DB support for free.  The bad part is that
> it's a little harder to write "Architecture Neutral" domain classes so
> you need implementations of your domain architecture written against
> several possible ORM architectures

If you use abstract base class models, you can separate yourself from
the DB in Django, but not from the ORM architecture.

(P.S. I don't think that "Architecture Neutral" domain classes would
be useful. You'd do lot of this stuff differently in Smalltalk, for
instance. Almost the same for different ORMs.)

> So, I've been wondering if this is a bit idealistic or whether it
> could be of use to anyone (yeah, I can write it, I've done it
> before :) would anyone use it? )

Brian Rosner's django-groups is a Django app that is actually being
used that might be close to what you have in mind.http://github.com/brosner/django-groupsIt gets mixed reviews: powerful, flexible, ingenious, but some people
find it easier and simpler to roll their own. And Brian generalized
from some earlier use cases, he did not start out with the abstraction.

--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to
django-users+unsubscr...@googlegroups.com.
For more options, visit this group athttp://groups.google.com/group/django-users?hl=en.

Offline

Board footer

Moderator control

Enjoy the 16th of December
PoweredBy

The Forums are managed by develissimo stuff members, if you find any issues or misplaced content please help us to fix it. Thank you! Tell us via Contact Options
Leave a Message
Welcome to Develissimo Live Support