# Atsushi Nagase > Blog by Atsushi Nagase ## Posts - [A URL Shortener on the Cloudflare Workers Free Plan, Managed with Terraform](https://ngs.io/2026/06/13/terraform-cloudflare-url-shortener/index.md): Published terraform-cloudflare-url-shortener, a Terraform module that runs a tiny URL shortener entirely on the Cloudflare Workers free plan. - [Scrapmd - the Markdown formatted Webpage Scrapbook](https://ngs.io/2020/06/17/scrapmd/index.md): I’ve published initial version of Scrapmd. - [CI2Go for macOS](https://ngs.io/2020/05/15/ci2go-maccatalyst/index.md): I've published CI2Go the CircleCI client for macOS by porting existing iOS app using Mac Catalyst. - [Go Release Binary GitHub Action](https://ngs.io/2019/02/08/go-release-action/index.md): Published Go Release Binary Action on GitHub Marketplace - [Import AWS credentials.csv to 1Password using aws1pif](https://ngs.io/2019/02/07/aws1pif/index.md): Open-sourced aws1pif, a command line tool that converts AWS credentials.csv to 1Password .1pif file format - [CI2Go Today widget support](https://ngs.io/2018/07/08/ci2go/index.md): Released CI2Go 2.1.0 including Today widget support - [Coveralls plugin for fastlane](https://ngs.io/2018/07/07/fastlane-plugin-coveralls/index.md): Published Coveralls plugin for fastlane - [CI2Go version 2](https://ngs.io/2018/07/02/ci2go-v2/index.md): Released version 2 of CI2Go the CircleCI client for iPhone and iPad - [Wiplock - Protect main branch from in-progress branches](https://ngs.io/2016/09/23/wiplock/index.md): I released Wiplock that protects main branch from pull requests that contains WIP in the title or incompleted tasks. - [Testing Email Delivery in Nightwatch.js End to End test](https://ngs.io/2016/09/08/nightwatch-mail-test/index.md): I've published an example Nightwatch.js E2E testing project that contains Email delivery testing using Mandrill and RequestBin. - [Hyperterm Tomorrow Themes](https://ngs.io/2016/07/17/hyperterm-tomorrow-themes/index.md): I've published Tomorrow Themes for Hyperterm - [PGP encrypted messages for Keybase users in our chat rooms](https://ngs.io/2016/05/14/hubot-keybase/index.md): I've released hubot-keybase, a Hubot script to encrypt messages for Keybase users. - [Announcing CI2Go v1.3.0](https://ngs.io/2016/03/25/ci2go/index.md): Release note of CI2Go v1.3.0 the @circleci client for iOS. - [Deploy Swift WebApps on Amazon EC2 Container Services (ECS)](https://ngs.io/2016/03/04/swift-webapp-on-ecs/index.md): How to run web applications built with - [Real-time Log Support w/CI2Go the @circleci Client for iOS](https://ngs.io/2016/01/29/ci2go/index.md): I've released new version of CI2Go, the @circleci client for iOS that supports real-time log watching. - [Generate NSColor / UIColor based on Swift String](https://ngs.io/2015/12/13/color-hash-swift/index.md): I've published a Swift library ColorHash, that generates UIColor and NSColor based on given string. - [Copy UIColor / NSColor initializer code from Sketch app](https://ngs.io/2015/12/11/sketch-swift-color/index.md): I've published a Sketch app plugin for generating UIColor and NSColor initializer Swift code from fill color of selected layers. - [Announcing @circleci client for Apple Watch ⌚️](https://ngs.io/2015/06/30/ci2go-applewatch/index.md): Version 1.1.0 of CI2Go, the CircleCI client for iOS is now available on the AppStore. - [CI2Go v1.0.0 the @circleci Client for iPhone & iPad](https://ngs.io/2014/11/26/ci2go/index.md): I've released a CircleCI client for iPhone & iPad. - [Apply UIAppearance immediately on the screen](https://ngs.io/2014/10/26/refresh-ui-appearance/index.md): How to apply appearance changes made with UIAppearance's proxy method immediately - [Pick assignee for JIRA issues with hubot-jira-lotto](https://ngs.io/2014/07/24/hubot-jira-lotto/index.md): I published a Hubot script to pick assignee for JIRA issues. - [Fetch distributions and invalidate with hubot-cloudfront](https://ngs.io/2014/06/28/hubot-cloudfront/index.md): I published a Hubot script to fetch Amazon CloudFront distribution list and invalidate objects. - [TDD Hubot scripts with gulp+mocha](https://ngs.io/2014/06/13/tdd-hubot-scripts/index.md): I configured mocha tests for my Hubot scripts. - [Take cross browser screenshots with hubot-browserstack](https://ngs.io/2014/06/08/hubot-browserstack/index.md): I published a Hubot script to take cross browser screenshots with BrowserStack. - [GitHub Notifications for Google Chrome](https://ngs.io/2014/06/07/github-notifications-crx/index.md): I created a chrome extension to check GitHub Notifications in toolbar icon. - [Abort Capistrano 2 deployment if remote is dirty](https://ngs.io/2014/05/11/abort-capistrano-git-dirty/index.md): I configured Capistrano 2 to abort deployment if remote directory is dirty. - [Similar Articles on middleman-blog](https://ngs.io/2014/05/11/middleman-blog-similar/index.md): I created a middleman-blog extension to lookup similar articles. - [Exporting and importing iTerm 2 Color Schemes](https://ngs.io/2014/05/05/iterm2-color-schemes/index.md): Exporting and importing iTerm 2 Color Schemes - [Universal Code support for middleman-google-analytics](https://ngs.io/2014/04/16/middleman-google-analytics/index.md): I've sent a pull request to support Universal Code for middleman-google-analytics - [middleman-ogp](https://ngs.io/2014/04/13/middleman-ogp/index.md): Released an OpenGraph Protocol helper extension for Middleman. - [Generating JavaScript code to arrange elements to be same with specified HTML or element using jQuery Element Diff](https://ngs.io/2013/09/01/jquery-element-diff/index.md): jQuery Element Diff Plugin is a plugin to generate JavaScript code to arrange elements to be same. - [Generating unique selector with jQuery Selectorator](https://ngs.io/2013/08/18/jquery-selectorator/index.md): jQuery Selectorator Plugin is a plugin to generate unique selector from jQuery object. $('element').getSelector()Set options.ignore to ignore classes, ids, names: $('element').getSelector({ ignore: { classes: ['ui-droppable'] } }) - [Twitter Bootstrap theme for RDoc](https://ngs.io/2013/01/20/bootstrap-theme-for-rdoc/index.md): I created a RDoc Generator with Bootstrap forked from Hanna Nouveau. http://ngs.github.io/hanna-bootstrap/ Hanna Bootstrap is available from RubyGems. gem install hanna-bootstrapOr git-clone from the repo if you would. git clone git://github.com/ngs/hanna-bootstrap.gitThe templates of this generator are written in HAML, SASS, CoffeeScript. You can customize your favorite Bootstrap based theme easily. Enjoy! - [Using blink(1) as RSpec formatter](https://ngs.io/2012/12/19/blink1-rspec-formatter/index.md): I created Ruby library for blink(1) that wraps official blink1-lib C interface. This video shows runnning RSpec using blink(1) as formatter, shows current status with LED color. Both are available on RubyGems gem install rb-blink1 gem install blink1-formatterGitHub: rb-blink1, blink1-formatter - [Evernote SDK for Mac: Async requests and file attachment support](https://ngs.io/2012/11/22/evernote-sdk-mac/index.md): Current HEAD of Evernote SDK for Mac OS X does not support async requests but the iOS SDK does. So I ported modern Objective-C code (means non-thrift) from the iOS SDK. ngs/evernote-sdk-mac This version enables note creation very easy. - [Released EverDesktop](https://ngs.io/2012/11/15/everdesktop-1-0/index.md): I’ve just released EverDesktop. EverDesktop is a small Mac application for clipping files on your Desktop to Evernote, allows you to make tidy your Mac from status bar icon. - [Open Graph protocol tag helper for nanoc](https://ngs.io/2012/11/03/nanoc-og-tags/index.md): I’ve created Open Graph protocol tag helper for nanoc to build my corporate site. To use this helper: Download Ruby code Place it to lib/nanoc/helpers/ on your nanoc project. Add require 'nanoc/helpers/og_tags' to lib/default.rb. Now you can use og_tag helper in your templates. For more details see the spec or trace my haml template. - [iGist v1.2 - The Gist Client for iPhone, iPad](https://ngs.io/2012/10/03/igist-1-2/index.md): I just released new version of iGist - The Gist Client I rebuilt the app for iOS 6, optimized for iPhone 5's 4 inch screen and supported Share on Facebook. This requires iOS 6 or later, supports both iPhone and iPad. - [Create Events on Google Calendar with Git Commit](https://ngs.io/2012/08/31/gitlog2gcal/index.md): To track colleagues' work or let colleagues track my work, we started using Google Calendar with writing Git Commits as events. - [Generating Objective-C Literals from JSON](https://ngs.io/2012/07/26/generating-objc-literals-from-json/index.md): The modern syntaxes for NSDictionary, NSArray, NSNumber are supported from Xcode 4.4. To use this easily for testing, I customized JSON#stringify method ported from JSON2.js. With node.js, the script can convert JSON from STDIN. Also in browser, this works with stripping lines under if(process) scope. - [Released Evernote Plugin for Coda 2](https://ngs.io/2012/06/17/evernote-codaplugin/index.md): This plug-in allows you to clip snippets and rendered HTML from Markdown to Evernote. http://ngs.github.com/evernote-codaplugin - [Released Creole Plugin for Coda 2](https://ngs.io/2012/05/25/creole-codaplugin/index.md): This plug-in allows you to preview and generate HTML from Creole wiki documents. http://ngs.github.com/creole-codaplugin - [Released Markdown Plugin for Coda 2](https://ngs.io/2012/05/25/markdown-codaplugin/index.md): This plug-in allows you to preview and generate HTML from Markdown wiki documents. http://ngs.github.com/markdown-codaplugin - [Debugging Coda Plug-In with LLDB](https://ngs.io/2012/05/25/debugging-coda-plug-in-with-lldb/index.md): Open Edit Scheme window (⌘<). Select Run pane from side bar. In Info tab, select Coda 2.app from Executable dropdown. Click the OK button to close the window. Select your your plug-in target. Select Build Settings tab, click Add Build Setting, select Add User-Defined Setting and set name as INSTALL_BUNDLE, value as 1 for Debug configuration. Switch to Build Phase tab, click Add Build Phase button and select Add Run Script Copy and paste the script bellow. Now you can debug with your LLDB console, enjoy! - [Released Gist Plugin for Coda 2](https://ngs.io/2012/05/23/gist-codaplugin/index.md): This plug-in allows you to create public and private gists from current active document. http://ngs.github.com/gist-codaplugin - [Migrating Coda modes to Coda 2](https://ngs.io/2012/05/23/migrating-coda-mode-to-coda2/index.md): Coda 1.x modes are not compatible with Coda 2. This is how to migrate Coda 1.x modes to Coda 2. - [jquery-rails confirmation with Bootstrap](https://ngs.io/2012/04/20/jquery-rails-confirmation-with-bootstrap/index.md): In default, jquery-rails prompts with native JavaScript confirm. That’s sucks. So I overrode $.rails.fire method to show Bootstrap style modal instead. - [Released iGist - The Gist Client for iPhone, iPad](https://ngs.io/2012/04/19/igist-initial/index.md):