Как стать автором
Обновить
7
0
Maksim Didenko @DidenkoMS

I work with PC, it's all you need to know.

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

Ambient music and its effects on writing code

Время на прочтение6 мин
Количество просмотров2.6K
In this post I’d like to talk about our background music choices for writing code. The developer soundtrack, if you will. To narrow it down, I’m going to discuss one specific genre, ambient music.


Homo laborans and music


Today the effect music has on all living creatures, humans included, is a fairly well-researched topic. It’s been common knowledge for a while that classic music helps people to calm down and relieves stress, while high-energy tunes of various genres can make your workout results way more impressive.

Plenty of scientific papers have been published that explore this phenomenon, especially by medical researchers and psychologists (use of music as a part of treatment plan, the way different organs respond to it, etc.). Naturally, many of those you gotta take with a grain of salt as there’s always the risk of crossing the line into pseudoscience, but there’s no shortage of reliable sources that confirm that link.

You don’t need to go further than Habr to find plenty of insightful articles that talk about the influence music has on a working environment and attention span of the workers. But this particular one has a slightly different intent.
Read more →
Всего голосов 20: ↑19 и ↓1+18
Комментарии0

Web application firewalls

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

Web application firewall


Web application firewalls (WAFs) are a type of intrusion detection and prevention system and might be either a hardware or software solution. It is specifically designed to inspect HTTP(s) and analyse the GET and POST requests using the appalling detection logic explained below. Web application firewall software is generally available as a web server plugin.

WAF has become extremely popular and various companies offer a variety of solutions in different price categories, from small businesses to large corporations. Modern WAF is popular because it has a wide range of covered tasks, so web application developers can rely on it for various security issues, but with the assumption that this solution cannot guarantee absolute protection. A basic WAF workflow is shown below.



Its main function is the detection and blocking of queries in which, according to WAF analysis, there are some anomalies, or an attacking vector is traced. Such an analysis should not make it difficult for legitimate users to interact with a web application, but, at the same time, it must accurately and timely detect any attempted attack. In order to implement this functionality, WAF developers usually use regular expressions, tokens, behavioural analysis, reputation analysis and machine learning, and, often, all these technologies are used together.



In addition, WAF can also provide other functionality: protection from DDoS, blocking of IP-addresses of attackers, tracking of suspicious IP-addresses, adding an HTTP-only flag to the cookie, or adding the functionality of CSRF-tokens. Each WAF is individual and has a unique internal arrangement, but there are some typical methods used for analysis.
Read more →
Всего голосов 15: ↑13 и ↓2+11
Комментарии0

Top 10 bugs of C++ projects found in 2018

Время на прочтение13 мин
Количество просмотров7.8K
It has been three months since 2018 had ended. For many, it has just flew by, but for us, PVS-Studio developers, it was quite an eventful year. We were working up a sweat, fearlessly competing for spreading the word about static analysis and were searching for errors in open source projects, written in C, C++, C#, and Java languages. In this article, we gathered the top 10 most interesting of them right for you!

Всего голосов 25: ↑24 и ↓1+23
Комментарии0

Liza Alert: volunteers, who save lives

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


Liza Alert search-and-rescue team has existed for eight years. It’s a volunteer organization, the fellowship of the ones who care, that searches for missing people effectively collaborating with the Ministry of Emergency Situations and the Ministry of Internal Affairs. Liza Alert collects the entries on missing people; they conduct various educational events, search management and search operations themselves. The team isn’t involved in any business activities, doesn’t have a checking account and doesn’t accept monetary donations.

Mail.Ru has recently provided Liza Alert with a free platform for services, extensively used for search-and-rescue operations. We decided to talk to Sergey Chumak — the head of Liza Alert IT branch — about the work of the volunteer emergency response group and how high-tech solutions aid them.
Read more →
Всего голосов 36: ↑34 и ↓2+32
Комментарии0

Курс MIT «Безопасность компьютерных систем». Лекция 14: «SSL и HTTPS», часть 2

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

Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год


Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
Лекция 2: «Контроль хакерских атак» Часть 1 / Часть 2 / Часть 3
Лекция 3: «Переполнение буфера: эксплойты и защита» Часть 1 / Часть 2 / Часть 3
Лекция 4: «Разделение привилегий» Часть 1 / Часть 2 / Часть 3
Лекция 5: «Откуда берутся ошибки систем безопасности» Часть 1 / Часть 2
Лекция 6: «Возможности» Часть 1 / Часть 2 / Часть 3
Лекция 7: «Песочница Native Client» Часть 1 / Часть 2 / Часть 3
Лекция 8: «Модель сетевой безопасности» Часть 1 / Часть 2 / Часть 3
Лекция 9: «Безопасность Web-приложений» Часть 1 / Часть 2 / Часть 3
Лекция 10: «Символьное выполнение» Часть 1 / Часть 2 / Часть 3
Лекция 11: «Язык программирования Ur/Web» Часть 1 / Часть 2 / Часть 3
Лекция 12: «Сетевая безопасность» Часть 1 / Часть 2 / Часть 3
Лекция 13: «Сетевые протоколы» Часть 1 / Часть 2 / Часть 3
Лекция 14: «SSL и HTTPS» Часть 1 / Часть 2 / Часть 3
Всего голосов 20: ↑18 и ↓2+16
Комментарии0

