Как стать автором
Обновить
33
0
Илья Весенний @mytribune

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

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

Визуальный язык программирования Google Blockly

Время на прочтение1 мин
Количество просмотров54K
Blockly — визуальный язык программирования с веб-интерфейсом. Создание программы осуществляется путём соединения блоков.



Некоторые демки:
Maze — используйте Blockly, чтобы пройти лабиринт.
Code — экспорт программы Blockly в JavaScript, Dart, Python или XML.
Читать дальше →
Всего голосов 132: ↑116 и ↓16+100
Комментарии152

Грязное программирование с чистой душой: разработка эвристических систем (часть 2)

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

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

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

Защита АСУ ТП по-американски

Время на прочтение1 мин
Количество просмотров8K
Пост написан из-за появления вчерашних новостей о вирусе-шпионе (например, вот). как ни странно, но проблема защиты промышленных объектов в РФ ставится не так остро, как должна бы… в СМИ очень часто можно услышать про законы о персональных данных, а вот защитой АСУ ТП(системы управления технологическими процессами), похоже, никто особо не занимался (защита критически важных объектов регламентирована документами ФСТЭК, но они имеют гриф и не доступны простым смертным). Для тех же компаний, которые не попали в список этих самых «критически важных», существует только стандарт Газпрома… и все, больше никаких документов и рекомендаций в области защиты АСУ ТП нет.
В США дело обстоит в корне наоборот, и американский US CERT выкладывает в свободный доступ свои рекомендации по защите АСУ ТП. Желающих ознакомиться прошу под кат.
Читать дальше →
Всего голосов 29: ↑23 и ↓6+17
Комментарии19

Инструкция-шпаргалка для начинающих

Время на прочтение2 мин
Количество просмотров133K
Если в один прекрасный момент вам ударило в голову желание насадить разумное, доброе, вечное, и пересадить всех с SVN на GIT, сразу встают три проблемы:
  • Объяснить зачем это нужно разработчикам и руководству
  • Ввести в обиход новую схему работы с кодом
  • Научить ничего не подозревающих девелоперов новым техникам
Читать дальше →
Всего голосов 117: ↑100 и ↓17+83
Комментарии67

Три ключевых принципа ПО, которые вы должны понимать

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

Разрабатывая приложения, мы постоянно сталкиваемся с новыми подходами, языками и концептами. И постоянно мы мечемся в сомнениях «смогу ли я быть на волне, оставаться конкурентоспособным, учитывая все изменения и тренды?». Давайте задумаемся на мгновение, вспомнив фразу из моего любимого фильма «Касабланка» — в любви законов новых нет — так создан свет.

Все, что касается любви, применимо и к коду. Новых законов в коде нет. Если вы четко понимаете основные идеи разработки, вы способны максимально быстро адаптироваться к новым подходам. В этой статье я расскажу вам о трех основных принципах, которые, наряду с другими, позволяют регулировать сложность разработки. Я поделюсь своим видением вопроса, которое, надеюсь, поможет вам в повседневной работе.
Читать дальше →
Всего голосов 142: ↑128 и ↓14+114
Комментарии56

DoS-атака на сайты с собственными капчами

Время на прочтение3 мин
Количество просмотров17K
Можно найти достаточно много сайтов, которые защищены от разного рода внешней нежелательной автоматической активности (ботов) при помощи капч. Причем во многих случаях генерированием этих самых капч занимается тот же сервер, на котором и расположен сайт. Прикрутить такую капчу на сайт очень просто, да и есть бесплатные капча-генерирующие библиотеки (KCAPTCHA, например).

В чем опасность?
Читать дальше →
Всего голосов 62: ↑53 и ↓9+44
Комментарии59

Больше нет писем в папке Spam: настройка SMTP-сервера

Время на прочтение3 мин
Количество просмотров68K
Недавно мы настраивали SMTP-сервер для нашего проекта. Вопрос стоял так: что нужно сделать, чтобы письма, отправленные нашим пользователям, не попадали в папку со спамом или попадали туда как можно реже?

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

Приведенные советы актуальны только если вы используете свой собственный SMTP-сервер. При использовании, например, SMTP сервера Google всё уже сделано за нас. Как правило. В любом случае рекомендую проверить (см. подразделы Как проверить?).
Читать дальше →
Всего голосов 54: ↑50 и ↓4+46
Комментарии29

Отличный способ выстрелить себе в ногу, ну или не только себе

