TRUE CRIME | Kid Cannabis (2024)

Actors Jonathan Daniel Brown (left) and Kenny Wormald as the Coeur d'Alene men who made millions on pot in the early 2000s.

It's been more than a decade since Nate Norman helped turn a group of teenagers and twentysomethings from Coeur d'Alene into one of the most profitable marijuana-smuggling gangs the region had ever seen. Now the story of these unlikely drug kingpins who made millions running pot across the Canadian border is on the big screen with the release of Kid Cannabis, adapted from a 2005 Inlander article by former staff writer Kevin Taylor.

Written and directed by John Stockwell, best known for his work on the sexy surf flick Blue Crush, the film mostly stays true to what was reported in Taylor's story and an expansive Rolling Stone piece by Mark Binelli. But there's plenty of movie magic at play: You don't actually see Coeur d'Alene or its lake — the film was shot in Victoria, B.C.

That shouldn't dissuade your interest in this intriguing story, which ultimately resulted, albeit tangentially, in the murder of 20-year-old Brendan Butler, a rival CdA pot dealer who hired hitmen to wipe out Norman's crew. A lot of the film is devoted to the extravagance of Norman and company's lifestyle after they were rolling in cash (lots of parties, boats, boobs and luxury SUVs).

In the course of its screen time, Kid Cannabis is thrilling, funny and in the case of Butler, tragic. Perhaps most startling, the film brings to light how much a decade has changed the war on drugs, especially when it comes to pot. These kids were crossing a heavily wooded international border on foot in order to score quality weed for their customers, but it's hard to imagine they'd have much of a market in 2014, when the stuff is perfectly legal just a few minutes drive from Coeur d'Alene. ♦

Kid Cannabis opens in Spokane at the Magic Lantern Theatre on Fri, April 25; also currently playing at the Hayden Discount Cinemas in Hayden.

') let lineHeight = jQuery('[line-height-check]').get(0).clientHeight; jQuery('[line-height-check]').remove() if (jQuery(element).prop('tagName').match(/HIDDEN/i) !== null) { jQuery(element).children('div').last().css({ marginBottom: `${lineHeight*2}px` }); } else { jQuery(element).css({ marginTop: `${lineHeight*2}px`, marginBottom: `${lineHeight}px` }); } // const insertionBlockClass = `fdn-paragraph-insertion-block`; const styleElementHook = `fdn-paragraph-insertion-styles`; jQuery(element).addClass(insertionBlockClass); if (jQuery(`[${styleElementHook}]`).length === 0) { jQuery('div.fdn-content-body, div #storyBody').append('

') const paragraphLineHeight = jQuery('[line-height-check]').get(0).clientHeight; jQuery('[line-height-check]').remove() const styleElement = jQuery(`

`); const styleText = ` div.fdn-content-body br+.${insertionBlockClass}:not([hidden]), div #storyBody br+.${insertionBlockClass}:not([hidden]) { margin-top: ${paragraphLineHeight*2}px; margin-bottom: ${paragraphLineHeight}px; } div.fdn-content-body br+.${insertionBlockClass}[hidden] > div:last-of-type, div #storyBody br+.${insertionBlockClass}[hidden] > div:last-of-type { margin-bottom: ${paragraphLineHeight*2}px; } ` styleElement.text(styleText); jQuery('head').append(styleElement); } // } } jQuery(element).insertBefore(this.paragraphEndNodes[index]); } else { console.warn('Foundation.ParagraphTool.insertElemenAt: invalid insertion index', index); } } this.insertElemenAtEnd = function (element) { if (this.paragraphEndNodes.length) { let lastNode = this.getNodeAtIndex(this.paragraphEndNodes.length -1); if (this.isDoubleBrParagraphBreak(lastNode) || this.isBrParagraphBreakBeforeBlockElement(lastNode)) { if (jQuery(element).get(0).tagName.match(/SCRIPT/i) !== null) { jQuery('
').insertAfter(this.paragraphEndNodes[index]); jQuery('
').insertAfter(this.paragraphEndNodes[index]); } else { jQuery('div.fdn-content-body, div #storyBody').append('

') let lineHeight = jQuery('[line-height-check]').get(0).clientHeight; jQuery('[line-height-check]').remove() if (jQuery(element).prop('tagName').match(/HIDDEN/i) !== null) { jQuery(element).children('div').last().css({ marginBottom: `${lineHeight*2}px` }); } else { jQuery(element).css({ marginTop: `${lineHeight*2}px`, marginBottom: `${lineHeight}px` }); } } } } this.bodyContainer.append(element); } this.getNodeAtIndex = function (index) { return this.paragraphEndNodes[index]; } }

