Как стать автором
Обновить
86
0.9

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

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

Восстановление смазанных и расфокусированных изображений с помощью фильтра Винера. Реализация на C++ OpenCV

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

В продолжении статьи про восстановление расфокусированных и смазанных изображений хочу поделиться своими результатами восстановления реальных изображений с помощью фильтра Винера. В качестве библиотеки обработки изображений использовалась OpenCV 3.4. Фотокамера – Nikon D320, объектив Nikon DX AF-S NIKKOR 18-105mm, расфокусировка осуществлялась вручную, съёмка осуществлялась без штатива.

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

Метапрограммирование в JavaScript

Время на прочтение17 мин
Количество просмотров23K
Метапрограммирование — вид программирования, связанный с созданием программ, которые порождают другие программы как результат своей работы, либо программ, которые меняют себя во время выполнения. (Википедия)

Говоря более простым языком, метапрограммированием в рамках JavaScript можно считать механизмы, позволяющие анализировать и менять программу в режиме реального времени в зависимости от каких-либо действий. И, скорее всего, вы так или иначе используете их при написании скриптов каждый день.

Всего голосов 41: ↑38 и ↓3+35
Комментарии16

15 малоизвестных свойств и методов объектов DOM

Время на прочтение9 мин
Количество просмотров30K
При разработке современных веб-сайтов интенсивно используются возможности JavaScript по работе с DOM. Скрипты позволяют отображать и скрывать элементы, из которых строятся страницы, настраивать свойства этих элементов. У объектов DOM, с которыми взаимодействуют из программ, имеются свойства и методы. О некоторых из них, по мнению автора материала, перевод которого мы сегодня публикуем, знают практически все веб-программисты. А вот некоторые, о которых он и хочет здесь рассказать, пользуются куда меньшей известностью.


Читать дальше →
Всего голосов 62: ↑59 и ↓3+56
Комментарии23

Спустя 6 лет вышла новая версия легендарного аварийного дистрибутива Hiren's BootCD

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


Сегодня праздник у железячников, ремонтников, сисадминов и эникейщиков!
После долгого забвения был возобновлен выпуск легендарного загрузочного диска Hiren's BootCD.

Hiren's BootCD (также известный как HBCD) представляет собой загрузочный образ с программным обеспечением для записи на CD\DVD\USB-flash, содержащий ряд диагностических утилит, таких как тесты производительности системы, программы для форматирования и разметки, средства клонирования и создания образов диска, инструменты для восстановления данных, инструменты для работы с MBR, инструменты прошивки и модификации BIOS и других средств для исправления различных компьютерных проблем.

На этот раз дистрибутив базируется на 64-разрядной Windows PE 10.0 и содержит только легальные для свободного распространения программы, при условии, что вы будете использовать HBCD исключительно в целях диагностики и устранения компьютерных неисправностей, а не в качестве основного ПО для компьютера.

Выпуском новых официальных версий занимается группа особо преданных фанатов дистрибутива, которым был передан доступ к официальному сайту (старая версия сайта до анонса новых версий), в то время как оригинальный автор давно отошел от дел.
Читать дальше →
Всего голосов 72: ↑70 и ↓2+68
Комментарии71

Сам себе VDS-провайдер

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


Если хотите пользоваться преимуществами VDS и при этом защититься от бессовестного оверсела, когда провайдер забивает ноду под завязку и не балансирует нагрузку — есть два пути.

Можно найти своего надёжного VDS-хостера. Или убить всех ситхов самому и сделать собственную звезду смерти (ноду) — заказать выделенный сервер и перенести туда все свои VDS. Ведь тогда мы точно будем знать, что все ресурсы только наши и всегда будут доступны. Да ещё и ставить сможем любую ОС, какую захотим, любой софт, который приспичит, а Битрикс будет радовать попугаями благодаря высокой частоте процессора. Кто знает, может даже начальство расщедрится и выпишет премию. Поехали!
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии19

Нужные HTTP-заголовки

Время на прочтение5 мин
Количество просмотров45K
Наши клиенты в Fastly любят манипулировать заголовками HTTP. Подбор правильной комбинации заголовков — одна из лучших вещей, какую вы можете сделать для безопасности своего сайта и значительного вклада в его производительность.

Большинство разработчиков знают о важных и нужных HTTP-заголовках. Самые известные — Content-Type и Content-Length, это почти универсальные хедеры. Но в последнее время для повышения безопасности начали использоваться заголовки вроде Content-Security-Policy и Strict-Transport-Security, а для повышения производительности — Link rel=preload. Несмотря на широкую поддержку в браузерах, лишь немногие их используют.

В предыдущей статье мы рассмотрели ненужные заголовки. Сейчас разберёмся, какие заголовки действительно следует настроить для своего сайта.
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии5

Наблюдение за изменениями файлов в Node.js

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

