Pull to refresh
32
0
Виктор Скрынников @web-viktor

PHP, Java, Ruby, c/c++ dev

Send message

Как программируются кассовые аппараты?

Level of difficultyEasy
Reading time13 min
Views5.8K

Привет, Хабр!

А вы когда-нибудь задумывались, каким образом ваша покупка на угловой заправке или в супермаркете превращается в акт, сохраняющийся в электронной памяти кассового аппарата? Эти устройства - настоящие живые свидетели каждой транзакции, но как они работают внутри?

Мы рассмотрим аппаратную архитектуру, операционные системы, языки программирования, методы обработки фискальных данных и многие другие аспекты, которые составляют суть программирования кассовых аппаратов. Вдобавок, я предоставлю примеры кода и практические инсайты, которые помогут вам понять, как это делается в реальном мире.

Читать далее
Total votes 21: ↑11 and ↓10+5
Comments16

«Чистый» код, ужасная производительность

Level of difficultyEasy
Reading time17 min
Views69K

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

Читать далее
Total votes 95: ↑69 and ↓26+63
Comments222

Иллюзия упущенных возможностей. Вот если бы я тогда…

Reading time6 min
Views39K

Все мы временами жалеем о том, что не сделали чего-то в прошлом. Например, не уделили должного внимания изучению иностранного языка: «Эх, вот если бы я тогда не страдал всякой ерундой, а как следует взялся бы за английский, я бы сейчас...». Или не поучаствовали в чём-то, что сейчас принесло бы нам ощутимые дивиденды и бонусы: «Говорил ведь мне тогда Сеня: надо майнить биткойны». Или просто выбрали не ту дорогу: «Надо было поступать в университет А, зачем я сгоряча подал документы в институт Б!»

Проходит время, мы анализируем наши поступки и сокрушаемся по поводу неправильно принятых решений. Нам кажется, что всё могло быть совсем по-другому, если бы в определённой временно́й точке в прошлом мы приняли бы другое решение.

Всё выглядит вполне логичным: вот точка выбора, перекрёсток судьбы. Вот две дороги: направо пойдёшь — будут тебе успех, почёт и богатство. Налево пойдёшь — и окажешься... в общем, там, где ты сейчас оказался. Однако тут есть небольшой подвох: мы никак не можем проверить, что дорожка направо действительно привела бы нас в светлое альтернативное будущее. Давайте попробуем разобраться, что же не так с этой самой дорожкой.

Читать далее
Total votes 39: ↑34 and ↓5+37
Comments97

Системы счисления, которым ещё не время умирать

Level of difficultyEasy
Reading time7 min
Views16K

В сегодняшнем мире доминирует индийско-арабская десятичная система. И эта система, принятая почти в каждом обществе, представляет собой то, что большинство людей считают «числами». Десятичная система оперирует числами, выраженными цифровой базой от 0 до 9. Но существуют значимые альтернативы, и они столь же разнообразны, как и культуры, к которым принадлежат. В 1994 году группа инуитских учащихся под руководством преподавателя изобрели новую систему счисления.

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

Читать далее
Total votes 42: ↑41 and ↓1+55
Comments26

Нейронная Сеть CLIP от OpenAI: Классификатор, который не нужно обучать. Да здравствует Обучение без Обучения

Reading time18 min
Views45K

Можете представить себе классификатор изображений, решающий практически любую задачу, и который вообще не нужно обучать? Это новая нейросеть CLIP от OpenAI. Разбор CLIP из рубрики: Разбираем и Собираем Нейронные Сети на примере Звездных Войн!

Нет данных, нет разметки, но нужен классификатор изображений для конкретной задачи? Нет времени возиться с обучением нейронной сети, но нужно получить классификацию высокой точности? Все это стало возможным. Вам нужно обучение без обучения!

Готов и туториал: Собираем нейросети. Классификатор животных из мультфильмов.
Без данных и за 5 минут. CLIP: Обучение без Обучения + код

Подробно и доступно разбираем что такое "обучение без обучения" и саму нейросеть CLIP от OpenAI. Стираем границы между Текстом и Изображением. Внимание: статья подходит под любой уровень: от нулевого до профи. Приятного прочтения!

Поехали!
Total votes 28: ↑28 and ↓0+28
Comments24

Собираем нейросети. Классификатор животных из мультфильмов. Без данных и за 5 минут. CLIP: Обучение без Обучения + код

Reading time9 min
Views14K

Туториал: Собираем нейронную сеть на примере классификации нарисованных животных в режиме "обучения без обучения".

Цель: Научиться быстро создавать классификаторы для множества задач, без данных и без разметки, используя нейросеть CLIP от OpenAI.

