Pure JavaScript Zoom and Pan, taken from http://phrogz.net/tmp/canvas_zoom_to_cursor.html
A Pen by TechSlides on CodePen.
def download_video(Episode[filename: filename] = episode) do | |
Stream.resource(fn -> begin_download(episode) end, | |
&continue_download/1, | |
&finish_download/1) | |
|> File.stream_to!(filename) | |
|> Stream.run | |
end | |
def begin_download(Episode[video_url: video_url, | |
account: Account[login: login, |
require 'net/http' | |
require 'uri' | |
def download(url) | |
Thread.new do | |
thread = Thread.current | |
body = thread[:body] = [] | |
url = URI.parse url | |
Net::HTTP.new(url.host, url.port).request_get(url.path) do |response| |
#include "sdlx11.hpp" | |
#include <X11/Xlib.h> | |
#include <X11/Xatom.h> | |
#include <X11/extensions/Xrender.h> | |
#include <GL/glx.h> | |
#include <SDL2/SDL.h> | |
SDL_Window* | |
SDLx11::SDL_CreateWindowEx(const char *title, int x, int y, int w, int h, bool fullscreen, double frame_alpha) | |
{ |
source 'https://rubygems.org' | |
gem 'sinatra' | |
gem 'sinatra-contrib', require: 'sinatra/streaming' | |
group :development do | |
gem 'thin' | |
gem 'pry-rails' | |
end |
Pure JavaScript Zoom and Pan, taken from http://phrogz.net/tmp/canvas_zoom_to_cursor.html
A Pen by TechSlides on CodePen.
The count of contributions (summary of Pull Requests, opened issues and commits) to public repos at GitHub.com from Wed, 21 Sep 2022 till Thu, 21 Sep 2023.
Only first 1000 GitHub users according to the count of followers are taken. This is because of limitations of GitHub search. Sorting algo in pseudocode:
githubUsers
.filter(user => user.followers > 1000)
When speaking of the Icecast protocol here, actually it's just the HTTP protocol, and this document will explain further how source clients need to send data to Icecast.
Since Icecast version 2.4.0 there is support for the standard HTTP PUT
method.
The mountpoint to which to send the data is specified by the URL path.