Skip to content

Instantly share code, notes, and snippets.

View denisshevchenko's full-sized avatar
🏠
Working from home

Denis Shevchenko denisshevchenko

🏠
Working from home
View GitHub Profile
getDoorMaterial :: House -> NumberOfDoor -> Either ErrorMessage Material
getDoorMaterial (House _ [] _) _ = Left "Этот дом без дверей, не будет вам никакого материала!"
getDoorMaterial (House _ doors _) numberOfDoor =
if numberOfDoor > quantityOfDoors
then Left "Эй, брат, погоди, тут нету столько дверей! Значение numberOfDoor слишком большое."
else
let indexOfOurDoor = numberOfDoor - 1
ourDoor = doors !! indexOfOurDoor
(Door _ _ materialOfOurDoor) = ourDoor
in Right materialOfOurDoor
data Door = Door {
width :: Width
, height :: Height
, material :: Material
}
getHeightOfTheDoor :: House -> NumberOfDoor -> Maybe Height
getHeightOfTheDoor (House _ [] _) _ = Nothing :: Maybe Height
getHeightOfTheDoor (House _ doors _) numberOfDoor =
if numberOfDoor < 1
module Main where
import Lib
import Data.Text
import Data.List
data Patient = Patient Text
data Disease = Dis Text
type Diagnosis = (Patient,Disease)
@denisshevchenko
denisshevchenko / BuyADA.md
Last active January 8, 2018 07:04
Простейший способ купить ADA (Cardano)

Простейший способ купить ADA (Cardano)

Прежде всего, нам нужна криптовалютная биржа. Это такой сервис, где можно одну криптовалюту купить за другую. На сегодняшний день купить ADA за "обычные" деньги нельзя, поэтому без криптобиржи не обойтись.

  1. Выбираем биржу, работающую с ADA. Например, эти:
  2. Регистрируемся в ней и заводим два внутренних кошелька: BTC и ADA. Это нужно для того, чтобы в рамках биржи
@denisshevchenko
denisshevchenko / LiquidHaskellCardano.md
Last active January 8, 2018 09:25
LiquidHaskell and Cardano SL

Сейчас, когда моё приключение с визой успешно завершилось, изложу по шагам, без лишних эмоций, как оформить визу в Португалию.

Уточнение номер раз: детали, изложенные далее, сработали в Армении, но не могу гарантировать, что они работают везде одинаково.

Уточнение номер два: речь идёт о получении самой первой Шенгенской визы, как в моём случае. Если вы оформляете вторую и последующие визы, это может облегчить процедуру (но не факт).

  1. Я подавал документы непосредственно в Консульство, а не через визовый центр (VFS Global) или турагентство. Не стану утверждать, какой способ лучше (отзывы в интернете на этот счёт диаметрально противоположные). В Армении всё просто: визу в Португалию нужно оформлять только через Консульство Франции (они совместили несколько Консульств под французским крылом).

Steps to prepare concurrent benchmarking

  1. $ cd cardano-sl
  2. Go to branch with dbgen: $ git checkout master
  3. Build: $ ./scripts/build/cardano-sl.sh
  4. Clean wallet database: $ ./scripts/clean/db.sh
  5. Launch dev cluster: $ ./scripts/launch/demo-with-wallet-api.sh
  6. Copy value from System start, for example, 1518114979000000, from any tmux window. It will be used in next steps.
  7. Generate keys: $ stack exec -- cardano-keygen --system-start 1518114979000000 generate-keys-by-spec --genesis-out-dir tmp-secrets
  8. Get your first money: $ curl -X POST --insecure https://localhost:8090/api/wallets/keys -H 'cache-control: no-cache' -H 'content-type: application/json' -d '"/home/denis/Code/cardano-sl/tmp-secrets/generated-keys/poor/key0.sk"'. You should see something like this:

IMPORTANT: It's actual for API V0

Create a new wallet

First of all, you need a new mnemonic for backup passphrase. Please go here and generate English BIP39 Mnemonic. Choose 12 words and click "Generate" button. You will get something like this:

refuse layer pill agent wagon effort party fetch come degree hope real
import System.Directory
data FileError = NoSuchFile deriving (Show)
readMyFile :: FilePath -> IO (Either FileError String)
readMyFile pathToFile = do
fileIsHere <- doesFileExist pathToFile
if fileIsHere then do
content <- readFile pathToFile
return $ Right content
# -*- coding: utf-8 -*-
# Модуль загрузки XML-файла с удалённого сервера.
# Библиотека для использования протокола SFTP.
import pysftp
class Downloader:
def __init__(self, ipv4, port, login, password, pathToKnownHosts, pathToRemoteXML, saveXmlTo):
self._ipv4 = ipv4
self._port = port