Skip to content

Instantly share code, notes, and snippets.

View graninas's full-sized avatar
😊
My Twitter: graninas

Alexander Granin graninas

😊
My Twitter: graninas
View GitHub Profile
@graninas
graninas / CSharp Free Monad.cs
Created November 27, 2019 10:33 — forked from louthy/CSharp Free Monad.cs
C# Free Monad
//
// See https://github.com/louthy/language-ext
//
using System;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using LanguageExt;
using static LanguageExt.Prelude;
@graninas
graninas / haskell-records.md
Created December 23, 2019 08:04 — forked from mtesseract/haskell-records.md
Working around Haskell's namespace problem for records

The Problem

Defining records in Haskell causes accessor functions for the record's fields to be defined. There is no seperate namespace for these accessor functions.

The Goal

Be able to

  • use records in Haskell, which share field names.
  • use lenses for accessing these fields
data User = User
{ firstName :: String
, secondName :: String
}
-- The User data type has field firstName, it's a string.
-- firstName :: User -> String
-- secondName :: User -> String
@graninas
graninas / itunderhood_creations.md
Last active March 12, 2021 13:12
Творчество сообщества itunderhood
--ghc 8.0.2
type ThermometerName = String
type BarometerName = String
data Method
= ReadThermometer ThermometerName
| ReadBarometer BarometerName
| ReportTemperature
| ReportAtmospherePressure
@graninas
graninas / appendix-to-software-design-in-haskell.md
Last active February 5, 2022 23:11
Appendix to Software Design in Haskell
@graninas
graninas / itbeard_poems.txt
Last active June 20, 2022 09:20
Стихи для конкурса у АйТиБороды
https://www.youtube.com/watch?v=fhMVCRWpNVc&ab_channel=%D0%90%D0%B9%D0%A2%D0%B8%D0%91%D0%BE%D1%80%D0%BE%D0%B4%D0%B0
igroykt
айтишечка и в африке айтишечка
а я питоняш, и пишу на нем код наш
иногда на пхп, выдаю я выхлоп кнеш
@graninas
graninas / holmes_code_riddle.js
Created November 26, 2022 20:27
Sherlock Holmes and a Code Riddle
// https://www.tutorialspoint.com/online_processingjs_editor.php
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/processing.js/1.6.6/processing.min.js"></script>
<script type="application/processing" data-processing-target="pjs">
dW = 4; dH = 20; dWH = dW/2; dHH = dH/2;
gSh = dWH/2; r = dW/sqrt(2); fs = 2 * (dH);
@graninas
graninas / On_hiring_haskellers.md
Last active March 25, 2023 16:49
On hiring Haskellers

On hiring Haskellers

Recently I noticed the number of the same two questions being asked again and again on different Haskell resources. The questions were “How to get a Haskell job” and “Why is it so hard to find Haskellers?” Although these two are coming from the opposite sides of the hiring process, the answer is really just one. There is a single reason, a single core problem that causes difficulties of hiring and being hired in the Haskell community, and we should clearly articulate this problem if we want to increase the Haskell adoption.

We all know that there are many people wishing to get a Haskell job. And a visible increase of Haskell jobs looks like there should be a high demand for Haskellers. The Haskell community has also grown like crazy past years. But still, why is it so difficult to hire and to be hired? Why can’t companies just hire any single person who demonstrates a deep knowledge of Haskell in blog posts, in chats, on forums, and in talks? And why do Haskell companies avoid hirin