Posted by robloach on July 23, 2009 at 3:52pm
Start:
2009-08-12 18:30 - 21:00 America/New_York Event type:
User group meeting
DrupalCon Paris is coming up quickly, so August's Drupal NYC meet will consist of mental (and physical) preparations for DrupalCon through a discussion of our favorite Modules For That, and a performance tuning discussion with litwol.
- When?
- August 12th, 2009, 6:30 PM - 9:00 PM
- Where?
- 7 World Trade Center, 29th Floor (Mansueto Ventures)
- Directions?
- http://tinyurl.com/mansuetoventuresdirections
- Plans?
-
- Who are you? What do you want to get out of this?
- Case Study: Poverty's Demise by Darryl Penrice (details)
- There's a Module for That: discussion of the little known module gems.
- Advanced Performance Tuning discussion with litwol - Click for more info (anchor)
- Drupal Drinks and Drupal Fun at the classic Dakota Roadhouse
- Homework?
- Create a list of all your favorite modules and be prepared to talk about its use. Rules people, we expect a demonstration!
SIGN UP CLOSED: If you'd like to attend, contact Oleg asking him to add you to the guest list so that you can get into the building. Thanks!

Comments
Could anyone please video
Could anyone please video tape "Advanced Performance Tuning with litwol"? I won't be there, but I know he will do something amazing and crazy that will make me regret that I can't be there.
I Second Video Taping
I also probably won't be able to make it. Would greatly appreciate someone video taping the meetup. Or maybe moving it to an alternate date (wishful thinking?).
Something that I've been
Something that I've been interested/obsessed with for some time is the poor performance of rarely used sites. I noticed, especially when a site is under development and not being visited by anybody but the client and I, that the site is very slow on the initial load if I haven't visited it in a while. The page will will take 8 to 15 seconds to load. The client is not impressed and I hate the idea of a visitor having that experience.
Yes, I have caching, compression, CSS, JS turned on. (I don't cache blocks as I have noticed that does very funny things to my sites.)
I learned that when cron runs, it will clear the cache tables which has caused me to reevaluate whether I need to run cron every 15 minutes, but I also have this performance problem when visiting sites first thing in the morning that aren't running cron (dev environment).
I thought it might be a module that I am using, but just this morning I saw that a freshly installed version of Open Atrium was loading slowly on my initial visit.
I'm hoping that the issue of very low volume sites can also be addressed? I would like to come to a better understanding of how the caching layer works, how Drupal knows when to regenerate cache and how using Views (with it's own caching layer) might complicate things.
I should also point out that I've discovered that Boost is trying to address this issue by implementing "pre-caching" [1]. There is a patch that allows an admin to manually invoke a crawler (using the batch API) to hit every node -- no, not the best solution for big sites, but it will work for me with sites under several hundred nodes. There is mention of prioritizing nodes, by only hitting ones in menus, or specific URLs, etc. There is also discussion of putting this on cron, which is the only real solution to me since cron's cache clearing step is what's causing my problem in the first place. (Or is my solution easier -- like overriding the call in cron that clears the cache?)
[1] http://drupal.org/node/337391
Since I posted the above,
Since I posted the above, I've come up with a decent solution. I wrote a module that allows users to designate specific URLs for pre-caching. This module will call these URLs when cron is called, so important pages are cached immediately after the cron flushes the cache. There is more here: http://capellic.com/blog/pre-caching-low-volume-website
There's a Module for That!
We could talk about all our favourite non-popular modules and send some of them over to There's A Module For That at @drupalmods.
Awesome idea!
Awesome idea!
I like this
I like this idea.
Video...
happy to bring my video camera and take care of this or use one that others may have...
joanne@civicactions.com
What would be really cool is
What would be really cool is if we had the means of setting up a camera on a mini tripod in the middle of the table, pointed at the presenter/screen, plug it into a laptop and then streamed it over livestream.com so people can watch in real time and it's archived. I recall litwol filming some of the meetups -- but the process of getting those up on the web is so time consuming.
NYC Drupal Meetups On The Web
I would be more than willing to do some editing, transcode, post and host these videos and put them together. I'd love to attend these meetups, but can't since I'm about 45 minutes outside the city via LIRR and will never be able to get there on time for these evening meets unless I start arranging time off, which I can't do for the next few months. If I could watch them afterwards, I would be really happy so I'd love to do whatever work is needed to get these edited and up online where people can watch them and subscribe to them as a video podcast.
Rules Module
I am wondering if anybody is using the Rules module and if they could explain how it is used with or as a replacement of Triggers/Actions. Demo is extra credit!
rules
I'm using rules for some work I'm doing at Sony, but I won't be at this month's meetup. I'd be happy to present on it next month though.
http://www.thomasturnbull.com
http://twitter.com/thomasturnbull
where I recently used rules module
on http://opengreenmap.org I am using the Rules module in a few places where I need more control than is given by only triggers and actions.
For example, using only triggers and actions, I can set something to happen when nodes are updated, but I can't have that happen only when a certain node type is updated or even only when a certain field in that type changes. With rules I can.
On that site, a point on a map (called a "green site") can be added by a user that is a member of that map/group or by someone that is not. If you are not a member of that group, the site you add remains viewable only to group members until a group admin marks it as approved. I want to send an email to the user when the site they suggested is approved.
With rules I was able to set it so that when a node of type "green site" is updated and the value of the field "awaiting_approval" changes from NULL to 1, an email is sent to the user that had submitted the node that contains links back to the map and to the site they added.
here is the export of that rule, import this into your dev site to see how it is setup
array (
'rules' =>
array (
'rules_3' =>
array (
'#type' => 'rule',
'#set' => 'event_node_update',
'#label' => 'send email to user that suggested a site upon approval',
'#active' => 1,
'#weight' => '0',
'#categories' =>
array (
),
'#status' => 'custom',
'#conditions' =>
array (
0 =>
array (
'#weight' => 0,
'#info' =>
array (
'label' => 'Updated content is Green Site',
'arguments' =>
array (
'node' =>
array (
'type' => 'node',
'label' => 'Content',
),
),
'module' => 'Node',
),
'#name' => 'rules_condition_content_is_type',
'#settings' =>
array (
'type' =>
array (
'green_site' => 'green_site',
),
'#argument map' =>
array (
'node' => 'node',
),
),
'#type' => 'condition',
),
1 =>
array (
'#type' => 'condition',
'#settings' =>
array (
'field_name' => 'field_awaiting_approval',
'#argument map' =>
array (
'node' => 'node',
'node_unchanged' => 'node_unchanged',
),
),
'#name' => 'content_rules_field_changed',
'#info' =>
array (
'label' => 'Updated content\'s field \'field_awaiting_approval\' has been changed',
'arguments' =>
array (
'node' =>
array (
'type' => 'node',
'label' => 'Content containing changes',
),
'node_unchanged' =>
array (
'type' => 'node',
'label' => 'Content not containing changes',
),
),
'module' => 'CCK',
),
'#weight' => 0,
),
2 =>
array (
'#type' => 'condition',
'#settings' =>
array (
'code' => 'return $author->uid > 0;
',
'vars' =>
array (
0 => 'author',
),
),
'#name' => 'rules_condition_custom_php',
'#info' =>
array (
'label' => 'Execute custom PHP code',
'module' => 'PHP',
'eval input' =>
array (
0 => 'code',
),
),
'#weight' => 0,
),
),
'#actions' =>
array (
0 =>
array (
'#weight' => 0,
'#info' =>
array (
'label' => 'Send a mail to a user',
'arguments' =>
array (
'user' =>
array (
'type' => 'user',
'label' => 'Recipient',
),
),
'module' => 'System',
'eval input' =>
array (
0 => 'subject',
1 => 'message',
2 => 'from',
),
),
'#name' => 'rules_action_mail_to_user',
'#settings' =>
array (
'from' => '[author:site-mail]',
'subject' => 'Your suggested Green Site has been approved',
'message' => 'Your Green Site suggestion, [node:title], has been approved by the Mapmaker
you can see your site on the map, [node:ogname], at
http://opengreenmap.org/node/[node:og-id]',
'#argument map' =>
array (
'user' => 'author',
),
'#eval input' =>
array (
'token_rules_input_evaluator' =>
array (
'message' =>
array (
0 => 'node',
),
'from' =>
array (
0 => 'author',
),
),
),
),
'#type' => 'action',
),
),
),
),
'rule_sets' =>
array (
),
)
Not another anon caching technique
There are too many solutions available to optimizing anonymous user performance experience. My discussion will focus on how you can achieve the same level performance for authenticated users. Being a New Yorker i hate having my time wasted on big over the top theories, so instead i will focus on practical solutions that are flexible enough to adapt to other sites' needs.
I will present with a healthy balance of theory behind this architecture and practical examples how to achieve it.
Sometimes it is more important to be able to ask correct questions of your infrastructure to identify where you can optimize things rather than being told a one off solution, so i will focus a little on how to take a look at YOUR infrastructure and optimize it to YOUR client's needs (as well as what tools to use).
Who is this for?: Not beginners, not themers. Developers, performance tuners and business owners that can hire developers/performance tuners but need convincing what I'll be showing actually works.
------------------
Sometimes interesting things appears on http://litwol.com
Drupal Guild will meet at the small tables
bring your questions
as always for n00bies
johnvsc@gmail.com
917.676.0677
I'd be happy to help out
I'd be happy to help out with the Guild at the small tables.
There sounds like a few really interesting things going in the main room, but I'm sure I can get notes from someone.
Guild Modules?
Although it's great to get different discussions going, I'd love to hear what everyone's favourite modules and solutions are! :-) ...... Oleg asked for the small tables for the performance tuning talk because he didn't want the projector. Anyway we could use that for the Guild talk?
Lucky we have many small
Lucky we have many small tables :)
------------------
Sometimes interesting things appears on http://litwol.com
Whatever works best
I think that the introductions as a whole group are best... and we can break off into smaller groups for economy sake.
I don't mind being out near oleg if he wears some cologne ... or brings some vodka
8)~
johnvsc@gmail.com
917.676.0677
I agree. And this is why I
I agree. And this is why I think that sharing modules/recipes/solutions should happen when we're all together. Not sure how it should work in the agenda, though. If we do it first, then new folks aren't getting as much out of it because they haven't been able to yet ask their burning questions to get that initial foundation.
Great meetup everyone
As always thanks to everyone. Darryl, your presentation was awesome!