Pull to refresh
0
0
Юрий Герасименко @Hide

web-программист, в основном PHP, JS

Send message

Отдаем файлы эффективно с помощью PHP

Reading time3 min
Views281K
Если Вам потребовалось отдавать файлы не напрямую веб сервером, а с помощью PHP (например для сбора статистики скачиваний), прошу под кат.
Три способа отправить пользователю файл и не повесить сервер
Total votes 132: ↑108 and ↓24+84
Comments59

Основа любого программирования на… пазлах

Reading time8 min
Views11K
Приветствую, Хабровчане!

В этой статье я хочу рассказать о своем опыте работы преподавателем программирования на C++ в колледже при техническом университете. Это был уникальный опыт в жизни, который многому меня научил. Когда речь заходит об интересных фактах из личного прошлого — этот отрывок из жизни приходит на ум одним из первых.
Поехали.
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments16

Microsoft Bot Framework + IBM Watson =… би-лингвистический бот

Reading time8 min
Views4.9K
Продолжая начатую тему хочется поделиться успешным опытом создания билингвистического Node.JS бота на Microsoft Bot Framework под Linux. От заказчика поступила задача разработать простой социальный бот в формате вопрос-ответ для большой торговой сети, однако сложность заключалась в другом — бот должен быть двуязычным: на английском и арабском. Хотя, как будет показано ниже, выбор инструментов для решения задачи сделал разработку лёгкой, приятной и интересной.
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments3

Погружение в ценообразование Magento 2, убираем копейки после скидок

Reading time8 min
Views7K

Ценообразование — пожалуй, достоинство в Magento и самая интересная часть системы.
А для владельца магазина — самая важная часть, так как связано с деньгами.
Ранее коллеги рисовали диаграммы, которые еле помещались на Китайской Стене, пытаясь уместить все-все-все этапы расчета. В этой статье попробую изложить только основные этапы расчета, и пример округления скидок в пользу магазина. К счастью, по сравнению с Magento 1, новшества коснулись самых глубин, подход остался неизменным.

Верхушка айсберга


image

Когда клиент меняет содержимое корзины начинается расчет. Скорость расчета зависит от множества действий «на глубине». Начнем погружение с видных мест. попутно увидим события и зависимости типов товаров, методов доставки, ценовых правил корзины и каталога.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments9

Что может чат-бот

Reading time6 min
Views156K
Сначала мы выделили основные офисные процессы. Про чат-бота мы даже не говорили. Вот, например, заказ командировок. Сейчас я должна написать сотруднику службы деловых поездок в почту: «Я собираюсь в командировку в Сургут 5-го числа на три дня», а он: «Такой-то самолет и такая-то гостиница — всё подходит?», а я: «Да, давай». Дальше он пойдет согласовывать с руководством, забронирует сам билеты, спустя какое-то пришлёт мне подтверждение, что все Ок. Всё то же самое может делать бот.

Или если нужна справка для визы, то бот постучит в шину, шина постучит в кадровую подсистему и заберёт PDF, дальше отправит его на принтер отдела кадров и напишет письмо, что туда нужна печать. Затем уведомит меня, что можно подойти через пару часов. Если нужно оформить пропуск на гостя или забронировать переговорку для встречи, то достаточно поручить боту эту задачу, и он её выполнит.



Теперь давайте покажу пример чуть посложнее.

Читать дальше →
Total votes 113: ↑107 and ↓6+101
Comments102

Microsoft Bot Framework на Linux под Node.JS

Reading time2 min
Views5K
Чтобы создать и запустить наш первый чат бот с использованием Microsoft’s Bot Framework Microsoft’s Bot Framework под Linux нам нужно установить следующие компоненты:

  • Node JS
  • Bot Framework Emulator
  • Visual Studio Code (не обязательный параметр)

После создания простейшего бота мы разберём как можно запускать и отлаживать его.
Читать дальше →
Total votes 14: ↑9 and ↓5+4
Comments0

VPN за 60 секунд

Reading time2 min
Views66K
Если Вы предпочитаете простые и красивые решения, или Вам нравится всё, что попадает под категорию It Just Works, то эта статья для Вас. Для запуска шифрованного подключения достаточно иметь на своем компьютере SSH-клиент, установить sshuttle (об этом чуть позже) и приобрести VPS с любым тарифным планом в интересующей Вас стране. На удалённой VPS-машине в большинстве случаев абсолютно ничего настраивать не нужно (достаточно, чтобы были установлены пакеты python и сервер SSH).


