This gist shows how to create a GIF screencast using only free OS X tools: QuickTime, ffmpeg, and gifsicle.
To capture the video (filesize: 19MB), using the free "QuickTime Player" application:
| Design: | |
| Note: The smallest block that can be allocated is 8 bytes due to the following structure. | |
| Byte Layout: | |
| 0 3 7 | |
| ---------------------------- | |
| | size of | offset to | | |
| | data | next free | | |
| ---------------------------- |
| import os | |
| from zbase62 import zbase62 | |
| from mongoengine import * | |
| from mongoengine.queryset import OperationError | |
| class RandomPKDocument(Document): | |
| id = StringField(unique=True, primary_key=True) | |
| def get_pk_prefix(self): |
| import datetime | |
| from mongoengine import * | |
| class DocumentBase(Document): | |
| date_created = DateTimeField() | |
| date_updated = DateTimeField() | |
| def _type(self): | |
| return unicode(self.__class__.__name__) |
| #!/usr/bin/env python | |
| import csv | |
| import argparse | |
| from flask_common.utils import CsvWriter | |
| from closeio_api_client.api import CloseIO_API, APIError | |
| HEADERS = ['date_created', 'lead_name', 'status', 'date_won', 'date_lost', 'confidence', 'user_name', 'note', 'value', 'value_period'] | |
| parser = argparse.ArgumentParser(description='Export Opportunities to CSV') | |
| parser.add_argument('--api_key', '-k', required=True, help='API Key') |
| #!/usr/bin/env python | |
| import csv | |
| import argparse | |
| from flask_common.utils import CsvWriter | |
| from closeio_api_client.api import CloseIO_API, APIError | |
| HEADERS = ['display_name', 'addresses'] | |
| parser = argparse.ArgumentParser(description='Export Leads to CSV') | |
| parser.add_argument('--api_key', '-k', required=True, help='API Key') |
| #!/usr/bin/env python | |
| import sys | |
| import time | |
| import codecs | |
| import argparse | |
| from pybars import Compiler | |
| from closeio_api_client.api import CloseIO_API as CloseIO |
| #!/usr/bin/env python | |
| import argparse | |
| from closeio_api import Client as CloseIO_API | |
| parser = argparse.ArgumentParser(description='Search and update some leads') | |
| parser.add_argument('--api_key', '-k', required=True, help='API Key') | |
| args = parser.parse_args() | |
| api = CloseIO_API(args.api_key) |
| United States, United States of America, 'Merica, USA, U.S. => US | |
| United Kingdom, UK, England => GB | |
| Canada => CA | |
| Germany, Deutschland => DE | |
| France => FR | |
| Afghanistan => AF | |
| Åland Islands => AX | |
| Albania => AL | |
| Algeria => DZ | |
| American Samoa => AS |
| function ImportJSONBasicAuthentication(url, query, parseOptions, username, password) { | |
| var fetchOptions = { | |
| "headers" : { | |
| "Authorization" : 'Basic ' + Utilities.base64Encode(username + ':' + password) | |
| }, | |
| muteHttpExceptions: true | |
| }; | |
| return ImportJSONAdvanced(url, fetchOptions, query, parseOptions, includeXPath_, defaultTransform_); |