Skip to content

Instantly share code, notes, and snippets.

Sergey Kostrukov kostrse

Block or report user

Report or block kostrse

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@kostrse
kostrse / rxjs-reconnect.ts
Last active Sep 2, 2017
RxJS subscription reconnect
View rxjs-reconnect.ts
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 Mar 18, 2017
Determine .NET runtime
View NetFxRuntimeVersion.fsx
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) =
View CheckResponseTime.ps1
$n = 100; $sum = 0; for ($i=0; $i -lt $n; $i++) { $sum = $sum + (Measure-Command -Expression { Invoke-WebRequest -Uri $url }).Milliseconds }; $sum / $n
View AsyncThrowsTest.cs
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 Feb 27, 2016
Wildcard search on Scala
View wildcards.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 Feb 27, 2016
Interview questions
View CircularQueue.cs
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
View StateSwitch.cs
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 Aug 29, 2015
Queens Puzzle
View queens.cs
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 Aug 29, 2015
GetHashCode for Strings
View hashcode.cs
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++)
@kostrse
kostrse / EnumerableLastNth.cs
Last active Feb 27, 2016
Last N-th of IEnumerable
View EnumerableLastNth.cs
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)
You can’t perform that action at this time.