Search
Write a publication
Pull to refresh
56
0
Илья @WST

Инженер-программист

Send message

10 основных ошибок, совершаемых Django-разработчиками

Reading time12 min
Views103K


В этом руководстве мы рассмотрим основные ошибки Django-разработчиков и узнаем, как их избежать. Статья может быть полезна даже опытным разработчикам, потому что и они совершают такие ошибки, как поддержка неподъёмно больших настроек или конфликтов имён в статических ресурсах.

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

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

Reading time17 min
Views36K


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


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

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

Корректирующие коды «на пальцах»

Reading time11 min
Views78K

Корректирующие (или помехоустойчивые) коды — это коды, которые могут обнаружить и, если повезёт, исправить ошибки, возникшие при передаче данных. Даже если вы ничего не слышали о них, то наверняка встречали аббревиатуру CRC в списке файлов в ZIP-архиве или даже надпись ECC на планке памяти. А кто-то, может быть, задумывался, как так получается, что если поцарапать DVD-диск, то данные всё равно считываются без ошибок. Конечно, если царапина не в сантиметр толщиной и не разрезала диск пополам.


Как нетрудно догадаться, ко всему этому причастны корректирующие коды. Собственно, ECC так и расшифровывается — «error-correcting code», то есть «код, исправляющий ошибки». А CRC — это один из алгоритмов, обнаруживающих ошибки в данных. Исправить он их не может, но часто это и не требуется.


Давайте же разберёмся, что это такое.


Для понимания статьи не нужны никакие специальные знания. Достаточно лишь понимать, что такое вектор и матрица, как они перемножаются и как с их помощью записать систему линейных уравнений.


Внимание! Много текста и мало картинок. Я постарался всё объяснить, но без карандаша и бумаги текст может показаться немного запутанным.

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

Обзор Splunk Machine Learning Toolkit

Reading time4 min
Views12K


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

Сегодня мы рассмотрим одно из самых популярных, с точки зрения пользователей, приложений — Splunk Machine Learning Toolkit.
Читать дальше →

Российские светодиодные лампы Uniel

Reading time3 min
Views36K
Светодиодные лампы Uniel можно встретить во многих крупных магазинах. До последнего времени все эти лампы производились в Китае, но недавно компания открыла завод по производству светодиодных ламп в Черноголовке.


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

UAC Bypass или история о трех эскалациях

Reading time14 min
Views36K
На работе я исследую безопасность ОС или программ. Ниже я расскажу об одном из таких исследований, результатом которого стал полнофункциональный эксплоит типа UAC bypass (да-да, с source-code и гифками).


Ах, да, в Майкрософт сообщили, они сделали вид, что им не интересно.
Алярм! Под катом около 4 мегабайт трафика – картинок и гифок.
Поднять права

Bash-скрипты, часть 8: язык обработки данных awk

Reading time14 min
Views342K
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит



В прошлый раз мы говорили о потоковом редакторе sed и рассмотрели немало примеров обработки текста с его помощью. Sed способен решать многие задачи, но есть у него и ограничения. Иногда нужен более совершенный инструмент для обработки данных, нечто вроде языка программирования. Собственно говоря, такой инструмент — awk.
Читать дальше →

Что ждет нас в ReactOS версии 0.4.5?

Reading time2 min
Views19K


Приветствуем всех Хабражителей!

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

5 худших приемов отечественного дизайна из 90-х

Reading time2 min
Views59K
В девяностые, когда стали доступны первые компьютеры, каждый мог стать дизайнером и сделать вывеску для своего ларька.
К нам в рубрику #logomachine_help присылают самые разные логотипы, но от многих по-прежнему веет тем самым любительским дизайном из 90-х. Мы собрали самые распространенные проблемы в 5 худших приемов, которых лучше избегать, если ты не возишь щебень на самосвале.

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

Pthreads: Потоки в русле POSIX

Reading time10 min
Views169K

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



В этой статье мы познакомимся с POSIX Threads для того, чтобы затем узнать как это все работает в Linux. Не заходя в дебри синхронизации и сигналов, рассмотрим основные элементы Pthreads. Итак, под капотом потоки.

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

Получено первое научное свидетельство «высшего уровня сознания»

Reading time4 min
Views58K

Усреднённые изменения в уровне сложности активности мозга по алгоритму Лемпеля — Зива по одному каналу (это лишь одна из нескольких измеряемых математических метрик сложности сигналов) для трёх психотропных препаратов: псилоцибина, кетамина и ЛСД. Красный цвет соответствует увеличению уровня сложности. Изображение: Университет Сассекса

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

Экстремальная миграция на PostgreSQL: без остановки, потерь и тестирования

Reading time7 min
Views27K


Буквально месяц назад в Яндекс.Деньгах завершился переезд сервиса профилей пользователей с Oracle на PostgreSQL. Так что теперь у нас есть опробованное решение по миграции больших объемов данных без потерь и остановки использующего их сервиса.


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

Ну и вспомню про набитые шишки, конечно же

Как я сделал самый быстрый ресайз изображений. Часть 2, SIMD

Reading time15 min
Views28K

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


Часть 0
Часть 1, общие оптимизации


