Help
RSS
API
Feed
Maltego
Contact
Domain > joelmccune.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2014-10-16
104.28.8.113
(
ClassC
)
2024-10-05
151.101.3.7
(
ClassC
)
Port 443
HTTP/1.1 200 OKConnection: keep-aliveContent-Length: 60347via: 1.1 varnish, 1.1 varnish, 1.1 varnishserver: openrestystatus: 200 OKghost-age: 0etag: W/ebbb-GMsOibPpMsAHBNfqDbfhPUpha4Acache-control: public, max-age0ghost-cache: MISScontent-type: text/html; charsetutf-8Accept-Ranges: bytesAge: 386502Date: Sat, 05 Oct 2024 22:24:14 GMTX-Served-By: cache-ams2100085-AMS, cache-ams21071-AMS, cache-bfi-krnt7300069-BFIX-Cache: MISS, HIT, HITX-Cache-Hits: 0, 9, 0X-Timer: S1728167055.688984,VS0,VE2Vary: Cookie, Accept-Encodingx-request-id: 19f41cc1-4b63-4c22-9cff-0f687a069e22Ghost-Fastly: trueAlt-Svc: clear !DOCTYPE html>html langen>head> title>Joel McCune/title> meta charsetutf-8 /> meta http-equivX-UA-Compatible contentIEedge /> meta nameHandheldFriendly contentTrue /> meta nameviewport contentwidthdevice-width, initial-scale1.0 /> link relpreload asstyle hrefhttps://joelmccune.com/assets/built/screen.css?vf819a6bdc6 /> link relpreload asscript hrefhttps://joelmccune.com/assets/built/casper.js?vf819a6bdc6 /> link relstylesheet typetext/css hrefhttps://joelmccune.com/assets/built/screen.css?vf819a6bdc6 /> meta namedescription contentThoughts and musings hopefully including something you may be interested in.> link relcanonical hrefhttps://joelmccune.com/> meta namereferrer contentno-referrer-when-downgrade> link relnext hrefhttps://joelmccune.com/page/2/> meta propertyog:site_name contentJoel McCune> meta propertyog:type contentwebsite> meta propertyog:title contentJoel McCune> meta propertyog:description contentThoughts and musings hopefully including something you may be interested in.> meta propertyog:url contenthttps://joelmccune.com/> meta propertyog:image contenthttps://joelmccune.com/content/images/size/w1200/2021/09/JDM_8490.jpg> meta nametwitter:card contentsummary_large_image> meta nametwitter:title contentJoel McCune> meta nametwitter:description contentThoughts and musings hopefully including something you may be interested in.> meta nametwitter:url contenthttps://joelmccune.com/> meta nametwitter:image contenthttps://joelmccune.com/content/images/size/w1200/2021/09/JDM_8490.jpg> meta propertyog:image:width content1200> meta propertyog:image:height content800> script typeapplication/ld+json>{ @context: https://schema.org, @type: WebSite, publisher: { @type: Organization, name: Joel McCune, url: https://joelmccune.com/, logo: { @type: ImageObject, url: https://joelmccune.com/favicon.ico, width: 48, height: 48 } }, url: https://joelmccune.com/, image: { @type: ImageObject, url: https://joelmccune.com/content/images/size/w1200/2021/09/JDM_8490.jpg, width: 1200, height: 800 }, mainEntityOfPage: https://joelmccune.com/, description: Thoughts and musings hopefully including something you may be interested in.} /script> meta namegenerator contentGhost 5.95> link relalternate typeapplication/rss+xml titleJoel McCune hrefhttps://joelmccune.com/rss/> script defer srchttps://cdn.jsdelivr.net/ghost/portal@~2.43/umd/portal.min.js data-i18nfalse data-ghosthttps://joelmccune.com/ data-keybfeac3e900bfa5b486345fd641 data-apihttps://joel-mccune-personal.ghost.io/ghost/api/content/ crossoriginanonymous>/script>style idgh-members-styles>.gh-post-upgrade-cta-content,.gh-post-upgrade-cta { display: flex; flex-direction: column; align-items: center; font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Open Sans, Helvetica Neue, sans-serif; text-align: center; width: 100%; color: #ffffff; font-size: 16px;}.gh-post-upgrade-cta-content { border-radius: 8px; padding: 40px 4vw;}.gh-post-upgrade-cta h2 { color: #ffffff; font-size: 28px; letter-spacing: -0.2px; margin: 0; padding: 0;}.gh-post-upgrade-cta p { margin: 20px 0 0; padding: 0;}.gh-post-upgrade-cta small { font-size: 16px; letter-spacing: -0.2px;}.gh-post-upgrade-cta a { color: #ffffff; cursor: pointer; font-weight: 500; box-shadow: none; text-decoration: underline;}.gh-post-upgrade-cta a:hover { color: #ffffff; opacity: 0.8; box-shadow: none; text-decoration: underline;}.gh-post-upgrade-cta a.gh-btn { display: block; background: #ffffff; text-decoration: none; margin: 28px 0 0; padding: 8px 18px; border-radius: 4px; font-size: 16px; font-weight: 600;}.gh-post-upgrade-cta a.gh-btn:hover { opacity: 0.92;}/style> script defer srchttps://cdn.jsdelivr.net/ghost/sodo-search@~1.2/umd/sodo-search.min.js data-keybfeac3e900bfa5b486345fd641 data-styleshttps://cdn.jsdelivr.net/ghost/sodo-search@~1.2/umd/main.css data-sodo-searchhttps://joel-mccune-personal.ghost.io/ data-localeen crossoriginanonymous>/script> link hrefhttps://joelmccune.com/webmentions/receive/ relwebmention> script defer src/public/cards.min.js?vf819a6bdc6>/script> link relstylesheet typetext/css href/public/cards.min.css?vf819a6bdc6> script defer src/public/comment-counts.min.js?vf819a6bdc6 data-ghost-comments-counts-apihttps://joelmccune.com/members/api/comments/counts/>/script> script defer src/public/member-attribution.min.js?vf819a6bdc6>/script>style>:root {--ghost-accent-color: #15171A;}/style> link hrefhttps://fonts.googleapis.com/css2?familySpecial+Elite&displayswap relstylesheet>style>h1, h2, h3, h4, h5, h6, .gh-head-brand, .gh-head-menu, a.site-nav-logo{ font-family: Special Elite, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Open Sans, Helvetica Neue, sans-serif;}h1, h2, h3, h4, h5, h6 { margin-top: 0; line-height: 1.15; font-weight: 700; text-rendering:optimizeLegibility; }a.site-nav-logo { font-size: 150%;}.site-header { text-shadow: 2px 2px 4px #000000;}.site-title { z-index: 10; margin: 0; padding: 0; font-size: 7rem; font-weight: 700; opacity: 70%;}.post-card { box-shadow: 2px 2px 4px #000000;}.post-card:hover { box-shadow: 6px 6px 8px #000000;}.post-card-content { padding: 10px;}/style>/head>body classhome-template is-head-left-logo has-cover>div classviewport> header idgh-head classgh-head outer> div classgh-head-inner inner> div classgh-head-brand> a classgh-head-logo no-image hrefhttps://joelmccune.com> Joel McCune /a> button classgh-search gh-icon-btn aria-labelSearch this site data-ghost-search>svg xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24 strokecurrentColor stroke-width2 width20 height20>path stroke-linecapround stroke-linejoinround dM21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z>/path>/svg>/button> button classgh-burger aria-labelMain Menu>/button> /div> nav classgh-head-menu> ul classnav> li classnav-home nav-current>a hrefhttps://joelmccune.com/>Home/a>/li> li classnav-about>a hrefhttps://joelmccune.com/about/>About/a>/li> li classnav-python>a hrefhttps://joelmccune.com/tag/python/>Python/a>/li> li classnav-whitewater>a hrefhttps://joelmccune.com/tag/whitewater/>Whitewater/a>/li> li classnav-geography-matters>a hrefhttps://joelmccune.com/tag/geography-matters/>Geography Matters/a>/li> li classnav-f-150-plan>a hrefhttps://joelmccune.com/tag/f-150-plan/>F-150 Plan/a>/li>/ul> /nav> div classgh-head-actions> button classgh-search gh-icon-btn aria-labelSearch this site data-ghost-search>svg xmlnshttp://www.w3.org/2000/svg fillnone viewBox0 0 24 24 strokecurrentColor stroke-width2 width20 height20>path stroke-linecapround stroke-linejoinround dM21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z>/path>/svg>/button> div classgh-head-members> a classgh-head-link href#/portal/signin data-portalsignin>Sign in/a> a classgh-head-button href#/portal/signup data-portalsignup>Subscribe/a> /div> /div> /div> /header> div classsite-content> div classsite-header-content outer> img classsite-header-cover srcset/content/images/size/w300/2021/09/JDM_8490.jpg 300w, /content/images/size/w600/2021/09/JDM_8490.jpg 600w, /content/images/size/w1000/2021/09/JDM_8490.jpg 1000w, /content/images/size/w2000/2021/09/JDM_8490.jpg 2000w sizes100vw src/content/images/size/w2000/2021/09/JDM_8490.jpg altJoel McCune /> div classsite-header-inner inner> h1 classsite-title>Joel McCune/h1> p classsite-description>Thoughts and musings hopefully including something you may be interested in./p> /div>/div>main idsite-main classsite-main outer>div classinner posts> div classpost-feed> article classpost-card post tag-whitewater tag-gfc tag-f-150-plan post-card-large> a classpost-card-image-link href/the-siren-song-of-mountains-and-rivers/> img classpost-card-image srcset/content/images/size/w300/2024/07/IMG_6449.jpeg 300w, /content/images/size/w600/2024/07/IMG_6449.jpeg 600w, /content/images/size/w1000/2024/07/IMG_6449.jpeg 1000w, /content/images/size/w2000/2024/07/IMG_6449.jpeg 2000w sizes(max-width: 1000px) 400px, 800px src/content/images/size/w600/2024/07/IMG_6449.jpeg altThe Siren Song of Mountains and Rivers loadinglazy /> /a> div classpost-card-content> a classpost-card-content-link href/the-siren-song-of-mountains-and-rivers/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>whitewater/span> /div> h2 classpost-card-title> The Siren Song of Mountains and Rivers /h2> /header> div classpost-card-excerpt>The best way to describe the feeling is contentment. I was just north of I-90 high on a ridge, parked alongside a forest road on the Idaho and Montana border lying in the dark inside the GoFastCamper (GFC) installed a few hours earlier in Bozeman, MT. After getting the combination/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2024-07-29>Jul 29, 2024/time> span classpost-card-meta-length>5 min read/span> script data-ghost-comment-count66a70559487784000159c03b data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post tag-paddling tag-whitewater tag-raft dynamic> a classpost-card-image-link href/rafting-for-fathers-day/> img classpost-card-image srcset/content/images/size/w300/2024/06/JDM_4558.jpeg 300w, /content/images/size/w600/2024/06/JDM_4558.jpeg 600w, /content/images/size/w1000/2024/06/JDM_4558.jpeg 1000w, /content/images/size/w2000/2024/06/JDM_4558.jpeg 2000w sizes(max-width: 1000px) 400px, 800px src/content/images/size/w600/2024/06/JDM_4558.jpeg altRafting for Father's Day loadinglazy /> /a> div classpost-card-content> a classpost-card-content-link href/rafting-for-fathers-day/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>paddling/span> /div> h2 classpost-card-title> Rafting for Father's Day /h2> /header> div classpost-card-excerpt>This past weekend over Father's Day was the first time we have done a multi-day raft trip with just the four of us, just our family. It went spectacularly.We have done multi-day trips before, just not with only us. Going with other people definitely is one of/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2024-06-17>Jun 17, 2024/time> span classpost-card-meta-length>2 min read/span> script data-ghost-comment-count6670fabe4a3298000141c3a6 data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post tag-f-150-plan dynamic> a classpost-card-image-link href/anything-but-a-driveway-queen/> img classpost-card-image srcset/content/images/size/w300/2024/05/IMG_6075.jpeg 300w, /content/images/size/w600/2024/05/IMG_6075.jpeg 600w, /content/images/size/w1000/2024/05/IMG_6075.jpeg 1000w, /content/images/size/w2000/2024/05/IMG_6075.jpeg 2000w sizes(max-width: 1000px) 400px, 800px src/content/images/size/w600/2024/05/IMG_6075.jpeg altAnything But a Driveway Queen loadinglazy /> /a> div classpost-card-content> a classpost-card-content-link href/anything-but-a-driveway-queen/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>F-150 Plan/span> /div> h2 classpost-card-title> Anything But a Driveway Queen /h2> /header> div classpost-card-excerpt>We use a truck like a truck. It gets dirty, both inside and out. We toss a LOT of gear in the back, tow raft trailers, and sleep in the back. With four of us, we have simply outgrown our Toyota Tacoma. Hence, the F-150 Plan.Three weeks ago, we/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2024-05-28>May 28, 2024/time> span classpost-card-meta-length>3 min read/span> script data-ghost-comment-count6656209cea772c00011eba38 data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post> a classpost-card-image-link href/the-bu/> img classpost-card-image srcset/content/images/size/w300/2024/05/IMG_5312.jpeg 300w, /content/images/size/w600/2024/05/IMG_5312.jpeg 600w, /content/images/size/w1000/2024/05/IMG_5312.jpeg 1000w, /content/images/size/w2000/2024/05/IMG_5312.jpeg 2000w sizes(max-width: 1000px) 400px, 800px src/content/images/size/w600/2024/05/IMG_5312.jpeg altThe Business of the Outdoors loadinglazy /> /a> div classpost-card-content> a classpost-card-content-link href/the-bu/> header classpost-card-header> div classpost-card-tags> /div> h2 classpost-card-title> The Business of the Outdoors /h2> /header> div classpost-card-excerpt>"A degree in Business?"He said the last word, "Business," as if it were a dirty word...almost as if uttering a disparaging slur. He, in the fall, would start his final year of high school. He was from an upper-middle class family, and following high/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2024-05-28>May 28, 2024/time> span classpost-card-meta-length>3 min read/span> script data-ghost-comment-count657079f7a753a3000155ab8a data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post tag-f-150-plan> a classpost-card-image-link href/first-trip-and-initial-impressions/> img classpost-card-image srcset/content/images/size/w300/2024/05/IMG_5994.jpeg 300w, /content/images/size/w600/2024/05/IMG_5994.jpeg 600w, /content/images/size/w1000/2024/05/IMG_5994.jpeg 1000w, /content/images/size/w2000/2024/05/IMG_5994.jpeg 2000w sizes(max-width: 1000px) 400px, 800px src/content/images/size/w600/2024/05/IMG_5994.jpeg altFirst Trip and Initial Impressions loadinglazy /> /a> div classpost-card-content> a classpost-card-content-link href/first-trip-and-initial-impressions/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>F-150 Plan/span> /div> h2 classpost-card-title> First Trip and Initial Impressions /h2> /header> div classpost-card-excerpt>On Thursday before Mother's Day we picked up the F-150 we ordered a few months ago, the first step in the F-150 Plan. We already had planned on heading to White Salmon for Mother's Day weekend, so by the next afternoon, we were headed south on/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2024-05-23>May 23, 2024/time> span classpost-card-meta-length>2 min read/span> script data-ghost-comment-count664242b07eb5d900018dff54 data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post> a classpost-card-image-link href/tire-size-with-python-and-pandas/> img classpost-card-image srcset/content/images/size/w300/2024/05/bf-goodrich-f150-all-terrain-t-a-ko2-tire-285-70r17-bfg-81501.T531287.jpg 300w, /content/images/size/w600/2024/05/bf-goodrich-f150-all-terrain-t-a-ko2-tire-285-70r17-bfg-81501.T531287.jpg 600w, /content/images/size/w1000/2024/05/bf-goodrich-f150-all-terrain-t-a-ko2-tire-285-70r17-bfg-81501.T531287.jpg 1000w, /content/images/size/w2000/2024/05/bf-goodrich-f150-all-terrain-t-a-ko2-tire-285-70r17-bfg-81501.T531287.jpg 2000w sizes(max-width: 1000px) 400px, 800px src/content/images/size/w600/2024/05/bf-goodrich-f150-all-terrain-t-a-ko2-tire-285-70r17-bfg-81501.T531287.jpg altTire Size with Python and Pandas loadinglazy /> /a> div classpost-card-content> a classpost-card-content-link href/tire-size-with-python-and-pandas/> header classpost-card-header> div classpost-card-tags> /div> h2 classpost-card-title> Tire Size with Python and Pandas /h2> /header> div classpost-card-excerpt>Trying to sort out the what tires are available, and will work with a vehicle is ridiculously frustrating. We ordered a new base model F-150 in February. It its supposed to arrive this month in a week or so. Ever since the 90's I have run BFGoodrich All-Terrain/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2024-05-03>May 3, 2024/time> span classpost-card-meta-length>2 min read/span> script data-ghost-comment-count6634f36e9f94ea00013fda3b data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post tag-whitewater> a classpost-card-image-link href/wyatts-a-better-model-than-i-am/> img classpost-card-image srcset/content/images/size/w300/2024/04/IMG_5923.jpeg 300w, /content/images/size/w600/2024/04/IMG_5923.jpeg 600w, /content/images/size/w1000/2024/04/IMG_5923.jpeg 1000w, /content/images/size/w2000/2024/04/IMG_5923.jpeg 2000w sizes(max-width: 1000px) 400px, 800px src/content/images/size/w600/2024/04/IMG_5923.jpeg altWyatt Is A Better Model Than I Am loadinglazy /> /a> div classpost-card-content> a classpost-card-content-link href/wyatts-a-better-model-than-i-am/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>whitewater/span> /div> h2 classpost-card-title> Wyatt Is A Better Model Than I Am /h2> /header> div classpost-card-excerpt>Tuesday nights, ever since the time change when we got more daylight back in the evenings, have become kayak practice nights with the boys. We just head to the Deschutes here in Olympia, Washington between Pioneer Park and the Valley Golf Course. It is little more than moving water. The/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2024-04-17>Apr 17, 2024/time> span classpost-card-meta-length>2 min read/span> script data-ghost-comment-count661fed070fb76e0001e0ea7a data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post tag-whitewater> a classpost-card-image-link href/please-do-not-be-careful/> img classpost-card-image srcset/content/images/size/w300/2022/01/JDM_0326.jpg 300w, /content/images/size/w600/2022/01/JDM_0326.jpg 600w, /content/images/size/w1000/2022/01/JDM_0326.jpg 1000w, /content/images/size/w2000/2022/01/JDM_0326.jpg 2000w sizes(max-width: 1000px) 400px, 800px src/content/images/size/w600/2022/01/JDM_0326.jpg altPlease Do Not Be Careful loadinglazy /> /a> div classpost-card-content> a classpost-card-content-link href/please-do-not-be-careful/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>whitewater/span> /div> h2 classpost-card-title> Please Do Not Be Careful /h2> /header> div classpost-card-excerpt>Security is mostly a superstition. It does not exist in nature, nor do the children of men as a whole experience it. Avoiding danger is no safer in the long run than outright exposure. - Helen KellerWhen I originally wrote this, our boys were four and six. Now they/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2024-03-13>Mar 13, 2024/time> span classpost-card-meta-length>2 min read/span> script data-ghost-comment-count60332b7ba600510045986139 data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post tag-f-150-plan tag-f-150> a classpost-card-image-link href/f-150-plan/> img classpost-card-image srcset/content/images/size/w300/2024/05/ford_f150.png 300w, /content/images/size/w600/2024/05/ford_f150.png 600w, /content/images/size/w1000/2024/05/ford_f150.png 1000w, /content/images/size/w2000/2024/05/ford_f150.png 2000w sizes(max-width: 1000px) 400px, 800px src/content/images/size/w600/2024/05/ford_f150.png altThe F-150 Plan loadinglazy /> /a> div classpost-card-content> a classpost-card-content-link href/f-150-plan/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>F-150 Plan/span> /div> h2 classpost-card-title> The F-150 Plan /h2> /header> div classpost-card-excerpt>As much as I like to think I want a truck for getting to that far flug place most vehicles simply cannot get to, the reality is most of what I need a truck for is driving a long ways on forest roads with a lot of gear. This gear/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2024-03-13>Mar 13, 2024/time> span classpost-card-meta-length>10 min read/span> script data-ghost-comment-count64b01f3a3798d60001fca9da data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post tag-python tag-pyspark tag-spark> a classpost-card-image-link href/python-copy-to-clipboard/> img classpost-card-image srcset/content/images/size/w300/2024/01/Screenshot-2024-01-29-at-08.12.13.png 300w, /content/images/size/w600/2024/01/Screenshot-2024-01-29-at-08.12.13.png 600w, /content/images/size/w1000/2024/01/Screenshot-2024-01-29-at-08.12.13.png 1000w, /content/images/size/w2000/2024/01/Screenshot-2024-01-29-at-08.12.13.png 2000w sizes(max-width: 1000px) 400px, 800px src/content/images/size/w600/2024/01/Screenshot-2024-01-29-at-08.12.13.png altCopy PySpark Schemas to Clipboard loadinglazy /> /a> div classpost-card-content> a classpost-card-content-link href/python-copy-to-clipboard/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>Python/span> /div> h2 classpost-card-title> Copy PySpark Schemas to Clipboard /h2> /header> div classpost-card-excerpt>Frequently, I have a need to both explicitly define input data schemas for processing using PySpark and simultaneously include the schema in Sphinx documentation. Usually I can get the schema for loading without too much difficulty by outputting df.schema in a Jupyter Notebook, and copy-paste into my loading method./div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2024-01-29>Jan 29, 2024/time> span classpost-card-meta-length>1 min read/span> script data-ghost-comment-count65b7b1c6231b520001b0322f data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post tag-python tag-arcgis tag-apple tag-macos> a classpost-card-image-link href/install-arcgis-python-api-on-apple-silicon/> img classpost-card-image srcset/content/images/size/w300/2023/03/IMG_4212-1.jpeg 300w, /content/images/size/w600/2023/03/IMG_4212-1.jpeg 600w, /content/images/size/w1000/2023/03/IMG_4212-1.jpeg 1000w, /content/images/size/w2000/2023/03/IMG_4212-1.jpeg 2000w sizes(max-width: 1000px) 400px, 800px src/content/images/size/w600/2023/03/IMG_4212-1.jpeg altInstall ArcGIS Python API on Apple Silicon loadinglazy /> /a> div classpost-card-content> a classpost-card-content-link href/install-arcgis-python-api-on-apple-silicon/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>Python/span> /div> h2 classpost-card-title> Install ArcGIS Python API on Apple Silicon /h2> /header> div classpost-card-excerpt>NOTE: This has been resolved by the ArcGIS Python API team. Now, you can install the ArcGIS Python API without having to use the Rosetta Emulator.Apple's new ARM-based processors, the M1 and M2, "Apple Silicon," chips, offer impressive performance. Unfortunately, when it comes to the/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2023-03-06>Mar 6, 2023/time> span classpost-card-meta-length>1 min read/span> script data-ghost-comment-count64067908cc8af5003d0533bc data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post tag-python tag-arcpy tag-logging no-image> div classpost-card-content> a classpost-card-content-link href/arcpy-python-logger/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>Python/span> /div> h2 classpost-card-title> ArcPy Python Logging Handler /h2> /header> div classpost-card-excerpt>Update 01Nov2022 - After Pat's comment, I decided to create a discrete repo, ArcPy-Logger, to make it easier to use. In the process, I also updated the Gist based on a few tweaks I made, and added brief documentation as well.Especially with long-running or even scheduled tasks,/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2022-09-06>Sep 6, 2022/time> span classpost-card-meta-length>1 min read/span> script data-ghost-comment-count63117aa82d9704003def1cf8 data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post tag-python tag-pontifications> a classpost-card-image-link href/learn-to-script/> img classpost-card-image srcset/content/images/size/w300/2022/08/Screen-Shot-2022-08-16-at-06.48.03-.png 300w, /content/images/size/w600/2022/08/Screen-Shot-2022-08-16-at-06.48.03-.png 600w, /content/images/size/w1000/2022/08/Screen-Shot-2022-08-16-at-06.48.03-.png 1000w, /content/images/size/w2000/2022/08/Screen-Shot-2022-08-16-at-06.48.03-.png 2000w sizes(max-width: 1000px) 400px, 800px src/content/images/size/w600/2022/08/Screen-Shot-2022-08-16-at-06.48.03-.png altLearn to Code loadinglazy /> /a> div classpost-card-content> a classpost-card-content-link href/learn-to-script/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>Python/span> /div> h2 classpost-card-title> Learn to Code /h2> /header> div classpost-card-excerpt>"I hate doing things twice!"I was in Okinawa, Japan on a US military installation. At the time I was a software instructor, and I was watching another contractor doing some maintenance on one of the computers literally writing a batch script faster than I could type. It/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2022-08-23>Aug 23, 2022/time> span classpost-card-meta-length>3 min read/span> script data-ghost-comment-count605c89fbc315c6003b2376fb data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post tag-rainer tag-geography-matters tag-kids-mapping> a classpost-card-image-link href/wyatts-rainer-map/> img classpost-card-image srcset/content/images/size/w300/2022/08/rainier01.png 300w, /content/images/size/w600/2022/08/rainier01.png 600w, /content/images/size/w1000/2022/08/rainier01.png 1000w, /content/images/size/w2000/2022/08/rainier01.png 2000w sizes(max-width: 1000px) 400px, 800px src/content/images/size/w600/2022/08/rainier01.png altWyatt's Rainier Map loadinglazy /> /a> div classpost-card-content> a classpost-card-content-link href/wyatts-rainer-map/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>Rainer/span> /div> h2 classpost-card-title> Wyatt's Rainier Map /h2> /header> div classpost-card-excerpt>"I'm making a map!"The nook in our kitchen is perpetually covered with drawing paper, construction paper, markers, crayons and scissors. Wyatt, our five-year-old, if we put any of it away, promptly drags it all out again. Crafts, especially drawing, is quite commonplace.This statement a/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2022-08-15>Aug 15, 2022/time> span classpost-card-meta-length>3 min read/span> script data-ghost-comment-count62fa442faa2742004d06742b data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post tag-pontifications tag-whitewater> a classpost-card-image-link href/life-is-a-river/> img classpost-card-image srcset/content/images/size/w300/2022/01/JDM_1080-2.jpg 300w, /content/images/size/w600/2022/01/JDM_1080-2.jpg 600w, /content/images/size/w1000/2022/01/JDM_1080-2.jpg 1000w, /content/images/size/w2000/2022/01/JDM_1080-2.jpg 2000w sizes(max-width: 1000px) 400px, 800px src/content/images/size/w600/2022/01/JDM_1080-2.jpg altLife is a River loadinglazy /> /a> div classpost-card-content> a classpost-card-content-link href/life-is-a-river/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>pontifications/span> /div> h2 classpost-card-title> Life is a River /h2> /header> div classpost-card-excerpt>Life is an adventure, a journey with no map. The only way is forward. Life is an exploratory river trip.Too many times we stand asideAnd let the waters slip awayTill what we put off till tomorrowHas now become todaySo don't you sit upon/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2022-01-06>Jan 6, 2022/time> span classpost-card-meta-length>5 min read/span> script data-ghost-comment-count61d6ef9ec887be003b9c3505 data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post tag-pontifications> a classpost-card-image-link href/growth-for-the-sake-of-growth/> img classpost-card-image srcset/content/images/size/w300/2022/01/trollinho-FEhqAEKTYl4-unsplash.jpg 300w, /content/images/size/w600/2022/01/trollinho-FEhqAEKTYl4-unsplash.jpg 600w, /content/images/size/w1000/2022/01/trollinho-FEhqAEKTYl4-unsplash.jpg 1000w, /content/images/size/w2000/2022/01/trollinho-FEhqAEKTYl4-unsplash.jpg 2000w sizes(max-width: 1000px) 400px, 800px src/content/images/size/w600/2022/01/trollinho-FEhqAEKTYl4-unsplash.jpg altGrowth for the Sake of Growth loadinglazy /> /a> div classpost-card-content> a classpost-card-content-link href/growth-for-the-sake-of-growth/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>pontifications/span> /div> h2 classpost-card-title> Growth for the Sake of Growth /h2> /header> div classpost-card-excerpt>> "Growth for the sake of growth is the ideology of the cancer cell." -Edward AbbeyIt has been nearly 30 years since I first read those words. Of all the outdoorbooks I read growing up (there were a lot), this single quote from The JourneyHome/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2021-10-19>Oct 19, 2021/time> span classpost-card-meta-length>1 min read/span> script data-ghost-comment-count6168f11e2ef6a2003bb4724e data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post tag-training tag-whitewater> a classpost-card-image-link href/not-as-good-as-i-once-was/> img classpost-card-image srcset/content/images/size/w300/2021/09/IMG_3302.png 300w, /content/images/size/w600/2021/09/IMG_3302.png 600w, /content/images/size/w1000/2021/09/IMG_3302.png 1000w, /content/images/size/w2000/2021/09/IMG_3302.png 2000w sizes(max-width: 1000px) 400px, 800px src/content/images/size/w600/2021/09/IMG_3302.png altNot As Good As I Once Was... loadinglazy /> /a> div classpost-card-content> a classpost-card-content-link href/not-as-good-as-i-once-was/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>training/span> /div> h2 classpost-card-title> Not As Good As I Once Was... /h2> /header> div classpost-card-excerpt>There are a lot of things easier about being in my 40's, but being at thepinnacle of ahleticism is not one of the them. Few have the opportunity toachieve a regional, national or international level in sport. I was lucky enoughto experience a national level/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2021-08-31>Aug 31, 2021/time> span classpost-card-meta-length>2 min read/span> script data-ghost-comment-count612ef88a3c76b9003bd92fe9 data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post tag-arcgis tag-field-maps tag-outdoor-mapping tag-ros> a classpost-card-image-link href/outdoor-geography-again/> img classpost-card-image srcset/content/images/size/w300/2021/08/Screen-Shot-2021-08-31-at-07.30.23-.png 300w, /content/images/size/w600/2021/08/Screen-Shot-2021-08-31-at-07.30.23-.png 600w, /content/images/size/w1000/2021/08/Screen-Shot-2021-08-31-at-07.30.23-.png 1000w, /content/images/size/w2000/2021/08/Screen-Shot-2021-08-31-at-07.30.23-.png 2000w sizes(max-width: 1000px) 400px, 800px src/content/images/size/w600/2021/08/Screen-Shot-2021-08-31-at-07.30.23-.png altOutdoor Geography - Again loadinglazy /> /a> div classpost-card-content> a classpost-card-content-link href/outdoor-geography-again/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>ArcGIS/span> /div> h2 classpost-card-title> Outdoor Geography - Again /h2> /header> div classpost-card-excerpt>The real reason I became interested in Geographic Information Systems (GIS) had nothing to do with getting a job. It had everything to do with wandering around in the woods, finding things, and getting back to them. Strangely, in the interim, somehow I now find myself inside (in a basement/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2021-08-30>Aug 30, 2021/time> span classpost-card-meta-length>3 min read/span> script data-ghost-comment-count612d28a33c76b9003bd92f09 data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post tag-arcpy tag-python tag-arcgis-pro no-image> div classpost-card-content> a classpost-card-content-link href/arcgis-pro-ensure-minimum-version-in-python/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>arcpy/span> /div> h2 classpost-card-title> ArcGIS Pro Ensure Minimum Version in Python /h2> /header> div classpost-card-excerpt>Functionality is continually added to ArcGIS Pro. When creating Python scriptstaking advantage of new functionality, it is helpful to be able to check theversion to either use an alternative method, or at least provide an errormessage informing the end user of needing to upgrade. Fortunately, ArcPy provides/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2021-08-02>Aug 2, 2021/time> script data-ghost-comment-count610826db5f5c01003b6a88bc data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post tag-geography-matters tag-recreation-opportunity-spectrum> a classpost-card-image-link href/outdoor-stores/> img classpost-card-image srcset/content/images/size/w300/2021/07/tempImageRuAkva.gif 300w, /content/images/size/w600/2021/07/tempImageRuAkva.gif 600w, /content/images/size/w1000/2021/07/tempImageRuAkva.gif 1000w, /content/images/size/w2000/2021/07/tempImageRuAkva.gif 2000w sizes(max-width: 1000px) 400px, 800px src/content/images/size/w600/2021/07/tempImageRuAkva.gif altOutdoor Stories loadinglazy /> /a> div classpost-card-content> a classpost-card-content-link href/outdoor-stores/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>Geography Matters/span> /div> h2 classpost-card-title> Outdoor Stories /h2> /header> div classpost-card-excerpt>Outdoor enthusiasts are inherently geographers and storytellers. Wandering around outside requires some level of geographic literacy just to get there and back. It does not take more than a few minutes with anybody who loves the outdoors to discover reminiscing about experiences, telling stories, also is an inherent part of/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2021-07-12>Jul 12, 2021/time> span classpost-card-meta-length>1 min read/span> script data-ghost-comment-count60ec91503593f7003bdbbccc data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post tag-python tag-arcgis-pro tag-arcpy no-image> div classpost-card-content> a classpost-card-content-link href/arcpy-describe-dot-properties/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>Python/span> /div> h2 classpost-card-title> ArcPy Describe <dot> Properties /h2> /header> div classpost-card-excerpt>A tremendous amount of information is available through arcpy.Describe. UntilArcGIS Pro 2.8 though, figuring out what properties were available for theobject you had just described required digging into the documentation prettydeep. Now, it is much easier to access these properties introspectively as adictionary. Since/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2021-05-13>May 13, 2021/time> span classpost-card-meta-length>1 min read/span> script data-ghost-comment-count609d61b26f1729003ee90c25 data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post no-image> div classpost-card-content> a classpost-card-content-link href/pandas-dataframe-to-markdown/> header classpost-card-header> div classpost-card-tags> /div> h2 classpost-card-title> Pandas DataFrame to Markdown /h2> /header> div classpost-card-excerpt>Over the last few months I have been including markdown representations of dataframes quite a bit to put in documentation to show what the table outputs looklike. Using Jupyter it is not overly difficult to use the df.to_markdown() method, and copy the output in the notebook./div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2021-05-07>May 7, 2021/time> span classpost-card-meta-length>2 min read/span> script data-ghost-comment-count60959a0a6f1729003ee90bae data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post tag-python-data-munging tag-pandas> a classpost-card-image-link href/groupby-and-aggregate-using-pandas/> img classpost-card-image srcset/content/images/size/w300/2021/04/JDM_9682-1.jpg 300w, /content/images/size/w600/2021/04/JDM_9682-1.jpg 600w, /content/images/size/w1000/2021/04/JDM_9682-1.jpg 1000w, /content/images/size/w2000/2021/04/JDM_9682-1.jpg 2000w sizes(max-width: 1000px) 400px, 800px src/content/images/size/w600/2021/04/JDM_9682-1.jpg altGroupBy and Aggregate Using Pandas loadinglazy /> /a> div classpost-card-content> a classpost-card-content-link href/groupby-and-aggregate-using-pandas/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>Python, data munging/span> /div> h2 classpost-card-title> GroupBy and Aggregate Using Pandas /h2> /header> div classpost-card-excerpt>Remove duplicates in one column, and create a list of tags in another columnusing Pandas.Consider this. I have a table of data. With me, yes, I know, big surprise. Thistable of data has a column with values, and some of these values repeat. This isthe names/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2021-04-12>Apr 12, 2021/time> span classpost-card-meta-length>5 min read/span> script data-ghost-comment-count6070e8aa5f594a003eadef77 data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post tag-python> a classpost-card-image-link href/python-dictionary-as-object/> img classpost-card-image srcset/content/images/size/w300/2021/03/Screen-Shot-2021-03-09-at-14.46.11-.png 300w, /content/images/size/w600/2021/03/Screen-Shot-2021-03-09-at-14.46.11-.png 600w, /content/images/size/w1000/2021/03/Screen-Shot-2021-03-09-at-14.46.11-.png 1000w, /content/images/size/w2000/2021/03/Screen-Shot-2021-03-09-at-14.46.11-.png 2000w sizes(max-width: 1000px) 400px, 800px src/content/images/size/w600/2021/03/Screen-Shot-2021-03-09-at-14.46.11-.png altPython Dictionary as Object loadinglazy /> /a> div classpost-card-content> a classpost-card-content-link href/python-dictionary-as-object/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>Python/span> /div> h2 classpost-card-title> Python Dictionary as Object /h2> /header> div classpost-card-excerpt>Update 16Aug2022: When I shared this on LinkedIn, Ian Broad commented to let me know about a great Python project doing exactly this, Bunch. As is frequently the case with Python, the solution is a pip or conda install away!It's something simple enough, I just want to/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2021-03-08>Mar 8, 2021/time> span classpost-card-meta-length>2 min read/span> script data-ghost-comment-count604680546bb71800394dd13c data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> article classpost-card post tag-mac tag-bash tag-murphys-law no-image> div classpost-card-content> a classpost-card-content-link href/fixing-mac-bash_profile/> header classpost-card-header> div classpost-card-tags> span classpost-card-primary-tag>Mac/span> /div> h2 classpost-card-title> Fixing Mac .bash_profile /h2> /header> div classpost-card-excerpt>Murphy, who was he and why is his law so recurrent? Apparently, there are peoplewho spend an inordinate amount of time unpacking the history of Murphy's Lawhttps://en.wikipedia.org/wiki/Murphy%27s_law. Myself, I typically use aliberal helping of my best sailor'/div> /a> footer classpost-card-meta> time classpost-card-meta-date datetime2021-01-19>Jan 19, 2021/time> span classpost-card-meta-length>1 min read/span> script data-ghost-comment-count60071ad480ea190039e3a418 data-ghost-comment-count-empty data-ghost-comment-count-singularcomment data-ghost-comment-count-pluralcomments data-ghost-comment-count-tagspan data-ghost-comment-count-class-name data-ghost-comment-count-autowraptrue>/script> /footer> /div>/article> /div> nav classpagination> span classpage-number>Page 1 of 8/span> a classolder-posts href/page/2/>Older Posts span aria-hiddentrue>→/span>/a>/nav>/div>/main> /div> footer classsite-footer outer> div classinner> section classcopyright>a hrefhttps://joelmccune.com>Joel McCune/a> © 2024/section> nav classsite-footer-nav> /nav> div classgh-powered-by>a hrefhttps://ghost.org/ target_blank relnoopener>Powered by Ghost/a>/div> /div> /footer>/div>script srchttps://code.jquery.com/jquery-3.5.1.min.js integritysha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0 crossoriginanonymous>/script>script srchttps://joelmccune.com/assets/built/casper.js?vf819a6bdc6>/script>script>$(document).ready(function () { // Mobile Menu Trigger $(.gh-burger).click(function () { $(body).toggleClass(gh-head-open); }); // FitVids - Makes video embeds responsive $(.gh-content).fitVids();});/script>!-- You can safely delete this line if your theme does not require jQuery -->script typetext/javascript srchttps://code.jquery.com/jquery-1.11.3.min.js>/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]