Уровень: Туториал подходит под любой уровень: от нулевого до профи.

Совсем недавно я писал статью про нейронную сеть CLIP от OpenAI — классификатор изображений, решающий практически любую задачу, и который вообще не нужно обучать! Теперь давайте посмотрим, как CLIP работает на практике. Собираем CLIP из рубрики: Разбираем и Собираем Нейронные Сети на примере мультфильмов. На написание кода, и создание готового обученного классификатора у меня, и у любого, даже не знакомого с Python, уйдет именно пять минут. Интересно как? На самом деле все очень просто.

Туториал + Рабочий код: Читай и запускай! Приятного прочтения!

Поехали!
Total votes 12: ↑9 and ↓3+10
Comments18

Техники безопасной парольной авторизации в Web

Reading time21 min
Views18K

Приветствую, друзья! В прошлой статье я предлагал на обсуждение какой-то бред, за который теперь стыдно черновик нового протокола аутентификации на сайтах. И хотя сейчас я значительно его переработал (с учетом ваших замечаний) и готовлю новую версию, я решил что стоит предварительно опубликовать несколько статей, которые будут раскрывать мотивы технических решений, закладываемых в новый протокол. А эта статья посвящается проблемам и техникам безопасной передачи и хранения сайтами ваших паролей.

Я приведу несколько реально используемых схем, встречаемых на практике. Буду приводить схемы авторизации в порядке от простого к сложному, показывая их преимущества и недостатки и обосновывая выбранные технические решения.

Теперь кратко о себе: Я опасно некомпетентен в криптографии. Это всё, что вы должны обо мне знать.

Обзор техник
Total votes 3: ↑2 and ↓1+1
Comments18

20 уроков, которые я вынес из 20 лет работы программистом

Level of difficultyEasy
Reading time9 min
Views116K
Вы приступаете к чтению статьи с высокой концентрацией советов. Учиться у предшественников – хороший способ добиться успеха, но здесь мы часто забываем о важной оговорке. Практически любой совет работает только в определенном контексте, но дается обычно без каких-либо указаний на него.

«Да просто повысьте цены!» — говорит компания, которая уже двадцать лет на рынке и первые годы продавала продукт за копейки, чтобы привлечь клиентов и прийти к успеху. «Нужно всё реализовать в микросервисах», — говорит компания, которая по-быстрому сколотила монолит, набрала несколько тысяч пользователей и метнулась к микросервисам, когда начались проблемы с масштабированием.

Без понимания контекста советы теряют смысл или, хуже того, приносят вред. Если бы люди из примеров выше последовали своим собственным советам в начале пути, то, вероятно, пожалели бы этом. Этой ловушки сложно избежать. Мы представляем собой кульминацию своего опыта, но при этом смотрим на него через призму настоящего.
Читать дальше →
Total votes 135: ↑128 and ↓7+152
Comments115

Основы Elasticsearch

Reading time12 min
Views681K

Elasticsearch — поисковый движок с json rest api, использующий Lucene и написанный на Java. Описание всех преимуществ этого движка доступно на официальном сайте. Далее по тексту будем называть Elasticsearch как ES.


Подобные движки используются при сложном поиске по базе документов. Например, поиск с учетом морфологии языка или поиск по geo координатам.


В этой статье я расскажу про основы ES на примере индексации постов блога. Покажу как фильтровать, сортировать и искать документы.

Читать дальше →
Total votes 39: ↑38 and ↓1+37
Comments78

Профилирование и отладка php-приложений с помощью xhprof & FirePHP

Reading time5 min
Views66K

Всем веб-разработчикам, особенно в высоконагруженных проектах, рано или поздно приходится сталкиваться с профилированием своих приложений. Конечно, все мы знаем xdebug, с помощью которого можно проводить отладку серверной части. Однако, в тяжелых RIA-приложениях значительно чаще приходится отлаживаться в связке фронтенда+бэкэнд, всякие ajax-запросы, скорость отработки конкретных скриптов и все такое прочее. И для этих задач есть довольно-таки не плохой набор инструментов. Это xhprof и firephp.
Читать дальше →
Total votes 60: ↑53 and ↓7+46
Comments22

Узнать и полюбить Xdebug

Reading time6 min
Views78K
Вот уже 15 лет прошло со времен первого релиза Xdebug. Прекрасный повод вновь представить эту систему миру и объяснить как и почему она делает то что делает.
image
Xdebug — это расширение для PHP (должно быть скомпилировано и установлено в процессе установки PHP) которое представляет разработчику следующий функционал для отладки:
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments20

