Как стать автором
Обновить
10
0
Олег Шабашов @WindDrop

Пользователь

Отправить сообщение

Игра, которую невозможно не полюбить

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров12K

Здравствуйте, уважаемые хабровцы!

Меня зовут Ернар Шамбаев, я - разработчик компьютерной версии игры “Мастер тогызкумалака”, и сегодня я бы хотел рассказать вам об одной увлекательной настольной логической игре, про которую вы вряд ли слышали, несмотря на то, что в нее играют сотни тысяч человек по всей планете и по ней проводятся даже чемпионаты мира, Европы и Азии. Надеюсь, после прочтения данной статьи количество поклонников этой игры увеличится.

Трудно сказать, какая настольная игра является древнейшей на Земле. Споры не утихают по сей день. Кто-то говорит, что самой древней игрой является египетский сенет, кто-то настаивает, что древнейшая игра - это ур из Месопотамии, кто-то считает таковой го, кто-то - игры семейства манкала. А может, банальные игральные кости - древнейшая игра? Думаю, точка в этом вопросе не будет поставлена никогда. В любом случае не оспаривается, что игры семейства манкала (к ним относится тогызкумалак, которому посвящена статья) - это крайне древние игры, и им насчитывается несколько тысяч лет.

Человеку нужен не только хлеб, человеку нужны и зрелища. Ему нужна пища для ума, какой-то способ времяпровождения, который скрасит быт и рутину. Такой пищей для ума кочевников, которые пасли скот в бескрайних степях на территориях, сейчас относящихся к Казахстану, стала игра тогызкумалак (в переводе с казахского - “девять шариков”). Число 9 было священным у тюркских народностей. Российский исследователь игр А.П. Шиляев полагает, что казахская игра - свидетельство зарождения десятеричной системы счисления. Считается, что тогызкумалаку около 4 тысяч лет (возможно, цифра слегка завышена). Тогда, естественно, никто не мог предположить, что игра станет настоящим вызовом в эпоху компьютеров и нейросетей.

Читать далее
Всего голосов 53: ↑52 и ↓1+51
Комментарии16

Чему мы научились, разрабатывая backend

Время на прочтение3 мин
Количество просмотров33K
imageРазработка Parallels Access потребовала создания геораспределенного сервиса, позволяющего безопасно устанавливать связь между компьютерами и мобильными клиентами пользователей в различных точках земного шара. Команда, которая над ним трудится, хочет поделиться полученным опытом в форме цитат, чтобы облегчить участь тем, кто только планирует создание своего клиент/серверного продукта, и погрузить в ностальгию профессионалов, имеющих за спиной дюжину успешных проектов:
Читать дальше →
Всего голосов 73: ↑68 и ↓5+63
Комментарии37

АнтиЗапрет — Скажи цензуре нет!

Время на прочтение1 мин
Количество просмотров160K
Как и обещал, сделал бесплатный VPN и прокси-сервер, который проксирует только ресурсы, внесенные в единый реестр запрещенных сайтов Роскомнадзором, Роспотребнадзором или ФСКН.
Не нужно искать прокси или VPN, включать/выключать их постоянно, а один раз настроить и забыть.

ПростоVPN.АнтиЗапрет


Сервис использует API сайта antizapret.info и обновляет списки раз в сутки.
Есть два способа настройки: как прокси и как VPN.
Читать дальше →
Всего голосов 169: ↑150 и ↓19+131
Комментарии124

Модульное тестирование поведения Yii2 с помощью Codeception

Время на прочтение8 мин
Количество просмотров45K
В разработке программного обеспечения написание автоматических тестов часто отодвигается на второй план более насущными проблемами. Так и в моем случае, код писать приходилось, а тесты к нему — нет. При этом давно хотелось попробовать модульное тестирование собственного кода, а тут под руку подвернулось поведение Yii2 ManyToMany Behavior, о котором уже писали на Хабре. Это поведение я сначала немного расширил, а затем решил собрать комплект тестов.

Сами тесты, в том числе те, о которых идет речь в этой статье, можно посмотреть в репозитории по ссылке выше. Все команды выполнялись под Windows с глобально установленным composer, но я думаю, что разработчики, пользующиеся Linux, без затруднений смогут адаптировать их под себя.

Далее мы рассмотрим настройку Codeception с модулем для Yii2 и создание тестов для поведения.
Узнать, как...
Всего голосов 15: ↑14 и ↓1+13
Комментарии12

Nginx и https. Получаем класс А+

Время на прочтение4 мин
Количество просмотров161K
image

Недавно вспомнилось мне, что есть такой сервис — StartSsl, который совершенно бесплатно раздаёт trusted сертификаты владельцам доменов для личного использования. Да и выходные попались свободные. В общем сейчас напишу, как в nginx настроить HTTPS, чтобы при проверке в SSL Labs получить рейтинг А+ и обезопасить себя от последних багов с помощью выпиливания SSL.

Итак, приступим. Будем считать, что у вы уже зарегистрировались на StartSsl, прошли персональную проверку и получили вожделенный сертификат. Для начала опубликую итоговый конфиг, а после этого разберу его.
Читать дальше →
Всего голосов 61: ↑52 и ↓9+43
Комментарии85