Про рынок ИТ в России по-честному

Время на прочтение16 мин
Количество просмотров158K
В последние несколько лет мои переживания по поводу российского рынка ИТ только усиливались. Все началось с кризиса рубля 2014 года (а может, и раньше), и с тех пор меня не покидает ощущение, что многие российские компании, особенно провинциальные, завязали себе глаза, заткнули ватой уши и все еще пытаются сделать вид, что ничего не происходит. Я много общался с разными компаниями, с HR, с разработчиками, и составил список неутешительных тезисов о том, что представляет собой как программистский рынок, так и культура разработки в целом, ведь это вещи взаимосвязанные. По моим субъективным оценкам, эти тезисы справедливы для ~60% российских компаний, хотя, казалось бы, те другие 40% компаний, которые мы знаем и любим, должны были заставить задуматься. Но я очень подозреваю, что это эти 60% просто надеются на русский “авось”, и подвергаются так называемой willful blindness, а иногда и намеренно мутят воду. Итак, по-честному, что же происходит?

Дисклеймер 1. Ни ссылок, ни имен, ни пруфов не будет. Как известно, в Интернете можно найти подтверждение или опровержение любому тезису, поэтому не вижу большого в том смысла, покуда это не диссертация, а мнение. Моя цель — предоставить другую точку зрения, основанную на личностном опыте веры на личном опыте.

Дисклеймер 2. В статье приводится собирательный образ. Вряд ли стоит ожидать, что есть стопроцентное совпадение хотя бы с одной компанией. Те или иные черты могут встречаться там или здесь; важно не то, что есть какие-то конкретные компании с этими проблемами. Важно то, что сами по себе проблемы существуют, и о них надо говорить.
Читать дальше →
Всего голосов 281: ↑250 и ↓31+219
Комментарии1833

Стеганография в IP-пакетах

Время на прочтение4 мин
Количество просмотров19K
Однажды, перед защитой очередной лабораторной работы мне задали вопрос: какие поля IP-пакета можно использовать для стегано? Я не знал и лишь пожал плечами. Но вскоре я всё же решил изучить этот вопрос.

Под катом вас ждёт изучение заголовков IP-пакетов, собственная утилита ping на Python и несколько способов передать данные, не привлекая внимания.
Читать дальше →
Всего голосов 34: ↑31 и ↓3+28
Комментарии12

10 главных огорчений программистов

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


Тем, кто не имеет отношения к созданию ПО, труд разработчика может казаться довольно лёгким: ты востребован на рынке, платят прилично, компании стараются угодить приятными ништяками, и так далее. Всё это так, но если начистоту, то в работе программиста немало неприятных моментов. Мы собрали десять наиболее популярных вещей, которые чаще всего огорчают создателей ПО.

Читать дальше →
Всего голосов 40: ↑30 и ↓10+20
Комментарии84

Не учите ребенка, помогайте ему учиться самому

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


Сугата Митра — ученый, преподаватель, визионер в мире образования. Его успешные эксперименты по обучению детей в индийских бедных кварталах вдохновили писателя Вика́са Свару́па на создание романа, по которому потом сняли оскароносную драму «Миллионер из трущоб».

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

Профессор поделился идеей на конференции TED и стал одним из самых популярных спикеров за последние годы. Он получил за свое выступление миллион долларов и на эти деньги создал «Школу в облаках».

Коллеги часто и резко критикуют концепцию преподавателя, требуют больше научных доказательств ее эффективности. Профессор принимает конструктивную критику, но в одном непреклонен: традиционная школа безнадежно устарела и ее надо кардинально менять, если мы хотим жить не прошлым, а будущим.
Всего голосов 29: ↑26 и ↓3+23
Комментарии67

«Взломайте нас, чтобы было красиво»

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


Дисклеймер


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


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


Введение


Чтобы читателям был понятен контекст, мы решили начать с бэкграунда. Статья написана аналитиком информационной безопасности (мной) и специалистом по тестированию на проникновение (моим коллегой InfiniteSuns ).


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


Далее в ходе обсуждения выяснилось, что до этого под названием «пентест» заказчику продавали сканирование внутренней сети при помощи «nmap» с параметром «--script vuln». Естественно, в очередной раз заказчик ожидал от пентестеров подобного поведения и искренне удивился, когда они начали захватывать его контроллер домена.

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