Читать дальше →
Total votes 40: ↑37 and ↓3+34
Comments37

Фреймворк для работы с Telegraph API

Reading time2 min
Views23K

image


20 декабря 2016 года Telegram открыл API к Telegraph. Для работы с ним я написал простую и функциональную библиотеку под JavaScript.


Пару слов о Telegraph


Telegraph — это сервис заметок и рассказов выполненный в минималистическом стиле, разработанный командой Telegram. Так же поддержка Instant View при просмотре из Telegram'а.


Более подробно про Telegraph


Читать дальше →
Total votes 32: ↑27 and ↓5+22
Comments15

Как правильно настроить Wi-Fi

Reading time11 min
Views446K


Введение


Думаю, не ошибусь сильно, если у большинства из нас подключение к интернету выглядит следующим образом: есть некоторый довольно скоростной проводной канал до квартиры (сейчас уже и гигабит не редкость), а в квартире его встречает роутер, который раздаёт этот интернет клиентам, выдавая им «чёрный» ip и осуществляя трансляцию адресов.

Довольно часто наблюдается странная ситуация: при скоростном проводе, с роутера раздаётся совсем узенький wifi-канал, не загружающий и половины провода. При этом, хотя формально Wi-Fi, особенно в его ac-версии поддерживает какие-то огромные скорости, при проверке оказывается, что либо Wi-Fi подключается на меньшей скорости, либо подключается, но не выдаёт скорости на практике, либо теряет пакеты, либо всё вместе.

В какой-то момент и я столкнулся с похожей проблемой, и решил настроить свой Wi-Fi по-человечески. На удивление, это заняло примерно в 40 раз дольше, чем я ожидал. Вдобавок, как-то так случилось, что все инструкции по настройке Wi-Fi, которые я находил, сходились к одному из двух видов: в первом предлагали поставить роутер повыше и выпрямить антенну, для чтения второго же мне не хватало честного понимания алгоритмов пространственного мультиплексирования.

Собственно, эта заметка — это попытка заполнить пробел в инструкциях. Я сразу скажу, что задача до конца не решена, несмотря на приличный прогресс, стабильность подключения всё ещё могла бы быть лучше, поэтому я был бы рад услышать комментарии коллег по описанной тематике.
Читать дальше →
Total votes 58: ↑56 and ↓2+54
Comments111

Настройка окружения для PHP разработчиков

Reading time9 min
Views45K
В данной статье мы рассмотрим настройку окружения для PHP разработчиков с использованием Vagrant, Docker, Xdebug, PHPUnit, и интеграцию с IDE PHPStorm.

+

Требования


  • Окружение должно развертываться на Windows, MacOS, Linux
  • Установка должна быть максимально простой
  • Быстрая работа с файловой системой
  • Интеграция с IDE PHPStorm
  • Несколько версии PHP интерпретаторов (5.6, 7.0)

Читать дальше →
Total votes 38: ↑33 and ↓5+28
Comments62

Механические клавиатуры

Reading time17 min
Views761K
Все мы давно ждем массового появления всевозможных кибер-перчаток и виртуальной реальности на каждом шагу, но все равно каждый день в офисе и дома нам приходится работать за такой банальной вещью, как обычная клавиатура.

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

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

Механические клавиатуры. Путеводитель.

Читать дальше →
Total votes 323: ↑313 and ↓10+303
Comments331

Простой Dependency Injection в Node.js

Reading time2 min
Views17K

Прочитав несколько статей на тему DI мне захотелось использовать его в Node.js; после недолгих поисков оказалось, что модулей для этого не так много, из них самый интересный — di.js от Angular, но он мне не подошел и я решил написать свой.

Читать дальше →
Total votes 13: ↑8 and ↓5+3
Comments34

Внедрение code style в разработку

Reading time3 min
Views13K
Добрый день, %username%

Хочу поделиться своим успешным опытом внедрения автоматической проверки стилей кода в проект и рассказать на какие грабли наступали. Опубликовать opensource сообществу инструменты, которые были созданы для решения задачи

Немного о нашем проекте: PHP сайт, лежит в git репозитории объемом 2Gb, состоит из 20k php файлов, возраст проекта- 10 лет, в данный момент у нас 15 разработчиков. Для code review используем atlassian stash. Всю разработку ведем в рамках отдельных веток, которые после прохождения code review вливаем в master и деплоим на прод
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments31

