Properly load drupal blocks in drupal 7

Some people like to load blocks in drupal 7 like this

  $newsletter_block = module_invoke('mysite_newsletter', 'block_view', ',my_site_newsletter_form');
  $vars['newsletter_block'] = $newsletter_block;

but this will skip some hooks and you will could have a problem. Proper way would be like below, this would be put in node preprocess function template_preprocess_node

$block = block_load('my_site_newsletter', 'my_site_newsletter_form');
$block_render = _block_render_blocks([$block]);
$vars['newsletter_block']  = (array)$block_render["my_site_newsletter_my_site_newsletter_form"];