Переходим на HTTPS на Nginx: шпаргалка

Время на прочтение3 мин
Количество просмотров150K
Уже второй раз сталкиваюсь с задачей «поставь https на наш сервер» от моего босса, поэтому решил сделать для самого себя шпаргалку, а заодно и для всех остальных. Итак, ситуация следующая: к нам пришел босс и заявил, что ему нужен https. Под катом я напишу 5 простых шагов, как все сделать буквально за час. Приступим.
Читать дальше →
Всего голосов 66: ↑43 и ↓23+20
Комментарии60

CloudFlare + nginx = кешируем всё на бесплатном плане

Время на прочтение2 мин
Количество просмотров56K

В бесплатной версии Cloudflare все замечательно (ей-богу сказка!), но список кешируемых форматов файлов весьма ограничен.
К счастью кеширование всего подряд (до 512 Мб на файл) можно настроить в одно два действия.

Читать дальше →
Всего голосов 54: ↑51 и ↓3+48
Комментарии6

Как бороться с репостами или пара слов о перцептивных хешах

Время на прочтение11 мин
Количество просмотров30K
В этой публикации речь пойдет о подходах к построению перцептивный хешей изображения и возможностях их использования (например, поиск дубликатов).

перцептивный хэш-алгоритмы описывают класс функций для генерации сравнимых хэшей. Они используют различные свойства изображения для построения индивидуального «отпечатка». В дальнейшем эти «отпечатки» можно сравнивать друг с другом.

Если хэши отличаются, значит, данные разные. Если хэши совпадают, то данные, скорее всего, одинаковые (поскольку существует вероятность коллизий, то одинаковые хэши не гарантируют совпадения данных). В этой статье речь пойдет о нескольких популярных методах построения перцептивный хешей изображения, а также о простом способе борьбы с коллизиями. Всем кому интересно, прошу под кат.
Читать дальше →
Всего голосов 55: ↑54 и ↓1+53
Комментарии26

Пара полезных команд, которые могут пригодиться при DDoS и не только

Время на прочтение3 мин
Количество просмотров81K
В моем случае, в качестве frontend сервера, стоит nginx и формат access-лога имеет вид:

log_format main '$remote_addr — $remote_user [$time_local] "$host" "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" -> $upstream_response_time';

Что на выходе дает что-то вроде такой строки:

188.142.8.61 — - [14/Sep/2014:22:51:03 +0400] «www.mysite.ru» «GET / HTTP/1.1» 200 519 «6wwro6rq35muk.ru» «Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.191602; .NET CLR 3.5.191602; .NET CLR 3.0.191602» "-" -> 0.003

1. tail -f /var/log/nginx/nginx.access.log | cut -d ' ' -f 1 | logtop

Позволяет получить общую картину: распределение уникальных IP, с которых идут запросы, кол-во запросов с одного IP и т.д.
Самое ценное — что все это работает в режиме реального времени и можно мониторить ситуацию, внося какие-либо изменения в конфигурацию (например просто забанить ТОП 20 самых активных IP через iptables или временно ограничить географию запросов в nginx через GeoIP http://nginx.org/ru/docs/http/ngx_http_geoip_module.html).
Читать дальше →
Всего голосов 105: ↑101 и ↓4+97
Комментарии21

Кэти Сьерра о том, как создавать востребованные приложения и повышать «крутизну» своих пользователей

Время на прочтение14 мин
Количество просмотров27K
Можно ли сегодня создать популярное приложение? Рынки поделены, ниши заняты, конкуренция — очень плотная… Но не время разработчикам предаваться печали! Общая планка приложений все еще остается низкой, и обойти всех конкурентов все еще возможно. Так утверждает Кэти Сьерра (Kathy Sierra) в своем выступлении со сложно переводимой темой «Building the minimum Badass User» и его продолжении.

Кэти Сьерра известна в России прежде всего как автор мирового бестселлера «Изучаем Java». Но книги по программированию — это далеко не всё, чем она занимается. Теория обучения, разработка интерфейсов, маркетинг приложений, мотивация — вот неполный список тем, по которым она регулярно пишет статьи и выступает на конференциях. В поле нашего внимания попали именно эти два выступления, потому что они обобщают и резюмируют самое ценное из её собственного опыта разработки, а также сотен прочитанных Кэти научных работ. Перед вами — не перевод, а, скорее, конспект наиболее интересных мыслей и практических рекомендаций.
Читать дальше →
Всего голосов 36: ↑34 и ↓2+32
Комментарии9

5 советов по выбору SSD

Время на прочтение4 мин
Количество просмотров110K
Корпоративные пользователи часто сталкиваются с дилеммой, когда возникает вопрос, на чём хранить свои данные и запускать приложения. Во многих случаях необходимо сбалансировать потребность в быстром, надежном, устойчивом хранении и ограниченный бюджет. Время от времени это приводит ИТ-менеджеров к выбору низкопробных SSD накопителей, которые укладываются в бюджет. Они предполагают, что заявленные скорости и объёмы идеально подойдут для выполнения любого рода задач. Но не стоит так торопиться.

Читать дальше →
Всего голосов 63: ↑39 и ↓24+15
Комментарии28

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность