Skip to content

Instantly share code, notes, and snippets.

View ppopoff's full-sized avatar
💾
I may be slow to respond.

Paul Popoff ppopoff

💾
I may be slow to respond.
  • Voronezh State University
  • Russia
View GitHub Profile
@ppopoff
ppopoff / review.md
Created April 3, 2022 15:27
Мои впечатления от видео трех летней давности :)

Касательно выступления ДеГуза.

Я согласен с ним в лишь в одном. В том, что частью комьюнити следует пожертвовать. И жертвовать стоит той самой частью, интересы которой ДеГуз и представляет. По моему скромному опыту это как раз процентов 10-15% от общего числа проектов. И огромному числу платящих клиентов то чем занимаются ребята из того же type-level не особо нужно. Слишком всокий TCO. Более того, для чистого fp, было, есть и существует множество языков. И их не будет в продакшне. А Scala в продакшн попала (потому что создавалась для совершенно других целей). В прочем понимания этого у нашего знакомого нет. Поэтому мы всеми силами будем цепляться в Scala и продолжать ее топить. Scala убило именно комьюнити. А основной причиной которая смерти языка стала именно крайняя токсичность и недружелюбность комьюнити. Ведь именно сложностью в определенных моментах, Scala, в таковых людей и притягивала. Как следствие, это привело к чрезмерному засилию функциональщины которое и убило язык

[info] Benchmark Mode Cnt Score Error Units
[info] MapMergeBenchmark.testProposalA avgt 20 3721.425 ± 17.451 ns/op
[info] MapMergeBenchmark.testProposalB avgt 20 403.123 ± 2.568 ns/op
[info] MapMergeBenchmark.testReference avgt 20 1343.966 ± 18.883 ns/op
[info] MapMergeBenchmark.testProposalA sample 6496837 3906.749 ± 21.565 ns/op
[info] MapMergeBenchmark.testProposalA:testProposalA·p0.00 sample 3148.000 ns/op
[info] MapMergeBenchmark.testProposalA:testProposalA·p0.50 sample 3524.000 ns/op
[info] MapMergeBenchmark.testProposalA:testProposalA·p0.90 sample 4288.000 ns/op
[info] MapMergeBenchmark.testProposalA:testProposalA·p0.95 sample 4696.000 ns/op
[info] MapMergeBenchmark.testProposalA:testProposalA
@ppopoff
ppopoff / FailingParser.scala
Last active January 30, 2018 00:42
Github scala parser fails here
object FailingParser extends App {
// Scala allows you to use ''', so code is correct.
val chars = Seq(''', '\n', '*')
println("Here be dragons")
}
@ppopoff
ppopoff / .gitignore
Created October 5, 2017 16:24
Java gitinore
# IDEs
# Netbeans project files
nbproject/private/
build/
nbbuild/
dist/
nbdist/
.nb-gradle/
@ppopoff
ppopoff / SelectionSort.mink
Last active January 7, 2017 19:11
Sorting algorithms in mink
/** Module name should match the file name
* All functions in module are private by default
* to make an item public you should add '+' prior it's name
*
* All items in a module are represented as key-value pairs.
*/
/** An example of Collection type class
*/
+ type class Collection [A] = {
@ppopoff
ppopoff / mink_draft.mink
Created December 8, 2016 19:50
mink syntax 0-draft
use java.util.Arrays.fromList
use some.bullshit.you.can.not.imagine
// constants
three = 3
someText = "Text"
someOtherText: String = "Some other text"
// functions
@ppopoff
ppopoff / Eratosphen.scala
Last active October 18, 2016 00:01
Sieve of Eratosthenes in scala
import scala.annotation.tailrec
import java.nio.file.{Paths, Files}
import java.nio.charset.StandardCharsets
type Longs = List[Long]
/* Eratosphen */
def eratosphen(targetNumber: Long): Longs = {
require(targetNumber > 2)
@ppopoff
ppopoff / euler20.erl
Created March 30, 2016 22:05
Euler task 20
-module(euler20).
-export([solve/1]).
%% the solution for the problem
solve (N) -> sum_digits(factorial_rec(N), 0).
%% Tail recursive implementation
%% of the factorial function
%% Question: I think that it's much faster than
import scala.collection.JavaConverters._
import oi.thekraken.grok.api.Grok
/**
* keys that will be extracted from the grok Map
*/
object Keys {
val clientIp = "clientip"
val ident = "ident"
val auth = "auth"
import org.parboiled2._
/**
* Constants and char predicates
*/
object BkvRecognizer {
val WhitespaceChars = "\n\t "
val IdentifierChar = CharPredicate.AlphaNum ++ '.' ++ '_'
/**