Opensource ideas

Hey guys.

I’d like to spend some time working on open source for ruby on rails
community.

Before I start, I just wanted to know if there are any special open
source tools and products, you are missing?
I know, I can participate in existing projects (and I will), but I’d
also be glad to hear ideas about new open source projects.

Thanks in advance.

On Mon, Oct 11, 2010 at 2:54 AM, golubevpavel
[email protected]wrote:

Hey guys.

I’d like to spend some time working on open source for ruby on rails
community.

Before I start, I just wanted to know if there are any special open
source tools and products, you are missing?

Maybe it is just me but I would think such ideas come from actually
developing in Rails… so if you are developing, what is it you are
missing, what could be better? And if you are not, maybe that is the
first
step. just my 2 cents or maybe I misunderstand the question.

Thanks for your reply, David.

Agree, I’ve got several ideas myself.
But most of them are kinda specific.
Well, one of ideas is to implement identity map for ActiveRecord.
I need it, but I am not sure, if community does. That’s why I’m
asking.

golubevpavel wrote:

Thanks for your reply, David.

Agree, I’ve got several ideas myself.
But most of them are kinda specific.
Well, one of ideas is to implement identity map for ActiveRecord.
I need it, but I am not sure, if community does. That’s why I’m
asking.

You’re a member of the community. If you need it, write it, release it,
and see what happens!

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

Marnen Laibow-Koser wrote:

golubevpavel wrote:

Thanks for your reply, David.

Agree, I’ve got several ideas myself.
But most of them are kinda specific.
Well, one of ideas is to implement identity map for ActiveRecord.
I need it, but I am not sure, if community does. That’s why I’m
asking.

You’re a member of the community. If you need it, write it, release it,
and see what happens!

…however, if by “identity map” you mean caching queries so that you
don’t retrieve the same DB query twice in the course of one HTTP
request, ActiveRecord already does this.

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

Since marmen is a veteran he my be able to correct me if im wrong but,
i
think right now there is no gem to interact with sass mixins from within
rails controllers (simple I/O operations), that would be nice, to have
kind
of an observer that can change a sass file and concequently its
generated
css according to some variable, this could be achieved by adding classes
to
and html element but my css would requiere to have every possible class.
This would allow me to do things like darken the color pallete of my
site
according to the hour of the day, if i go the way of adding multiple
classes
and adding removing them i would need several class for the effect. It
would
allow the sass file to be even smaller i think. It would awesome if it
could
make a fork per user and delete it when the session ends.

NOTE : the same effect can be done with JS but again i would need to
have
all the classes in my sass file or it would not be persistent. This is
all
a crazy idea but it my be handy.

But right now what i want to see is a text paging gem, that can split a
block of text and save it on different pages on the DB, it would be a
polymorphic table blahblah with an atc_as_text_pager ,the usual stuff,
with
the option of spliting by number of letters , words or an html container
tag, like div or p. Then i could put this to work with will_paginate. It
would be veeery handy.

@Marnen

If you can point me into a deep guide for extending ActiveRecord with
gems i
would appreciate it.

That might be nice. I’d love to be able to do dynamic Sass per user
more easily, to allow for custom styling.

No. Just have multiple CSS or Sass files (each one defining the same
classes), then do
= stylesheet_tag “hour_#{@hour}”.

Or run a Rake task every hour to regenerate the CSS files from Sass with
the variable.

This is what the gem is for, to avoid all the above.

…whenever that is. Session ending is not always easy to determine,
which is why we need brute-force expiration logic.

that is to have a sass per client during session so they can style the
thier profile page
an such. And only if they want to save it.

And veeeeery wrong. The database should store the whole block of text.
The view and controller should decide how to split it. This makes the
presentation more flexible: what if you want short pages on the mobile
phone, long pages on the computer, and whole articles in the RSS feed?

I dont care about how to create the solution i just want the result ,
that i
could have my view
of one specific size and paginate the text, i dont care how is done i
just
want a gem to do it,
right now i am using ajax for this.

Why do you think I know how to do this? :slight_smile: I’m just starting to write
my first AR plugin.

Because you are very active in the forum and have been programing ruby
longer than me =).
Where are you getting the info for your plugin? how are you figuring out
how
to do it? right now
i jsut look at other polugins but reverse engineering is not fun.

Radhames Brito wrote:

Since marmen is a veteran he my be able to correct me if im wrong but,
i
think right now there is no gem to interact with sass mixins from within
rails controllers (simple I/O operations),

Why should there be? The controllers shouldn’t care one bit about CSS.

What are you envisioning here?

that would be nice, to have
kind
of an observer that can change a sass file and concequently its
generated
css according to some variable,

