Skip to content

Instantly share code, notes, and snippets.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@pavelborisov
pavelborisov / di-in-fp.md
Created February 27, 2019 10:35 — forked from gvolpe/di-in-fp.md
Dependency Injection in Functional Programming

Dependency Injection in Functional Programming

There exist several DI frameworks / libraries in the Scala ecosystem. But the more functional code you write the more you'll realize there's no need to use any of them.

A few of the most claimed benefits are the following:

  • Dependency Injection.
  • Life cycle management.
  • Dependency graph rewriting.
@pavelborisov
pavelborisov / !Links.md
Last active February 2, 2018 10:57
NKC
1. Для разворачивания потребуется компьютер с ОС ubuntu16.04 x86_64 8Гб ОЗУ и 30Гб на разделах /opt и /var
2. Распаковать архив prz.tar.gz в каталог /opt
3. Установить и настроить СУБД Postgresql 9.1
4. Бэкап базы данных prz_template.backup из архива развернуть на Postgres 9.1 с именем prz_template
5. Запустить скрипт /opt/portal/start.sh и дождаться завершения запуска сервера
6. Приложение будет доступно локально по адресу localhost:12080
7. Логин и пароль для входа: admin|admin
import { observable, computed, reaction, autorun, action, extendObservable } from 'mobx'
import axios from 'axios'
import _ from 'lodash'
import ExamintionRequestModel, * as Models from 'models/ExaminationModels'
import { mdmAliases as mdm } from 'clientConfig'
import { apiRoute } from 'config'

GGE Portal

Портал ГлавГосЭкспертиза

Установка

   # 1. Клонируем репу
   git clone [email protected]:NAUMEN-GP/gge-portal.git
 

Выгоды для СЭ

  • Наличие календаря-планера в инструменте, позволяет эффективно планировать мероприятия и оптимизировать рабочее время экспертов
  • Система позволяет видеть все проекты над которыми работает каждый конкретный эксперт что позволяет правильно раставлять приоритеты и эффективно управлять ситуацией.
  • Позволяет контролировать их реализацию.
  • Современный интуитивно понятный интерфейс, интеграция систем семантического анализа и антиплагиата позволяет сократить временные издержки на проведение экспертизы.
  • Единое пространство работы позволяет обмениваться информацией и пользоваться коллективным опытом
  • Объединение экспертов в одном месте с использованием одного подхода позволяет управлять квалификацией и осуществлять мониториг роста квалификации
  • Уменьшение сложности/стоимости поддержки критического функционала: сводных оценок, экспертных анкет за счёт создания специализированных сервисов
  • Специализированные микросервисы дадут возможность качественно наращивать функционал и возможности п
// Lutz Prechelt: An Empirical Comparison of Seven Programming Languages
val in = scala.io.Source.fromURL("http://lamp.epfl.ch/files/content/sites/lamp/files/teaching/progfun/linuxwords.txt")
val words: List[String] = in.getLines().toList
val mnemonics: Map[Char, String] = Map('0' -> " 0", '*' -> "-", '1' -> "'.,?!@1", '2' -> "2ABC", '3' -> "DEF3", '4' -> "GHI4", '5' -> "JKL5", '6' -> "MNO6", '7' -> "PQRS7", '8' -> "TUV8", '9' -> "WXYZ9")
/*
Получаем на основе карты `mnemonics` отношение Цифра -> Символ
import model.TileType._
import model._
import scala.collection.immutable.HashMap
final class MyStrategy extends Strategy {
var ways = HashMap.empty[(Int, Int), List[(Int, Int)]
trait BaseVector[T] {
import model.TileType._
import model.{Car, Game, Move, World}
import scala.collection.immutable.HashMap
final class MyStrategy extends Strategy {
var ways = HashMap.empty[(Int, Int), List[(Int, Int)]
override def move(self: Car, world: World, game: Game, move: Move) {