Безопасность в современных корпорациях

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

image


Предисловие


Я работаю разработчиком в одной Бо-о-о-ольшой компании. Проникновение во внутренний контур – лакомый кусочек для мошенников. В компании, естественно, существует служба безопасности. Но, то, как работает служба безопасности и эффективность её работы у меня вызывает сомнения.


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

Читать дальше →
Всего голосов 21: ↑15 и ↓6+9
Комментарии26

PCI DSS: что это такое и как под него сертифицироваться + наш опыт

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


— Хорошо, теперь покажите ваш статический анализатор кода.
— Знакомьтесь, это Пётр.
— Приятно познакомиться, но…
— Пётр и есть наш статический анализатор кода.

Когда вы работаете с платёжными данными, то должны обеспечивать определённый уровень безопасности. Этот уровень описан в стандарте PCI DSS, разработанном Visa, MasterСard и другими платёжными системами. Он важен, поскольку применяется ко всем участникам процесса работы с данными держателей карт, но есть дополнительные требования для поставщиков услуг.

В стандарте 12 разделов — начиная от того, что служба безопасности должна следить за сменой доступов и изъятием пропусков после увольнения сотрудников, и заканчивая тем, как и куда должны писаться всевозможные логи.

Расскажу, как мы сертифицировали нашу облачную платформу и сколько нервов это вымотало.
Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии12

Будущее интернет-протоколов

Время на прочтение9 мин
Количество просмотров14K
Автор — Марк Ноттингем, член Internet Architecture Board и сопредседатель рабочих групп IETF по HTTP и QUIC


Когда Интернет стал популярным в 90-е годы, то основному трафику хватало всего нескольких протоколов: IPv4 маршрутизировал пакеты, TCP превращал их в соединения, SSL (позже TLS) шифровал эти соединения, DNS именовал хосты для подключения, а HTTP как прикладной протокол часто использовал их все.

За многие годы эти ключевые интернет-протоколы изменились совсем незначительно: в HTTP добавилось несколько новых заголовков и методов, TLS медленно сменил пару минорных версий, TCP приспособился к управлению заторами, а в DNS появились функции вроде DNSSEC. Сами протоколы в работе оставались практически неизменными очень долгое время (кроме IPv6, который уже получает достаточное внимание в сообществе операторов связи).

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

Теперь ключевые интернет-протоколы претерпят серьёзные изменения. Хотя они в целом должны быть совместимы с нынешним Интернетом (иначе не получат распространения), но это может иметь разрушительные последствия для тех, кто осмелился использовать недокументированные свойства протоколов или сделал предположение о неизменности протоколов в будущем.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии5

Отправка запроса на указанные базы данных MS SQL Server всех указанных серверов подручными средствами

Время на прочтение5 мин
Количество просмотров7.5K
Написать эту статью меня побудила заметка уважаемого jobgemws "Отправка запроса на все базы данных всех указанных серверов на примере MS SQL Server и C#.NET"

Я расскажу, как схожую задачу можно решить штатными инструментами MSSQLSERVER, а именно – SSMS (или, для экстремалов от администрирования — sqlcmd), быстро, без программирования, с помощью крошечного лайфхака.

Итак, у нас в организации имеется несколько десятков разнотипных MSSQLSERVER, разных редакций. Express превалирует, но это – не важно. Инфраструктура – старая, целиком унаследованная, и — «кусочно-непрерывная».

Задача: «запустить один и тот же запрос/пакет на нескольких серверах в нескольких базах данных», у нас, что называется, «редко бывает, но часто случается».

И то, что это «редко бывает» — не позволяет изобрести достойного обоснования для закупки или написания полноценного софта для централизованного администрирования всего зоопарка, а то, что «часто случается» — бывает, требует мгновенного решения в стиле «5 секунд до взрыва».

Но всё это – лирическое отступление, дисклаймер и всё такое.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии8

Демонстрационная база данных для PostgreSQL

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

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


Сразу приведу ссылку на полное описание (там же написано, где взять демо-базу и как ее установить).


image

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

Индексы в PostgreSQL — 8

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

Мы уже рассмотрели механизм индексирования PostgreSQL, интерфейс методов доступа и все основные методы доступа, как то: хеш-индексы, B-деревья, GiST, SP-GiST и GIN. А в этой части посмотрим на превращение джина в ром.

RUM


Хоть авторы и утверждают, что джин — могущественный дух, но тема напитков все-таки победила: GIN следующего поколения назвали RUM.