`); } var paragraphCount = myParagraphTool.getParagraphEndNodeCount(); // No need to insert if there aren't enough paragaphs if (paragraphCount >= parseInt(item.requiredCountToDisplay)) { // Matches specific paragraph insertion indexes if (item.insertPoint.match(/^\d+$/) !== null) { var insertIndex = parseInt(item.insertPoint) - 1; // Insert within content if (insertIndex < paragraphCount) { myParagraphTool.insertElemenAtIndex(componentElement, insertIndex); } // Append to the end if the insert point is beyond the paragraph count else { myParagraphTool.insertElemenAtEnd(componentElement) } } // Matches for 1/2, 1/4, 2/3, 5/6, etc else if (item.insertPoint.match(/^[1223456]\/[23456]$/) !== null) { var fractionMatch = new RegExp(/^([123456])(?:\/)([23456]$)/); var fractionPart = parseInt(item.insertPoint.match(fractionMatch)[1]); var fractionWhole = parseInt(item.insertPoint.match(fractionMatch)[2]); var fractionValue = fractionPart / fractionWhole; var fractionIndex = Math.floor(myParagraphTool.paragraphEndNodes.length * fractionValue) - 1; myParagraphTool.insertElemenAtIndex(componentElement, fractionIndex); } // Matches for every Nth insertion point else if (item.insertPoint.match(/^\d*th$/i) !== null) { var intervalIndex = parseInt(item.insertPoint.match(/^(\d*)th$/i)[1]); var startingIndex = parseInt(item.startingPoint) - 1; var insertionMax = parseInt(item.maxInsertions) || 100; var insertionCount = 0; for (var i = startingIndex; i < myParagraphTool.paragraphEndNodes.length && insertionCount < insertionMax; i++) { if ((i - startingIndex) % intervalIndex === 0) { let currentNode = myParagraphTool.getNodeAtIndex(i); const clonedComponent = componentElement.clone(); myParagraphTool.insertElemenAtIndex(clonedComponent, i); insertionCount++; } } } } }); Foundation.Content['2294292'].setupInlineComponents = function () { return true; }; if (typeof callback === 'function') { callback(); } }, 200); } Foundation.Content['2294292'].previewInsertionPoints = function () { var myParagraphTool = Foundation.Content['2294292'].paragraphTool myParagraphTool.paragraphEndNodes.each((index, item) => { const insertionPointPlaceholder = jQuery(`

Insertion point ${index+1}

`) myParagraphTool.insertElemenAtIndex(insertionPointPlaceholder, index); }); return 'Paragraph insertion placeholders applied.'; }

'); this.html = jQuery("#times-"+count); for (var i = 0; i < grouped[keys[index]].length; i++ ){ this.html.append(jQuery(grouped[keys[index]][i])); } keys.pop(); count++; } } } Component.prototype.toggle = function(event){ var id = jQuery(event.currentTarget).data('partner'); if(jQuery("#"+id).is(":visible")){ jQuery("#"+id).fadeOut(); jQuery("#"+id+"toggle").addClass('expand'); jQuery("#"+id+"toggle").removeClass('contract'); } else { jQuery("#"+id).fadeIn('slow'); jQuery("#"+id+"toggle").addClass('contract'); jQuery("#"+id+"toggle").removeClass('expand'); } } Component.prototype.render = function(data){ this.results.fadeTo("fast", 0, function(){ this.results.html(data).fadeTo("fast", 1); this.init(); }.bind(this)); this.hideLoading(); } Component.prototype.squish = function(rows){ if (rows.length < MAX_INIT_COUNT){ //return true; } // itterate through the rows grouping them into hour chunks. result = {}; for (var i = 0; i < rows.length; i++){ time = parseInt(jQuery(rows[i]).data("time").split(":")[0]); time = time < 4 ? time + 24 : time if( typeof result[time] == "undefined"){ result[time] = [rows[i]]; } else { result[time].push(rows[i]); } } return result; } Component.prototype.group = function(obj, chunk){ var result = {}; keys = []; for (key in obj){ keys.push(parseInt(key)); } if (keys.length == 0) return false; keys.sort(function(a,b){return a-b}); for (var i = keys[0]; i < 28; i = i + chunk ){ var temp = []; for(var j = 0; j < CHUNK; j++){ if (i + j in obj){ temp = temp.concat(obj[i+j]); } } if (temp.length > 0 ){ result[i] =temp; } } // if the first group is less than 10 add to next group if ( result[keys[0]].length < 10 && (keys[0] + CHUNK) in result ){ result[keys[0]] = result[keys[0]].concat(result[keys[0] + CHUNK]); delete result[keys[0] + CHUNK]; } return result; } Component.prototype.get = function(e){ var myUrl = URL, params; e.preventDefault(); this.date = jQuery(e.currentTarget).data("date") || this.date; if(jQuery(e.currentTarget).val() == "-none-"){ this.neighborhood = ""; }else{ this.neighborhood = jQuery(e.currentTarget).val() || jQuery(e.currentTarget).data('hood') || this.neighborhood || "all"; } params = { ajaxComponent: COMPONENT_ID, }; params[PARAM_NAME] = this.date; params['neighborhood'] = this.neighborhood; this.historyUrl = new Foundation.URL(this.historyUrl.toString(), {'narrowByDate':this.date, 'neighborhood': this.neighborhood}); jQuery.ajax({ url: this.historyUrl.toString(), cache: false, type: 'GET', data: (params), beforeSend: this.showLoading.bind(this), success: this.render.bind(this) }); } return new Component(); }());

TRUE CRIME | Kid Cannabis (2024)

References

Top Articles
Latest Posts
Article information

Author: Ouida Strosin DO

Last Updated:

Views: 6196

Rating: 4.6 / 5 (76 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Ouida Strosin DO

Birthday: 1995-04-27

Address: Suite 927 930 Kilback Radial, Candidaville, TN 87795

Phone: +8561498978366

Job: Legacy Manufacturing Specialist

Hobby: Singing, Mountain biking, Water sports, Water sports, Taxidermy, Polo, Pet

Introduction: My name is Ouida Strosin DO, I am a precious, combative, spotless, modern, spotless, beautiful, precious person who loves writing and wants to share my knowledge and understanding with you.