Материал, перевод которого мы сегодня публикуем, посвящён организации наблюдения за изменениями файлов в Node.js. Автор материала, Дэйв Джонсон, говорит, что необходимость в системе наблюдения за файлами появилась у него в процессе создания IoT-проекта, связанного с кормлением аквариумных рыбок. Когда кто-то из членов семьи их кормит, он нажимает одну из трёх кнопок. В частности, речь идёт о кнопке на плате расширения, подключённой к Raspberry Pi, о кнопке Amazon Dash, и о кнопке в веб-интерфейсе. Любое из этих действий приводит к записи в лог-файл строчки с указанием даты, времени и типа события. В результате, взглянув на содержимое этого файла, можно понять, пора кормить рыбок или нет. Вот его фрагмент:

2018-5-21 19:06:48|circuit board
2018-5-21 10:11:22|dash button
2018-5-20 11:46:54|web

После того, как налажено формирование файла, нужно, чтобы система, основанная на Node.js, реагировала на события изменения этого файла и предпринимала необходимые действия. Здесь будет рассмотрено и проанализировано несколько подходов к решению данной задачи.
Читать дальше →
Всего голосов 21: ↑17 и ↓4+13
Комментарии7

Осторожнее с копипастом: фингерпринтинг текста непечатаемыми символами

Время на прочтение4 мин
Количество просмотров61K
Не хотите читать? Посмотрите демо.

Символы нулевой ширины — это непечатаемые управляющие символы, которые не отображаются большинством приложений. Н​апример, в э​то пред​ложение я вст​авил де​сять про​​белов н​улевой ширины, вы эт​о замет​или? (Подсказка: вставьте предложение в Diff Checker, чтобы увидеть местоположение символов!). Эти символы можно использовать как уникальные «отпечатки» текста для идентификации пользователей.


Безусловно, он может здесь быть. И вы никогда не догадаетесь

Зачем?


Ну, изначальная причина не слишком интересна. Несколько лет назад я с командой участвовали в соревнованиях по различным видеоиграм. У команды была приватная страничка для важных объявлений, среди прочего. Но в итоге эти объявления стали репостить в других местах, с издевательствами над командой, раскрывая конфиденциальную информацию и командную тактику.
Читать дальше →
Всего голосов 101: ↑101 и ↓0+101
Комментарии106

W3View — библиотека на Javascript, для которой был создан HTML

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

Да, ещё одна новая библиотека на JS, хочу поделиться. Фидбека жажду, любого, лучше конечно позитивного конструктивного.

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

Чеклист фронтенд-разработчика

Время на прочтение12 мин
Количество просмотров70K
Глеб Летушов, редактор-фрилансер, адаптировал для блога Нетологии чеклист с Github от David Dias. Этот чеклист уже переводили, но так как на Хабре его нет, мы решили, что он пригодится. В чеклисте собран полный список элементов, которые необходимо проверить перед запуском и публикацией сайта.



Список основан на многолетнем опыте фронтенд-разработчиков, а дополнения собраны из общедоступных источников.
Читать дальше →
Всего голосов 30: ↑24 и ↓6+18
Комментарии21

Wireshark для просмотра трафика в реальном времени

Время на прочтение3 мин
Количество просмотров23K
Иногда мне необходимо было залезть на linux-сервера и иметь возможность просматривать текущий трафик в реальном времени. Как я делал до этого? На целевом сервере устанавливался tcpdump, выхлоп которого писался в файлик. Далее файл через scp тянулся на локальный компьютер под Windows и открывался в Wireshark.

В определенный момент мне захотелось более удобного решения и я, найдя возможность запустить Wireshark на винде (локально) в связке с tcpdump-ом на сервере (удаленно) на просторах интернета, и немного подпилив эту реализацию, решил поделиться с Вами.
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии23

Практическая оптимизация MySQL: измерять, чтобы ускорять

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


Петр Зайцев (Percona)


Сегодня мы поговорим о производительности.

Мы посмотрим на то, как подойти правильно к оптимизации MySQL, а также посмотрим на некоторые практические подходы к этому делу. Почему я считаю, что это важно? Дело в том, что когда у вас есть специфическая проблема, вы хотите, например, спросить: «А какой же мне установить размер кэша в MySQL?». Такой вопрос всегда можно ввести в Google или Yandex, и получить на него разумный ответ. Но как получить ответ об общем, о схеме анализа и оптимизации MySQL? Это куда более сложно.
Читать дальше →
Всего голосов 30: ↑28 и ↓2+26
Комментарии2

Когда Photoshop отображает совсем не то, что надо

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

Такая вот ситуация: дизайнер присылает макет, а у верстальщика открывается какая то лабуда светлая, или темная (если верстальщик испольует МасOS, а дизайнер Win.). Или же верстальщик сохраняет картинку, а там цвета другие стали.

Разберемся почему так и как с этим жить.

Читать дальше →
Всего голосов 173: ↑158 и ↓15+143
Комментарии139

Jest и Puppeteer: автоматизация тестирования веб-интерфейсов

Время на прочтение9 мин
Количество просмотров44K
Эту статью написал программист из Италии Валентино Гаглиарди. Он говорит, что сразу после выхода Puppeteer его заинтересовала автоматизация тестирования веб-интерфейсов с использованием данной библиотеки и Jest. После этого он приступил к экспериментам.



