Pull to refresh
4
Евгений@Mellornread⁠-⁠only

В настоящее время занимаюсь web-разработкой

Send message

Root хуже Михалкова

Reading time2 min
Reach and readers42K

Рут – это мифическое существо в экосистеме Linux. Он может всё: зайти в любой каталог, удалить любой файл, завершить любой процесс, открыть любой порт. В общем это суперчеловек, чрезвычайно могущественный и очень полезный. Но задумывались ли вы когда-нибудь, какую цену мы платим руту? Не думали же вы, что он работает за просто так.


Вы знаете команду df? Она показывает все подключенные сейчас диски и статистику по ним: сколько место занято, сколько свободно. Например:


$ df -m
Filesystem     1M-blocks   Used Available Use% Mounted on
udev                 224      1       224   1% /dev
tmpfs                 48      1        47   2% /run
/dev/dm-0           9204   7421      1294  86% /

Вы когда-нибудь замечали, что для локальных дисков сумма Used и Available чаще всего меньше общего размера диска? Ненамного, но меньше.

Читать дальше →

Что должен знать «PHP Junior Developer без опыта работы»?

Reading time4 min
Reach and readers138K
<update>

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

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

</update>

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

При написании этой статьи:
  • в той или иной мере был контакт с 20+ работодателями
  • выполнено 12 тестовых заданий
  • пройдено 8 собеседований с техническими специалистами
  • получил моральные травмы средней степени тяжести один начинающий PHP-разработчик

Читать дальше →

Необразованная молодёжь: попытка подытожить и немного личного

Reading time7 min
Reach and readers24K
Итак, по следам трех публикаций от 30.09, 03.10 и 04.10 я решил рискнуть и попытаться подвести итог. Конечно, не хватает комментариев от крупных компаний с их частными школами, программами стажировок и прочего, комментариев администрации ВУЗов (хотя часть я попробую осветить) и некоторых других. Из тех, которые я учитывал (самое сложное было просмотреть эту кучу комментариев) — 1, 2, 3, 4. Поэтому всех авторов призываю прокомментировать, верно ли я передал их позицию: @aleshqqa1337, PavelMSTU, Axelus, MooNDeaR, Varim, ternaus, san-smith.

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

Как работает буфер обмена в Windows

Reading time12 min
Reach and readers52K
Недавно у меня появилась возможность выполнить отладку буфера обмена в Windows, и я решил, что хорошо бы поделиться информацией, которую удалось узнать. Буфер обмена — это тот компонент Windows, который многие из нас используют десятки (сотни?) раз в день, особо не размышляя об этом. Прежде чем взяться за это дело, я даже никогда не задумывался, как всё устроено. Как выяснилось, там столько интересного, что вы даже не можете себе представить. Сначала опишу, как приложения хранят разные типы данных в буфере обмена и как извлекают их оттуда, а затем — как приложения могут «прицепиться» к буферу и отслеживать изменения в нём. В обоих случае вы увидите отладочные записи, которые показывают, как получить доступ к данным из отладчика.

Начнём с обсуждения форматов буфера обмена. Такие форматы используются для описания, какие типы данные можно поместить в буфер. Там есть некоторое количество предопределённых стандартных форматов, которые может использовать приложение, вроде битового массива, текста ANSI, текста в Юникоде и TIFF. Windows также позволяет приложению установить собственный формат. Например, текстовый процессор может зарегистрировать формат, включающий в себя текст, форматирование и картинки. Конечно, это ведёт к определённой проблеме: что произойдёт, если вы скопируете данные из текстового редактора и вставите их в «Блокнот», который не понимает всего этого форматирования и не отображает картинки?
Читать дальше →

Уязвимости в прошивках австралийских животных

Reading time6 min
Reach and readers89K
В Австралии последние 60 тысяч лет живут племена хакеров. Только ломают они не ИТ-системы, а прошивки животных. Начнём с истории бумеранга.


На заливных лугах около Дарвина, Северные территории

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

Проблема с птицами в том, что они имеют очень чёткий алгоритм реакции на угрозы. Вот кусочек псевдокода (естественно, я сейчас невероятно грубо упрощаю):

— Сгенерировать случайное число от 1 до 11.
— Если это 1-10 – смотреть вниз и искать еду до клевка.
— Если это 11 — осмотреться.

Таким образом, когда у вас на болоте сидит стая птиц в 50-60 голов, 5-6 птиц играют роль радара, обозревая небо и окрестности, а остальные в это время едят. Причём насыщаются все одновременно, без выделенных часовых – никакого ролевого распределения, просто отличное распараллеливание процессов.

Переосмысление drag&drop

Reading time7 min
Reach and readers25K

Берем что-то всем давно известное и делаем это удобным и красивым


image
Представляем вашему вниманию react-beautiful-dnd

Функция перетаскивания (drag&drop) — это интуитивный способ перемещения и переупорядочивания элементов. В Atlassian недавно выпустили react-beautiful-dnd, которая делает перетаскивание (drag&drop) внутри списков в вебе красивыми, естественными и доступными.

