A blog probably of interest only to nerds by John Morton.


An S3 buck­et pol­i­cy to allow full-access for a sin­gle bucket.

When I have a new project that requires some Ama­zon S3 stor­age, I try to do the right thing” for secu­ri­ty by cre­at­ing a new user and a new buck­et entire­ly. I don’t want to share any cre­den­tials across projects. That means after I have cre­at­ed my S3 buck­et I neeed to assign a user with the appro­pri­ate per­mis­sions. For me, that typ­i­cal­ly means I want this new user to have full access to… + read on


Keep­ing up with the Insta­gram API

On Jan­u­ary 30, 2018, Insta­gram post­ed a dep­re­ca­tion notice for The Insta­gram API Plat­form. There is a new­er API called the Insta­gram Graph API. The new­er API’s focus is for busi­ness­es, not indi­vid­ual accounts though. This is the 2nd major change made to the API. The first major change was in Novem­ber 2015. If you’re curi­ous, here’s the announc­ment. The changes intro­duced a new app review process and lim­it­ed 3rd par­ty… + read on


    A Check­list When Tran­si­tion­ing from MAMP to Valet

    I have used MAMP for local devel­op­ment for a long time. Sev­er­al peo­ple I know through the Craft CMS Slack group have pro­fessed the ben­e­fits of [Lar­avel Valet](https://laravel.com/docs/5.5/valet Lar­avel Valet doc­u­men­ta­tion’) so I decid­ed to give it a spin as an alter­na­tive to MAMP. When it comes to Craft CMS there is a built-in dri­ver that allows Valet to serve a Craft site with­out any addi­tion­al con­fig­u­ra­tion. You just place your Craft site in… + read on


    Extract­ing a YouTube ID from a URL with Twig

    I had a client who want­ed to embed YouTube videos in their Craft CMS site. It would have been eas­i­est for me to have them only include the YouTube video ID but the shar­ing box on YouTube gives you a full YouTube URL. You can see that URL in the image at the begin­ning of this post. I did­n’t want to add any plug-ins to my Craft CMS site to do this so I… + read on


    Detect­ing and debug­ging the Insta­gram in-app browser

    I had to debug an issue with a site I built when client/​friend dis­cov­ered that the menu tog­gle icon dis­ap­peared only when vis­it­ing her site from with­in Insta­gram, specif­i­cal­ly, on her bio page where she has a link to her site. Being an in-app brows­er with­in an appli­ca­tion I have no con­trol of, I strug­gled to debug this prob­lem. The user­A­gent” string, as shown in the image above helped me out. I used the… + read on


    How to re-add Github key to a server

    Note to self: Don’t erase your knownhosts file. (head­slap!) I pro­vi­sion servers with Lar­avel Forge and messed up my deploy­ment from Github recent­ly. I was mess­ing around in the .ssh fold­er on my serv­er and delet­ed the known_hosts file. The next time I tried to deploy my code base from Github though, I got the fol­low­ing error. Host key verification failed. fatal: Could not read from remote repository. I need­ed to get… + read on


      Craft CMS: A big­ger Plain Text” field.

      I inher­it­ed a Craft CMS site that I now main­tain for a new client. When you inher­it oth­er peo­ple’s code, you need to see the project from their POV to get an under­stand­ing of they see things work­ing. Luck­i­ly Craft seems to encour­age log­i­cal struc­tures being built so I’ve not had too much trou­ble get­ting up to speed on this site. One of the prob­lems I did run into was with a sim­ple Plain… + read on


      How to use Hand­Brake’s queue fea­ture to con­vert mul­ti­ple videos.

      You like videos, right? Then you’re prob­a­bly famil­iar with Hand­Brake, the open source video con­ver­sion tool. Encod­ing a sin­gle file is pret­ty straight­for­ward, but the pro­gram has the abil­i­ty to set up a cue and go through a bunch of shows while you are away from your com­put­er. Here’s a quick video walk­through on how to use this fea­ture I put togeth­er for a friend.


        Tuto­r­i­al: Using Gulp with html­process and concatenate

        I’ve been teach­ing myself Gulp recent­ly. I found the basics easy to pick up. Although I didn’t con­sid­er myself a Grunt expert, I’d taught myself Grunt pre­vi­ous­ly and that helped with me with Gulp. Before we go fur­ther, check out the GitHub repos­i­to­ry that con­tains the fin­ished exam­ple project we’ll go over here: https://​github​.com/​j​o​h​n​f​m​o​r​t​o​n​/​u​s​i​n​g​-​g​u​l​p​-​h​t​m​l​p​r​o​c​e​s​s​-​e​x​ample One thing I have seen in both Grunt and Gulp work­flows I’ve used from their repos­i­to­ries was a script… + read on


        Auto­mate dai­ly data­base back­ups with crontab and SFTP and be the mas­ter your domain.

        I recent­ly worked on a site which saved data in it’s local data­base which need­ed to be col­lect­ed and sent each day to a remote serv­er via SFTP for analy­sis. Need­less to say, I didn’t want to man­u­al­ly do this process every day, but I had nev­er ful­ly explored cron jobs, so I had to teach myself about cron jobs while I fig­ured out the prob­lem at hand. Here’s how I end­ed up automat­ing… + read on