Skip to content

Instantly share code, notes, and snippets.

@sagittaracc
sagittaracc / simple-pagination-with-three-dots.js
Last active July 24, 2020 14:24
Simple pagination with three dots
function Pagination(countPages, maxLength) {
if (maxLength < 5) return;
if (countPages < maxLength) maxLength = countPages;
this.countPages = countPages;
this.maxLength = maxLength;
this.currentLength = 0;
this.currentPage = this.firstPage = 1;
this.lastPage = this.countPages;
@sagittaracc
sagittaracc / index.html
Last active July 31, 2020 12:53
Chatbox HTML CSS
<!doctype html>
<html>
<head>
<title>Chatbox</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="chat-box">
<div class="elder">Load earlier messages</div>
<div class="sender">
@sagittaracc
sagittaracc / factory-method-pattern.php
Last active March 13, 2021 16:40
Паттерн проектирования "Фабрика" (пример на php). Реализация логирования в системный лог, базу данных, или файловую систему.
<?php
// Фабрика
abstract class LogFactory
{
// Фабричный метод - создает конкретные продукты фабрики
abstract public function getLog(): Log;
// Метод реализующий основное назначение продуктов фабрики (в данном случае запись в лог)
public function write($data): void
@sagittaracc
sagittaracc / readme.md
Last active March 16, 2021 20:11
Магазин пива (перенесено)
@sagittaracc
sagittaracc / Dataset.php
Last active March 31, 2021 10:24
Lagrange interpolation PHP Decorator (Интерполяционные полиномы Лагранжа на PHP Декораторе)
<?php
interface Dataset
{
public function output();
}
@sagittaracc
sagittaracc / unique-visits-downloads.php
Last active April 8, 2021 14:33
Счётчик уникальных посещений на примере скачивания дистрибутива (PHP)
<?php
/**
* ListInterface это интерфейс для классов IPIgnoreList, UserAgentIgnoreList и SearchBotList
*
* Должен реализовать метод `has($item)` для определения принадлежности пользователя к реализуемому списку
*/
interface ListInterface
{
/**
@sagittaracc
sagittaracc / Graph.php
Created May 1, 2021 10:33
Работа с графами
<?php
/**
* Работа с графами
*
* @author sagittaracc <sagittaracc@gmail.com>
*/
class Graph
{
/**
@sagittaracc
sagittaracc / translit.php
Last active June 10, 2021 07:03
Транслитерировать все имена файлов в указанной директории
<?php
function translit_folder($folder)
{
$converter = array(
'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd',
'е' => 'e', 'ё' => 'e', 'ж' => 'zh', 'з' => 'z', 'и' => 'i',
'й' => 'y', 'к' => 'k', 'л' => 'l', 'м' => 'm', 'н' => 'n',
'о' => 'o', 'п' => 'p', 'р' => 'r', 'с' => 's', 'т' => 't',
'у' => 'u', 'ф' => 'f', 'х' => 'h', 'ц' => 'c', 'ч' => 'ch',
@sagittaracc
sagittaracc / sag_pack.php
Created May 11, 2021 18:41
Упаковка и распаковка битов
<?php
$a = [0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1];
function sag_pack($a) {
$sum = 0;
foreach (array_reverse($a) as $index => $value) {
$sum += $value * (1 << $index);
}
<?php
/**
* Mehen games test
*
* @author sagittaracc <sagittaracc@gmail.com>
*/
// Массив имеет произвольные значения
$array = [-1, 2, 10, 3, -5, 3];