Как стать автором
Обновить
1
0

Веб-программист

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

RSA простыми словами и в картинках

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

Ассиметричный алгоритм криптографии RSA, что же это за алгоритм такой и как он работает? В этой статье мы разложим по полочкам, что такое RSA и ассиметричная криптография в целом, простыми словами и с картинками.

На обложке то как DALL-E представляет себе ассиметричную криптографию.

Читать далее
Всего голосов 15: ↑13 и ↓2+11
Комментарии16

Никогда не отвлекай программиста

Время на прочтение2 мин
Количество просмотров240K
Во многих компаниях программистам запрещают работать в наушниках или отвлекают их по мелким вопросам. Вероятно, причина кроется в плохой информированности менеджеров и других сотрудников, насколько вредно так делать.

Крис Парнин (Chris Parnin) из технологического института Джорджии решил восполнить этот недостаток и опубликовал чрезвычайно насыщенную статью со ссылками на различные исследования по этой теме.

Для начала, несколько фактов, которые относятся ко всем работникам интеллектуального труда. Задача, прерванная по ходу выполнения, занимает в два раза больше времени и содержит вдвое больше ошибок, чем та же задача, которая выполнялась без прерывания (Czerwinski:04). Офисные сотрудники вынуждены отвлекаться при выполнении 57% задач (Mark:05). Опросы говорят о том, что сотруднику требуется в среднем 15 минут, чтобы вернуться в нормальный ритм после того, как его отвлекли (vanSolingen:98).
Читать дальше →
Всего голосов 263: ↑248 и ↓15+233
Комментарии180

Наши 5 лет с инфраструктурой «ВсеИнструменты.ру»: от нескольких ВМ до отказоустойчивого решения в трёх дата-центрах

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

Cтатья посвящена проекту «ВсеИнструменты.ру» — крупнейшему интернет-магазину DIY-товаров и нашему клиенту по совместительству. Расскажем, с чего начинали сотрудничество более пяти лет назад, как сейчас обстоят дела и куда мы вместе идём. Поговорим о сопровождавших этот путь технических вызовах и особенностях решений в инфраструктуре, которые позволили бизнесу добиться впечатляющего роста.

«ВсеИнструменты.ру» — изначально онлайн-ритейлер товаров для дома и дачи, строительства и ремонта. С 2006 года активно развивает сеть фирменных торговых точек, а в настоящее время насчитывает более 600 собственных магазинов в 264 городах России и маркетплейс. Численность сотрудников превышает 7000 человек. 93% продаж приходится на онлайн, а это порядка 1000 RPS и ~1 млн уникальных посетителей в день.

Читать далее
Всего голосов 75: ↑73 и ↓2+71
Комментарии20

Как живется в США «айтишнику». Три года спустя

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

Вместо того, чтобы затеряться в тысяче комментариев под статьей автора, о не самой сладкой жизни в США, я решил описать свой опыт по тем же предложенным темам. Благо недавно я вышел на финишную прямую по легализации и есть некоторая уверенность в том, что в Россию я не вернусь. Давайте опишем все в той же стилистике моих личных впечатлений, спустя 3,5 года жизни в Техасе. 

Поехали!
Всего голосов 329: ↑292 и ↓37+255
Комментарии1187

Выходя за рамки ООП. Разработка расширений для PHP на PHP

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

Какие есть границы в PHP? Синтаксические они или это рантайм, или же просто ограничения языка, которые нельзя обойти. Почему они существуют? Давайте посмотрим как преодолеть границы живого языка и как взломать его изнутри. Это же всегда интересно?

В этом нам поможет Александр Лисаченко. Он автор аспектно-ориентированного фреймворка Go! AOP и вообще гуру в Enterprise архитектуре.

Читать далее
Всего голосов 25: ↑25 и ↓0+25
Комментарии10

Как открыть счет и карту в банках Армении россиянину в 2024 году?

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

