This gist's comment stream is a collection of webdev apps for OS X. Feel free to add links to apps you like, just make sure you add some context to what it does — either from the creator's website or your own thoughts.
— Erik
| <snippet> | |
| <content><![CDATA[ | |
| // ${1} Resource | |
| Route::get('${1}s', array('as' => '${1}s', 'uses' => '${1}s@index')); | |
| Route::get('${1}s/(:any)', array('as' => '${1}', 'uses' => '${1}s@show')); | |
| Route::get('${1}s/new', array('as' => 'new_${1}', 'uses' => '${1}s@new')); | |
| Route::get('${1}s/(:any)edit', array('as' => 'edit_${1}', 'uses' => '${1}s@edit')); | |
| Route::post('${1}s', '${1}s@create'); | |
| Route::put('${1}s/(:any)', '${1}s@update'); | |
| Route::delete('${1}s/(:any)', '${1}s@destroy'); |
| #!/usr/bin/ruby | |
| # SIFTTTER 1.5: An IFTTT-to-Day One Logger by Craig Eley 2014 <http://craigeley.com> | |
| # Based on tp-dailylog.rb by Brett Terpstra 2012 <http://brettterpstra.com> | |
| # Multiple Date Function by Paul Hayes 2014 <http://paulrhayes.com> | |
| # | |
| # Notes: | |
| # * Uses `mdfind` to locate a specific folder of IFTTT-generated text files changed in the last day | |
| # * The location of your folder should be hardcoded in line 67, and the location of your Day One in line 66 | |
| # * Scans leading timestamps in each line matching the selected dates | |
| # * Does not alter text files in any way |
| local usbWatcher = nil | |
| -- This is our usbWatcher function | |
| -- lock when yubikey is removed | |
| function usbDeviceCallback(data) | |
| -- this line will let you know the name of each usb device you connect, useful for the string match below | |
| hs.notify.show("USB", "You just connected", data["productName"]) | |
| -- Replace "Yubikey" with the name of the usb device you want to use. | |
| if string.match(data["productName"], "Yubikey") then | |
| if (data["eventType"] == "added") then |
| -- A global variable for the Hyper Mode | |
| k = hs.hotkey.modal.new({}, "F17") | |
| -- Trigger existing hyper key shortcuts | |
| k:bind({}, 'm', nil, function() hs.eventtap.keyStroke({"cmd","alt","shift","ctrl"}, 'm') end) | |
| -- OR build your own | |
| launch = function(appname) |
| <?php | |
| // Create an array of timestamps for posts | |
| // and put them into an array called $timestamps. | |
| foreach ($timestamps as $timestamp) { | |
| $day = date("j", $timestamp); | |
| $hour = date("G", $timestamp); | |
| if (isset($heatcalendar['posts'][$day][$hour])) { | |
| $heatcalendar['posts'][$day][$hour]++; |
| #!/usr/bin/env python | |
| ''' | |
| Conditionally upload all of the photos from an exported Facebook album to a | |
| Micropub-compatible website with a media endpoint, and dump MF2-JSON data | |
| that can later be published to the same Micropub website. | |
| ''' | |
| import json | |
| import sys |
| #!/usr/bin/env python | |
| import os | |
| import sys | |
| import requests | |
| base_url = 'https://granary.io/instagram/cleverdevil/@self/@app/%s' | |
| query_args = { | |
| 'format': 'mf2-json', |
| Name | Package Id | Version | Source |
|---|---|---|---|
| 7Zip | 7zip.7zip | 19.0.0 | winget |
| Altap Salamander | salamander | choco | |
| Alt-Tab Terminator | alt-tab-terminator | choco | |
| AutoHotkey | Lexikos.AutoHotkey | 1.1.33.02 | winget |
| AutoHotkey Store Edition | HaukeGtze.AutoHotkeypoweredbyweatherlights.com | Latest | msstore (via winget) |
| Carnac |
| light: | |
| - platform: neopixelbus | |
| type: GRB | |
| variant: WS2812 | |
| pin: GPIO1 | |
| num_leds: 1 | |
| name: "NeoPixel 1" | |
| internal: true | |
| - platform: neopixelbus | |
| type: GRB |