1. Using GitLab CICD for your static blog

    Tue 05 June 2018 By jarv

    In the process of making all of my private repositories public on Github and moving off of GitHub pages I have also decided to move most of my repos over to GitLab. One reason is that setting up a CICD pipeline makes it extremely easy to publish these posts automatically. This in combination with GitLab's web IDE makes minor changes a little bit easier to make.

    CICD piplines in GitLab are controlled with a single file, .gitlab-ci.yml that is placed at the root of the repository. Wit this file, on every commit, the following pipeline runs that deploys to draft.jarv.org and on the master branch for jarv.org.

    GitLab has integrated CI/CD runners that allow you to execute whatever you want in a docker image of your choice. By creating the .gitlab-ci.yml below you get a nice deployment pipeline like this:

    cicd

    Here is what the gitlab-ci.yml configuration looks like for the jarv.org repository:

    stages:
      - build
      - deploy
    
    before_script:
      - git submodule update --init --recursive
      - pip install -r requirements.txt
    
    build:
      image: registry.gitlab.com/jarv/jarv.org/ci-image
      stage: build
      script:
        - make clean
        - make html
    
    deploy_draft:
      image: registry.gitlab.com/jarv/jarv.org/ci-image
      stage …

    read more
  2. Removing all of my private repos from GitHub

    Thu 31 May 2018 By jarv

    Today I decided to remove all private repositories from GitHub. Why? Interesting that having private repositories generally meant that I was not being as careful about managing secrets properly. Checking in API tokens, keys and especially cloud tokens into git never a good idea and looking through some of my old private repos I was doing exactly that. So for others who are interested in going from a developer GitHub account back to free I highly recommend doing it! Granted it's only $5 a month savings but I definitely feel a bit more transparent than I did 15 minutes ago. :) For finding secrets you can use something like trufflehog to ensure that there no sensitive bits in your git history.


  3. Building cmdchallenge using Lambda and API Gateway in the AWS free-tier with Docker and Go

    Mon 24 April 2017 By jarv

    Have you ever thought about building a side-project for fun without spending a lot on hosting? This post might be for you. With the most tech-buzz-wordy title I could conjure up here is a quick overview of how cmdchallenge.com is built. The site is a simple web application side-project that executes shell commands remotely in a docker container in AWS. The front-end gives the feeling of a normal terminal but underneath it is sending whatever commands you give it remotely on an EC2 instance inside a Docker container.

    The source code for most of it is located on github including a tiny command executer written in Go, the challenge definitions, and a test harness.

    The following AWS services are used for the site:

    • Cloudfront
    • API Gateway
    • S3 bucket
    • Lambda function
    • DynamoDB
    • t2.micro EC2 Instance running coreos
    • CloudWatch logs

    In addition to this Amazon Certificate Manager and Route53 was used but for everything above you can keep costs close to zero in AWS. There is no free tier for Route53 (sad panda) but it's like 50 cents a month for a single zone.

    Features:

    • Submit commands, execute them in a bash sub-shell.
    • Check the output of the command for …

    read more
  4. User Submitted Solutions

    Sat 04 March 2017 By jarv

    Adding to the interesting 191 ways to echo hello world I've now added the ability to see user-submitted solutions to cmdchallenge.

    There are some gems if you dig through them including maybe the longest regex I've ever seen for pulling an IP address out of a file:

    (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
    

    Also scrolling down the page of solutions to the corrupted text problem is glorious.

    The solutions are not updated regularly right now but would be easy enough to do in the future if people want to see more, let me know on twitter and also Update: Solutions are now generated every five minutes. Feel free to submit suggestions for new challenges on github.


  5. figlet breakout

    Fri 24 February 2017 By jarv

    I was looking for a cool ending for cmdchallenge and decided to dust off a 2 year old javascript project which created a breakout game from figlet fonts. Not quite a full re-write but fixed a lot of bugs and did away completely with coffee-script. More info on the github page.

    Or you can click here to play.


Page 1 / 4 »