Как открыть счет в банках Армении россиянину в 2022 году? | Сравниваем Банки

Доброго вечера! Не хочу сильно останавливаться на том, почему в 2022 году открывать счет в зарубежном банке стало актуальным, скажу лишь, что Армения привлекает дружественностью одновременно с РФ и Европой, возможностью разговаривать практически с любым сотрудником банка и гос. учреждения по-русски, ну и, конечно же, количеством вариантов открыть счет в рублях, чего не предложит, например Грузия. Покатался по ряду стран СНГ, кое-что открыл, кое-что получил. Сегодня про банки и про Армению.

Поток релоцирующихся в Армению очень и очень высок. Помимо IT, фриланса, которым нужно как-то получать зарплату в валюте от зарубежных контрагентов, а также делать "proof of residence" для платежных систем, банков, площадок для работы, к потоку добавилась огромная толпа карточных туристов и людей, которые бегут уводить рубль для последующей конвертации в инвалюту в Армянские банки с последующим транзитом в третьи страны. Банки, с одной стороны, рады потоку потенциальных клиентов, с другой стороны, в этом потоке куча серого материала, сложного в обработке. В результате, банки Армении с марта месяца, стали выставлять более чем суровые требования для открытия счета и выставлять лимиты на перевод денежных средств в третьи страны. Люди, которые переехали в Армению по-настоящему, по-серьeзному с этими требованиями кое-как справляются, карточным туристам же становится все сложнее и сложнее.

Сравниваем банки от самого простого до самого сложного. Заранее, на вопрос, можно ли открыть счет в банке Армении удаленно или под ключ, по доверенности — ответ— нельзя! В Грузии можно, в Казахстане — еще можно, в Армении — невозможно. По доверенности счета не открывают ни физ. ни юр. лицам. Говорят, что дистанционно можно открыть счет в IDBank, но это не так. Есть всего лишь опция дистанционной подачи на предварительную заявку.

Читать далее
Всего голосов 26: ↑26 и ↓0+26
Комментарии27

Привносим монады в PHP

Время на прочтение4 мин
Количество просмотров25K
http://hermetic.com/jones/in-operibus-sigillo-dei-aemeth/the-circumference-and-the-hieroglyphic-monad.html


Совсем недавно я игрался с некоторыми функциональными языками и их концепцией, и заметил, что некоторые идеи функционального программирования могут быть применимы и к объектному коду, который я писал ранее. Одной из таких идей, о которых стоит поговорить — это Монады. Это что-то такое, о чем пытается написать туториал каждый кодер на функциональном языке, так как это крутая, но трудно понимаемая штука. Этот пост не будет туториалом по Монадам (для этого есть вот этот замечательный перевод от AveNat) — скорее пост о том, как использовать их с пользой в PHP.

Что такое Монады?


Если пост выше не удалось дочитать до конца (а зря!), то Монаду можно представить неким контейнером состояния, где разные Монады делают разные вещи относительно этого состояния. Но лучше таки прочитать. Также будем считать, что мы уже немного поигрались с библиотекой MonadPHP из GitHub, так как в примерах использоваться будет именно она.

Читать дальше →
Всего голосов 52: ↑43 и ↓9+34
Комментарии25

Функторы, аппликативные функторы и монады в картинках

Время на прочтение5 мин
Количество просмотров190K
Вот некое простое значение:


И мы знаем, как к нему можно применить функцию:


Элементарно. Так что теперь усложним задание — пусть наше значение имеет контекст. Пока что вы можете думать о контексте просто как о ящике, куда можно положить значение:


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


data Maybe a = Nothing | Just a

Позже мы увидим разницу в поведении функции для Just a против Nothing. Но сначала поговорим о функторах!
Читать дальше →
Всего голосов 184: ↑175 и ↓9+166
Комментарии60

Разбираемся что MySQL пишет на диск и зачем [часть 1]

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

