this is a snap for web3 mq of MetaMask
Controllers for MetaMask Snaps
MetaMask Snaps JSON-RPC method implementations
A library containing the core functionality for building MetaMask Snaps
Snap sandbox environments for executing SES javascript
A collection of utilities for MetaMask Snaps
MetaMask Keyring API
MetaMask example snap demonstrating preinstalled Snaps
A registry containing metadata about verified and blocked Snaps.
The test snaps website for MetaMask Snaps, used for end-to-end testing
A sophisticated and highly customizable Cytoscape.js extension for grid and guideline interactions.
An extension for svg.js which allows to resize elements which are selected
MetaMask example snap demonstrating the use of `snap_dialog`.
This package is responsible for getting transactions from our Bitcoin and Solana snaps
 [](https://opensource.org/licenses/MIT)  resolution
MetaMask example snap demonstrating the use of error handling in snaps.
MetaMask example snap demonstrating the use of `snap_manageState`
Finite Field Library in Javascript
Manacle will allow you to attach constraints to your objects that will persist across new instances of similar objects. As an example, you can constrain a Time object to always advance to the next hour. Then, if you add even one minute to that Time, it will snap to the next hour.
= RUGS - RUby Git Setup A helper script that makes setting up remote git repositories a snap. == WARNING: This is still alpha so use it at your own risk! Note: I don't use alpha/beta in the version numbers until I have a first real release because of how Ruby Gems handles them. == What is it? RUGS has three main functions: * Creates a local git repository and directory structure using default templates or ones you create. * Sets up a remote repository to mirror your local one. * Adds a framework of git hooks allowing you to store and run your own hooks in directly from the repo. RUGS makes creating remote repos as simple as `rugs create repo_name on server_name`. RUGS even allows you to automatically embed your Git hooks in the repo itself. No more jumping through hoops to make sure your hooks are maintained with your project; with RUGS you just store your hook scripts in the `git_hooks` directory and they're automatically updated and run. \ Once you've set up your project using RUGS you just use Git as you normally would with the exception of your hooks being the in `git_hooks` directory.
= ebs_conductor The EBS Conductor is a library for managing Amazon Elastic Block Storage volumes and snapshots. It is designed to persist a specific set of data (a "lineage") between different compute instances. EBS Conductor can be used on it's own, but it's most powerful when executed on an EC2 instance using Chef, and the ebs_conductor cookbook[https://github.com/rgeyer/cookbooks/tree/master/cookbooks/ebs_conductor] == Examples === Attach a new 1GB blan volume in the lineage "foobar" to a linux box at /dev/sdb1 ebs_conductor = Rgeyer::Gem::EbsConductor.new('...','...') ebs_conductor.attach_from_lineage('i-abcd1234', 'foobar', 1, '/dev/sdb1') === Attach a specific snapshot to a 1GB volume in the lineage "foobar" to a linux box at /devb/sdb1 ebs_conductor = Rgeyer::Gem::EbsConductor.new('...','...') ebs_conductor.attach_from_lineage('i-abcd1234', 'foobar', 1, '/dev/sdb1' {:snapshot_id => 'snap-abcd1234'}) === Snapshot the lineage "foobar", do not purge any old snapshots in the lineage ebs_conductor = Rgeyer::Gem::EbsConductor.new('...','...') ebs_conductor.snapshot_lineage('foobar') === Snapshot the lineage "foobar", and purge old snapshots so that only 7 remain ebs_conductor = Rgeyer::Gem::EbsConductor.new('...','...') ebs_conductor.snapshot_lineage('foobar', {:history_to_keep => 7}) === Snapshot the lineage "foobar" from the specified volume_id This is useful if you're trying to start a lineage from a "naked" instance, or if you are trying to create a new lineage from an existing one ebs_conductor = Rgeyer::Gem::EbsConductor.new('...','...') ebs_conductor.snapshot_lineage('foobar', {:history_to_keep => 7, :volume_id => 'vol-abcd1234'}) == List of To Do Items * Support for stripes in a lineage == Copyright Copyright (c) 2011 Ryan Geyer. See LICENSE.txt for further details.
Twitterpunch =============== Twitterpunch is designed to work with PhotoBooth and OS X Folder Actions. When this script is called with the name of an image file, it will post the image to Twitter, along with a message randomly chosen from a list and a specified hashtag. If you call the script with the `--stream` argument instead, it will listen for tweets to that hashtag and download them to a specified directory. If the tweet came from another user, Twitterpunch will speak it aloud. Typically, you'll run one copy on an OSX laptop with PhotoBooth, and a separate copy on another machine (either Windows or OSX) for the viewer. You can also use a mobile device as a remote control, if you like. This will allow the user to enter a custom message for each photo that gets tweeted out, if they'd like. Configuration =========== Configure the program via the `~/.twitterpunch/config.yaml` YAML file. This file should look similar to the example below. --- :twitter: # twitter configuration :consumer_key: <consumer key> :consumer_secret: <consumer secret> :access_token: <access token> :access_token_secret: <access secret> :messages: # list of messages to attach - Hello there # to outgoing tweets - I'm a posting fool - minimally viable product :hashtag: Twitterpunch # The hashtag to post and listen to :handle: Twitterpunch # The twitter username to post as :photodir: ~/Pictures/twitterpunch/ # Where to save downloaded images :logfile: ~/.twitterpunch/activity.log # Where to save logs :viewer: # Use the built-in slideshow viewer :count: 5 # How many images to have onscreen at once :remote: :timeout: 45 # How long the button should remain disabled for :apptitle: dslrBooth # The photo booth application title :hotkey: space # Which hotkey to send to trigger a photo 1. Generate a skeleton configuration file * `twitterpunch --configure` 1. Edit the configuration file as needed. You'll be prompted with the path. * If you have your own Twitter application credentials, you're welcome to use them. 1. Authorize the application with the Twitter API. * `twitterpunch --authorize` Usage ========== ### Using OS X PhotoBooth 1. Start PhotoBooth at least once to generate its library. 1. Install the Twitterpunch Folder Action * `twitterpunch --install` * It may claim that it could not be attached, fear not. 1. Profit! * _and by that, I mean take some shots with PhotoBooth!_ *Note*: if the folder action doesn't seem to work and photos aren't posted to Twitter, here are some troubleshooting steps to take: 1. Run Twitterpunch by hand with photos as arguments. This may help you isolate configuration or authorization issues. * `twitterpunch foo.jpg` 1. Correct the path in the workflow. * `which twitterpunch` * Edit the Twitterpunch folder action to include that path. #### Using the remote web app Configure the remote web app using the `:remote` hash in `config.yaml`. You can usually find the title of the app using `system_profiler -detailLevel full SPApplicationsDataType` and grepping for the name or path to the `.app`. In this example, the title is _dslrBooth_. [ben@ganymede] ~ $ system_profiler -detailLevel full SPApplicationsDataType | grep -B8 dslrBooth.app dslrBooth: Version: 2.9 Obtained from: Identified Developer Last Modified: 10/14/17, 9:50 PM Kind: Intel 64-Bit (Intel): Yes Signed by: Developer ID Application: Hope Pictures LLC (MZR5GHAQX4), Developer ID Certification Authority, Apple Root CA Location: /Applications/dslrBooth.app 1. Run the app with `twitterpunch --remote` 1. Browse to the app with http://{address}:8080 1. [optional] If on an iOS device, add to your homescreen * This will give you "app behaviour", such as full screen, and a nice icon #### Troubleshooting. 1. Make sure the folder action is installed properly 1. Use the Finder to navigate to `~/Pictures/` 1. Right click on the `Photo Booth Library` icon and choose _Show Package Contents_. 1. Right click on the `Pictures` folder and choose `Services > Folder Actions Setup` 1. Make sure that the `Twitterpunch` action is attached. 1. Install the folder action 1. Open the `resources` folder of this gem. * Likely to be found in `/Library/Ruby/Gems/{version}/gems/twitterpunch-#{version}/resources/`. 1. Double click on the `Twitterpunch` folder action and install it. * It may claim that it could not be attached, fear not. ### Using something besides PhotoBooth Configure the program you are using for your photo shoot to call Twitterpunch each time it snaps a photo. Pass the name of the new photo as a command line argument. Alternatively, you could batch them, as Twitterpunch can accept multiple files at once. [ben@ganymede] ~ $ twitterpunch photo.jpg [photo2.jpg photo3.jpg photo4.jpg] You can manually install the Folder Action, or you can follow the automated install process after tweaking the workflow slightly. 1. Identify where the app stores the resulting image files. 1. Edit the Twitterpunch folder action to include that path. 1. Follow the steps above to install the Folder Action. ### Viewing the Twitter stream Twitterpunch will run on OS X or Windows equally well. Simply configure it on the computer that will act as the Twitter display and then run in streaming mode. [ben@ganymede] ~ $ twitterpunch --stream There are two modes that Twitterpunch can operate in. 1. If a `:hashtag` is defined then all images tweeted to the configured hashtag will be displayed in the slideshow. 1. Otherwise, Twitterpunch will stream the `:handle` Twitter user's stream and display all images either posted by that user or addressed to that user. With protected tweets, you can have rudimentary access control. In either mode, tweets that come from any other user will also be spoken aloud. If you don't want to use the built-in slideshow viewer, you can disable it by removing the `:viewer` key from your `~/.twitterpunch/config.yaml` config file. Twitterpunch will then simply download the tweeted images and save them into the `:photodir` directory. You can then use anything you like to view them. There are currently two decent viewing options I am aware of. * Windows background image: * Configure the Windows background to randomly cycle through photos in a directory. * Hide desktop icons. * Hide the taskbar. * Disable screensaver and power savings. * Drawbacks: You're using Windows and you have to install Ruby & RubyGems manually. * OS X screensaver: * Choose one of the sexy screensavers and configure it to show photos from the `:photodir` * Set screensaver to a super short timeout. * Disable power savings. * Drawbacks: The screensaver doesn't reload dynamically, so I have to kick it and you'll see it reloading each time a new tweet comes in. Limitations =========== * It currently requires manual setup for Folder Actions. * Rubygame is kind of a pain to set up. Contact ======= * Author: Ben Ford * Email: binford2k@gmail.com * Twitter: @binford2k * IRC (Freenode): binford2k