Этот метод доступа развивает идею, заложенную в GIN, и позволяет выполнять полнотекстовый поиск еще быстрее. Это единственный метод в этой серии статей, который не входит в стандартную поставку PostgreSQL и является сторонним расширением. Есть несколько вариантов его установки:

  • Взять пакет yum или apt из репозитория PGDG. Например, если вы ставили PostgreSQL из пакета postgresql-10, то поставьте еще postgresql-10-rum.
  • Самостоятельно собрать и установить из исходных кодов на github (инструкция там же).
  • Пользоваться в составе Postgres Pro Enterprise (или хотя бы читать оттуда документацию).

Ограничения GIN


Какие ограничения индекса GIN позволяет преодолеть RUM?

Во-первых, тип данных tsvector, помимо самих лексем, содержит информацию об их позициях внутри документа. В GIN-индексе, как мы видели в прошлый раз, эта информация не сохраняются. Из-за этого операции фразового поиска, появившиеся в версии 9.6, обслуживается GIN-индексом неэффективно и вынуждены обращаться к исходным данным для перепроверки.

Во-вторых, поисковые системы обычно возвращают результаты в порядке релевантности (что бы это ни означало). Для этого можно пользоваться функциями ранжирования ts_rank и ts_rank_cd, но их приходится вычислять для каждой строки результата, что, конечно, медленно.

Метод доступа RUM в первом приближении можно рассматривать как GIN, в который добавлена позиционная информация, и который поддерживает выдачу результата в нужном порядке (аналогично тому, как GiST умеет выдавать ближайших соседей). Пойдем по порядку.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии19

Загрузка страницы с помощью Ajax как ВКонтакте

Время на прочтение3 мин
Количество просмотров76K
Не так давно я задался вопросом, как же можно сделать так, чтобы страницы загружались с помощью ajax скрипта, как вконтакте и при этом были проиндексированы поисковыми машинами.

Данный скрипт я сделал на основе JS фреймворка jQuery (перейти на сайт) и плагина HashChange (перейти на страницу плагина).

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

Подключение скриптов:
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/hashchange.js"></script>


Функция:
	$jQuery = jQuery.noConflict();
	$jQuery(window).hashchange(function(){
		var link = window.location.hash.replace("#", "");
		get_page_by_hash(link);
	});

Читать дальше →
Всего голосов 61: ↑33 и ↓28+5
Комментарии41

Введение в HTML5 History API

Время на прочтение4 мин
Количество просмотров239K
До появления HTML5 единственное, что мы не могли контролировать и управлять (без перезагрузки контента или хаков с location.hash) — это история одного таба. С появлением HTML5 history API все изменилось — теперь мы можем гулять по истории (раньше тоже могли), добавлять элементы в историю, реагировать на переходы по истории и другие полезности. В этой статье мы рассмотрим HTML5 History API и напишем простой пример, иллюстрирующий его возможности.

Основные понятия и синтаксис


History API опирается на один DOM интерфейс — объект History. Каждый таб имеет уникальный объект History, который находится в window.history. History имеет несколько методов, событий и свойств, которыми мы можем управлять из JavaScript. Каждая страница таба(Document object) представляет собой объект коллекции History. Каждый элемент истории состоит из URL и/или объекта состояния (state object), может иметь заголовок (title), Document object, данные форм, позиция скролла и другую информацию, связанную со страницей.

Основные методы объекта History:
  1. window.history.length: Количество записей в текущей сессии истории
  2. window.history.state: Возвращает текущий объект истории
  3. window.history.go(n): Метод, позволяющий гулять по истории. В качестве аргумента передается смещение, относительно текущей позиции. Если передан 0, то будет обновлена текущая страница. Если индекс выходит за пределы истории, то ничего не произойдет.
  4. window.history.back(): Метод, идентичный вызову go(-1)
  5. window.history.forward(): Метод, идентичный вызову go(1)
  6. window.history.pushState(data, title [, url]): Добавляет элемент истории.
  7. window.history.replaceState(data, title [, url]): Обновляет текущий элемент истории
Читать дальше →
Всего голосов 51: ↑51 и ↓0+51
Комментарии22

Атомарные и неатомарные операции

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


Перевод статьи Джефа Прешинга Atomic vs. Non-Atomic Operations. Оригинальная статья: http://preshing.com/20130618/atomic-vs-non-atomic-operations/

В Сети уже очень много написано об атомарных операциях, но в основном авторы рассматривают операции чтения-модификации-записи. Однако, существуют и другие атомарные операции, например, атомарные операции загрузки (load) и сохранения (store), которые не менее важны. В этой статье я сравню атомарные загрузки и сохранения с их неатомарными аналогами на уровне процессора и компилятора C/C++. По ходу статьи мы также разберемся с концепцией «состояния гонок» с точки зрения стандарта C++11.
Читать дальше →
Всего голосов 44: ↑43 и ↓1+42
Комментарии10
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Норильск, Красноярский край, Россия
Дата рождения
Зарегистрирован
Активность