Skip to content

Instantly share code, notes, and snippets.

View savonarola's full-sized avatar
🏠
Working from home

Ilia Averianov savonarola

🏠
Working from home
View GitHub Profile
@savonarola
savonarola / keybase.md
Last active March 23, 2021 16:52
keybase.md

Keybase proof

I hereby claim:

  • I am savonarola on github.
  • I am savonarola (https://keybase.io/savonarola) on keybase.
  • I have a public key ASAQ2_Bp3Kt9GRSfwyhYdzjSDXLtugV6f1loBeE1kBbwfQo

To claim this, I am signing this object:

defmodule FindIndex do
def find_index(list, pred, index \\ 0)
def find_index([], _pred, _index), do: :notfound
def find_index([el | rest], pred, index) do
case pred.(el) do
{:ok, value} -> {:ok, value, index}
:notfound -> find_index(rest, pred, index + 1)
end
defmodule ParseResult do
@type arg_value :: term
@type flag_value :: boolean | pos_integer
@type option_value :: term | [term]
@type t :: %ParseResult{
args: %{atom => arg_value},
flags: %{atom => flag_value},
options: %{atom => option_value},
unknown: [String.t]
pub struct Batcher<T> {
iter: T,
batch_size: usize,
finished: bool
}
impl<T> Batcher<T> where T: Iterator {
pub fn new(iter: T, batch_size: usize) -> Batcher<T>{
Batcher{
iter: iter,
use std::{thread, time};
fn watchdog<F, T>(f: F) -> ()
where
F: Send + 'static + Fn() -> T,
T: Send + 'static
{
thread::spawn(move||{
loop {
let handle = thread::spawn(f);
{
"cells": [
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
import System.Environment
import System.IO
import System.IO.Error
import Control.Exception
withFiles :: [FilePath] -> IOMode -> ([Handle] -> IO a) -> IO a
withFiles paths mode f = withFiles' paths mode f []
withFiles' [] mode f handles = do
result <- f handles
#!/usr/bin/perl
#
# Install "Perl" package via DSM Web UI
#
# Add this script to crontab:
# */5 * * * * root /usr/bin/perl /volume1/synology/scripts/reindex.pl /volume1/synology/download >> /root/reindex.log
#
# Then restart crond (DSM5):
# /usr/syno/sbin/synoservicectl --restart crond
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my @ps_output = `ps ax -o pid,ppid,rss,command`;
shift @ps_output;
my %processes = map{ $_->[0], { pid => $_->[0], ppid => $_->[1], rss => $_->[2], command => $_->[3] } } map { [split(/\s+/, $_, 4)] } map { chomp; s/^\s+//; $_ } @ps_output;
#!/usr/bin/env ruby
require 'nokogiri'
if ARGV.size < 2
abort "Usage:\n\n #{$0} VK_MUSIC_PAGE.HTML TARGET_PATH"
end
doc = Nokogiri::HTML::Document.parse(File.read(ARGV[0]))
target = ARGV[1]