Как кудрявый пухляш сломал крипту: самая полная история краха биржи FTX

Reading time12 min
Views82K

На крипторынках фонтаном льется кровь, инвесторы глотают валидол – и всему виной один пухлощекий пацан, который в 30 лет стал практически самым богатым и могущественным криптаном в мире. Объясняю, каким образом состояние Сэма Бэнкмана-Фрида почти полностью испарилось за пару дней (вместе c $200 млрд криптанского капитала), и что всё это значит.

Читать далее
Total votes 157: ↑138 and ↓19+149
Comments62

Профилирование PHP-кода

Reading time3 min
Views35K
Профилирование PHP-кода

Рано или поздно каждый из нас сталкивается с унаследованным кодом и его оптимизацией. Дебаггер и профилировшик в такой ситуации — лучшие помощники программиста. У тех кто работает с PHP, благодаря Дерику Ретансу (Derick Rethans) есть хороший инструмент — xDebug. Информации касательно xDebug много даже в рунете, поэтому речь в этой статье пойдет не о нем.

Наткнувшись на упоминание о профилировщике для PHP я сразу подумал об xDebug ( о проприетарных инструментах от Zend я давно уже успел позабыть ), но на этот раз ошибся — речь пойдет об XHProf.
XHProf

Этот профилировшик был разработан специально для Facebook, а исходный код его был открыт в марте 2009 года.
Читать дальше →
Total votes 25: ↑21 and ↓4+17
Comments20

Web-приложение на C/C++ с помощью FastCGI — это просто

Reading time20 min
Views112K
Добрый день.
В этой статье я бы хотел рассказать про протокол FastCGI и способы работы с ним. Не смотря на то, что сам протокол и его реализация появились ещё в 1996 году, подробных руководств по этому протоколу просто нет — разработчики так и не написали справки к собственной библиотеке. Зато года два назад, когда я только начал пользоваться этим протоколом, часто встречались фразы типа «я не совсем понимаю, как пользоваться этой библиотекой». Именно этот недостаток я и хочу исправить — написать подробное руководство по использованию данного протокола в многопоточной программе и рекомендации по выбору различных параметров, которым могли бы воспользоваться все желающие.
Читать дальше →
Total votes 102: ↑97 and ↓5+92
Comments104

Сезон Java всё: итоги и самые полезные статьи

Reading time6 min
Views26K

С 1 июля по 15 августа наш любимый ресурс временно захватили джависты. Развлекались они, а разгребать 46 хардкорных технических текстов нам, читателям Хабра.

Или нет: я (@apoltavcev) попросил участников сезона Java выбрать лучшие статьи. Под катом вас ждут краткие итоги конкурса и посты, которые настоятельно рекомендуются к прочтению.

А если вы пишете не про Java, а на Java — посмотрите вакансии Сбера. Они проспонсировали нашу Java-вечеринку, за что им большое спасибо.

Читать далее
Total votes 38: ↑38 and ↓0+38
Comments0

Getting Started with MongoDB and PHP

Reading time18 min
Views62K
Generation Next
За последний год произошла небольшая революция в мире СУБД, связанная с появлением безсхемных (безструктурных) СУБД таких как Apache CouchDB. В этих базах данных используется другой подход нежели в реляционных БД. Они достаточно быстро становятся популярны среди Web-разрабочиков из-за своей гибкости, простоты и легкой интеграции с современными технологиями такими как JSON.
В данной статье изложен краткий обзор MongoDB, одной из новых поколений безсхемных СУБД, которая получила большое внимание разработчиков.
Let's get started!
Total votes 105: ↑96 and ↓9+87
Comments75

Способы хранения графа в памяти компьютера

Reading time4 min
Views30K

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

Читать далее
Total votes 39: ↑36 and ↓3+42
Comments19

Теория графов. Термины и определения в картинках

Reading time5 min
Views181K

В этой статье мы познакомимся с основными терминами и определениями Теории графов. Каждый термин схематично показан на картинках.

Граф - это топологичекая модель, которая состоит из множества вершин и множества соединяющих их рёбер. При этом значение имеет только сам факт, какая вершина с какой соединена.

Теория графов
Total votes 17: ↑15 and ↓2+16
Comments8

Создание сайта с помощью C++

Reading time7 min
Views52K

Возможно ли это?


Да.

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

Будет не только интересно, но также полезно и очень практично.
Читать дальше →
Total votes 25: ↑16 and ↓9+13
Comments38

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Web Developer
Middle
From 120,000 ₽
Git
OOP
MySQL
PostgreSQL
PHP
Ajax
Laravel
Docker
Linux
Java