Время на прочтение2 мин
Количество просмотров15K
Публикую краткий пересказ статьи. Советую прочитать ее полный текст на языке оригинала.

Panos Ipeirotis получил недавно счет от амазона на сумму более $1170, в то время как обычно сумма в его счетах значилась около $100.



Читать дальше →
Всего голосов 138: ↑132 и ↓6+126
Комментарии112

Итак, вы решили запретить копирование объектов класса в C++

Время на прочтение4 мин
Количество просмотров48K
SHALL NOT DANCE THEREДовольно часто можно встретить код на C++, в котором у одного или нескольких классов конструктор копирования и оператор присваивания объявлены private и написан комментарий вида «копирование запрещено».

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

Рассмотрим возможные проблемы.
Читать дальше →
Всего голосов 42: ↑36 и ↓6+30
Комментарии45

Мониторинг сайта с помощью Google Docs

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


Автор блога Digital Inspirations Амид Агарвал (Amit Agarwal) опубликовал скрипт для Google Docs, который опрашивает статус сайта и заносит ответ в ячейку таблицы. Таким образом, можно сделать сервис мониторинга своими руками. Google Docs позволяет запускать скрипт с минутным интервалом и получать уведомления на email.
Читать дальше →
Всего голосов 106: ↑100 и ↓6+94
Комментарии32

(Не)безопасный серфинг?

Время на прочтение3 мин
Количество просмотров23K
Сегодня многие популярные браузеры поддерживают автообновление, однако значительную часть плагинов к ним нужно обновлять самостоятельно. Внушительное количество пользователей делает это крайне редко, не задумываясь или не зная, что в большинстве случаев атакуются не только браузеры, но и плагины!

Под катом — любопытная статистика проверок безопасности браузеров и плагинов на наличие потенциальных уязвимостей по результатам работы онлайн службы SurfPatrol в 2011 году. Данные предоставляются по Рунету.
Читать дальше →
Всего голосов 51: ↑43 и ↓8+35
Комментарии23

Бесплатный VPN от Comodo

Время на прочтение2 мин
Количество просмотров207K
В свете ожидающегося послевыборного закручивания интернет-гаек в наше стране, хотелось бы рассказать о бесплатном VPN от Comodo Group.
Comodo TrustConnect — простой в регистрации, установке и использовании сервис VPN со 128-битным шифрованием, от солидной компании, которой, в отличие от других бесплатных VPN-провайдеров, вполне можно довериться. Для тех кто не в курсе, такой VPN очень полезен при использовании открытого WiFi в публичных местах (например, при посещении сайтов, у которых до сих пор нет https). Также с помощью VPN предотвращается прослушка и фильтрация трафика провайдером, кровавой гэбнёй или админом на работе.
Читать дальше →
Всего голосов 89: ↑77 и ↓12+65
Комментарии108

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

Время на прочтение17 мин
Количество просмотров10K
Чтобы освоить азы Web программирования, я решил написать HTML5 игру — головоломку под названием Triplex (www.quadpuzzle.ru). Написать игру для себя и для друзей — полдела. Захотелось довести проект до ума, сделав из игры продукт для широкого круга пользователей. Насколько получилось — судить вам.

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

                        

Читать дальше →
Всего голосов 114: ↑109 и ↓5+104
Комментарии51

Написание компилятора LALR(1)-парсеров. Базовая теория

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

Введение, или зачем нужны синтаксические анализаторы


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

Эта часть посвящена базису, общей теории computer science. Возможно, что это даже преподаётся в школах/вузах России. Самая мякота пойдет со второй части.

Итак, зачем же кому-то может понадобиться писать парсер и что вообще это такое? Парсер — это код, который наделяет входящий набор символов семантическим смыслом. То есть, происходит анализ этих символов, и на основе этого анализа программа понимает как интерпретировать эти буквы и цифры. Простой пример — «1+2», после или во время процесса парсинга знак "+" это не просто символ плюса, но обозначение бинарноого оператора сложения, а в "+3" это унарный оператор знака числа. Большинству людей это очевидно, машине — нет.

Парсеры используются всюду — в Word'e для анализа приложений, словоформ, формул, etc; практически на любом сайте при валидации входных данных: email'а, телефонного номера, номера кредитки; конфигурационные файлы; сериализованные данные (например, в xml); во многих играх — скриптовые ролики, скрипты ИИ, консоль. В общем, это неотъемлемая часть computer science.

