var gform;gform||(document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),document.addEventListener("gform/theme/scripts_loaded",function(){gform.themeScriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,themeScriptsLoaded:!1,isFormEditor:()=>"function"==typeof InitializeEditor,callIfLoaded:function(o){return!(!gform.domLoaded||!gform.scriptsLoaded||!gform.themeScriptsLoaded&&!gform.isFormEditor()||(gform.isFormEditor()&&console.warn("The use of gform.initializeOnLoaded() is deprecated in the form editor context and will be removed in Gravity Forms 3.1."),o(),0))},initializeOnLoaded:function(o){gform.callIfLoaded(o)||(document.addEventListener("gform_main_scripts_loaded",()=>{gform.scriptsLoaded=!0,gform.callIfLoaded(o)}),document.addEventListener("gform/theme/scripts_loaded",()=>{gform.themeScriptsLoaded=!0,gform.callIfLoaded(o)}),window.addEventListener("DOMContentLoaded",()=>{gform.domLoaded=!0,gform.callIfLoaded(o)}))},hooks:{action:{},filter:{}},addAction:function(o,r,e,t){gform.addHook("action",o,r,e,t)},addFilter:function(o,r,e,t){gform.addHook("filter",o,r,e,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,r){gform.removeHook("action",o,r)},removeFilter:function(o,r,e){gform.removeHook("filter",o,r,e)},addHook:function(o,r,e,t,n){null==gform.hooks[o][r]&&(gform.hooks[o][r]=[]);var d=gform.hooks[o][r];null==n&&(n=r+"_"+d.length),gform.hooks[o][r].push({tag:n,callable:e,priority:t=null==t?10:t})},doHook:function(r,o,e){var t;if(e=Array.prototype.slice.call(e,1),null!=gform.hooks[r][o]&&((o=gform.hooks[r][o]).sort(function(o,r){return o.priority-r.priority}),o.forEach(function(o){"function"!=typeof(t=o.callable)&&(t=window[t]),"action"==r?t.apply(null,e):e[0]=t.apply(null,e)})),"filter"==r)return e[0]},removeHook:function(o,r,t,n){var e;null!=gform.hooks[o][r]&&(e=(e=gform.hooks[o][r]).filter(function(o,r,e){return!!(null!=n&&n!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][r]=e)}});
/* = 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_1');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_1').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_1').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_1').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_1').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_1').val();gformInitSpinner( 1, 'https://joemcnally.com/wp-content/plugins/gravityforms/images/spinner.svg', true );jQuery(document).trigger('gform_page_loaded', [1, current_page]);window['gf_submitting_1'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_1').replaceWith(confirmation_content);jQuery(document).trigger('gform_confirmation_loaded', [1]);window['gf_submitting_1'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_1').text());}else{jQuery('#gform_1').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger("gform_pre_post_render", [{ formId: "1", currentPage: "current_page", abort: function() { this.preventDefault(); } }]); if (event && event.defaultPrevented) { return; } const gformWrapperDiv = document.getElementById( "gform_wrapper_1" ); if ( gformWrapperDiv ) { const visibilitySpan = document.createElement( "span" ); visibilitySpan.id = "gform_visibility_test_1"; gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan ); } const visibilityTestDiv = document.getElementById( "gform_visibility_test_1" ); let postRenderFired = false; function triggerPostRender() { if ( postRenderFired ) { return; } postRenderFired = true; jQuery( document ).trigger( 'gform_post_render', [1, current_page] ); gform.utils.trigger( { event: 'gform/postRender', native: false, data: { formId: 1, currentPage: current_page } } ); gform.utils.trigger( { event: 'gform/post_render', native: false, data: { formId: 1, currentPage: current_page } } ); if ( visibilityTestDiv ) { visibilityTestDiv.parentNode.removeChild( visibilityTestDiv ); } } function debounce( func, wait, immediate ) { var timeout; return function() { var context = this, args = arguments; var later = function() { timeout = null; if ( !immediate ) func.apply( context, args ); }; var callNow = immediate && !timeout; clearTimeout( timeout ); timeout = setTimeout( later, wait ); if ( callNow ) func.apply( context, args ); }; } const debouncedTriggerPostRender = debounce( function() { triggerPostRender(); }, 200 ); if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) { const observer = new MutationObserver( ( mutations ) => { mutations.forEach( ( mutation ) => { if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) { debouncedTriggerPostRender(); observer.disconnect(); } }); }); observer.observe( document.body, { attributes: true, childList: false, subtree: true, attributeFilter: [ 'style', 'class' ], }); } else { triggerPostRender(); } } );} );
/* ]]> */
Joe = great artist on pen and strobe
great and simple blog. i hope to see more of your examples like these. it inspires me!
That lighting diagram is looking suspiciously like it’s in a book and not a Dunkin Donuts napkin. What’s going on?
Seriously, great image. Thanks for sharing.
Incredible work as always Joe. Love your updates. Miss seeing you and the Nikon crew at the shows though. I’ll have to make it back one of these days.
Yes, I am also very ancious about napkins, and the shot is great (light, colours, composition…) maybe the boy is too calm? 😉
Joe is keeping notes in that book for Hot Shoe Diaries II: The Rise of the Welders.
🙂
Sick shot and thanks for the diagram man… yea where is the napkin?
N.
Great shot Joe, as always. I really like how you see things entirely different. You always are using your surroundings and what many would think as obstacles, as advantages. For your lighting workshops, do you get to check out the location before time to plan out shots, or are you doing flying by the seat of your pants? Either way, great photos!
Wow, Joe, really inspiring. I love all of your work but this one just jumped of fthe screen and kicked me in the face as soon as I saw it.
Your work with light and color is unbeatable.
Wicked setup there Joe. The photographs you can make with small flashes is amazing. I really like the background on this one. That big angry face in the background is subtle but with his expression the same it works wonders.
We are not worthy Joe! – nice shot out of very little once again.
Love your work and, like many others, feel inspired by what you do.
I dig the freaky smiley face on the boiler.
Joe, when can we expect one of your workshops here in Europe?
Kind regards.
Great post again, Joe. When I first looked at your diagram of the setup I thought you had labeled James as “Numnuts” and I thought, “Man that’s kinda harsh.” Then I realized that is the photographer (presumably you). Funny stuff, man.
Joe, very cool shot. Love the even light and how the subject pops. This one definitely jumped off the page.
QUESTION:
Is the soft blue light on the subject from the softbox due to the spill from the overhead light OR is it due to the coolness of the flash itself (as the softbox flash was not gelled)?
Curious,
alim
as usual, fantastic work! Thanks for sharing the knowledge!
awesome shot, your book Hotshoe Diaries has really changed my view on flash photography.
Liked the setup, especially the light placed above the grid which gave the stripes on the background.
Great image, as always. It looks pretty straightforward after you explain and show your lighting diagrams. Thanks.
Joe,
Now I ain’t no marketing guru, and you’ve probably already nailed this one down with a book publishing group. ….
Those little diagrams in that book sure would make a nice “How-To” type manual for us less knowledgeable folks.
Exactly how you have it to: Complex in your mid simple on paper.
Just a thought.
Love your work.
radio waves….
Would those be simple, “fire the flash NOW”, waves or more interesting “fire the flash at xx power (or better yet TTL with +/- adjustments)”?
I gotta ask…is this done with TTL?
Very good work .. Thanks
Great shot Joe! Love the effect from the gelled blue toplight!
I was right there when the photo was constructed and captured. Truly awesome & inspiring experience. I’ll bust my ass to get you to Malaysia!
Just to let you know than i just find your blog and i love it ! i follow you class since a long time with kelby training and i am a huge fan of your work ! thanks Joe
Joe:
I agree with David about publishing a book with the diagrams accompanying your photos.
Wow, what a totally badass photo!
Joe… man!!! what a good shot… when are you coming to Spain!!!!
Great stuff… so much to learn from your tips & Tricks… love your books… I learn and laugh at the same time.
Wonderful Joe, as always!!! Love yr work and the way you write!
Great shot. Love the light you were getting from the main, and the blue/ yellow contrast is very nice with the other flashes.
Keep up the good work.
Needs some steam I say! 😀
Hotshoe Diaries must be selling well if you can afford a proper notebook now 🙂
Fantastic work as always ! I wonder….does anyone else see the big smiling happy face in the boiler behind this shaggy haired lad?? The upper circles make the eyes…. The lower, obscured by his shaggy dome seem o connect behind him…forming a wide grin. It is nearly all I see.
J.J.