Skip to content

Instantly share code, notes, and snippets.

@codedokode
codedokode / test-xdg-proxy.py
Created Mar 22, 2020
Test Python script for xdg-dbus-proxy
View test-xdg-proxy.py
import os
import socket
import sys
import binascii
from pprint import pprint
# Tests xdg-dbus-proxy by sending different messages to check whether it
# would crash or not.
#
# How to use:
@codedokode
codedokode / broken-thread-maps.txt
Created Jun 6, 2018
Программа обнаружения повторяющихся фрагментов текста и результат ее применения к сломанным тредам
View broken-thread-maps.txt
/tmp/threads/pr-thread-4-272705-m2ch-18-may-google.html
Total repeats: 185567 of 454322 bytes
- 0 - 41080 | \n<meta http-equiv="Content-Type" content ... ss="reply" id="27307
first 1 41081 - 85327 | 5"><div class="pst_bar"><span class="pos ... ://m2-ch.ru/pr/res/2
second 1 85328 - 129574 | 5"><div class="pst_bar"><span class="pos ... ://m2-ch.ru/pr/res/2
- 129575 - 129593 | 72705.html#273385">
first 2 129594 - 177012 | &gt;&gt;273385</a><br><br><span class="u ... ;А если надо сюда HT
- 177013 - 177034 | 72705.html#273385"&gt;
second 2 177035 - 224453 | &gt;&gt;273385</a><br><br><span class="u ... ;А если надо сюда HT
- 224454 - 224621 | ML-тегов с аттрибутами добавить? У тебя ... виджет сделан.</span
@codedokode
codedokode / fix-broken-threads.php
Created Jun 5, 2018
Скрипт исправления сломанных тредов 1, 4b и 15
View fix-broken-threads.php
<?php
use Symfony\Component\DomCrawler\Crawler;
use phpClub\Util\DOMUtil;
set_time_limit(0);
require __DIR__ . '/../vendor/autoload.php';
$di = require __DIR__ . '/../src/Bootstrap.php';
/**
@codedokode
codedokode / proxy.php
Created Dec 23, 2016
Простой прокси-сервер на PHP для изучения и модификации данных, передаваемых между браузером и сторонним сервером
View proxy.php
<?php
/**
* Простой прокси-сервер на PHP для изучения и модификации данных,
* передаваемых между браузером и сторонним сервером.
*
* Запуск:
*
* указать URL сайта в $base
* php -S 127.0.0.1:9001 proxy.php
*
@codedokode
codedokode / Особенности сравнения строк.md
Last active Oct 25, 2020
Особенности сравнения строк
View Особенности сравнения строк.md

Эта статья перенесена сюда: https://github.com/codedokode/pasta/blob/master/php/collation.md Ниже идет старая, неподдерживаемая версия статьи.


В программировании строки можно сравнивать. При этом обычно подразумевается алфавитное сравнение, то есть меньше то слово, которое идет раньше по алфавиту. Если начальные буквы совпадают, то меньше то слово, которое короче. Например, "аббат" < "аккорд", "кот" < "котёнок".

Если разобраться в теме сравнения строк на любых языках (а не только на русском), то все выглядит гораздо сложнее и появляется много особенностей, которые надо учитывать(по-английски эта тема называется «collation»). И проблема не в том, что там много букв из разных алфавитов, а в том что одни и те же буквы имеют разный порядок в разных языках. Например, буквы с точечками и черточками сравниваются по-разному: http://en.wikipedia.org/wiki/Alphabetical_order#Language-specific_conventions

В некоторых языках буквы вроде å идут после z, в некоторых между a и b. В некорых (английский) они им

@codedokode
codedokode / Тестирование.md
Last active Nov 23, 2020
Автоматизированное тестирование
View Тестирование.md

Автоматизированное тестирование

Обычно после написания кода его проверяют. Если речь о какой-то функции, то можно написать простой скрипт, который будет вызывать ее с разными аргументами, и смотреть, что она вернет. Если вы сделали сайт или приложение, то вы открываете его, жмете ссылки и кнопки, проверяете что все отображается верно. Это называется ручное тестирование или QA (Quality Assurance — контроль качества) — человек проверяет работу программы. Если мы попробуем автоматизировать этот процесс, и написать программу, которая проверяет правильность другой программы, то это называется автоматизированное тестирование.

Главный плюс автоматических тестов — то, что они выполняются намного быстрее, чем ручное тестирование, и вам не надо тратить на это свое время (или время тестировщика). Это позволяет запускать их хоть после каждого изменения в коде.

Также, тесты позволяют «защитить» написанный код. Если кто-то в команде (или вы сами) нечаянно «сломал» ваш код, тесты это обнаружат и укажут, что именн

@codedokode
codedokode / getset.sublime-snippet
Created Nov 9, 2014
Сниппет для создания геттеров/сеттеров в Sublime Text 3. Вызывается через gs [tab]
View getset.sublime-snippet
<snippet>
<content><![CDATA[
public function get${1/(?:^|_)(\w)/\U$1$2/g$1}()
{
return \$this->$1;
}
/**
* @return self
*/
View Путь HTML.md

Путь HTML/CSS

Это список ссылок и заданий, которые помогут тебе изучить языки HTML/CSS на достаточном уровне. HTML и CSS используется для верстки (создания) веб-страничек — тех самых, которые ты видишь в браузере когда открываешь какой-то сайт. Задания несложные и надо решить их все.

Станешь ли ты полноценным верстальщиком, пройдя этот путь? Скорее нет, чем да. С одной стороны, ты научишься верстать веб-страницы, с другой стороны от верстальщиков в большинстве случаев требуют дополнительно знать язык программирования Javascript (и популярные библиотеки вроде jQuery, jQuery UI). Так что воспринимай это как первую (короткую) половину пути.

Время, требуемое на изучение материала и решение всех заданий зависит от тебя, ориентировочно это занимает от 2 до 8 недель. В конце тебя ждет главное задание — сверстать страницу из макета.

Что такое HTML

View Зачем нужны исключения в PHP.md

Этот урок переехал в мой гитхаб: https://github.com/codedokode/pasta/blob/master/php/exceptions.md - ниже представлена старая версия, потому советую перейти и прочитать новую.


Как использовать исключения в PHP

Если ты изучаешь ООП, ты наверняка натыкался на исключения. В мануале PHP описаны команды try/catch/throw и finally (доступна начиная с PHP 5.5), но не объясняется толком как их использовать. Чтобы разобраться с этим, надо узнать почему они вообще были придуманы.

А придуманы они были, чтобы сделать удобную обработку ошибок.

@codedokode
codedokode / Паттерны работы с базой данных.md
Last active Nov 5, 2020
Паттерны работы с базой данных
View Паттерны работы с базой данных.md

Это старая версия урока, которая больше не обновляется. Новая версия расположения тут: https://github.com/codedokode/pasta/blob/master/db/patterns-oop.md


Паттерны работы с базой данных

Разберемся, как правильно с применением ООП сохранять и загружать данные из базы. Существуют такие подходы:

You can’t perform that action at this time.