tget is wget for torrents
Rope-based persistent sequence type
Get the real path of the system temp directory
Get a random temporary file or directory path
javascript implementation of Dunning's T-Digest for streaming quantile approximation
An extension of svg.js which allows to select elements with mouse
TypeScript definitions for kdbush
Get a random temporary file path
Easing functions for smooth animation.
Simple, standards-based localization
YAML 1.2 parser and serializer
Get the shortest leading whitespace from lines in a string
TypeScript definitions for continuation-local-storage
Get stdin as a string or Uint8Array
TypeScript definitions for react-native-get-random-values
Tiny JavaScript tokenizer.
Managing and serializing Rust-like Option types in JavaScript
Get the user home directory with fallback to the system temp directory
Internationalization (i18n) for Next.js
typesafe assertion library for TypeScript 3.7+
Internationalization (i18n) for React
TypeScript definitions for pg-pool
Lazily evaluates a getter on an object and caches the returned value
A utility that allows retrying a function with an exponential delay between attempts.
Abstract how, what and from where to get a value using a trait
Derive macros for the abstract-getters crate
A simple macro to generate getters for structs
a clicktogether server will click a specified keyboard key once all clients have clicked theirs.
Getting the weather forecast from yandex for embedding in polybar
Sync video playback with friends!
Find files that move at the same time in a git repository to identify coupling
Enable seamless git usage when paired programming on a shared machine
A webserver instance of htsget-rs using actix-web, which serves data according to the htsget protocol.
A webserver instance of htsget-rs using Axum, which serves data according to the htsget protocol.
Used to configure htsget-rs by using a config file or reading environment variables.
Crate for handling HTTP in htsget-rs.
getting mileages/points by web scraping shopping sites: T-SITE, ANA and rakuten.
A small wrapper around sorbets T::Props and T::Props::Constructor. Also provides an accompanying tapioca compiler to allow using the prop-syntax in any class and getting the correct signature for an initializer.
You can write like (T)RPG dice (e.g. 2D6, 3D20), and get result.
You can use this gem to get the recorded data from T&D WebStorage Service API.
One extends standard I18n so that you could store your translations in a Comma-Separated Value files (CSV) in a key-value manner, where the key is a word or a phrase or even a poem if you wish. No limits here (except be aware to escape symbols so the CSV format is kept). And the value is the same text as the key but translated to a language, specified by a file name you are using (for example, you could write one line to a sp.csv file: `"hello!","hola!"` and use `t 'hello!'` with a spanish locale to get the "hola!" text).
Use Mysql AUTO_INCREMENT to support key value cache, which should be combined by an integer and string. It means to reduce the database storage size, and improve query performance. All cache will store in process memory, and will never be expired, until the process dies, so the less kvs you use, the better performance you will get. BTW, 100,000 general strings use 10MB memory. Some relatived articles: http://en.wikipedia.org/wiki/Correlation_database Usage ------------------------------------------ ## setup ```ruby create_table :kv_browser_names, :options => 'ENGINE=MyISAM DEFAULT CHARSET=utf8' do |t| t.string :name t.timestamps end class KvBrowserName < ActiveRecord::Base include IdNameCache end ``` or ```ruby create_table :common_tag, :options => 'ENGINE=MyISAM DEFAULT CHARSET=utf8' do |t| t.integer :tagid t.string :tagname end class CommonTag < ActiveRecord::Base self.table_name = :common_tag self.primary_key = :tagid include IdNameCache; set_key_value :tagid, :tagname # include IdNameCache; set_key_value_without_create :tagid, :tagname # if you dont want create it automately end ``` ### use cases ```text ruby-1.9.3-rc1 :001 > QuizTag[1] QuizTag Load (0.3ms) SELECT `common_tag`.* FROM `common_tag` WHERE `common_tag`.`tagid` = 1 LIMIT 1 => "Android" ruby-1.9.3-rc1 :002 > QuizTag[1] => "Android" ruby-1.9.3-rc1 :003 > QuizTag['Android'] QuizTag Load (0.5ms) SELECT `common_tag`.* FROM `common_tag` WHERE `common_tag`.`tagname` = 'Android' LIMIT 1 => 1 ruby-1.9.3-rc1 :004 > QuizTag['Android'] => 1 ``` == Copyright MIT, David Chen at eoe.cn
<p>Sass or the much better approach of scss is really helpful and a big silver bullet for my css structuring in ruby projects.</p> \ <p>Standard sass command works for whole directories or single files only. In general it gets the jobs we want done, but in practical usage i think the sass command tool is a little bit unconvinient. A common scenario for me is, \ that you have whole bunch of sass files, which you want to compile to a single compressed output file. But if you have splitted your sass files in component based modules and you want to watch the complete folder you have to care for dependency handling in each file, because each file will be compiled for its own.</p> \ <pre># compiling a complete folder with scss ~ $ sass css/scss:css/compiled</pre> \ <p>So converting the whole folder is not what i want, because i don\'t want to import for example my color.sass config file in each module again. Compiling a single file seems to be the better solution, and it works in general, as expected, but the devil is in the detail. </p> <pre># compiling a single file where the other files are imported. ~ $ sass css/scss/main.scss:css/compiled/main.css</pre> \ <p>If we change a file with impact to our main.sass file, the --watch handle will not get it, because it observes only the timestamp of the given main.sass.</p> <p>Here is it, where mindful_sass tries to help out. You use it according to the single file variant of sass, but it tries to observe the whole folder the given sass file is placed. If a timestamp of file in the sass folder or its children changes it will compile the specified main.sass again.</p> \ <p>This gem is not aimed to replace anything in the sass universe. It is only a wrapper to avoid the described unconvinience, and i hope that it gets useless as fast as possible, because the sass development gets this feature done for themselves.</p> \ <p>Thanks anyway to the sass developer team.</p>
== DESCRIPTION MMS2R is a library that decodes the parts of an MMS message to disk while stripping out advertising injected by the mobile carriers. MMS messages are multipart email and the carriers often inject branding into these messages. Use MMS2R if you want to get at the real user generated content from a MMS without having to deal with the cruft from the carriers. If MMS2R is not aware of a particular carrier no extra processing is done to the MMS other than decoding and consolidating its media. Contact the author to add additional carriers to be processed by the library. Suggestions and patches appreciated and welcomed! Corpus of carriers currently processed by MMS2R: * 1nbox/Idea: 1nbox.net * 3 Ireland: mms.3ireland.ie * Alltel: mms.alltel.com * AT&T/Cingular/Legacy: mms.att.net, txt.att.net, mmode.com, mms.mycingular.com, cingularme.com, mobile.mycingular.com pics.cingularme.com * Bell Canada: txt.bell.ca * Bell South / Suncom: bellsouth.net * Cricket Wireless: mms.mycricket.com * Dobson/Cellular One: mms.dobson.net * Helio: mms.myhelio.com * Hutchison 3G UK Ltd: mms.three.co.uk * INDOSAT M2: mobile.indosat.net.id * LUXGSM S.A.: mms.luxgsm.lu * Maroc Telecom / mms.mobileiam.ma * MTM South Africa: mms.mtn.co.za * NetCom (Norway): mms.netcom.no * Nextel: messaging.nextel.com * O2 Germany: mms.o2online.de * O2 UK: mediamessaging.o2.co.uk * Orange & Regional Oranges: orangemms.net, mmsemail.orange.pl, orange.fr * PLSPICTURES.COM mms hosting: waw.plspictures.com * PXT New Zealand: pxt.vodafone.net.nz * Rogers of Canada: rci.rogers.com * SaskTel: sms.sasktel.com * Sprint: pm.sprint.com, messaging.sprintpcs.com, sprintpcs.com * T-Mobile: tmomail.net, mmsreply.t-mobile.co.uk, tmo.blackberry.net * TELUS Corporation (Canada): mms.telusmobility.com, msg.telus.com * UAE MMS: mms.ae * Unicel: unicel.com, info2go.com (note: mobile number is tucked away in a text/plain part for unicel.com) * Verizon: vzwpix.com, vtext.com * Virgin Mobile: vmpix.com * Virgin Mobile of Canada: vmobile.ca * Vodacom: mms.vodacom4me.co.za
Lookout-Rack Lookout-Rack provides easy interaction with Rack¹ from Lookout². It provides you with a session connected to your Rack application through which you can make requests, check responses, follow redirects and set, inspect, and clear cookies. ¹ See http://rack.rubyforge.org/ ² See http://disu.se/software/lookout/ § Installation Install Lookout-Rack with % gem install lookout-rack § Usage Include the following code in your ‹Rakefile› (provided that you’re using Lookout-Rake¹): require 'lookout-rack-3.0' Lookout::Rake::Tasks::Test.new do |t| t.requires << 'lookout-rack-3.0' end ¹ See http://disu.se/software/lookout-rake/ Then set up a ‹fixtures/config.ru› file that Lookout-Rack will use for loading your Rack app. load 'path/to/app.rb' use Rack::Lint run Path::To::App This file, if it exists, will be loaded during the first call to #session. If it doesn’t exist, ‹config.ru› will be used instead. You can now test your app: Expectations do expect 200 do session.get('/').response.status end end The #session method returns an object that lets you #get, #post, #put, and #delete resources from the Rack app. You call these method with a URI¹ that you want to access/modify together with any parameters that you want to pass and any Rack environment that you want to use (which isn’t very common). For example, let’s get ‹/pizzas/› with olives on them: expect 200 do session.get('/pizzas/', 'olives' => '1').response.status end ¹ Abbreviation for Uniform Resource Identifier The #response method on #session returns a mock Rack response object that can be queried for results. Similarly, there’s a #request method that lets you inspect the request that was made. Lookout-Rack also deals with cookies. Assuming that ‹/cookies/set/› will set any cookies that we pass it and that ‹/cookies/show/› will simply do nothing relevant, the following expectation will pass: expect 'value' => '1' do session. get('/cookies/set/', 'value' => '1'). get('/cookies/show/').request.cookies end Sometimes you may want to set cookies yourself before making a request. You then use the #cookie method, which takes a String of ‹KEY=VALUE› pairs separated by newlines, commas, and/or semicolons and sets those cookies in the session: expect 'value' => '1', 'other' => '2' do session. cookie("value=1\n\nother=2"). get('/cookies/show/').request.cookies end You may also want to clear all cookies in your session using #clear: expect({}) do session. get('/cookies/set', 'value' => '1'). clear. get('/cookies/show').request.cookies end Finally, to test redirects, call the #redirect! method on the session object, assuming that ‹/redirected/› redirects to another location: expect result.redirect? do session.get('/redirected/').response end expect result.not.redirect? do session.get('/redirected/').redirect!.response end That’s basically all there’s to it. You can check the {API documentation}¹ for more information. ¹ See http://disu.se/software/lookout-rack/api/Lookout/Rack/ § Financing Currently, most of my time is spent at my day job and in my rather busy private life. Please motivate me to spend time on this piece of software by donating some of your money to this project. Yeah, I realize that requesting money to develop software is a bit, well, capitalistic of me. But please realize that I live in a capitalistic society and I need money to have other people give me the things that I need to continue living under the rules of said society. So, if you feel that this piece of software has helped you out enough to warrant a reward, please PayPal a donation to now@disu.se¹. Thanks! Your support won’t go unnoticed! ¹ Send a donation: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=now@disu.se&item_name=Lookout-Rack § Reporting Bugs Please report any bugs that you encounter to the {issue tracker}¹. ¹ See https://github.com/now/lookout-rack/issues § Authors Nikolai Weibull wrote the code, the tests, the documentation, and this README. § Licensing Lookout-Rack is free software: you may redistribute it and/or modify it under the terms of the {GNU Lesser General Public License, version 3}¹ or later², as published by the {Free Software Foundation}³. ¹ See http://disu.se/licenses/lgpl-3.0/ ² See http://gnu.org/licenses/ ³ See http://fsf.org/
Sym is a ruby library (gem) that offers both the command line interface (CLI) and a set of rich Ruby APIs, which make it rather trivial to add encryption and decryption of sensitive data to your development or deployment workflow. For additional security the private key itself can be encrypted with a user-generated password. For decryption using the key the password can be input into STDIN, or be defined by an ENV variable, or an OS-X Keychain Entry. Unlike many other existing encryption tools, Sym focuses on getting out of your way by offering a streamlined interface with password caching (if MemCached is installed and running locally) in hopes to make encryption of application secrets nearly completely transparent to the developers. Sym uses symmetric 256-bit key encryption with the AES-256-CBC cipher, same cipher as used by the US Government. For password-protecting the key Sym uses AES-128-CBC cipher. The resulting data is zlib-compressed and base64-encoded. The keys are also base64 encoded for easy copying/pasting/etc. Sym accomplishes encryption transparency by combining several convenient features: 1. Sym can read the private key from multiple source types, such as pathname, an environment variable name, a keychain entry, or CLI argument. You simply pass either of these to the -k flag — one flag that works for all source types. 2. By utilizing OS-X Keychain on a Mac, Sym offers truly secure way of storing the key on a local machine, much more secure then storing it on a file system, 3. By using a local password cache (activated with -c) via an in-memory provider such as memcached, sym invocations take advantage of password cache, and only ask for a password once per a configurable time period, 4. By using SYM_ARGS environment variable, where common flags can be saved. This is activated with sym -A, 5. By reading the key from the default key source file ~/.sym.key which requires no flags at all, 6. By utilizing the --negate option to quickly encrypt a regular file, or decrypt an encrypted file with extension .enc 7. By implementing the -t (edit) mode, that opens an encrypted file in your $EDITOR, and replaces the encrypted version upon save & exit, optionally creating a backup. 8. By offering the Sym::MagicFile ruby API to easily read encrypted files into memory. Please refer the module documentation available here: https://www.rubydoc.info/gems/sym
This is an experimental branch that implements a connection pool of Net::HTTP objects instead of a connection/thread. C/T is fine if you're only using your http threads to make connections but if you use them in child threads then I suspect you will have a thread memory leak. Also, I want to see if I get less connection resets if the most recently used connection is always returned. Also added a :force_retry option that if set to true will retry POST requests as well as idempotent requests. This branch is currently incompatible with the master branch in the following ways: * It doesn't allow you to recreate the Net::HTTP::Persistent object on the fly. This is possible in the master version since all the data is kept in thread local storage. For this version, you should probably create a class instance of the object and use that in your instance methods. * It uses a hash in the initialize method. This was easier for me as I use a HashWithIndifferentAccess created from a YAML file to define my options. This should probably be modified to check the arguments to achieve backwards compatibility. * The method shutdown is unimplemented as I wasn't sure how I should implement it and I don't need it as I do a graceful shutdown from nginx to finish up my connections. For connection issues, I completely recreate a new Net::HTTP instance. I was running into an issue which I suspect is a JRuby bug where an SSL connection that times out would leave the ssl context in a frozen state which would then make that connection unusable so each time that thread handled a connection a 500 error with the exception "TypeError: can't modify frozen". I think Joseph West's fork resolves this issue but I'm paranoid so I recreate the object. Compatibility with the master version could probably be achieved by creating a Strategy wrapper class for GenePool and a separate strategy class with the connection/thread implementation.
# holepunch [](http://badge.fury.io/rb/holepunch) [](https://travis-ci.org/undeadlabs/holepunch) Holepunch manages AWS EC2 security groups in a declarative way through a DSL. ## Requirements - Ruby 1.9.3 or newer. ## Installation ```bash gem install holepunch ``` or in your Gemfile ```ruby gem 'holepunch' ``` ## Basic Configuration You need to provide your AWS security credentials and a region. These can be provided via the command-line options, or you can use the standard AWS environment variables: ```bash export AWS_ACCESS_KEY_ID='...' export AWS_SECRET_ACCESS_KEY='...' export AWS_REGION='us-west-2' ``` ## The SecurityGroups file Specify your security groups in a `SecurityGroups` file in your project's root. Declare security groups that you need and the ingresses you want to expose. You can add ingresses using `tcp`, `udp`, and `ping`. For each ingress you can list allowed hosts using group names or CIDR notation. ```ruby group 'web' do desc 'Web servers' tcp 80 end group 'db' do desc 'database servers' tcp 5432, 'web' end group 'log' do desc 'log server' tcp 9999, 'web', 'db', '10.1.0.0/16' end ``` An environment can be specified which is available through the `env` variable. This allows you to have custom security groups per server environment. ```ruby group "#{env}-web" group "#{env}-db" do tcp 5432, "#{env}-web" end ``` Your application may depend on security groups defined by other services. Ensure they exist using the `depends` method. ```ruby depends 'my-other-service' group 'my-service' do udp 9999, 'my-other-service' end ``` You may specify port ranges for `tcp` and `udp` using the range operator. ```ruby group 'my-service' do udp 5000..9999, '0.0.0.0/0' end ``` You can specify ping/icmp rules with `icmp` (alias: `ping`). ```ruby group 'my-service' do ping '10.0.0.0/16' end ``` It can be useful to describe groups of security groups you plan to launch instances with by using the `service` declaration. ```ruby service "#{env}-web" do groups %W( admin #{env}-log-producer #{env}-web ) end ``` ## Usage Simply navigate to the directory containing your `SecurityGroups` file and run `holepunch`. ``` $ holepunch ``` If you need to specify an environment: ``` $ holepunch -e live ``` You can get a list of security groups for a service using the `service` subcommand. ``` $ holepunch service -e prod prod-web admin,prod-log-producer,prod-web ``` You can also get a list of all defined services. ``` $ holepunch service --list ``` ## Testing You can run the unit tests by simply running rspec. ``` $ rspec ``` By default the integration tests with EC2 are not run. You may run them with: ``` $ rspec -t integration ``` ## Authors - Ben Scott (gamepoet@gmail.com) - Pat Wyatt (pat@codeofhonor.com) ## License Copyright 2014 Undead Labs, LLC. Licensed under the MIT License: http://opensource.org/licenses/MIT
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.