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 / 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 / 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
public class StateSwitch
{
private readonly Action enterAction;
private readonly Action leaveAction;
private readonly bool leaveOnSuspend;
private uint counter;
private bool entered;
@kostrse
kostrse / queens.cs
Last active August 29, 2015 14:04
Queens Puzzle
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Algorithms.Maths
{
public struct Queen
{
@kostrse
kostrse / hashcode.cs
Last active August 29, 2015 14:03
GetHashCode for Strings
public static class StringHashCodeExtensions
{
public static int GetHashCodeJava(this string value)
{
if (value == null)
throw new ArgumentNullException("value");
int hashCode = 0;
for (int i = 0; i < value.Length; i++)