Как перезагрузить сервер?

Reading time6 min
Views131K
Abstract: описание видов ребута, рассказ про sysrq, ipt_SYSRQ, ipmi, psu.

Как перезагрузить сервер? — Это вопрос, который обычно задают ну очень начинающим пользователям, которые путаются между halt, shutdown -r, reboot, init 6 и т.д.

Опытный администратор уточнит вопрос: «а что с сервером не так?» Разные виды отказов серверов требуют разных видов ребута — и неверно выбранный вариант приведёт к тяжелейшим последствиям, из которых визит в веб-морду IPMI/DRAC/iLO с целью «доперезагрузить» будет самым лёгким. Самым тяжёлым в моей личной практике была командировка эникейщика в соседний город. С целью «нажать ребут» на одиноко стоящем сервере.

В этой статье: что мешает серверу перезагрузиться и как ему помочь.

Начнём с теории ребута.

При выключении или перезагрузке сервера менеджер инициализации (в большинстве современных дистрибутивов — systemd, в эксцентричной Ubuntu 14.04 до сих пор upstart, в архаичном хламе — sysv-init) в определённом порядке посылает всем демонам команду «выключись». И большинство демонов (например, СУБД, вроде mysql) знают, как выключаться правильно. Например, закончить все транзакции, сохранить все несохранённые данные на диск и т.д. Для in-memory СУБД, наподобие redis, это и вовсе может быть критичным: не сохранил — потерял.

Старые системы иницализации ждали неограниченно долго каждый из инит-скриптов. Например, если «шутник» добавил вам в «stop» веточку «sleep 3600», то ваш сервер будет перезагружаться час с хвостиком. А если там цифра поболе, или просто программа, которая не хочет завершаться, то и ребут никогда не закончится.
Читать дальше →
Total votes 93: ↑86 and ↓7+79
Comments82

Когда ВВС США осознали изъян со средними числами

Reading time9 min
Views130K
Отрывок из книги "The End of Average" Тодда Роуза


В начале 1950-х американцы измерили тела более 4000 пилотов по 140 характеристикам, чтобы спроектировать идеальную кабину для среднего пилота

В конце 1940-х у американских военно-воздушных сил была серьёзная проблема: пилоты теряли контроль над самолётами. Тогда наступала эпоха реактивных двигателей, так что самолёты стали более быстрыми и сложными в управлении. Но катастрофы случались так часто и на таком количестве разнообразных самолётов, что ВВС США столкнулись с реальной проблемой спасения жизней. В худшее время разбивалось до 17 пилотов за день.
Читать дальше →
Total votes 107: ↑101 and ↓6+95
Comments192

Хеди Ламарр. И в кино обнаженной сняться, и во врага торпедой пульнуть

Reading time5 min
Views59K

Хеди Ламарр (Hedy Lamarr) — популярная в 1930—1940-е годы австрийская, а затем американская актриса кино, а также изобретательница.

В 16 лет ушла из дома. Поступила в театральную школу, начала сниматься в кино.

В 23 года, после четырех лет неудачного брака, подсыпав снотворное горничной, сбегает. На пароходе «Нормандия» она отправляется из Лондона в Нью-Йорк.

Electronic Frontier Foundation присудили Ламарр в 1997 году награду (за изобретение почти 60-ти летней давности), а 49% прав на патент выкупила компания WiLan, в 2014 включили в Зал славы изобретателей.

9 ноября, день рождения Хеди Ламарр, в немецкоязычных странах отмечается как День изобретателя.

А вот история из жизни. Госэкзамен на военной кафедре ДВФУ, 2005 год.

Капитан первого ранга:
— Рядовой MagisterLudi, вам последний вопрос. Ответите, значит сдали экзамен, но учтите, этой темы нет в вашем учебном плане. Как обеспечить связь между кораблем и базой, чтобы противник не смог заглушить частоту, на которой вы передаете сообщение?
— Псевдослучайная перестройка частоты.
— Сдал.

Капитан третьего ранга молча сделал фейспалм в углу аудитории, потому что последние полгода он заставлял меня и еще троих ребят прочесывать интернет на тему его кандидатской по ПСПЧ. Председатель комиссии, капитан первого ранга, естественно, этого не знал.
Total votes 63: ↑51 and ↓12+39
Comments22

