(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
| import os | |
| from PIL import Image | |
| ''' | |
| I searched high and low for solutions to the "extract animated GIF frames in Python" | |
| problem, and after much trial and error came up with the following solution based | |
| on several partial examples around the web (mostly Stack Overflow). | |
| There are two pitfalls that aren't often mentioned when dealing with animated GIFs - |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
| // LICENSE | |
| // | |
| // This software is dual-licensed to the public domain and under the following | |
| // license: you are granted a perpetual, irrevocable license to copy, modify, | |
| // publish, and distribute this file as you see fit. | |
| using System; | |
| using System.Collections.Generic; | |
| public static class FuzzyMatcher |
| defmodule Randomizer do | |
| @moduledoc """ | |
| Random string generator module. | |
| """ | |
| @doc """ | |
| Generate random string based on the given legth. It is also possible to generate certain type of randomise string using the options below: | |
| * :all - generate alphanumeric random string | |
| * :alpha - generate nom-numeric random string |
| defmodule Absinthe.Ecto.Resolution.Schema do | |
| @moduledoc """ | |
| This module provides helper functions to resolve a GraphQL query into `Ecto.Query`. | |
| """ | |
| import Absinthe.Resolution.Helpers | |
| import Ecto.Query | |
| alias Absinthe.Resolution | |
| alias Absinthe.Blueprint.Document.Field |
| defimpl Kipatest.Can, for: Kipatest.User do | |
| use Kipatest.Web, :model | |
| def can?(%User{} = subject, :owner, %User{} = user) do | |
| user.id == subject.id | |
| end | |
| end |
| <?xml version="1.0"?> | |
| <TriggernometryExport Version="1"> | |
| <ExportedTrigger Enabled="true" Name="On Wipe" Id="d2f2668d-dfd5-456d-a404-1d2b5cdd18cd" RegularExpression="(wipeout|0038:end|21:([0-9,a-f,A-F]{8}):40000010)" DebugLevel="Inherit" PrevActions="Keep" PrevActionsRefire="Allow" Scheduling="FromFire" PeriodRefire="Allow" RefirePeriodExpression="0"> | |
| <Actions> | |
| <Action DiscordTts="false" OrderNumber="1" AuraImageMode="Normal" TextAuraAlignment="MiddleCenter" TextAuraFontSize="8.25" TextAuraEffect="None" TextAuraUseOutline="false" Enabled="true" ActionType="EndEncounter" ExecutionDelayExpression="0" Asynchronous="true" DebugLevel="Inherit" RefireInterrupt="false" RefireRequeue="true" SystemBeepFreqExpression="1000" SystemBeepLengthExpression="100" PlaySoundVolumeExpression="100" PlaySoundExclusive="true" PlaySoundMyself="false" PlaySpeechMyself="false" UseTTSVolumeExpression="100" UseTTSRateExpression="0" UseTTSExclusive="true" LaunchProcessWindowStyle="Normal" ExecScriptType="CSharp" MessageBoxIcon |
| FROM elixir:1.4.5 as asset-builder-mix-getter | |
| ENV HOME=/opt/app | |
| RUN mix do local.hex --force, local.rebar --force | |
| # Cache elixir deps | |
| COPY config/ $HOME/config/ | |
| COPY mix.exs mix.lock $HOME/ | |
| COPY apps/myproject_web/mix.exs $HOME/apps/myproject_web/ | |
| COPY apps/myproject_web/config/ $HOME/apps/myproject_web/config/ |
| port module Ports exposing (..) | |
| import Json.Encode | |
| type alias Key = | |
| String | |
| type alias Value = |
| port upload : ( String, String, String ) -> Cmd msg | |
| port status : (String -> msg) -> Sub msg |