Alfred Nutile
    • Posts
    • Windows Dev Box Try 3 2020
    • Using Python Lambda behind and ALB
    • Suggestions Around Building a Good Development Team in Parallel to Building a Good Product
    • Lambda Tips
    • Mocking in Python
    • PHP Xdebug Visual Code
    • Cognito and OAuth
    • PHPUnit CodeCoverage
    • Deploying Fargate
    • How to Troubleshoot and Issue
    • Bitbucket Pipeline
    • JSONEditor, Vue and Vuex
    • Laravel Filter Scope on a Model
    • Query Strings, Vue and Bootstrap Active Tab
    • Valet Laravel 7.1 and 7.2
    • Python3 Fixtures
    • PHPStan Setup
    • Vuex External File
    • Simple API_Token Auth for VueJS Components and Laravel
    • Dusk Screenshots to S3 of Failing tests
    • Windows Dev Box Try 2 2018
    • Laravel Queue Restart and 'Why are my changes not showing up'
    • Lambda and Github Webhooks
    • Query Strings and VueJS
    • Debugging AWS SAM
    • wip Fargate and Laravel
    • Getting Started with Orchestra Testbench for Laravel Package Development
    • GroupBy not Sorting by latest
    • BrowserSync and Laravel
    • Troubleshoot Laravel Socialite and Github login
    • Wrapping Libraries in Services JS
    • Passing from Blade to VueJs
    • Laravel and AWS Rekognition
    • Docker Laravel and Cron
    • Pusher and Laravel Updates
    • Dusk and Production (with Dusk disabled)
    • Testing Laravel API, Spark with Authentication
    • Example of Making Documentation in Markdown with PDF Output
    • Serverless Python and Example App WIP
    • VueJS Transition Helper
    • Laravel Asset Notes WIP
    • PostMark SMTP for sending Notifications and Password Resets
    • Dusk Notes
    • Continuous Delivery in a NutShell
    • Laravel Shift and Your Day Job
    • Wrapping JSONEditor in Vue as Well as Laravel Blade
    • Laravel, Dusk and Valet
    • WIP AWS Batch and Workers with Laravel
    • Mocking Models OutSide of Laravel
    • Versions and Branching a Library
    • Serverless and Custom Tags for Resources
    • Setting Up My Mac
    • Serverless, AWS API Gateway and Authentication
    • IronFunctions and PHP
    • Testing a trait with PHPUnit
    • Machine to Machine Laravel Passport
    • Meetings and Cross TimeZone Teams
    • Dusk and Homestead
    • Simple Slack Trait Get Request and return Response
    • We Code in the Context of our Quoting
    • Instantiate Request for Testing
    • Load Testing With Behat
    • Example Job Format for Queue
    • LarScanner simple foundation for building a good Laravel Security Scanner
    • Super Simple Sending Messages to Slack from Laravel
    • Pusher and PHP 'Error Failed to connect to Pusher'
    • Model Boot Events
    • Queue onConnection
    • Guzzle 5 or 6 or ????
    • Chrome update equals Behat Fail
    • Laravel and Casting 'JSON_UNESCAPED_UNICODE' Data
    • Laravel 5.x Cookbook Chat Area
    • Throttle Password Reset
    • Laravel Throttle Feature using IP address as Key
    • Troubleshooting a Failed Build with Codeship and SauceLabs
    • Amazon Machine Learning
    • Mockery Behat and Laravel
    • Adding Basic Auth to Forge
    • Uploading Images in Behat both at Domain Level and UI Level
    • Behat Laravel Domain Testing Inside Out
    • Keeping a Controller Method Simple
    • Example of Mixing it up Behat BDD and PHPUnit
    • Homestead and Auto Setup Hosts File
    • API Token Based Access Laravel 5.1 (Yet another article on this)
    • Contract Testing
    • Getting Going Quickly Windows, Behat and Selenium
    • AWS, S3 Storage and limited Visibility
    • Behat and Uploading Files to a Form Even on Remote Selenium2 Servers
    • Laravel, PHPUnit, Require_Once on Routes
    • Remote Behat Testing with Laravel
    • CMS or NOT CMS
    • Feature Flags In Laravel
    • Install Webdriver to get testing with Behat and Javascript
    • Slack Custom Commands and Laravel to Make an American to British Translater
    • Then Benefits of Building a Clickable POC as a Developer
    • Put It All Into Version Control Even Composer!
    • Why Side Projects are Good For Me
    • Do I Really Need This Route Anymore?
    • Logout User After Inactivity Laravel and Milddleware
    • CentOS or RedHat and Laravel
    • Quick Tip Forcing More Complex Passwords in Laravel
    • Image Uploads, Laravel, Angular and Flow.js
    • Simple Example of Making Code Easier to Read
    • Spark Setup Issue
    • Adding Expose IDS to Laravel MiddleWare
    • Note To Self: A VirtualBox machine with the name 'homestead' already exists.
    • Laravel and Angular Widgets e.g. Non SPA (Single Page Application) Pattern
    • Laravel 5.1 and Oauth
    • Talking to the Methods Not the Properties
    • Using your project docs inside the application
    • Behat for Product Owners
    • HasMany Through a Many to Many
    • Adding RSS to Your Site
    • Bower and Elixir
    • Quick way to Request Json from Angular and return from Laravel
    • Laravel 5.1 Behat and Codeship
    • Conventions to Help Minimize your ENV File
    • Start to end Billing using Stripe, Cashier and Laravel 5.1
    • Codeship and Laravel for Continuous Integration
    • Logging in Iron.io Workers
    • Writing Commands and Scheduling in Laravel 5.1
    • Easily Create Fixture Data from Remote Services and Refresh Mock Data
    • Adding Cache to your Laravel Site
    • Iron.io and Lumen
    • Quick way to mock data for Behat in Laravel
    • Code for making a Shortcut tool for your App
    • Using Faker and ENV vars with Behat
    • Using a BurnDown Chart to Pace Yourself
    • Behat and PhantomJs
    • PHP Error: Maximum function nesting level of '100' reached, aborting Behat
    • Iron.io Laravel and Workers, Microservices
    • Multi Domain Nginx Redirect
    • Sending Dates to Angular from Laravel
    • Dealing with Oauth2 Server and Laravel for both a local app login and for remote apps using Lucadegasperi/oauth2-server-laravel
    • Simple Look at Laravel Events
    • Laravel-Flysystem and Creating Time Limited Public Urls on S3
    • Laravel Behat and Selenium
    • Linux, Behat and installing ChromeDriver
    • Sqlite and Laravel
    • Timing PHPUnit Tests
    • Reusable UI/API CRUD Laravel and Angular
    • Laravel Blade and Angular brackets
    • Angular History Based BreadCrumbs
    • Embed Template Data in View (Angular, Laravel)
    • Quick fixture data and mocking external APIs
    • Mocking Queue Service for faster Behat Testing
    • Redirecting back to original Angular.js destination from Laravel Auth
    • Docker, MailCatcher and Laravel
    • PHP quick fixture data for phpunit testing
    • Nginx force SSL
    • Moving Forge Deploy Script to Envoy
    • Laravel and Angular Time/Date Display
    • Laravel 4.2 and Dotenv to set environment
    • Speeding up PHPunit tests and Behat in Laravel for Database refreshes
    • Angular Pusher Factory to Centralize Code (also using Laravel to set constants and properties)
    • CSRF Tokens and Angular.js
    • Temporary Auth Updates L5
    • Chrome and Behat
    • Design Guide - Controllers, Services and IOC
    • Multi Threaded Queue Processing
    • Team Style Guides and Mind Set
    • Sorting related models in Laravel
    • Behat for testing RESTful APIs
    • Boris REPL and you Applicatoin (Silex in this case)
    • SSL and Homestead
    • Drush and Homestead Vagrant Box
    • Polymorphic relationship Laravel
    • Quick way to traverse a nested php arrray
    • Using VCR for PHP API Testing
    • Saucelabs PHP Client
    • Many to Many Polymorphic Relations from Laravel to Angular and back
    • Laravel Sentry and UUID
    • Laravel Homestead and MailCatcher
    • Laravel Homestead and Beanstalkd Console
    • Restangular and nested responses
    • Behat Test more than number of elements
    • When you have to use Angular inside of Drupal
    • Transforming Output from the Database to the View/REST layer
    • Showing nested relationships details
    • Simple Laravel CMS Example
    • Quick Gulp file to run php-unit tests
    • Laravel and non email authentication
    • Using Beanstalkd to Schedule the release of a post in Laravel
    • Behat Seed Repo
    • Using Dot Env files to manage settings
    • Using Scopes in Laravel
    • Quick way to add text to a hidden ckeditor field
    • Github CLI to get Teams and Members of an Org
    • Mink Assertions
    • Drupal and Composer install or update
    • Adding Column using sqlite caused error 'Cannot add a NOT NULL column with default value NULL'
    • php artisan migrate:reset not working
    • Angular and Scope - or - How not to waste time figuring out why a scope value is not 'working'
    • Behat Checkbox
    • Adding Markdown Editor to your Blog/CMS
    • Running multiple tasks asynchronously with Drush, Drupal and MT
    • Building the UI first with Angular, Mocked Data and REST
    • Behat Vagrant install and local testing
    • GitWrapper Per Page settings KnpLabs / php-github-api
    • Angular and Laravel Partials
    • Using Github Pages for your help docs
    • Twig and Drupal 7
    • Drupal Services and Instantiating a Class
    • Guard, Laravel and phpunit
    • Angular.js, CKEditor, and REST including file uploads
    • Saucelabs Timeout
    • Angular Drupal and CSRF
    • Ng-if and Scope
    • Mocking drupal database queries
    • Ubuntu 12.04 and PHP 5.4
    • Laravel Project Management Site
    • Angular Watching a model and it's filters
    • Behat Resources
    • Nesting Laravel 4 Routes
    • Exploring Code and Laravel
    • Node.js error
    • Behat and bad HTML
    • Behat Mink and using Javascript / jQuery to test attributes
    • Keep it (functions/methods) small and simple
    • PHPSH
    • Behat and Drupal episode 1
    • Quick Script to update Heroku database
    • Bash History
    • Drupal FAPI Validation Error
    • Heroku in Heroku
    • Drush and Features-Export
    • Hosting is Dead?
    • HerokuApps and Multiple Domains
    • Global Redirect module after spaces / purl install does not
    • Ruby on Rails with CMS and other fun stuff
    • Paperclip and S3 and Ckeditor
    • RubyMine and BetterErrors
    • Installing mysql2 on a mac
    • NDA
    • Capistrano for non-rails sites
    • Angular Seed Testing Setup
    • Angular.js Ticket System
    • Paperclip and S3
    • Technologies for a Saas
    • My first Rails site for the masses.
    • Refinery CMS and Twitter Bootstrap
    • Vagrant and Laravel
    • Questions that may come in handy when interviewing
    • Hack For Change Challenge
    • Bootstrap Generator Gem Ruby on Rails
    • Using headless tests with Mink and Behat
    • ActiveAdmin Rails
    • Making lists from acts_as_taggable
    • Javascript Based Product Viewer
    • jQuery Address
    • CORS and Laravel
    • Great tip on Git and Jenkins to auto deploy
    • Going Angular.js
    • DrupalCamp Western Mass
    • Introduction
    Using Python Lambda behind and ALB

    Just a quick note to self about ALB and Lambda. When using Lambda behind and ALB for routing your response has to be formatted properly else you will get a 502. https://pypi.org/project/alb-response/ solved this problem. from alb_response import alb_response def lambda_handler(event, context): response_dict = process_the_event(event) return alb_response( http_status=200, json=response_dict, is_base64_encoded=False, ) The results are easy enough to do by hand but I had a bit of time really finding out the format to respond with other than JavaScript and that casing there was a bit confusing.

    February 6, 2020 Read
    Lambda Tips

    @WIP Taking advantage of a running Lambda function and it’s state https://aws.amazon.com/blogs/compute/sharing-secrets-with-aws-lambda-using-aws-systems-manager-parameter-store/ under the section Lambda function has a nice “trick” of setting above the class app = None then later on it will see if that is set def lambda_handler(event, context): global app # Initialize app if it doesn't yet exist if app is None: print("Loading config and creating new MyApp...") config = load_config(full_config_path) app = MyApp(config) return "MyApp config is " + str(app.

    August 1, 2019 Read
    Cognito and OAuth

    make your App Client Make sure to check Make some scopes uner Resource Server Then “App Client Settings” Connect it to “Cognito User Pool” And choose “Client Credentials” from “Allowed OAuth Flow” choosing some scopes

    March 14, 2019 Read
    Deploying Fargate

    Just some notes on the process. This will show how to deploy both a Staging build and then Production. Staging Staging is done by TravisCI after all tests pass Here is the gist of it the deploy step calls to a bash file. deploy: skip_cleanup: true provider: script script: bash deploy/travis_deploy.sh on: branch: mainline Then #!/usr/bin/env bash # Bail out on first error set -e ## Get the directory of the build script DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" ## Get the current git commit sha HASH=$(git rev-parse HEAD) ## Get any secret files aws s3 cp s3://foo/environments/$STACK_ENV_FILE $DIR/app/packaged/.

    October 27, 2018 Read
    Dusk Screenshots to S3 of Failing tests

    I can be really annoying to troubleshoot a failed test in Dusk when using CI systems. What I ended up doing was setting up my project to send these files to S3 on fail. Here are the steps Setup You App This is just S3 storage so make sure you have a bucket and a folder in the bucket to write to. Basically for AWS you make an IAM with a key and secret and let it read/write to this folder.

    June 26, 2018 Read
    Lambda and Github Webhooks

    Related to https://developer.github.com/webhooks/ and pushing data to Lambda AWS. I can check the token by just having this check in my handler. const crypto = require('crypto'); exports.handler = (event, context, callback) => { let headers = event.headers; let body = event.body; if (typeof body === 'object') { body = JSON.stringify(event.body); } let github_event = headers['X-GitHub-Event']; if ( github_event === undefined || typeof github_event !== 'string' || github_event.length < 1 ) { callback(null, { statusCode: 400, body: 'Missing X-GitHub-Event' }); return; } let github_signature = headers['X-Hub-Signature']; if ( github_signature === undefined || typeof github_signature !

    May 8, 2018 Read
    WIP AWS Batch and Workers with Laravel

    Sending Docker Commands to Get A Task Done This article will show how to get started with AWS Batch and Docker to spin up a “worker” By the time you are done reading it you will: Have a Docker image to run your command in. Deploy the Docker image to AWS ECR And Run a Task on the AWS Batch system, or a 100 tasks, does not matter. Finally you will have the scripts needed to fully build AWS Batch with CloudFormation, e.

    September 6, 2017 Read
    Serverless and Custom Tags for Resources

    Because much of serveless.com is CloudFormation based, you can easily update existing resources. They talk about this feature here For me this was required for adding tags # you can add CloudFormation resource templates here resources: Resources: ServerlessDeploymentBucket: Properties: Tags: - { Key: "project", Value: "${self:provider.project}" } - { Key: "environment", Value: "${opt:stage, self:provider.stage}" } - { Key: "parent_project", Value: "${self:custom.parent}" } - { Key: "key_contact", Value: "${self:custom.contact}" } - { Key: "billing_ref", Value: "${self:custom.

    August 22, 2017 Read
    Serverless, AWS API Gateway and Authentication

    Just a note2self really. Setting up Auth was super easy As seen below I had to add to my serverless.yml authorizer addQuote: handler: quote/handler.add events: - http: path: quote method: post cors: true authorizer: aws_iam authorizer: aws_iam From here I then needed, in this case Postman, to pass an AWS KEY and SECRET made for this app. When making the user I attached this Policy to the user { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": "arn:aws:execute-api:us-east-1:AWS_ID:*/dev/POST/quote" } ] } I an easily make this in the serverless.

    July 18, 2017 Read
    AWS, S3 Storage and limited Visibility

    Storing files on S3 is great. And many times those files are private so I only want to give temporary access to them. Using Laravel Storage I can interact with the file-system quite easily and seamlessly especially between Cloud and Local. In this case I want to return a file only for 10 minutes public function getSignedUrl($filename_and_path, $expires_minutes = '10') { $client = Storage::disk('s3')->getDriver()->getAdapter()->getClient(); $bucket = env('BUCKET'); $command = $client->getCommand('GetObject', [ 'Bucket' => $bucket, 'Key' => $filename_and_path ]); $request = $client->createPresignedRequest($command, Carbon::now()->addMinutes($expires_minutes)); return (string) $request->getUri(); } That is it!

    April 27, 2016 Read
    ${Title}

    ${Summary}

    February 6, 2020 Read
    Navigation
    • About
    • Projects
    • Recent Posts
    • Achievements
    Contact me:
    • Email: me@alfrednutile.info
    • Phone: +1.413.230.4767

    Toha
    ICONS8
    Powered by Hugo Logo