Skip to content

Instantly share code, notes, and snippets.

View kostrse's full-sized avatar

Sergey Kostrukov kostrse

View GitHub Profile
@kostrse
kostrse / #mandelbrot.md
Last active September 27, 2021 23:17
Mandelbrot on GPU (MATLAB gpuArray and Python cupy)
@kostrse
kostrse / rxjs-reconnect.ts
Last active September 2, 2017 00:21
RxJS subscription reconnect
import { Observable, ObservableInput } from 'rxjs/Observable';
import { OuterSubscriber } from 'rxjs/OuterSubscriber';
import { InnerSubscriber } from 'rxjs/InnerSubscriber';
import { Operator } from 'rxjs/Operator';
import { subscribeToResult } from 'rxjs/util/subscribeToResult';
import { Observer } from "rxjs/Observer";
import { Subscriber } from "rxjs/Subscriber";
import { Unsubscribed } from './Unsubscribed';
import 'rxjs/add/observable/empty';
import 'rxjs/add/observable/of';
@kostrse
kostrse / NetFxRuntimeVersion.fsx
Last active March 18, 2017 09:04
Determine .NET runtime
open System
open System.Reflection
let getMethod (bindingFlags: BindingFlags) (methodName: string) (t: Type): MethodInfo option =
if t <> null then
Some (t.GetMethod(methodName, bindingFlags))
else
None
let privateMethod (methodName: string) (t: Type) =
$n = 100; $sum = 0; for ($i=0; $i -lt $n; $i++) { $sum = $sum + (Measure-Command -Expression { Invoke-WebRequest -Uri $url }).Milliseconds }; $sum / $n
static async Task FailsAsync(bool shouldFail)
{
if (shouldFail)
throw new ApplicationException("Custom exception.");
await Task.CompletedTask;
}
static Task Fails(bool shouldFail)
{
@kostrse
kostrse / EnumerableLastNth.cs
Last active February 27, 2016 19:28
Last N-th of IEnumerable
public static class LinkedListExtensions
{
public static T Last<T>(this IEnumerable<T> items, int index)
{
T[] keepItems = new T[index];
int position = 0;
int count = 0;
foreach (var item in items)
public class StateSwitch
{
private readonly Action enterAction;
private readonly Action leaveAction;
private readonly bool leaveOnSuspend;
private uint counter;
private bool entered;
@kostrse
kostrse / CircularQueue.cs
Last active February 27, 2016 19:21
Interview questions
public class CircularQueue
{
// Motivation:
//
// We do not store count of items in the queue to avoid mutual blocking of enqueue and dequeu operaions.
// In the current implementation enqueue and dequeue do not block each other,
// but simultaneous calls of the same operations will be blocking.
//
// Alos we allocate array with size N + 1 to the logical capacity of the queue N,
// this is made to distinguish between cases when the queue is empty or full
@kostrse
kostrse / wildcards.scala
Last active February 27, 2016 19:16
Wildcard search on Scala
object Program {
val testText = "The quick brown fox jumps over a lazy dog."
val testPattern = "fox * over"
def main (args: Array[String]) {
println(
s"""
|Text: $testText
@kostrse
kostrse / gist:3687221
Created September 9, 2012 20:52
CheckAccountNumber - checks checksum for Russian bank account number
private static bool CheckAccountNumber(string bankNumber, string accountNumber)
{
int[] mask = new[] { 7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1 };
if (bankNumber.Length < 3)
{
Console.WriteLine("Incorrect bank number.");
return false;
}