That might be nice. I’d love to be able to do dynamic Sass per user
more easily, to allow for custom styling.

this could be achieved by adding classes

to
and html element but my css would requiere to have every possible class.
This would allow me to do things like darken the color pallete of my
site
according to the hour of the day, if i go the way of adding multiple
classes
and adding removing them i would need several class for the effect.

No. Just have multiple CSS or Sass files (each one defining the same
classes), then do
= stylesheet_tag “hour_#{@hour}”.

Or run a Rake task every hour to regenerate the CSS files from Sass with
the variable.

It
would
allow the sass file to be even smaller i think. It would awesome if it
could
make a fork per user and delete it when the session ends.

…whenever that is. Session ending is not always easy to determine,
which is why we need brute-force expiration logic.

[…]

But right now what i want to see is a text paging gem, that can split a
block of text and save it on different pages on the DB, it would be a
polymorphic table blahblah with an atc_as_text_pager ,the usual stuff,
with
the option of spliting by number of letters , words or an html container
tag, like div or p. Then i could put this to work with will_paginate. It
would be veeery handy.

And veeeeery wrong. The database should store the whole block of text.
The view and controller should decide how to split it. This makes the
presentation more flexible: what if you want short pages on the mobile
phone, long pages on the computer, and whole articles in the RSS feed?

@Marnen

If you can point me into a deep guide for extending ActiveRecord with
gems i
would appreciate it.

Why do you think I know how to do this? :slight_smile: I’m just starting to write
my first AR plugin.

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

Radhames Brito wrote:
[…]

just
want a gem to do it,
right now i am using ajax for this.

I don’t see why you need Ajax here. What I think you want – and I’ve
never done this, so I could be wrong – is something like this:

class Article
def paginate(format = :web)
case format
when :web
content.in_big_chunks
when :mobile
content.in_smaller_chunks
when :rss
content
end
end
end

class ArticlesController
def show
@paginated_content = Article.find(params[:id]).paginate(:web)

# then use will_paginate or something to display all the pages

end
end

That’s if you really want to do this at all. In most cases, I believe
that splitting an article into multiple pages on the Web is poor UI
design. If it’s one article, I’d much rather read it on one long page
than 10 short ones.

to do it? right now
i jsut look at other polugins but reverse engineering is not fun.

Same way I learn anything else in Rails: read the rdoc and search the
Web for whatever information I can find.

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

This is not about query caching, but about having only one instance of
the object within a session.
Say, Post.find(1) and User.find(1).posts.detect{|it| it.id == 1} would
return you different objects.
Ideal identity map would fix that problem.

On Mon, Oct 11, 2010 at 9:34 AM, Marnen Laibow-Koser
[email protected] wrote:

… Session ending is not always easy to determine,
which is why we need brute-force expiration logic.

Which, being the single biggest current Rails deficiency (IMO), would
be an awesome project for someone to take on. :slight_smile:

(Yes, it’s on my own to-do list, but that list is far too long
already…)


Hassan S. ------------------------ [email protected]
twitter: @hassan

On Oct 11, 1:36pm, golubevpavel [email protected] wrote:

This is not about query caching, but about having only one instance of
the object within a session.
Say, Post.find(1) and User.find(1).posts.detect{|it| it.id == 1} would
return you different objects.

…at the cost of a huge amount of overhead: every object ever touched
in the session would have to be cached, if I understand you correctly.

Ideal identity map would fix that problem.

Or maybe just punt to something like MagLev.

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

On Mon, Oct 11, 2010 at 1:54 PM, Marnen Laibow-Koser [email protected]
wrote:

It’s not so much a Rails deficiency as a conceptual mismatch between
HTTP and session-oriented logic.

Perhaps. But Java servlet containers do just fine at managing the
concept of session timeout, which is what I’d like to see in Rails.


Hassan S. ------------------------ [email protected]
twitter: @hassan

On Oct 11, 4:50pm, Hassan S. [email protected]
wrote:

On Mon, Oct 11, 2010 at 9:34 AM, Marnen Laibow-Koser

[email protected] wrote:

… Session ending is not always easy to determine,
which is why we need brute-force expiration logic.

Which, being the single biggest current Rails deficiency (IMO), would
be an awesome project for someone to take on. :slight_smile:

It’s not so much a Rails deficiency as a conceptual mismatch between
HTTP and session-oriented logic. Since HTTP is stateless, the concept
of a session is really something grafted on top of it and not too
compatible with it.

(Yes, it’s on my own to-do list, but that list is far too long already…)


Hassan S. ------------------------ [email protected]
twitter: @hassan

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]