I’ve released Shiomi , a tide chart app that runs on iPhone / iPad / Mac / Apple Vision Pro / Apple Watch. “Shiomi” (潮見) is Japanese for “tide watching”. It’s free, with no ads and no in-app purchases. App Store / Website What makes it different Unlike most existing tide apps, Shiomi downloads the harmonic constants for a location — the parameters of the tidal…
I’ve published color.recipes , a color-scheme collection you can filter by tag. Schemes you like can be downloaded or copied in various formats. The schemes are managed in a public GitHub repository, so any combination that’s missing you can make yourself and add via a PR.
I’ve published terraform-cloudflare-url-shortener , a Terraform module that deploys a tiny URL shortener running entirely on the Cloudflare Workers free plan. Short links are defined declaratively as a Terraform map and baked into the Worker script — no KV namespace, no database, no paid features required. The module is available on the Terraform Registry as ngs/url-shortener/cloudflare .
I’ve published initial version of Scrapmd , an app that clips webpage content into iCloud Drive with Markdown formatted article body and embedded images.
I’ve published CI2Go the CircleCI client for macOS by porting existing iOS app using Mac Catalyst . Both iOS and macOS versions are available on App Store in same URL. Product website: ci2go.app
I’ve published Go Release Binary Action on GitHub Marketplace. Go Release Binary Action on GitHub Marketplace This GitHub Action builds and uploads Go build artifacts as Release Artifacts automatically when Release was created on GitHub repository.
I’ve just released version 2.1.0 of CI2Go , the CircleCI client for iPhone and iPad. v2.1.0 contains the following: Today widget SSH connect Delete local artifacts Open application by URL
I’ve just published a fastlane plugin that sends Xcode code coverage to Coveralls and its depending library xccoveralls that also works as standalone command line tool. ngs/fastlane-plugin-coveralls ngs/xccoveralls
TL;DR I released Wiplock that protects main branch from pull requests that contains WIP in the title or incompleted tasks. https://wiplock.com Wiplock is an OSS built with Go and React + Redux. Please take a look if you’re interested in. https://github.com/ngs/wiplock
I’ve published an example Nightwatch.js End to End (E2E) testing project that contains Email delivery testing using Mandrill and RequestBin . ngs/nightwatch-mail-example on GitHub This example project tests subscribing and unsubscribing Hacker News Letter user flow.
TL;DR Developing Web applications with Swift is pretty fun 🤘 We can run them on Amazon EC2 Container Services and I tried to build light-weight Docker image to deploy more faster. Here is an example project I made, check this out :point_down: https://github.com/ngs/Swifton-TodoApp https://hub.docker.com/r/atsnngs/docker-swifton-example/ https://circleci.com/gh/ngs/Swifton-TodoApp
I've released new version of CI2Go, the @circleci client for iOS that supports real-time log watching. CI2Go on the App Store In order to support real-time log watching, I dropped the API Refresh Interval feature from this version.
I’ve published a Swift library ColorHash , that generates UIColor and NSColor based on given string. ngs/color-hash.swift import ColorHash let str = 'こんにちは、世界' let saturation = CGFloat( 0.30 ) let lightness = CGFloat( 0.70 ) ColorHash(str, [saturation], [lightness]).color This is a Swift port of a JavaScript library Color Hash .
I’ve published Copy Swift Code , a Sketch app plugin for generating UIColor and NSColor initializer Swift code from fill color of selected layers. ngs/sketchplugin-swift-color
Version 1.1.0 of CI2Go , the CircleCI client for iOS is now available on the AppStore . CI2Go on the App Store This update includes WatchKit Extension.
I was looking for how to apply changes made with UIAppearance’s proxy method immediately. I found a solution in a library UISS , that handles Stylesheets written with JSON format.
I published a Hubot script to fetch Amazon CloudFront distribution list and invalidate objects. ngs/hubot-cloudfront npm install --save hubot-cloudfront
I created 3 Hubot scripts and published to npm , however I worried about that there are no unit tests with them. So I configured them unit tests with gulp and mocha .
I published a Hubot script to take cross browser screenshots with BrowserStack . me > hubot screenshot me http://www.google.com/ hubot > Started generating screenshots in http://www.browserstack.com/screenshots/d804f186e460dc4f2a30849a9686c3a8c4276c21 To add this script run npm install command in your hubot directory. npm install --save hubot-browserstack and add hubot-browserstack to…
I created a chrome extension to check GitHub Notifications in toolbar icon. This displays unread count and lists unread notifications in popup. GitHub Repository: ngs/github-notifications-crx
I configured Capistrano 2 to abort deployment if remote directory is dirty. Because uncommited changes in remote directory will cause degrade. # Of course, modifying source code in remote directory is bad, but sometimes we need to do it.
I created a middleman-blog extension to lookup similar articles. View middleman-blog-similar on GitHub . You can retrieve similar articles from similar_articles helper method or Middleman::Blog::BlogArticle#similar_articles instance method.
I started to manage stuffs with dotfiles git repository instead of Boxen . I managed iTerm 2 color schemes with puppet-iterm2 modules, that was very useful.
As Google announced , Universal Analytics became out of beta. This blog is using middleman-google-analytics to embed Google Analytics code, so I need to paste the snippet or modify the extension to use Universal Analytics. The extension helped me a lot, so I started improve that and sent pull requests.
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-bootstrap Or git-clone from the repo if you would. git clone git://github.com/ngs/hanna-bootstrap.git The templates of this generator are written in HAML , SASS , CoffeeScript . You can customize your favorite Bootstrap based…
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-formatter GitHub: rb-blink1 , blink1-formatter
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.
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.
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 .
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.
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.
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…
In default, jquery-rails prompts with native JavaScript confirm . That’s sucks. So I overrode $.rails.fire method to show Bootstrap style modal instead.