Здесь речь пойдёт об основах работы с Puppeteer и Jest на примере тестирования веб-формы. Также тут будут рассмотрены особенности использования Chromium с пользовательским интерфейсом и без него, и некоторые полезные мелочи, касающиеся различных аспектов тестирования веб-страниц и организации рабочей среды. Валентино полагает, что, хотя Puppeteer — инструмент сравнительно новый и его API вполне может подвергаться изменениям, у него есть шанс занять достойное место в арсенале веб-разработчиков.
Всего голосов 20: ↑20 и ↓0+20
Комментарии8

Курс молодого бойца PostgreSQL

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


Хочу поделиться полезными приемами работы с PostgreSQL (другие СУБД имеют схожий функционал, но могут иметь иной синтаксис).

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

Данный материал будет полезен тем, кто полностью освоил базовые навыки SQL и желает учиться дальше. Советую выполнять и экспериментировать с примерами в pgAdmin'e, я сделал все SQL-запросы выполнимыми без разворачивания каких-либо дампов.

Поехали!
Читать дальше →
Всего голосов 79: ↑77 и ↓2+75
Комментарии59

Оптимизация запросов. Основы EXPLAIN в PostgreSQL (часть 2)

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

Подолжаю публиковать авторскую переработку Understanding EXPLAIN от Guillaume Lelarge.
Ещё раз обращу внимание, что часть информации для краткости опущено, так что настоятельно рекомендую ознакомиться с оригиналом.
Предыдущие части:

Часть 1
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии4

Оптимизация веб-серверов для повышения пропускной способности и уменьшения задержки

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


Привет! Меня зовут Макс Матюхин, я работаю в SRV-команде Badoo. Мы в Badoo не только активно пишем посты в свой блог, но и внимательно читаем блоги наших коллег из других компаний. Недавно ребята из Dropbox опубликовали шикарный пост о различных способах оптимизации серверных приложений: начиная с железа и заканчивая уровнем приложения. Его автор – Алексей Иванов – дал огромное количество советов и ссылок на дополнительные источники информации. К сожалению, у Dropbox нет блога на Хабре, поэтому я решил перевести этот пост для наших читателей.

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

Проблемы безопасности Яндекс.Почты (а еще ПДД и Коннект)

Время на прочтение5 мин
Количество просмотров24K
image Привет, GT! Я прочитал пост MikhailNsk, и мой мозг перенес меня в 2016 год, где я случайно наткнулся на проблему с подменой адресов у Яндекс.Почты. Сама угроза заключается в том, что письма, с точки зрения, DMARC и SPF являются полностью валидными. Этому подвержены не только пользователи Почты, но и организации, которые используют в качестве почтовика со своим доменом Яндекс.ПДД и Яндекс.Коннект (для примера, это всем известный и везде рекламируемый «майловский» GeekBrains), а это уже куда серьезнее. Уязвимость на данный момент работает, письмо проходит все проверки и доставляется куда-угодно (включая GMAIL). Реализация и реакция Яндекса под катом.

Внимание! Приведенный ниже алгоритм воспроизведения уязвимости предоставлен исключительно в образовательных целях!
Читать дальше →
Всего голосов 27: ↑24 и ↓3+21
Комментарии15

Проблемы безопасности почты Mail.ru

Время на прочтение1 мин
Количество просмотров41K
Два года назад мной был написан несложный PHP-скрипт для формы обратной связи. Письма приходили на почту mail.ru. Как выяснил позднее, в скрипте была ошибка. В «From» я вставлял емэйл-адрес клиента (по сути, подделывал отправителя), однако письма приходили, и ладно.

Исходный код:

$email = $_POST['email'];
$headers .= "From: " . $email . "\r\n";

А не так давно заметил, что заявки перестали приходить… Проверил форму — не работает. Вызвало недоумение, ибо никто ничего не трогал, и два года всё работало нормально. По ходу экспериментов выяснилось, что если использовать такой код:

$email = "Сбербанк <help@sberbank.ru";
$headers .= "From: " . $email . ">>\r\n";

то можно совершенно спокойно подделывать любого отправителя (в данном случае Сбербанк).

image
Читать дальше →
Всего голосов 86: ↑57 и ↓29+28
Комментарии98

Что нового в nginx?

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


Максим Дунин (Nginx, Inc.)


Ведущий: Я представляю вашему вниманию следующего докладчика. Встречайте – Максим Дунин. И он расскажет о том, что же нового появилось в технологии под названием nginx.

Дисклеймер: речь пойдёт о нововведениях в 2016 году. Можно подумать, что это давно, но информация об изменениях в changelog от автора этих самых изменений полезна всегда!

Максим Дунин: Добрый день! Я Максим Дунин. Как вы, наверное, знаете, я разработчик nginx. Сегодня буду вам читать changelog вслух и с выражением. Для начала давайте определимся, с какого именно места мы будем читать changelog. Посмотрим на статистику.


Всего голосов 71: ↑70 и ↓1+69
Комментарии45

Информация

В рейтинге
1 622-й
Зарегистрирован
Активность