Skip to content

Instantly share code, notes, and snippets.

View kevroletin's full-sized avatar
🌴
Riding a scooter

Vasiliy Kevroletin kevroletin

🌴
Riding a scooter
View GitHub Profile

你好! 我是来自俄罗斯的Vas。 我喜欢学习语言,而且经常练习。 语言交流 我希望我的学习课程对我和伙伴都很有成效。 我总结了我对练习的想法。

简要摘要

  • 每个人都有自己的学习方式 我很高兴用*你的选择来教你俄语/英语。 请用我适用的方法教我汉语/日语。 我们可以学得不同,没关系。
  • 我想学说话 所以我才要打音频或视频电话。 如果你想通过聊天来向我学习,我很乐意花时间聊天。 但请花同样多的时间跟我说话。
  • 台湾开始行动 如果你有兴趣的话,我们安排一个电话。 我在GMT+8,上午7点到晚上9点有空。 我的村子网络不通,真抱歉。 虽然偶尔会出现一些脱节现象,但大部分时间音频质量都很好,可以进行练习。

Hi there! I am Vas from Russia. I love learning languages, and I often practice language exchange. I want my learning sessions to be productive both for me and for my partners. Below, I’ve summarized my thoughts about the practice.

A short summary

  • Everyone has their own way of learning. I am happy to teach you Russian/English using the approach of your choice. Please teach me Mandarin/Japanese using the approach which works for me. We might learn differently and that’s ok.
  • I want to learn how to speak. That’s why I ask to make audio or video calls. If you want to learn from me by chatting, I’ll be happy to spend time chatting. But please spend the same amount of time talking to me.
  • Strait to action. If you are interested let’s schedule a call. I am in GMT+8 and I am available from 7 am till 9 pm. My village has a poor Internet connection, sorry for that. There are occasional disconnections, but most of the time audio quality is good enough to practice.
module Pool = struct
module TxSet = Set.Make (KEY)
let data = ref TxSet.empty
let add ~tx =
match is_valid ~tx with
| false -> ()
| true -> data := TxSet.add tx !data
module type COUNTER = sig
val inc : unit -> int
end
;;
module CounterImpl = struct
let data = ref 0
let inc () = data := !data + 1; !data
end
@kevroletin
kevroletin / haskell-abstractions.md
Last active April 16, 2018 04:14
My current thought about extensible abstractions

Problems

  1. Runtime configuration

    Example: web services which read database configuration from config.yaml.

    An application reads configurations and chooses between different subsystem implementations.

  2. Write your own implementation of a concept from 3rd party library

I've been working quite extensively with Wizek during last several days. In few words: I am very motivated by my experience and I hope that there will be a community for pair-programming. My intuition is that you exchange your time for the ability to stay focused and motivated.

Below is more structured feedback.

Open questions: I was working with a haskeller who is more experienced than me and I was working on a completely new project. I think that there are different possible setups which will lead to a different experience:

  • working with someone who has the same or smaller amount of experience;
  • working on something very familiar to you.

Positive feedback:

Level Preference Timezone Local time Lang
aggie0 begginer+ cat theory, dependent types UTC-6 (CST) flexible en
attilah beginner+ - flexible en
echatav intermediate+ reflex, ghc, squel UTC-8 (PT) flexible, 4pm Mondays en
kevroletin beginner+ - UTC+10 (VLT) 9-24 flexible en,ru
kmett expert own projects UTC-4 (EDT) weekends, and some evenings en
[sh4rk1
| | Level | Preference | Time | Language |
|-------------------------------------------+-----------------------+--------------------+--------------------------------------------+----------|
| [aggie0](#Aggie0) | begginer-intermidiate | US, flexible | cat theory, dependent types | en |
| [attilah](#attilah) | beginner-intermidiate | - | ? flexible | en |
| [echatav](#echatav) | intermediate-advanced | reflex, ghc, squel | Pacific time, flexible, better 4pm Mondays | en |
| [kevroletin](#kevroletin) | beginner-intermidiate | - | UTC+10 flexible | en,ru |
| [kmett](#kmett) | expert | own projects | EDT (UTC-4) weekends, and some evenings | en
@kevroletin
kevroletin / hs-pair-programming.org
Last active April 6, 2018 06:44
Prototype for the "Pair programming enthusiasts" page

Rules

  1. Tell everyone about the club.
  2. Join chat XXX. You will obtain collaborator rights to edit this file.
  3. Add short contact info into a summary table and verbose info as a separate section below. Keep alphabetical order.
  4. There are two chats:
    the quick one
    to find a partner withing 30 minutes time window
    the other one
    to find someone for a longer partnership or for general discussions.
@kevroletin
kevroletin / stream-reorderer-streamly.hs
Last active April 1, 2018 12:35
Attempt to solve stream reordering problem with Streamly
{-# LANGUAGE FlexibleContexts #-}
module Main where
import Data.Monoid
import qualified Streamly as S
import qualified Streamly.Prelude as S
-- Wrong: this should be
-- Int -> S.StreamT m a -> S.StreamT m a
reorderStreamly :: Monad m