Разработчики предъявляют высокие требования к базам данных: максимальная надежность (ничего из того, что было записано не должно быть утеряно ни при каких обстоятельствах), и, одновременно, максимальная производительность при различных видах нагрузки (Запись/Чтение или OLTP/OLAP). Достичь этих требований может быть не просто. Давайте попробуем разобраться, как это делает MySQL.

Размышляя о базе данных, легко представить таблицу базы данных как HashMap/BinaryTree, отображающие первичный ключ (primary key) в структурированные записи с данными. Такое хранилище может работать in memory. Но, как только мы захотим записать данные на диск, придется использовать какие-то алгоритмы во внешней памяти. Просто положить наш HashMap на диск не получится, потому что память и диски слишком разные: чтение/запись диска производится блоками, latency диска больше чем у RAM, а еще нельзя будет воспользоваться обычными указателями и аллокаторами памяти - все это придется заменить самостоятельно.

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии7

Имитация трёхмерных зданий в 2D-игре

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров15K

Создаём объём при помощи света и теней.

Игра двухмерная, разрабатывается на Game Maker Studio 2 и во время работы я столкнулся с множеством задач а-ля «должно быть красиво». Где-то пришлось придумать свой велосипед, где-то повезло наткнуться на описание решения похожих задач.

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

Внутри есть гифки и картинки!
Всего голосов 67: ↑67 и ↓0+67
Комментарии16

Голос атомных ядер: собираем магнитно-резонансный магнитометр

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

Пора уже поближе познакомиться с квантовой физикой на практике! Сегодня я расскажу вам об истории открытия эффекта ядерного магнитного резонанса, но в отличие от классических учебников полных зубодробительного матана мы обратим наш разрушительный для когеренции взгляд на экспериментальную составляющую. С полученными знаниями вы сможете в духе старого доброго DIY собрать несложный прибор, который позволит вживую послушать сигналы ядер атомов водорода а также измерить величину магнитного поля нашей планеты.
Поехали!
Всего голосов 150: ↑150 и ↓0+150
Комментарии68

Как разрезать полметра стали, в домашних условиях, почти бесшумно — используя электричество?

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

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

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

Читать дальше →
Всего голосов 131: ↑129 и ↓2+127
Комментарии59

Entity vs Value Object: полный список отличий

Время на прочтение6 мин
Количество просмотров58K
Тема отличий таких понятий как Entity (Сущность) и Value Object (Объект-Значение) из Domain-Driven Design не нова. Тем не менее, я не смог найти статью с полным списком их отличий, так что решил написать свою.
Читать дальше →
Всего голосов 25: ↑15 и ↓10+5
Комментарии20

Ethercat для начинающих

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

Некоторое время назад у нас появился объект, где в техническом задании стояло требование: «Протокол Ethercat». В процессе поиска информации я полез на хабр и с удивлением обнаружил, что там разбора этого протокола нет. Да и вообще информация о нем довольно фрагментирована (забегая вперед — я просто не там искал). Проект мы сделали, а эта статья — для «более молодого меня», попытка сэкономить время кому-нибудь еще, кто собирается использовать или просто интересуется этим протоколом.


Единственный нюанс — я опишу довольно низкий уровень работы протокола (Data Layer в терминологии EtherCAT). Потому что именно он нам понадобился и им мы ограничились. Неописанными (пока?) останутся Application Layer протоколы типа CanOPEN-over-EtherCAT (CoE).


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

Прокачиваем VoIP GSM шлюз Yeastar TG100 до мини-АТС

Время на прочтение10 мин
Количество просмотров27K
Подавляющее большинство готовых IP-АТС рассчитаны на компании численностью сотрудников от десяти и более человек. На деле же, в России полно фирм с двумя-пятью сотрудниками и им тоже как-то необходимо организовывать телефонную связь. Функционал готовых IP-АТС для них избыточен, а стоимость – слишком высока. Можно собрать свою собственную телефонную станцию при помощи обычного компьютера и Asterisk. Можно подключиться к VoIP-оператору связи и воспользоваться услугой «облачная АТС». А можно пойти по другому пути – взять недорогое устройство с уже предустановленным Asterisk, такое, как Yeastar TG100, и немного прокачать его функционал. Тем, кто не ищет легких путей – добро пожаловать под кат.


Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии2