В абзаце всё должно быть прекрасно

Reading time6 min
Reach and readers17K

Комплютенская полиглотта


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

Читать дальше →

Необразованная молодёжь

Reading time4 min
Reach and readers88K
Все сейчас жалуются на большое количество желающих стать IT-специалистами и очень маленькое количество специалистов. Вот они проблемы от первого лица этих самых желающих.

Так получилось, что после окончания 9 класса, я поступил в колледж по профессии «Прикладная информатика по отраслям». Колледж — филиал хорошего института в северной столице нашей страны. Выбор был осознанный и я с детства интересовался информатикой. После зачисления, радости не было предела. Воображал себя сидя за компьютером в каком-нибудь крутом офисе создавая программу. Но как бывает в жизни, она бьёт, откуда не ждёшь.

image
Читать дальше →

Действительно, а что такое CRM-система?

Reading time10 min
Reach and readers63K
Этот вопрос мы слышим на протяжении 11 лет, от владельцев бизнеса, сотрудников, разработчиков, праздно шатающихся по сайту людей. И вот он нам был вновь задан уже здесь, на Хабре. Мы изменили привычке отвечать на все комментарии и проигнорировали вопрос jt3k, чтобы ответить на него максимально развёрнуто. Оказалось не так-то просто. А вы знаете, что такое CRM?


Читать дальше →

Как быстрее DOM построить: парсинг, async, defer и preload

Reading time8 min
Reach and readers31K

На сегодняшний день, джентльменский набор по ускорению сайта включает в себя всё от минификации и оптимизации файлов до кеширования, CDN, разделения кода и так называемого tree shaking. Но даже если вы не знакомы с этой терминологией, значительного ускорения можно добиться и парой ключевых слов с продуманной структурой кода.

В Firefox скоро появится новый веб стандарт <link rel="preload">, который позволит загружать важные ресурсы быстрее. Его уже можно опробовать в версиях Firefox Nightly и Developer Edition, а пока это прекрасный повод вспомнить основы работы браузера и глубже понять о производительности при работе с DOM.

Хостинг для стартапа: конструктор, облака или свое железо?

Reading time7 min
Reach and readers16K


Какой хостинг выбрать? Этим вопросом рано или поздно задается любой стартап. Ответ в каждом случае придется искать самостоятельно — оценивать плюсы-минусы, прикидывать риски и считать бюджет. Максимально упростить этот процесс и систематизировать виды хостингов и их особенности нам помог выпускник ФРИИ и основатель проекта AdminDivision.ru Егор Андреев, который помогает стартапам Акселератора ФРИИ масштабировать свою IT-инфраструктуру.
Читать дальше →

Я б в программеры пошёл, пусть меня научат

Reading time15 min
Reach and readers74K
Сегодня многие романтизируют ИТ-сферу, стремятся попасть в неё и остаться в облаке славы, денег и всемирной известности. Конечно, всё не так, как кажется: разработка — это сложный интеллектуальный труд, отнимающий кучу времени. Но если вы всё же решились сменить профессию и войти в ряды айтишников, не промахнитесь со способом обучения.

Мы получили очередное сообщение от сотрудника с просьбой дать свободный микрофон. На этот раз речь пойдёт о программировании (и немного администрировании) как о дополнительном профессиональном образовании. Об опыте, проверенном на собственной шкуре и методах получения сакральных айтишных знаний, расскажет наша сотрудница, которая учится каждый год — не иначе, как завещал великий Ленин.


Читать дальше →

Почта России: страшно ли жить после Страшнова?

Reading time9 min
Reach and readers35K
image
Ждун или дрон? Бесконечный выбор в российской Матрице.

Август-2017. Одно из отделений Почты России. Слева закуток Почты Банка, в котором двое сотрудников играются в своих гаджетах. Вокруг них пустота. Прямо — три окошка Почты. Работает только одно. Очередь человек в 20 к нему. Надо стоять — деться некуда. Терминал электронной очереди сломался через пару недель после установки.

Почти каждый посетитель впереди, когда подходит его очередь, напряжённо спрашивает, куда делась его посылка, должна была прийти давным-давно. Кассир извиняется, говорит, что уже несколько месяцев работает одна за десятерых, и даже посылки месячной давности ещё не отсортированы. Или не извиняется, а просто кричит, потому что задолбали с одним и тем же вопросом, который её начальству надо задать. За окошком на полу видны последствия работы “одной за десятерых”: проходы завалены коробками и пакетами.

Это “Почта России”-2017. Страшнов ушёл в июле. Но судя по тому, что проблемы того же Иркутского УФПС (а сценка вначале — как раз из отделения Иркутска) начались весной, Страшнов “ушёл” ещё раньше. Связь, конечно, опосредованная, но тут стоит сказать про большую рыбу, к голове которой пришла прокуратура. И голова в своих беспокойствах про хвост совсем перестала думать, а хвост без головы — шевелиться. Страшно ли жить Почте после Страшнова? Надо разобраться.

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

