Skip to content

Instantly share code, notes, and snippets.

package ru.itclover.streammachine.http.routes
import akka.actor.ActorSystem
import akka.http.scaladsl.server.Directives.{complete, path}
import akka.http.scaladsl.server.Route
import akka.http.scaladsl.server.Directives._
import cats.data.Reader
import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment
import ru.itclover.streammachine.http.domain.output.SuccessfulResponse
import ru.itclover.streammachine.http.protocols.JsonProtocols
@kell18
kell18 / ndcg_recsys.py
Last active January 10, 2023 04:31
NDCG for recommender systems
from math import log
import unittest
def dcg_at_k(scores):
assert scores
return scores[0] + sum(sc / log(ind, 2) for sc, ind in zip(scores[1:], range(2, len(scores)+1)))
def ndcg_at_k(predicted_scores, user_scores):
assert len(predicted_scores) == len(user_scores)
object PalindromeChecker {
def isPalindrome(words: Array[String]) {
words.foreach(w => println(isPalindrome1(w)))
}
def isPalindrome(word: String): Boolean = {
var b = 0
var e = word.length-1
while (b < e) {
/// Ответы API
// Успешно
{"is_success": true}
// Неуспешно, по внутренним причинам
{
"is_success": false,
"error_code": 1,
"cause": "",
}
// Неуспешно - неправильно заполнена форма
@kell18
kell18 / cloudSettings
Last active January 24, 2017 20:33
Visual Studio Code Sync Settings GIST
{"lastUpload":"2017-01-24T20:33:35.604Z"}

General Programming Exp

Read exceptions and logs. Do not rush (DNR)! Calm and steady.

Design

SOLID principles: - Single responsibility
- Open-closed - open to extension closed for mutation

@kell18
kell18 / NiceTemplate.scala
Last active November 14, 2016 02:49
Valid code
package cas.web.pages.templates
import cas.utils.Files
import scala.xml.Elem
object Templates {
def page(pathToStatic: String)(menuElements: List[Elem])(content: Elem) = <html>
<head> { Files.readFile(pathToStatic) } </head>
<body>
{ headerMenu(menuElements) }
/* Remove candidates that has support less than mininmum support */
ItemSetList<cpu> &L_cur = L[iset_size];
L_cur.current = L_cur.start;
while (L_cur.current != NULL)
{
size_t itmSpp = L_cur.current->itemSet->support.get();
if (itmSpp < imin_s)
{
L_cur.removeCurrentNode();
}
/*
Правила игры "Жизнь"
если потенциал клетки равен двум, то клетка сохраняет свое состояние;
если потенциал равен трем, то клетка оживает;
если потенциал меньше двух или больше трех, то клетка погибает.
*/
#include <iostream>
#include <time.h>
#include <stdlib.h> /* srand, rand */
/*
Правила игры "Жизнь"
если потенциал клетки равен двум, то клетка сохраняет свое состояние;
если потенциал равен трем, то клетка оживает;
если потенциал меньше двух или больше трех, то клетка погибает.
*/
#include <iostream>
#include <cstdlib> /* srand, rand */
#include <iostream>