В прошлый раз мы получили ускорение в среднем в 2,5 раза без изменения подхода. В этот раз я покажу, как применять SIMD-подход и получить ускорение еще в 3,5 раза. Конечно, применение SIMD для обработки графики не является ноу-хау, можно даже сказать, что SIMD был придуман для этого. Но на практике очень мало разработчиков используют его даже в задачах обработки изображений. Например, довольно известные и распространенные библиотеки ImageMagick и LibGD написаны без использования SIMD. Отчасти так происходит потому, что SIMD-подход объективно сложнее и не кроссплатформенный, а отчасти потому, что по нему мало информации. Довольно просто найти азы, но мало детальных материалов и разбора реальных задач. От этого на Stack Overflow очень много вопросов буквально о каждой мелочи: как загрузить данные, как распаковать, запаковать. Видно, что всем приходится набивать шишки самостоятельно.

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

Дождались: Xiaomi Mi 6 представлен официально

Reading time3 min
Views48K
Привет, Geektimes! Обещанного, как говорят, три года ждут, но только не в случае с Xiaomi — сегодня компания наконец-то представила свой новый флагманский смартфон, который получил ожидаемое название Mi 6. Что из этого получилось, и подтвердились ли слухи? Давайте разбираться под катом.

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

Индексы в PostgreSQL — 1

Reading time17 min
Views485K

Предисловие


В этой серии статей речь пойдет об индексах в PostgreSQL.

Любой вопрос можно рассматривать с разных точек зрения. Мы будем говорить о том, что должно интересовать прикладного разработчика, использующего СУБД: какие индексы существуют, почему в PostgreSQL их так много разных, и как их использовать для ускорения запросов. Пожалуй, тему можно было бы раскрыть и меньшим числом слов, но мы втайне надеемся на любознательного разработчика, которому также интересны и подробности внутреннего устройства, тем более, что понимание таких подробностей позволяет не только прислушиваться к чужому мнению, но и делать собственные выводы.

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

В этой части мы поговорим про разделение сфер ответственности между общим механизмом индексирования, относящимся к ядру СУБД, и отдельными методами индексного доступа, которые в PostgreSQL можно добавлять как расширения. В следующей части мы рассмотрим интерфейс метода доступа и такие важные понятия, как классы и семейства операторов. После такого длинного, но необходимого введения мы подробно рассмотрим устройство и применение различных типов индексов: Hash, B-tree, GiST, SP-GiST, GIN и RUM, BRIN и Bloom.
Читать дальше →

Получил 1.2K звезд на GitHub с ужасной архитектурой. Как?

Reading time7 min
Views79K
Хочу поделится довольно обычной, но показательной историей. Идея проекта появилась 3 месяца назад, за 1 месяц была реализована и вот уже два месяца как проект переодически висит в топе GitHub, попал в какие только можно профильные новостные ресурсы, и даже забрался в дайджест в статье “Топ 5 библиотек апреля”.
Читать дальше →

Почему все драйверы в Windows датируются 21 июня 2006 года

Reading time3 min
Views68K

Почему в каждой новой версии Windows все драйверы датированы одним и тем же днём 21.06.2006 г.? Microsoft вообще когда-нибудь обновляет драйверы или они там собралась просто группа бездельников? Наконец-то мы узнали ответ на этот вопрос из заметки в неофициальном блоге The Old New Thing на сайте Microsoft.

Один из разработчиков компании Microsoft под ником zac_l объяснил, в чём дело. Сакральная дата 21.06.2006 распространяется даже на драйверы вроде Storage Spaces и современные процессоры, которые вообще не существовали десять лет назад, так что о лености разработчиков здесь речи не идёт. Причина в другом.
Читать дальше →

Пару слов в защиту корректоров осанки

Reading time5 min
Views23K
Каждый раз, когда мы или кто-то еще затрагивает тему «ровной спины» с помощью современных гаджетов, разгораются споры. Так вышло и в последний раз. Кто-то полагает, что корректоры бесполезны, кто-то считает, что лучше «в зал сходить», кто-то полагает, что использование таких девайсов не так уж безопасно для здоровья, как все пытаются убедить.


Расскажем то, что знаем.
Читать дальше →

Agile у каждого свой: как плыть по течению, управлять проектами и не страдать

Reading time3 min
Views9.2K
Agile — это мода, тренд, слово, которое мелькает везде и повсюду (уступая, кажется, только коучингу).

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

Рассказываем о том, что Agile это не свод правил, высеченный в камне, а советы, которые команды могут применять. Или нет. Учимся мудро подходить к организации рабочего процесса. И использовать на практике только те принципы, что близки вам (ну и заказчику!).


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

Об опасностях беспроводных клавиатур и мышей

Reading time4 min
Views93K


Изображение: home thods, Flickr

Компьютерные мыши и клавиатуры с радиоинтерфейсом и USB-трансивером стоят немногим дороже обычных проводных моделей и пользуются популярностью. Но такие устройства не защищены от взлома: собрать набор для проведения атаки можно всего за 300 рублей, а вестись она может с расстояния до 1 км.

Мы протестировали безопасность устройств Logitech, A4Tech и Microsoft. В ходе тестов нам удалось перехватить данные, передаваемые клавиатурами и мышами, дешифровать трафик и осуществить ряд других атак. Обнаруженные уязвимости могут привести к утечке паролей, платежных реквизитов, персональных данных и другой важной информации.
Читать дальше →

Information

Rating
Does not participate
Location
Красногвардейское, Адыгея, Россия
Date of birth
Registered
Activity