PHP-Дайджест № 117 – свежие новости, материалы и инструменты (10 – 24 сентября 2017)

Reading time3 min
Reach and readers18K


Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.2.0 RC 2, о будущем HHVM, предложения из PHP Internals, подборка чатов по PHP, видео с конференций и митапов, и многое другое.
Приятного чтения!


Читать дальше →

Иллюзия скорости

Reading time10 min
Reach and readers45K
Много лет я и мои коллеги убеждали разработчиков, что чем быстрее сайт — тем лучше. Статья не о том. Я не собираюсь показывать вам статистику, насколько больше зарабатывают компании, которые оптимизируют сайт для производительности (а это так). Расслабьтесь, возьмите чашечку шоколада — мы вместе совершим путешествие во времени.

Настоящее время и воспринимаемое время



Читать дальше →

Скрытый JS-майнинг криптовалюты на сайте: альтернатива рекламе или новая чума

Reading time4 min
Reach and readers147K

image
Буквально недавно промелькнула новость про Pirate Bay, который начал тестировать криптомайнер на JavaScript как альтернативу традиционной рекламной модели. Теперь же, судя по всему, нас ждет волна интеграции подобных скриптов в каждый мелкий магазинчик по продаже швейных принадлежностей. Только сегодня наткнулся на аналогичный скрипт, встроенный в код сайта zveruga.net — небольшой сети по продаже товаров для животных.

Читать дальше →

Области видимости и замыкания в JavaScript

Reading time7 min
Reach and readers40K
Данная публикация представляет собой перевод материала «JavaScript Scope and Closures» под авторством Zell Liew, размещенного здесь.

Области видимости и замыкания важны в JavaScript, однако они сбивали меня с толку, когда я только начинал их изучать. Ниже приведены объяснения этих терминов, которые помогут вам разобраться в них.


Начнем с областей видимости


Область видимости


Область видимости в JavaScript определяет, какие переменные доступны вам. Существуют два типа областей видимости: глобальная и локальная.


Читать дальше →

Новые проблемы ИИ: случайные ошибки или выход из-под контроля

Reading time9 min
Reach and readers22K

Иллюстрация

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

Мы впечатлены программами AlphaGo и Libratus, успехами роботов Boston Dynamics, но все известные достижения касаются лишь узких сфер и пока далеки от массового распространения. В повседневной жизни люди взаимодействуют с псевдоинтеллектуальными помощниками ( Siri, «Okay, Google», Amazon Alexa), каждый из которых не претендует на лавры действительно «умной» программы.

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

Тезис «чем сложнее система — тем больше в ней лазеек и ошибок» имеет прямое отношение и к проблемам с ИИ.

Как работает JS: управление памятью, четыре вида утечек памяти и борьба с ними

Reading time18 min
Reach and readers100K
[Советуем почитать] Другие 19 частей цикла
Часть 1: Обзор движка, механизмов времени выполнения, стека вызовов
Часть 2: О внутреннем устройстве V8 и оптимизации кода
Часть 3: Управление памятью, четыре вида утечек памяти и борьба с ними
Часть 4: Цикл событий, асинхронность и пять способов улучшения кода с помощью async / await
Часть 5: WebSocket и HTTP/2+SSE. Что выбрать?
Часть 6: Особенности и сфера применения WebAssembly
Часть 7: Веб-воркеры и пять сценариев их использования
Часть 8: Сервис-воркеры
Часть 9: Веб push-уведомления
Часть 10: Отслеживание изменений в DOM с помощью MutationObserver
Часть 11: Движки рендеринга веб-страниц и советы по оптимизации их производительности
Часть 12: Сетевая подсистема браузеров, оптимизация её производительности и безопасности
Часть 12: Сетевая подсистема браузеров, оптимизация её производительности и безопасности
Часть 13: Анимация средствами CSS и JavaScript
Часть 14: Как работает JS: абстрактные синтаксические деревья, парсинг и его оптимизация
Часть 15: Как работает JS: классы и наследование, транспиляция в Babel и TypeScript
Часть 16: Как работает JS: системы хранения данных
Часть 17: Как работает JS: технология Shadow DOM и веб-компоненты
Часть 18: Как работает JS: WebRTC и механизмы P2P-коммуникаций
Часть 19: Как работает JS: пользовательские элементы
В третьем материале из серии, которая посвящена особенностям работы JavaScript, мы поговорим о памяти. Эта тема крайне важна, однако, разработчики нередко игнорируют её. В основе этой ситуации лежат разные причины, среди которых — всё возрастающая сложность современных языков программирования и прогресс в развитии средств автоматического управления памятью. Помимо рассказа о модели памяти JS, мы поделимся с вами несколькими советами, направленными на борьбу с утечками памяти.



По словам автора статьи, в компании SessionStack используют приёмы предотвращения утечек памяти для того, чтобы не допустить неоправданно высокого потребления памяти в веб-приложениях, в которые интегрированы их разработки.
Читать дальше →

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Date of birth
Registered
Activity