Что делать, если программировать становится скучно

Reading time10 min
Views51K
imageСлучалось ли c вами, долго работая в одной компании над одним и тем же проектом, начинаешь задумываться о смене обстановки, используемых технологий и самого проекта. Раньше я был уверен, что из этой ситуации один выход — найти новую работу. Эта статья, перевод которой мы публикуем, поменяла мое мнение. В ней описывается подход, благодаря которому можно сделать работу программиста нескучной и помогающей ему расти и развиваться. Мы, сервис для организации приема платежей PayOnline, предлагаем вам ознакомиться с этой методикой и поделиться ею со своим работодателем, в случае, если вы испытываете подобные, описанные автором проблемы. Ниже идет, непосредственно, перевод.

В мою бытность разработчиком я никогда не задерживался на одной и той же работе более двух лет. В моем случае каждая новая работа была для меня хорошим ходом с точки зрения карьерного роста. И даже несмотря на то, что высокая “текучка” — обычное дело в нашей профессиональной сфере, я не могу сказать, что мои предыдущие работодатели спокойно относились к моему уходу. Некоторые из них упорно пытались сделать так чтобы я остался, но работа становилась для меня настолько скучной, что оставаться я уже не мог. Сразу поясню: мне посчастливилось жить в таких местах, где работы для программистов было больше чем самих программистов. Я понимаю, что вариант со сменой работы доступен не всем.
Читать дальше →
Total votes 57: ↑45 and ↓12+33
Comments56

Асинхронное выполнение PHP скрипта на подпроцессах

Reading time5 min
Views24K


Добрый день, уважаемые хабровчане.

Сегодня я хотел бы поговорить о таких нетривиальных вещах, как асинхронные (параллельные) расчеты в языке PHP.
Сам по себе PHP — это скриптовый язык, который никогда и не претендовал на многопоточность. Но чем дальше в лес, тем более серьезные задачи стоят перед разработчиками, и тем больше приходится «извращаться» с пыхом, потому что мигрировать на более приспособленный под эти задачи язык программирования многие компании попросту боятся и не хотят. Следовательно, приходится работать с тем, что дают.
Подробности под катом…
Читать дальше →
Total votes 26: ↑16 and ↓10+6
Comments24

Как 40 тем грамматики и 2000 слов сделали индустрию в несколько сотен миллиардов долларов (часть 2). Бизнес-модели

Reading time7 min
Views10K

Бизнес-модели в иностранных языках



Учитывая, что в иностранных языках есть 2 психотипа клиентов, как я писала в предыдущей статье, то и бизнес-подход к каждой из них в корне отличается.

Бизнес-модель №1 — Монетизация за счет геймификации процесса обучения широких масс населения.
Бизнес-модель №2 — Монетизация за счет персональной работы с отдельным клиентом.
Бизнес-модель №3 — Монетизация за счет гарантированного достижения результатов клиентом.

Все модели жизнеспособны и финансово выгодны.
Читать дальше →
Total votes 9: ↑7 and ↓2+5
Comments12

Как 40 тем грамматики и 2000 слов сделали индустрию в несколько сотен миллиардов долларов (часть 1 из 2)

Reading time6 min
Views27K


54750 писем за 5 лет. С разными вариациями одного и того же вопроса: «Как выучить иностранный язык».

Меня зовут Елена Шипилова и моя компания занимается преподаванием иностранных языков онлайн с 2010 года. В среднем на протяжении этих 5 лет в день через меня проходило около 20-30 писем с однотипными вопросами по изучению иностранных языков, с проблемами, которые мешают заговорить на иностранном языке и задачами, которые заставляют обычных людей браться за иностранные языки. Примерное количество писем за эти 5 лет составляет 54750.

Эта цифра — лучшее маркетинговое исследование в иностранных языках, которое только можно себе представить, поэтому писать о своих выводах я буду не на базе своей фантазии или заказных маркетинговых исследований (все мы знаем, как они проводятся), а на более чем реальной статистике.
Читать дальше →
Total votes 34: ↑30 and ↓4+26
Comments46
1
23 ...

Information

Rating
Does not participate
Location
Кустанай, Кустанайская обл., Казахстан
Date of birth
Registered
Activity

Specialization

Backend Developer, Fullstack Developer
Senior
From 4,000 €
Software development
OOP
PHP
JavaScript
SQL
Vue.js
JQuery
Git
Linux
CSS