Читать дальше →
Всего голосов 65: ↑61 и ↓4+57
Комментарии26

Уязвимы по определению

Время на прочтение4 мин
Количество просмотров39K
У многих людей, как-либо связанных с безопасностью, периодически возникает желание заняться pentest'ом, то есть тестом на проникновение. И чаще всего начинают все с pentest'а веб-приложений. Порог вхождения довольно мал (простейшая sqli определяется добавлением кавычки в параметр и эксплуатируется не особо сложнее), но при этом встречаются и довольно сложные задания, которые заставляют потратить пару-тройку дней на ковыряние.
Но возникает вопрос — где применять теоретические знания, без страха внезапного появления маски-шоу? Под катом проведу небольшой обзор полигонов для экспериментов по pentest'у.
Читать дальше →
Всего голосов 89: ↑87 и ↓2+85
Комментарии29

Простой индикатор раскладки клавиатуры в курсоре на С++

Время на прочтение2 мин
Количество просмотров37K
Тема отображения текущей раскладки беспокоила хабрасообщество уже не раз. Я опробовал множество существующих решений, но по разным причинам они меня не устроили. Чтобы подобрать для себя наиболее удобный вариант отображения текущей раскладки, я написал небольшое приложение на C++, которое при нажатии на левый Shift отображает язык в системном курсоре редактирования текста. Менее 100 строк кода и около 4 килобайт в скомпилированном виде — на основе этого вы можете достаточно просто реализовать свой взгляд на то, как на самом деле должна выглядеть индикация текущей раскладки.
Читать дальше →
Всего голосов 82: ↑76 и ↓6+70
Комментарии74

Тонкости реализации кода библиотеки. Часть первая

Время на прочтение2 мин
Количество просмотров6.1K
При написании библиотеки на C++ многие сталкиваются с определенными трудностями при написании и организации кода. У некоторых уже есть готовые решения, у других их нет и они пытаются найти эти решения.

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

Для начала, опишем эти трудности и представим обычные способы решения.

Предположим, что библиотека реализует некоторую сущность some_class, которую она предоставляет пользователю библиотеки. Определение some_class зависит от другой сущности библиотеки detail_class, которая является частью реализации и пользователю не предоставляется. Библиотека поставляется только в виде заголовочных файлов.
Читать дальше →
Всего голосов 30: ↑24 и ↓6+18
Комментарии30

DynLib: библиотека для создания и работы с DLL

Время на прочтение11 мин
Количество просмотров9.7K
image Библиотека DynLib предоставляет удобные средства для разработчиков, использующих межмодульное взаимодействие (EXE<->DLL, DLL<->DLL) в своих проектах, и значительно сокращает время и количество кода.
DynLib стала неотъемлемым инструментом разработки. Под катом делимся результатами.
Читать дальше →
Всего голосов 49: ↑41 и ↓8+33
Комментарии54

Я не знаю Си

Время на прочтение4 мин
Количество просмотров50K
Цель этой статьи — заставить всех, особенно программистов на Си, сказать «я не знаю Си».
Хочется показать, что тёмные углы в Си значительно ближе, чем кажется и даже тривиальные строки кода несут в себе undefined behavior.
Читать дальше →
Всего голосов 285: ↑268 и ↓17+251
Комментарии309

Электронная подпись в браузере с помощью OpenSSL и СКЗИ Рутокен ЭЦП

Время на прочтение26 мин
Количество просмотров23K
UPDATE. Готовое решение для электронной подписи в браузере — Рутокен Плагин

Потребность в решениях, помогающих реализовать электронную подпись в «браузере», возрастает. Главные требования к таким решениям — поддержка российких криптоалгоритмов, обеспечение безопасности ключа и нормальное usability. В данном топике мы напишем браузерный криптографический java-апплет, в который интегрирован OpenSSL ГОСТ c модулем поддержки Рутокен ЭЦП. Этот апплет не требует установки какого-либо клиентского софта (кроме java-машины, конечно) и позволяет подписывать файлы через браузер в формате PKCS#7 с ипользованием аппаратной реализации российских криптографических стандартов на «борту» USB-токена Рутокен ЭЦП. Для демонстрации в топике будет дан пример HTML-страницы, использующей данный апплет. На странице можно сгенерить ключ внутри токена, создать заявку PKCS#10 на сертификат для этого ключа, получить тестовый сертификат, записать его на токен, подписать файл.

Архитектура решения представлена на рисунке:

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

Информация

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