git-ssb — децентрализованный хостинг git-репозиториев

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

SSB (Secure Scuttlebutt) - это децентрализованная социальная сеть и протокол, на основе которого она работает. git-ssb заворачивает обычные git-репозитории в этот протокол. SSB хочет заменить собой Facebook, а git-ssb - GitHub. Под катом - краткое руководство по git-ssb. Актуально для тех, кому дискомфортна сама идея использования централизованных сервисов в качестве посредника. Своеобразная красная таблетка с полагающимися в этом случае неожиданными последствиями.

Wake up, Neo …
Всего голосов 32: ↑31 и ↓1+30
Комментарии9

Арбитраж криптовалют, реальный опыт

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

Со стартом биткойновой лихорадки в интернете появилось безчисленное множество интересных проектов, начиная от ICO, облачного майнинга и заканчивая влогами и курсами по трейдингу, майнингу и т.п. Я же обратил внимание на крипто арбитраж, о чем мы сейчас и поговорим.

Читать далее
Всего голосов 19: ↑15 и ↓4+11
Комментарии42

Домашний сервер, или приключение длиной в 6 лет. Часть первая

Время на прочтение7 мин
Количество просмотров75K
Здравствуй, Хабр, давно не виделись.

Сегодня я хотел бы рассказать про свой домашний сервер: какие ошибки допустил, на какой конфигурации сейчас остановился, да и вообще — зачем я это делал.


Читать дальше →
Всего голосов 53: ↑49 и ↓4+45
Комментарии149

Строим эффективный сетевой обмен в PHP-микросервисах

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

Микросервисы сейчас — это новый черный. Все больше и больше компаний переходят именно на микросервисную архитектуру. И при переходе ловят самые разные ошибки. Самая популярная происходит из-за того, что люди просто не готовы к тому, что их приложения начинают активно использовать сеть. Потому что IPC и RPC-запросы  — это абсолютно разные вещи.

Я техлид в команде Авито в проекте SLA. Сегодня расскажу, как мы оптимизировали сетевые вызовы, чтобы избежать проблем с сетью при переходе в микросервисный мир. Разговор будет про оптимизацию CURL-запросов, деградацию сервисов и FAIL-FAST-подходы.

Читать далее
Всего голосов 43: ↑42 и ↓1+41
Комментарии38

Как быстро и легко интегрироваться с Active Directory

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

Active Directory использует большинство наших заказчиков, так что необходимость интегрироваться с ней появляется практически в каждом проекте. Чтобы командам не приходилось каждый раз решать эту задачу заново, разработчики True Engineering создали сервис, который мы теперь можем в готовом виде встраивать в другие продукты. Делимся опытом.

У любого продукта есть пользователи, и их информацией надо как-то управлять - создавать учётные записи, сохранять пароли, добавлять пользователей в группы и т.д. Пользовательские данные хранятся в Active Directory, так что разработчикам новых продуктов нужно выстроить связи с этой службой, прописать все необходимые процессы, позаботиться о безопасности.

Эту часть работы мы сейчас и автоматизировали в рамках отдельного микросервиса AReS – от Account Registration Service. Он умеет заводить в AD новых пользователей, отправлять им письма с регистрационной информацией, напоминать о необходимости придумать пароль. Это законченный компонент, и его можно копировать практически в любой продукт.

Архитектура процесса

Когда пользователь регистрируется в системе, его данные поступают в RabbitMQ, откуда их подхватывает AReS. В пакете вся информация, которая нужна для создания учётной записи:

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии3
1
23 ...

Информация

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