A project of the Feminist Software Foundation. Feminist software is a cornerstone of any modern free society. We build this foundation.
Now hosted on BitBucket, as GitHub proves to be too misogynistic to support a feminist programming language.
/*jslint vars: true, plusplus: true, devel: true, nomen: true, regexp: true, indent: 4, maxerr: 50 */ | |
/*global define, $, brackets, window */ | |
/* Simple extension that opens images for preview instead of showing the error modal. */ | |
define(function (require, exports, module) { | |
"use strict"; | |
/* Sadly enough, this is the only line of code utilizing | |
* Brackets' architecture in the right way. */ | |
var Strings = brackets.getModule("strings"); |
A project of the Feminist Software Foundation. Feminist software is a cornerstone of any modern free society. We build this foundation.
Now hosted on BitBucket, as GitHub proves to be too misogynistic to support a feminist programming language.
/VBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAAD9aXH9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5cf1lPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i/yIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTU3NzIsIDIwMTQvMDEvMTMtMTk6NDQ6MDAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE0IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBQzNBQzhFMDNFN0MxMUU1OTFGMjhGRjIxNjJGQTAyRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NDU2RTI1QzNFN0QxMUU1OTFGMjhGRjIxNjJGQTAyRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkFDM0FDOERFM0U3QzExRTU5MUYyOEZGMjE2MkZBMDJGIiBzdFJlZjpkb2N1 |
iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgTWFjaW50b3NoIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkFDM0FDOEUwM0U3QzExRTU5MUYyOEZGMjE2MkZBMDJGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjU0NTZFMjVDM0U3RDExRTU5MUYyOEZGMjE2MkZBMDJGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QUMzQUM4REUzRTdDMTFFNTkxRjI4RkYyMTYyRkEwMkYiIHN0UmVmOmRv |
#!/usr/bin/ruby | |
require 'cgi' | |
cgi = CGI::new | |
program = cgi['program'] | |
result = "" | |
message = "" | |
unless program != "" | |
message = "" |
import re | |
def parse(template, string): | |
result = {} | |
# getting a full list of params with their default values if present | |
params_list = re.findall(r'{{\s*(.+?)\s*(?:=(.+?))?\s*}}', template) |
import string | |
class BaseNumber(): | |
def __init__(self, number=None, numerator=None, denominator=None): | |
if numerator and denominator: | |
self.numerator = int(numerator) | |
self.denominator = int(denominator) | |
elif number: | |
self.num = float(number) |
description "Dropbox" | |
author "emedvedev" | |
start on runlevel [2345] | |
stop on runlevel [!2345] | |
respawn | |
setuid root | |
env LANG="en_US.UTF-8" |
ChatOps — a concept where a chat bot acts as a control plane for your operations — has always been a core part of StackStorm. It adds context to your actions, automates routine tasks nobody likes, helps team members communicate better and learn from each other, and sometimes it's just plain fun. If you're new to this, check out the DevOps Next Steps talk by James Fryman, and if you've been writing Eggdrop scripts in IRC since you were five but never used it in your daily operations, you might also get inspired from the ChatOps at GitHub talk by Jesse Newland.
Today, we're all excited to introduce — as a part of our 1.2.0 release — a completely revamped ChatOps feature list. If you're already using our Hubot integration to execute StackStorm actions from chat, stop doing whatever it is you're doi
{ | |
"actionalias": { | |
"uid": "action:chatops:get", | |
"ack": { | |
"format": "Got {{ execution.parameters.thing }}" | |
}, | |
"enabled": true, | |
"name": "get", | |
"result": { | |
"enabled": false |