RSS
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 210
[>] Стековое программирование с человеческим лицом (часть вторая)
habra.14
habrabot(difrex,1) — All
2014-11-13 19:01:00


Как и следовало ожидать, предыдущий пост вызвал противоречивые комментарии. Кого-то устраивает и существующий Форт для решения вопросов, кого-то (как и меня) раздражают его особенности. ![image][1] Давайте сразу расставим все точки над i: я не пытаюсь сочинить замену Форту. Форт — семейство среднеуровневых языков программирования, которое продолжает продуктивно решать поставленные задачи и на покой не собирается. Но я размышляю в другой нише: высокоуровневый стековый язык с упором на лёгкость чтения программ для начинающих (насколько это вообще возможно). Большая традиционность и высокоуровневость имеет свои достоинства, но при этом теряются некоторые особенности (в том числе и положительные) Форта. У нового воображаемого языка появляется своя философия и свои концепции. Об этом я и продолжу писать. [Читать дальше →][2]

[1]: http://habrastorage.org/getpro/habr/post_images/752/c37/f1f/752c37f1f323cc309704623318dbead6.jpg
[2]: http://habrahabr.ru/post/243051/#habracut

[>] Под какой ОС и на чем Вы программируете?
habra.14
habrabot(difrex,1) — All
2014-11-13 22:00:41


Привет всем, Вот задался вопросом, более менее внятной статистики не нашел, потому попробую опросить здесь. [][1]

[1]: http://habrahabr.ru/post/243183/#habracut

[>] [recovery mode] Под какой ОС и на чем Вы программируете?
habra.14
habrabot(difrex,1) — All
2014-11-13 23:00:39


Привет всем, Вот задался вопросом, более менее внятной статистики не нашел, потому попробую опросить здесь. [][1]

[1]: http://habrahabr.ru/post/243183/#habracut

[>] [recovery mode] Под какой ОС и на чем вы программируете?
habra.14
habrabot(difrex,1) — All
2014-11-14 01:00:37


Привет всем, Вот задался вопросом, более менее внятной статистики не нашел, потому попробую опросить здесь. Цель — приблизительно узнать популярность ОС именно для программирования (не путать с повседневным использованием). [][1]

[1]: http://habrahabr.ru/post/243183/#habracut

[>] Русская документация по языку SQL СУБД Firebird 2.5
habra.14
habrabot(difrex,1) — All
2014-11-14 02:00:38


Firebird Project рад объявить о доступности русской документации по языку СУБД Firebird — «Руководство по языку SQL СУБД Firebird». Руководство можно скачать с [официального сайта FirebirdSQL.org][1] или с [домашней страницы][2] проекта русской документации. Русская документация СУБД FirebirdSQL появилась благодаря спонсорам — [Московской Бирже][3] (платиновый спонсор и один из крупнейших пользователей Firebird) и [IBSurgeon/IBase.ru][4] (золотой спонсор). На этом работа над документацией по Firebird не заканчивается — будут выпускаться исправления и дополнения к документации по Firebird 2.5, в активной работе находятся разделы, посвященные Firebird 3. На будущий год запланирован выпуск «Руководства по эксплуатации СУБД Firebird» (Firebird Operations Guide). [][5]

[1]: http://www.firebirdsql.org/en/reference-manuals/
[2]: https://www.assembla.com/spaces/firebird-russian-documentation/wiki
[3]: http://moex.com
[4]: http://ib-aid.com
[5]: http://habrahabr.ru/post/243187/#habracut

[>] [recovery mode] С LINQом по «Жизни»
habra.15
habrabot(difrex,1) — All
2015-07-27 00:30:03


Знаменитая игра [Джона Конвея][1] [«Жизнь»][2], благодаря своей простоте, занимательности и поучительность, реализовывалась программистами так много раз, что уступает вероятно только пресловутой сортировке «пузырьком». Приведу, тем не менее, еще один вариант исполнения этой замечательной игры, целиком основанный на технологии [LINQ][3] в среде .NET — простой, компактный, без циклов и многомерных массивов. [Читать дальше →][4]

[1]: https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D0%B2%D0%B5%D0%B9,_%D0%94%D0%B6%D0%BE%D0%BD_%D0%A5%D0%BE%D1%80%D1%82%D0%BE%D0%BD
[2]: https://ru.wikipedia.org/wiki/%D0%96%D0%B8%D0%B7%D0%BD%D1%8C_%28%D0%B8%D0%B3%D1%80%D0%B0%29
[3]: https://ru.wikipedia.org/wiki/Language_Integrated_Query
[4]: http://habrahabr.ru/post/263569/#habracut

[>] Haxe: конвертируем исходный код
habra.14
habrabot(difrex,1) — All
2014-11-14 09:00:43


![][1] Haxe — очень удобный и практичный язык, но маленькое сообщество и, как результат, небольшое количество библиотек заставляют меня немало времени тратить на подготовку «заголовочных файлов» для интеграции open source библиотек в haxe. Немного об этом языке и о путях преобразования исходного кода на разных языках мне бы и хотелось рассказать ниже. [Читать дальше →][2]

[1]: //habrastorage.org/files/cb0/198/fb8/cb0198fb8c874476b3f46e96c9299943.png
[2]: http://habrahabr.ru/post/243199/#habracut

[>] Ошибка в системе безопасности Steam: восстановление пароля без ввода проверочного кода
habra.15
habrabot(difrex,1) — All
2015-07-27 15:00:02


В системе безопасности крупнейшей игровой платформы Steam, разработанной компанией Valve, обнаружена серьезная уязвимость— 25 июля на YouTube была загружена видеодемонстрация эксплуатации ошибки. Проблема широко [обсуждается][1] пользователями ресурса Reddit.




Согласно данным, представленным на видео, злоумышленник может скромпрометировать учетную запись пользователя Steam благодаря некорректной работе функции восстановления пароля — система принимала в качестве верного кода даже пустое значение. В результате взломщик получал возможность сброса пароля учетной записи. [Читать дальше →][2]

[1]: https://www.reddit.com/r/GlobalOffensive/comments/3elus7/steam_exploited_famous_streamers_hacked_live/
[2]: http://habrahabr.ru/post/263607/#habracut

[>] Лекции и тренинги Intel по Software Engineering. Август, Москва
habra.15
habrabot(difrex,1) — All
2015-07-27 18:00:02


![][1] Если вы, студент или аспирант, до сих пор не придумали, как интересно и с пользой провести последние дни перед учебным годом в Москве – это пост для вас! С 24 по 28 августа в московском офисе компании Intel состоится курс лекций и тренингов для студентов, магистрантов и аспирантов естественно-научных специальностей ВУЗов России. Лекторы – высококлассные профессионалы компании Intel, развивающие самые современные направления программной инженерии. Лекции и тренинги позволят слушателям узнать о том, какие знания, умения и навыки будут полезны им для работы в крупной IT-компании и как эти знания применяются в реальном процессе производства и тестирования ПО. Кто знает, быть может, это тот шанс, который вы искали? [Подробности][2]

[1]: https://habrastorage.org/files/f7e/0a9/00a/f7e0a900a4714020b43dd5f8e4db0dfe.jpg
[2]: http://habrahabr.ru/post/263497/#habracut

[>] Анализируем большие объемы данных с Apache Spark
habra.15
habrabot(difrex,1) — All
2015-07-27 20:00:02


![image][1] С анализом больших объемов данных постепенно начинают сталкиваться не только крупнейшие IT-компании, но и обычные разработчики. В нашей компании в ряде проектов такая задача возникает, и мы решили систематизировать накопленный опыт, поделившись с коллегами по i-Free и нашими партнерами наиболее эффективными инструментами и технологиями. Сегодня речь пойдет о применении Apache Spark [Подробности][2]

[1]: http://habrastorage.org/files/28c/a6a/e8e/28ca6ae8e87d44a4b407f2b59efe2aa5.jpg
[2]: http://habrahabr.ru/post/263491/#habracut

[>] [Из песочницы] Удобная сериализация данных с Variadic Templates
habra.15
habrabot(difrex,1) — All
2015-07-27 21:00:02




#### Предисловие

В ходе разработки своего проекта мне потребовалось иметь возможность записывать содержимое различных структур данных в бинарные файлы, и, так как зачастую в них присутствовали строки, векторы и прочие данные, меняющие свой размер во время выполнения, каждая такая структура требовала индивидуального подхода к организации ее перевода в последовательность байт, пригодную для обратного считывания, а использование boost мне показалось громоздким (да и нет его у меня), да и хотелось самому решить эту задачу. Из-за этого я решил сделать этот процесс как можно менее рутинным и делать я это решил с помощью шаблонов. Поддерживаются следующие типы данных: — Все фундаментальные типы С++ — std::string — std::vector где T — все что угодно из этого же списка — Любой перечислимый тип [Читать дальше →][1]

[1]: http://habrahabr.ru/post/263599/#habracut

[>] Обзор и видео докладов по информационной безопасности с конференции SECR-2014
habra.15
habrabot(difrex,1) — All
2015-07-28 00:30:02


В прошлом году, на конференции [SECR-2014][1] (Software Engineering Conference Russia) было 140 докладов по всем направлениям программной инженерии — от Computer Science до современного IT-менеджмента, от тонкостей верификации Linux-драйверов до бизнес-анализа и даже юридических вопросов. Была и секция докладов по информационной безопасности. Я снимал и публиковал видео, а сейчас, в скучный летний сезон, предлагаю свой краткий обзор SECR-докладов именно по различным аспектам информационной безопасности — как от экспертов индустрии, так и от университетских исследователей. Буду рад, если замотивирую вас на просмотр и отзывы, или даже выступить на конференции в этом году. ![][2] [Читать дальше →][3]

[1]: http://secr.ru
[2]: https://habrastorage.org/files/b1a/74b/2ff/b1a74b2ff6c44176b23556bb7d1e8ebf.png
[3]: http://habrahabr.ru/post/263591/#habracut

[>] ZeroRPC — легкая, надежная библиотека для распределенной связи между серверами
habra.15
habrabot(difrex,1) — All
2015-07-28 07:00:02


Давече мне понадобилось реализовать некое подобие собственного statsd-like сервера сбора метрики, но с несколько узко-специфичными фичами, под которые без хорошего напильника не ложилось ни одно готовое или полуготовое решение. В связи в этим было решено реализовать простой клиент-сервер протокол на python с использованием tcp/udp soket'ов. Оговорюсь, что с сетевым программированием знаком я был, да и остаюсь постольку-поскольку, хотя общее понимание tcp/ip стека имелись. Решение в лоб на синтетике показало себя замечательно, но стоило мне нагрузить его более-менее реальными данными (всего-то порядка 20к сообщений в секунду с нескольких потоков) и оно начало показывать свои подводные камушки. Наверное, я просто не смог правильно приготовить raw сокеты, но задачу нужно было решить быстро, времени на глубокое понимание и изучение сетевого программирования не было, поэтому я начал искать решения, где за меня уже хотя бы половину придумали бы. Поиск меня привел к библиотеке **ZeroRPC**, которая была не так давно, как я понял, выпущенна в мир из недр dotCloud. Меня удивило, что я нашел всего одно упоминание про эту разработку на хабре, да и то в скользь, поэтому решил написать эту заметку. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/263673/#habracut

[>] [Перевод] Как правильно использовать исключения
habra.15
habrabot(difrex,1) — All
2015-07-28 10:00:02


Использование исключений для контроля хода выполнения программы (flow control) — [давняя][1] [тема][2]. Я хотел бы суммировать этот топик и привести примеры правильного и неправильного использования исключений. [Читать дальше →][3]

[1]: http://c2.com/cgi/wiki?DontUseExceptionsForFlowControl
[2]: http://stackoverflow.com/questions/729379/why-not-use-exceptions-as-regular-flow-of-control
[3]: http://habrahabr.ru/post/263685/#habracut

[>] [Из песочницы] И ещё пару слов о SandCastle, TFS и магии…
habra.14
habrabot(difrex,1) — All
2014-11-14 11:00:24


По мотивам только-только проскочившей публикации [«Sandcastle и SHFB»][1] решил поделиться своими болями и печалями, а также и success-story при работе с этим продуктом. В тексте **не будет** скриншотов с подписями "_нажмите кнопку ДОБАВИТЬ_" и описания настроек/плагинов. В тексте **будет** описание процесса реализации конкретного кейса: сборки документации SHFB в TFS. [Читать дальше →][2]

[1]: http://habrahabr.ru/post/243039/
[2]: http://habrahabr.ru/post/243171/#habracut

[>] [Перевод] Пальчиковые деревья (часть 1. Представление)
habra.14
habrabot(difrex,1) — All
2014-11-14 11:00:36


_Вышла недавно статья на Хабре о том, как можно самому создать на функциональном языке такие структуры как Очередь (первый зашёл, первый вышел) и Последовательность (напоминает двусторонний стек — первый зашёл, первый вышел с обоих концов). Посмотрел я на этот код и понял, что он жутко неэффективен — сложность порядка `O(n)`. Быстро сообразить, как создать структуры с `O(1)` у меня не вышло, поэтому я открыл код библиотечной реализации. Но там была не лёгкая и понятная реализация, а ``. Это было описание пальчиковых деревьев, необходимость и элегантность которых для этой структуры данных хорошо раскрывается текущей статьёй._

#### Пальчиковые деревья

В этой статье мы рассмотрим пальчиковые деревья. Это функциональные неизменяемые структуры данных общего назначения, разработанные в работе Гинце и Паттерсона. Пальчиковые деревья обеспечивают функциональную структуру данных Последовательность (`sequence`), которая обеспечивает амортизированной доступ постоянный во времени для добавления как в начало, так и в конец последовательности, а также логарифмическое время для конкатенации и для произвольного доступа. В дополнение к хорошему времени асимптотических исполнения, структура данных оказывается невероятно гибкой: в сочетании с моноидальными тегами на элементах, пальчиковые деревья могут быть использованы для реализации эффективных последовательностей с произвольным доступом, упорядоченных последовательностей, интервальных деревьев и очередей приоритетов. Статья будет состоять из 3х частей: Пальчиковые деревья (часть 1. Представление) Пальчиковые деревья (часть 2. Операции) Пальчиковые деревья (часть 3. Применение)

#### Разрабатывая структуру данных

Основа и мотивация пальчиковых деревьев пришла от 2-3 деревьев. 2-3 деревья — это деревья, которые могут иметь две или три ветви в каждой внутренней вершине и которые имеют все свои листья на одном и том же уровне. В то время, как бинарное дерево одинаковой глубины `d` должны быть 2 листьев, 2-3 деревья гораздо более гибкие, и могут быть использованы для хранения любого числа элементов (количество не должно быть степенью двойки). Рассмотрим следующее 2-3 дерево: ![][1] Это дерево хранит четырнадцать элементов. Доступ к любому из них требует трех шагов, и если бы мы должны были добавить больше элементов, количество шагов для каждого из них будет расти логарифмически. Мы хотели бы использовать эти деревья для моделирования последовательности. Тем не менее, во многих применимых последовательностях очень часто и неоднократно обращаются к началу или к концу, и гораздо реже к середине. Для удовлетворения этого пожелания, мы можем изменить эту структуру данных так, чтобы приоритет доступа к началу и к концу был наивысшим в отличие от других особенностей. В нашем случае, мы добавляем два пальца. Палец просто точка, в которой вы можете получить доступ части структуры данных, в императивных языках это было бы просто указателем. В нашем случае, однако, мы будем реструктуризовать всё дерево и сделаем родителей первых и последних детей двумя корнями нашего дерева. Визуально, рассматривая вопрос об изменении дерева выше, захватываем первый и последний узлы на предпоследнем слое, и тянем их вверх, позволяя остальной части дерева свисать: ![][2] [Тип пальчикового дерева][3]

[1]: //habrastorage.org/files/50b/d43/d01/50bd43d01bcd4b0386d27c9a62989470.png
[2]: //habrastorage.org/files/8ad/123/6f6/8ad1236f65514f658ceb5ff5a4b600f1.png
[3]: http://habrahabr.ru/post/240783/#habracut

[>] Из дневника призера первой Всероссийской олимпиады по программированию для школьников 1989 года
habra.14
habrabot(difrex,1) — All
2014-11-14 12:30:28


![][1] _(из личного архива Даниэля Алиевского: «Второй слева — Илья Жильцов, светлая ему память. Я стою за ним, моя голова третья слева»)_ (про саму олимпиаду [Первая Всероссийская олимпиада школьников по программированию (информатике) 1989 года][2]) По моей просьбе Даниэль () поделился воспоминаниями: «Мы, т.е. свердловская „команда“ из 2 человек — первые два места с областной олимпиады, Максим Стацюк и я — вылетели в Красноярск ночью с 18 на 19 марта 1989 года. Рано утром мы наконец добрались до гостиницы. В гостиницах до той поры я никогда не был, только читал про них в книжках, и впечатление от советской гостиницы получилось довольно тяжелое. Но жить можно было. Даже был туалет и душ в номере, а вообще номер был рассчитан на двоих. Не так плохо, по советским временам! (Позже, на Всесоюзной, я понял, что бывает и хуже.) Первый день был потрачен на сон (4 часа) и, конечно же, на карты, в которые мы резались со Стацюком и ребятами из других городов до полтретьего ночи. 3.40 — все же отбой. Выспаться, впрочем, не получилось, поскольку с 9 утра, после завтрака, следовало снова заняться делом, а именно картами. Ну а после 3 дня мы все пошли по магазинам. Красноярск — большой город, интересный для новичков. С семи вечера и до 0.30 — снова карты, пока нас не разогнала наша руководительница, которая и привезла нас с Максимом из Свердловска. Кстати, очень милая девушка, звали, если не ошибаюсь, Виктория Викторовна. [Читать дальше →][3]

[1]: //habrastorage.org/files/0a4/d62/0d1/0a4d620d1970407c9f875f7ff243fe4d.jpg
[2]: http://habrahabr.ru/post/235909/
[3]: http://habrahabr.ru/post/240261/#habracut

[>] [Перевод] Пальчиковые деревья (Часть 1. Представление)
habra.14
habrabot(difrex,1) — All
2014-11-14 14:00:46


_Вышла недавно статья на Хабре о том, как можно самому создать на функциональном языке такие структуры как Очередь (первый зашёл, первый вышел) и Lек (напоминает двусторонний стек — первый зашёл, первый вышел с обоих концов). Посмотрел я на этот код и понял, что он жутко неэффективен — сложность порядка `O(n)`. Быстро сообразить, как создать структуры с `O(1)` у меня не вышло, поэтому я открыл код библиотечной реализации. Но там была не лёгкая и понятная реализация, а ``. Это было описание пальчиковых деревьев, необходимость и элегантность которых для этой структуры данных хорошо раскрывается текущей статьёй._

#### Пальчиковые деревья

В этой статье мы рассмотрим пальчиковые деревья. Это функциональные неизменяемые структуры данных общего назначения, разработанные в работе Гинце и Паттерсона. Пальчиковые деревья обеспечивают функциональную структуру данных Последовательность (`sequence`), которая обеспечивает амортизированной доступ постоянный во времени для добавления как в начало, так и в конец последовательности, а также логарифмическое время для конкатенации и для произвольного доступа. В дополнение к хорошему времени асимптотических исполнения, структура данных оказывается невероятно гибкой: в сочетании с моноидальными тегами на элементах, пальчиковые деревья могут быть использованы для реализации эффективных последовательностей с произвольным доступом, упорядоченных последовательностей, интервальных деревьев и очередей приоритетов. Статья будет состоять из 3-х частей: Пальчиковые деревья (Часть 1. Представление) Пальчиковые деревья (Часть 2. Операции) Пальчиковые деревья (Часть 3. Применение) [Читать дальше →][1]

[1]: http://habrahabr.ru/post/240783/#habracut

[>] Анализ дружеских связей VK с помощью Python. Продолжение
habra.14
habrabot(difrex,1) — All
2014-11-14 15:30:39


В предыдущей [статье][1] мы на основе общих друзей ВКонтакте строили граф, а сегодня поговорим о том, как получить список друзей, друзей друзей и так далее. Предполагается, что вы уже прочли предыдущую [статью][2], и я не буду описывать все заново. Под хабракатом большие картинки и много текста. [Читать дальше →][3]

[1]: http://habrahabr.ru/post/221251/
[2]: http://habrahabr.ru/post/221251/
[3]: http://habrahabr.ru/post/243229/#habracut

[>] Python реализация парадигмы event-driven с помощью сопрограмм
habra.14
habrabot(difrex,1) — All
2014-11-14 19:30:14


Статья про то, как с помощью[ расширенных генераторов Python][1] сделать собственную реализацию сопрограмм, переключающихся по получению событий. Простота кода получившегося модуля вас приятно удивит и прояснит новые и мало используемые возможности языка, которые можно получить, используя такие генераторы. Статья поможет разобраться и с тем, как это устроено в серьезных реализациях: [asyncio][2], [tornado][3], etc. [Читать дальше →][4]

[1]: http://legacy.python.org/dev/peps/pep-0342/
[2]: https://docs.python.org/3/library/asyncio.html
[3]: http://www.tornadoweb.org/en/stable/
[4]: http://habrahabr.ru/post/243207/#habracut

[>] [Перевод] Выразительный JavaScript: Модули
habra.14
habrabot(difrex,1) — All
2014-11-15 04:00:03




#### Содержание



* [Введение][1]
* [Величины, типы и операторы][2]
* [Структура программ][3]
* [Функции][4]
* [Структуры данных: объекты и массивы][5]
* [Функции высшего порядка][6]
* [Тайная жизнь объектов][7]
* [Проект: электронная жизнь][8]
* [Поиск и обработка ошибок][9]
* [Регулярные выражения][10]
* [Модули][11]
* [Проект: язык программирования][12]
* JavaScript и браузер
* Document Object Model
* Обработка событий
* Проект: игра-платформер
* Рисуем на Canvas
* HTTP
* Формы и поля ввода
* Проект: Paint
* Node.js
* Проект: веб-сайт по обмену умениями
* [Песочница для кода][13]

_Начинающий программист пишет программы так, как муравьи строят муравейник – по кусочку, без размышления над общей структурой. Его программы как песок. Они могут недолго простоять, но вырастая, они разваливаются. Поняв проблему, программист тратит много времени на размышления о структуре. Его программы получаются жёстко структурированными, как каменные изваяния. Они тверды, но когда их нужно менять, над ними приходится совершать насилие. Мастер-программист знает, когда нужна структура, а когда нужно оставить вещи в простом виде. Его программы словно глина – твёрдые, но податливые. Мастер Юан-Ма, Книга программирования_ У каждой программы есть структура. В частностях она определяется тем, как программист делит код на функции и блоки внутри этих функций. Программисты вольны в создании структуры своей программы. Структура определяется больше вкусом программиста, нежели функциональностью программы. В случае больших программ отдельные функции уже теряются в коде, и нам необходима единица организации кода больших масштабов. Модули группируют программный код по каким-то определённым признакам. В этой главе мы рассмотрим преимущества такого деления и техники создания модулей в JavaScript. [Читать дальше →][14]

[1]: http://habrahabr.ru/post/240219/
[2]: http://habrahabr.ru/post/240223/
[3]: http://habrahabr.ru/post/240225/
[4]: http://habrahabr.ru/post/240349/
[5]: http://habrahabr.ru/post/240813/
[6]: http://habrahabr.ru/post/241155/
[7]: http://habrahabr.ru/post/241587/
[8]: http://habrahabr.ru/post/241776/
[9]: http://habrahabr.ru/post/242609/
[10]: http://habrahabr.ru/post/242695/
[11]: http://habrahabr.ru/post/243273/
[12]: http://habrahabr.ru/post/243277/
[13]: http://eloquentjavascript.net/code
[14]: http://habrahabr.ru/post/243273/#habracut

[>] Очередной взлом FL.ru
habra.15
habrabot(difrex,1) — All
2015-07-28 13:00:02


Печальное зрелище представилось сейчас моему усталому рабочему взгляду… Буквально полчаса назад, на главной странице проектов на всем известной некогда флагманской бирже Рунета — был опубликован очень интригующий проект. Который сразу привлек внимание мониторящих ленту фрилансеров. Проект опубликован с аккаунта главного администратора биржи. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/263703/#habracut

[>] Python meetup — 2 года
habra.15
habrabot(difrex,1) — All
2015-07-28 13:00:02


![Python Meetup Minsk][1] Всем привет! В июне Python Meetup исполнилось 2 года. Чтобы отметить это, мы собрались в субботу 27 июня и провели весь день вместе, общаясь и слушая доклады. Речь шла о:

* Оптимальном наименовании переменных
* Безопасном запуске чужого кода на своем компьютере
* Использовании Jenkins в тестировании игр
* Парном удаленном программировании
* Объектной подсистеме Python

Записи выступлений под катом. Хорошего просмотра! [Читать дальше →][2]

[1]: https://habrastorage.org/files/729/e77/347/729e773474f5463794c68da822157b9e.jpg
[2]: http://habrahabr.ru/post/263507/#habracut

[>] Как превратить саму сеть в полноценную систему защиты?
habra.15
habrabot(difrex,1) — All
2015-07-28 13:00:02


Многие предприятия до сих пор строят свою систему защиты опираясь на уже устаревший периметровый подход, сосредотачивая все средства безопасности в одной-двух контрольных точках сети, полностью забывая про наличие обходных каналов — Wi-Fi, флешек, 4G, ActiveSync и т.п. Да и про внутреннего нарушителя, который уже находится внутри сети и может выполнять свое “черное дело”, не боясь быть обнаруженным периметровыми средствами защиты, многие тоже забывают. Что делать в такой ситуации? ![][1] Вариантов можно назвать три. Первый — построить во внутренней сети еще одну, но уже наложенную сеть из средств безопасности? Я думаю любой производитель средств защиты с удовольствием подготовит предложение по данному варианту, включив в него множество сенсоров IPS и межсетевых экранов, которые будут мониторить и контролировать внутренние сетевые потоки и обнаруживать вредоносный код и неразрешенные приложения. Но такой вариант сопряжен с рядом трудностей. Во-первых, не всегда существующий дизайн сети позволяет реализовать такое подключение. То сеть работает на скоростях, неподвластных средствам защиты, то span-порты для подключения IDS уже заняты, то предприятие активно задействует виртуализацию и средства защиты не могут эффективно контролировать трафик, не уходящий за пределы физического сервера. Во-вторых, установка дополнительных устройств во внутренней сети требует немалых финансовых средств, что в условиях непростой экономической ситуации не всегда реализуемо. [Читать дальше →][2]

[1]: https://habrastorage.org/files/579/f57/bd2/579f57bd205e4cd299668f64b403358f.png
[2]: http://habrahabr.ru/post/263615/#habracut

[>] Исследование Oracle Form при помощи Java Development API(JDAPI)
habra.15
habrabot(difrex,1) — All
2015-07-28 13:00:02


Для поиска зависимости форма от обьектов базы данных мне нужно было разобрать файл Oracle Form(в дальнейшем — fmb файл). Fmb — это псевдотекстовый файл, если очень нужно, PL/SQL код можно увидеть и искать как используются обьекты БД там, но все равно трудно понять тип триггера или программы и к какому элементу формы он относится. Можно использовать конвертацию в FMT, но не думаю, что разбор fmt файла легче чем использование API, который дает Оракл. Тем более, что вся остальная часть моей программы была написана в Java Swing, логичней было использовать JDAPI, который позволяет разобрать форм по полочкам и видеть весь код PL/SQL и properties, которые меня интересовали. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/263675/#habracut

[>] Юнит-тесты в Caché – это просто
habra.15
habrabot(difrex,1) — All
2015-07-28 17:00:02


Больше всего программисты любят программы, в которых не нужно исправлять баги. Шагом на пути к этой несбыточной мечте является написание юнит-тестов. В Caché, как и в любой современной СУБД, есть реализация фреймворка для автоматического выполнения тестов. [![][1]][2] [Читать дальше →][3]

[1]: https://habrastorage.org/files/d24/9e3/83b/d249e383b49540798cf8dd0fb2036ee1.jpg "Николай Загреков — Трое рабочих за трамбовкой"
[2]: http://habrahabr.ru/company/intersystems/blog/263677/
[3]: http://habrahabr.ru/post/263677/#habracut

[>] Сколько чисел в массиве
habra.15
habrabot(difrex,1) — All
2015-07-28 17:00:02


_Небольшая предыстория. Этот пост я написал для двух целей. Во-первых, обкатать [конвертор разметки][1] Markdown + ![inline_formula][2] в хабрачитаемый вид. Во-вторых, рассказать об интересной задаче из data streaming. К концу написания, я обнаружил [пост про LogLog][3] четырехлетней давности. На мою удачу автор предыдущего поста делал упор на реализацию. Я же, полагаясь на ![inline_formula][4], расскажу больше о математике._ Давайте представим, что у нас есть роутер. Через роутер проходит много пакетов по разным адресам. Нам интересно получить статистику, как много адресов задействовано в коммуникации. Есть пара проблем.

* Пакетов так много, что запомнить их все нельзя. Сказать ушедшему пакету «Вернись! Я все прощу,» — тоже.
* Всех возможных адресов ![inline_formula][5]. Столько памяти на роутере нет.

![some title][6] **Задача**. _Есть последовательность целых чисел ![inline_formula][7], все числа принимают значения от ![inline_formula][8] до ![inline_formula][9]. Требуется в один проход посчитать количество различных чисел, используя ![inline_formula][10] памяти_. [Читать дальше →][11]

[1]: http://habrahabr.ru/post/263213/
[2]: http://tex.s2cms.ru/svg/%5Cinline%20%5CLaTeX
[3]: http://habrahabr.ru/post/119852/
[4]: http://tex.s2cms.ru/svg/%5Cinline%20%5CLaTeX
[5]: http://tex.s2cms.ru/svg/%5Cinline%202%5E%7B32%7D
[6]: https://habrastorage.org/files/9e5/6e3/758/9e56e3758e6543cf8a7c1b2490bb7c8f
[7]: http://tex.s2cms.ru/svg/%5Cinline%20%5Csigma%20%3D%20a_1%2C%20a_2%2C%20%5Ccdots%2C%20a_m
[8]: http://tex.s2cms.ru/svg/%5Cinline%200
[9]: http://tex.s2cms.ru/svg/%5Cinline%20n%20-%201
[10]: http://tex.s2cms.ru/svg/%5Cinline%20%5Coverline%7Bo%7D%28n%20%2B%20m%29
[11]: http://habrahabr.ru/post/263211/#habracut

[>] Как написать пост с формулами: markdown + LaTeX
habra.15
habrabot(difrex,1) — All
2015-07-28 17:00:02


Привет! На Хабре периодически появляются статьи, где авторы хотят вставить математические формулы: ![inline_formula][1], ![inline_formula][2] или даже



У некоторых это получается, у некоторых — с трудом. [parpalak][3] сделал web-сервис для вставки svg формул, и это очень круто. Я хочу дополнить его небольшим скриптом, с которым вставка многих формул сведется к одной команде. [Читать дальше →][4]

[1]: http://tex.s2cms.ru/svg/%5Cinline%20%5Caleph_0
[2]: http://tex.s2cms.ru/svg/%5Cinline%20A%20%5Chookrightarrow%20B
[3]: http://habrahabr.ru/users/parpalak/
[4]: http://habrahabr.ru/post/263213/#habracut

[>] [Перевод] Выразительный JavaScript: Проект: язык программирования
habra.14
habrabot(difrex,1) — All
2014-11-15 04:30:03




#### Содержание



* [Введение][1]
* [Величины, типы и операторы][2]
* [Структура программ][3]
* [Функции][4]
* [Структуры данных: объекты и массивы][5]
* [Функции высшего порядка][6]
* [Тайная жизнь объектов][7]
* [Проект: электронная жизнь][8]
* [Поиск и обработка ошибок][9]
* [Регулярные выражения][10]
* [Модули][11]
* [Проект: язык программирования][12]
* JavaScript и браузер
* Document Object Model
* Обработка событий
* Проект: игра-платформер
* Рисуем на Canvas
* HTTP
* Формы и поля ввода
* Проект: Paint
* Node.js
* Проект: веб-сайт по обмену умениями
* [Песочница для кода][13]

_То, что проверяет и определяет смысл выражений в языке программирования, является в свою очередь просто программой. Хэл Абельсон и Жеральд Сасман, «Структура и интерпретация компьютерных программ». Когда учение спросил учителя о природе цикла Данных и Контроля, Юань-Ма ответил: «Подумай о компиляторе, компилирующем самого себя». Мастер Юань-Ма, «Книга программирования»_ Создать свой язык программирования удивительно легко (пока вы не ставите запредельных целей) и довольно поучительно. Главное, что я хочу продемонстрировать в этой главе – в построении языка нет никакой магии. Мне часто казалось, что некоторые человеческие изобретения настолько сложны и заумны, что мне их никогда не понять. Однако после небольшого самообразования и ковыряния такие штуки часто оказываются довольно обыденными. Мы построим язык программирования Egg (Яйцо). Он будет небольшим, простым, но достаточно мощным для выражения любых расчётов. Он также будет осуществлять простые абстракции, основанные на функциях. [Читать дальше →][14]

[1]: http://habrahabr.ru/post/240219/
[2]: http://habrahabr.ru/post/240223/
[3]: http://habrahabr.ru/post/240225/
[4]: http://habrahabr.ru/post/240349/
[5]: http://habrahabr.ru/post/240813/
[6]: http://habrahabr.ru/post/241155/
[7]: http://habrahabr.ru/post/241587/
[8]: http://habrahabr.ru/post/241776/
[9]: http://habrahabr.ru/post/242609/
[10]: http://habrahabr.ru/post/242695/
[11]: http://habrahabr.ru/post/243273/
[12]: http://habrahabr.ru/post/243277/
[13]: http://eloquentjavascript.net/code
[14]: http://habrahabr.ru/post/243277/#habracut

[>] Нейроинтерфейсы для людей (2003-2016). Купить или разработать самому?
habra.15
habrabot(difrex,1) — All
2015-07-28 17:00:02


![][1] Было время, когда я за один присест выливал на голову стакан жидкости для линз, чтобы поэксперементировать с Emotiv\`ом. Затем был тюбик геля из шприца [в лаборатории МГУ][2]. Сейчас я обладатель «сухого» одноэлектродного нейроинтерфейса NeuroSky MindWave. (Кстати, это отличная игрушка для летнего лагеря, я сделал на инженерной олимпиаде задание по поиску мозговых имплантов, для этого надо было поставить рекорд по «удержанию шарика в воздухе мыслью» — базовая бесплатная игруха к NeuroSky) Как показывает [опрос][3], нейроинтерфейсы неизбежны. ![][4] По моему пришло время написать какие были и какие будут в ближайшее время потребительские нейроинтерфейсы. А так же коротко о том, как можно собрать свой девайс самому. (И быстренько натренироваться управлять мозгом, чтобы побеждать во всяких [конкурсах][5] или [пивка налить][6].) Под катом обзор устройств, которые были доступны в потребительском сегменте и open-source проекты для самостоятельного изготовления и создания софта. [Читать дальше →][7]

[1]: https://habrastorage.org/files/cae/1aa/b2e/cae1aab2e4d54d5b80e6f12f9a37d682.jpg
[2]: http://geektimes.ru/company/neuronspace/blog/242633/
[3]: http://habrahabr.ru/company/neuronspace/blog/255945/
[4]: https://habrastorage.org/files/55f/2ec/f0e/55f2ecf0eb3c4d0a9587193dbcbb384b.jpg
[5]: http://habrahabr.ru/article/257075/
[6]: http://habrahabr.ru/post/247451/
[7]: http://habrahabr.ru/post/262357/#habracut

[>] Apple прокомментировала ситуацию с уязвимостью Masque в iOS
habra.14
habrabot(difrex,1) — All
2014-11-15 09:30:03


На этой неделе компания FireEye [опубликовала][1] информацию, относящуюся к т. н. «Masque» уязвимости в iOS. Уязвимость позволяет установить вредоносное приложение поверх уже существующего, причем это новое приложение получит доступ ко всем файлам предыдущего. Это при условии того, что устанавливаемое приложение будет иметь тот же самый [идентификатор][2] «bundle identifier», который iOS & OS X используют для идентификации приложений на уровне ОС, например, при доставке им обновлений. Уязвимости подвержены все версии iOS начиная с 7.1.1, включая, последнюю iOS 8.1.1 beta. ![][3] [Читать дальше →][4]

[1]: http://www.fireeye.com/blog/technical/cyber-exploits/2014/11/masque-attack-all-your-ios-apps-belong-to-us.html
[2]: https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringYourApp/ConfiguringYourApp.html
[3]: //habrastorage.org/files/8d3/e5c/edd/8d3e5ceddf18427687a92d9cbd90a210.png
[4]: http://habrahabr.ru/post/243279/#habracut

[>] Слайдшоу на CSS (Sass)
habra.14
habrabot(difrex,1) — All
2014-11-15 16:30:02


Тема, мягко говоря, не новая, существует ряд статей — на [Smashing Magazine][1] и в [блогах][2], а так же просто [реализации][3] ([исходный код][4], только та часть, которая касается анимации). Но, помимо фатального недостатка, у данных реализаций есть недостатки фактические — первые два варианта не предоставляют управления, а последний хоть и предоставляет, но при переключении слайдов анимация останавливается и её приходится запускать снова. Пожалуй, можно сказать что это фича, но мне хотелось полностью спародировать поведение слайдшоу как если бы оно было написано на javascript (что в итоге всё равно не удалось) — то есть при переклчении анимация продолжается, но начинается с выбранного слайда. Кому лень читать — сразу **[конечный результат][5]**.



[Читать дальше →][6]

[1]: http://www.smashingmagazine.com/2012/04/25/pure-css3-cycling-slideshow/
[2]: http://themarklee.com/2013/10/16/simple-crossfading-slideshow-css/
[3]: http://www.creativejuiz.fr/trytotry/juizy-slideshow-full-css3-html5/
[4]: http://pastebin.com/mMFRYTWn
[5]: http://codepen.io/MartinSchulz/pen/RNwyaE
[6]: http://habrahabr.ru/post/202844/#habracut

[>] [recovery mode] ReactOS 0.3.17 — «нумерологический» релиз операционной системы
habra.14
habrabot(difrex,1) — All
2014-11-15 18:00:04


Добрый день! ![image][1] Меня зовут Алексей Брагин, я приветствую всех гостей на открытии [блога компании «Фонд ReactOS»][2], которое стало возможным благодаря программе поддержи стартапов от «Тематических Медиа». От лица всей команды разработчиков проекта ReactOS представляю вашему вниманию новый релиз нашей операционной системы под номером 0.3.17 [Читать дальше →][3]

[1]: http://habrastorage.org/getpro/habr/post_images/e9c/f7d/3d5/e9cf7d3d514615df8cf81b73e4876d03.jpg
[2]: http://habrahabr.ru/company/reactos/
[3]: http://habrahabr.ru/post/243295/#habracut

[>] [Перевод] Стабильность как результат
habra.14
habrabot(difrex,1) — All
2014-11-16 03:30:02


Эта статья — перевод второй части из серии блог-постов, приуроченных к предстоящему релизу первой стабильной версии языка Rust. Перевод первой части можно прочитать [здесь][1]. Замечания к переводу прошу слать в личку.

----

[Много важного][2] несёт с собой предстоящий релиз Rust 1.0, но самым главным в нём являются наши усилия по обеспечению стабильности, аналогичные нашей постоянной ориентации на безопасность. Начиная с версии 1.0, мы перейдём на шестинедельный цикл релизов и к набору «каналов». Канал стабильных релизов обеспечит безболезненные обновления, а канал ночных сборок предоставит первопроходцам доступ к тому функционалу, над которым в данным момент ведётся работа. [Читать дальше →][3]

[1]: http://habrahabr.ru/post/237199/
[2]: http://blog.rust-lang.org/2014/09/15/Rust-1.0.html
[3]: http://habrahabr.ru/post/243315/#habracut

[>] Выразительный JavaScript: JavaScript и браузер
habra.14
habrabot(difrex,1) — All
2014-11-16 04:30:03




#### Содержание



* [Введение][1]
* [Величины, типы и операторы][2]
* [Структура программ][3]
* [Функции][4]
* [Структуры данных: объекты и массивы][5]
* [Функции высшего порядка][6]
* [Тайная жизнь объектов][7]
* [Проект: электронная жизнь][8]
* [Поиск и обработка ошибок][9]
* [Регулярные выражения][10]
* [Модули][11]
* [Проект: язык программирования][12]
* [JavaScript и браузер][13]
* Document Object Model
* Обработка событий
* Проект: игра-платформер
* Рисуем на Canvas
* HTTP
* Формы и поля ввода
* Проект: Paint
* Node.js
* Проект: веб-сайт по обмену умениями
* [Песочница для кода][14]

_Браузер – крайне враждебная программная среда Дуглас Крокфорд, «Язык программирования JavaScript» (видеолекция)_ Следующая часть книги расскажет о веб-браузерах. Без них не было бы JavaScript. А если бы и был, никто бы не обратил на него внимания. Технологии веба с самого начала были децентрализованными – не только технически, но и с точки зрения их эволюции. Различные разработчики браузеров добавляли новую функциональность «по случаю», непродуманно, и часто эта функциональность обретала поддержку в других браузерах и становилась стандартом. Это и благословление и проклятие. С одной стороны, здорово не иметь контролирующего центра, чтобы технология развивалась различными сторонами, иногда сотрудничающими, иногда конкурирующими. С другой – бессистемное развитие языка привело к тому, что результат не является ярким примером внутренней согласованности. Некоторые части привносят путаницу и беспорядок. [Читать дальше →][15]

[1]: http://habrahabr.ru/post/240219/
[2]: http://habrahabr.ru/post/240223/
[3]: http://habrahabr.ru/post/240225/
[4]: http://habrahabr.ru/post/240349/
[5]: http://habrahabr.ru/post/240813/
[6]: http://habrahabr.ru/post/241155/
[7]: http://habrahabr.ru/post/241587/
[8]: http://habrahabr.ru/post/241776/
[9]: http://habrahabr.ru/post/242609/
[10]: http://habrahabr.ru/post/242695/
[11]: http://habrahabr.ru/post/243273/
[12]: http://habrahabr.ru/post/243277/
[13]: http://habrahabr.ru/post/243311/
[14]: http://eloquentjavascript.net/code
[15]: http://habrahabr.ru/post/243311/#habracut

[>] Mobile Pwn2Own 2014: итоги
habra.14
habrabot(difrex,1) — All
2014-11-16 18:30:03


Несколько дней назад завершился известный контест [Mobile Pwn2Own 2014][1], который проходил в Токио. Ресерчерам уязвимостей из security-компаний предлагалось продемонстрировать успешную эксплуатацию уязвимостей на известных мобильных устройствах, в числе которых, Apple iPhone 5s & iPad Mini, Amazon Fire Phone, BlackBerry Z30, Google Nexus 5 & 7, а также Nokia Lumia 1520 и Samsung Galaxy S5. Успешная эксплуатация уязвимостей должна привести к удаленному исполнению кода в мобильной ОС через браузер или получению контроля над устройством через встроенное приложение / саму ОС (iOS, Fire OS, BlackBerry OS, Android, Windows Phone). Все ОС поставлялись с самыми актуальными обновлениями (_fully patched_). ![][2] [Читать дальше →][3]

[1]: http://h30499.www3.hp.com/t5/HP-Security-Research-Blog/Mobile-Pwn2Own-Tokyo-2014/ba-p/6599054#.VGhbvZCsXQN
[2]: //habrastorage.org/files/318/9a3/845/3189a38456f24f90aee1ce11281efc8a.png
[3]: http://habrahabr.ru/post/243323/#habracut

[>] Писать плагины с AppDomain — весело
habra.14
habrabot(difrex,1) — All
2014-11-16 22:30:04


Как часто вы писали плагины для своих приложений? В статье я хочу рассказать как можно написать плагины используя AppDomain, и кросс доменные операции. Плагины будем писать для уже существующего моего приложения TCPChat. Кто хочет повелосипедить — вперед под кат. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/242209/#habracut

[>] Типы личности по MBTI: влияние на восприятие рекламы
habra.15
habrabot(difrex,1) — All
2015-07-28 18:30:02


Привет Хабр! Анализируя пользовательские данные для нужд маркетинга и рекламы, мы решили исследовать влияние типа личности пользователя на то, как он реагирует на рекламное объявление. За основу решили взять, пожалуй, самую популярную типологию линостей [MBTI][1] (Myers-Briggs Type Indicator), известную еще с середины 20-го века. Многие крупные западные компании используют тесты MBTI при найме или при формировании команды для работы над проектами. Но нас интересует, конечно, не готовность пользователя к командной работе, а влияние его типа личности на желание кликнуть по баннеру. Поэтому вопрос, который мы исследовали звучит так: «Могут ли типы личности влиять на [CTR][2] в рекламных кампаниях?» В этой статье я расскажу о том как мы это делали. ![][3] [Читать дальше →][4]

[1]: https://en.wikipedia.org/wiki/Myers–Briggs_Type_Indicator
[2]: https://en.wikipedia.org/wiki/Click-through_rate
[3]: https://habrastorage.org/files/d19/b9a/524/d19b9a524683464fbea6b481468db31c.jpg
[4]: http://habrahabr.ru/post/263729/#habracut

[>] «МойОфис»: Первые шаги
habra.15
habrabot(difrex,1) — All
2015-07-28 20:30:03


Позвольте представиться, мы – [«Новые облачные технологии»][1], команда разработчиков проекта [«МойОфис»][2]. Коллектив состоит из инженеров, принимавших участие в создании офисных пакетов «Лексикона» и мобильного QuickOffice. Не так давно о нас уже успели рассказать на [CNews][3], [«МегаМозге»][4] и даже вышел небольшой [пользовательский обзор][5]. Пришло время для повествования от первого лица. Эта статья открывает наш блог на «Хабрахабре», в котором мы будем писать о том, кто мы и что делаем. Давайте знакомиться! ![][6] [Читать дальше →][7]

[1]: http://ncloudtech.ru/
[2]: http://myoffice.ru/product-apps.html
[3]: http://www.cnews.ru/top/2015/04/01/sozdatel_dendy_i_eksprezident_akado_investiroval_v_rossiyskogo_ubiycu_microsoft_office_594466
[4]: http://megamozg.ru/post/11094/
[5]: http://vasneverov.livejournal.com/358024.html
[6]: https://habrastorage.org/files/351/6d1/90f/3516d190fe3249f18fe05670c8e26fd3.jpg
[7]: http://habrahabr.ru/post/263719/#habracut

[>] One-liner для компиляции шаблонов на Lua
habra.14
habrabot(difrex,1) — All
2014-11-16 23:00:03


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

### Подстановка переменных



<a href="<%url%>"><%label%></a>




### Логические конструкции



Будет
<? if 1 > 2 then ?>
лучше
<? else ?>
хуже
<? end ?>




## Циклы



<ul>
<? for i = 1, 9999 do ?>
<li>ФЗ №<%i%></li>
<? end ?>
</ul>


[Читать дальше →][1]

[1]: http://habrahabr.ru/post/243321/#habracut

[>] В Android обнаружены уязвимости, позволяющии получить доступ к смартфону через MMS
habra.15
habrabot(difrex,1) — All
2015-07-29 09:00:03


Компания ZIMPERIUM, специализирующаяся на компьютерной безопасности, обнаружила критические уязвимости в ядре Android, которые позволяют выполнять код через отправку MMS сообщений или Google Hangout. По примерной оценке, данной опасности подвержено 95% пользователей устройств под управлением системы Android (около 950 миллионов человек). И что самое опасное, данную уязвимость достаточно просто использовать: необходимо лишь знать номер мобильного телефона жертвы. ![image][1] [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/3ba/bc6/5ea/3babc65eae180e2cbc639c71698f7670.jpg
[2]: http://habrahabr.ru/post/263759/#habracut

[>] [Перевод] Секретный конструктор std::share_ptr
habra.15
habrabot(difrex,1) — All
2015-07-29 10:00:03


У `std::shared_ptr` есть небольшой секрет: очень полезный конструктор, о котором большинство программистов даже не слышали. Он был добавлен только в стандарте С++11, и его не было даже в TR1 версии `shared_ptr`. Однако он поддерживается gcc с версии 4.3, и компилятором MSVC еще с времен Visual Studio 2010. В Boost он появился примерно с 1.35.0. В большинстве обучающих материалов, в которых описывается `std::shared_ptr` ничего нет об этом конструкторе. Скотт Майерс ни словом не обмолвился о нем в «Effective Modern C++», другой автор — Nicolai Josuttis уделил этому конструктору около половины страницы в своей книге «The C++ Standard Library». [][1]



Итак, что представляет собой этот [секретный конструктор? ][2]

[1]: http://habrahabr.ru/post/263751/
[2]: http://habrahabr.ru/post/263751/#habracut

[>] [Перевод] Структуры данных. Неформальный гайд
habra.15
habrabot(difrex,1) — All
2015-07-29 10:30:01


![][1] Конечно, можно быть успешным программистом и без сакрального знания структур данных, однако они совершенно незаменимы в некоторых приложениях. Например, когда нужно вычислить кратчайший путь между двумя точками на карте, или найти имя в телефонной книжке, содержащей, скажем, миллион записей. Не говоря уже о том, что структуры данных постоянно используются в спортивном программировании. Рассмотрим некоторые из них более подробно. [Читать дальше →][2]

[1]: https://habrastorage.org/files/0a5/6fb/6be/0a56fb6bec21413e9328b33cf511ea87.png
[2]: http://habrahabr.ru/post/263765/#habracut

[>] OpenSource проект может развиваться и приносить прибыль?
habra.15
habrabot(difrex,1) — All
2015-07-29 10:30:01


Уже довольно долгое время я задаюсь вопросом: «Может ли в наших суровых реалиях жить и развиваться Open Source проект?». Этот вопрос меня периодически тревожит, так как я сам являюсь автором одного такого проекта — WysiBB. Я задавал подобный вопрос на различных ресурсах, были вопросы и на Тостере. Но по сути все сводилось к тому, что в русскоязычном сегменте интернета не работают кнопки «Поддержать проект», «Пожертвовать» и т.д. и развиваться могут только проекты с огромной аудиторией и/или платными функциями. ![image][1]

##### В чем суть?

Но вот наконец в один прекрасный день, я наткнулся на интересную идею, как можно получать некоторые финансовые вливания в развитие и видеть, какие фичи наиболее востребованы пользователями. Эту идею я увидел на сайте Robomongo(кто не знает, это GUI для MongoDB). И ее суть заключается в следующем: пользователю предоставляется возможность выбрать из списка issues(с джитхаба) наиболее его тревожащую и пожертвовать средства на ее доработку. Когда пользователь делает пожертвование, рейтинг приоритетности этой фичи повышается. Так автор проекта получает средства на свой кошелек и видит какие фичи имеют наивысший приоритет(больше всего пожертвований) и соответственно являются наиболее востребованными. Автор приступает к их разработке в первую очередь, проект развивается, а пользователь получает долгожданную фичу. Мне эта идея понравилась и я решил реализовать подобный механизм на своем проекте, а когда начал работу над этим сервисом, понял что такой сервис может быть полезен не только для меня. Так появился на свет [**GitFund**][2]. [Читать дальше →][3]

[1]: https://habrastorage.org/files/b88/5d5/09e/b885d509e5fe456ab02a8f17bc61a395.png
[2]: http://www.gitfund.org
[3]: http://habrahabr.ru/post/263721/#habracut

[>] QML: анимированная иконка-«бутерброд» в стиле Material Design за 20 минут
habra.14
habrabot(difrex,1) — All
2014-11-17 06:00:03


Привет, Хабр. Многие разработчики, интересующиеся разработкой пользовательских интерфейсов (да и просто пользователи Android) уже успели ознакомиться с новой концепцией интерфейса Material Design, активно продвигаемой Google в рамках выпуска Android 5.0. Знакомясь с [руководством по оформлению приложений][1] и внимательно разглядев недавно обновившийся Google Play, я обратил внимание на один очень симпатичный компонент — иконку меню (в народе известную как hamburger icon), анимированно превращающуюся в иконку «назад», и решил реализовать такой компонент на Qt с использованием декларативного языка описания интерфейса QML. ![][2] В этой статье я расскажу, как реализовать такой компонент и с какими проблемами и сложностями можно столкнуться в процессе. Ссылка на полный исходный код в конце поста. [Читать дальше →][3]

[1]: http://www.google.com/design/spec/animation/delightful-details.html
[2]: //habrastorage.org/files/793/d88/8a6/793d888a64f64117bb7acad899d414b2.gif
[3]: http://habrahabr.ru/post/243355/#habracut

[>] Как и зачем ломают интернет-магазины
habra.14
habrabot(difrex,1) — All
2014-11-17 13:00:03


![][1] Вы владелец интернет магазина, жизнь прекрасна и замечательна – вы договариваетесь с поставщиками или налаживаете собственное производство. Специально обученные люди или Вы сами занимаетесь продвижением, контекстной рекламой. Магазин мало-помалу начинает приносить доход и занимать свою нишу в расширяющемся рынке интернет торговли. И становится мишенью. [Читать дальше →][2]

[1]: //habrastorage.org/files/04d/7d7/de0/04d7d7de0bfd4d6bae20b57f83cff9ab.jpg
[2]: http://habrahabr.ru/post/242953/#habracut

[>] Ликбез: методы ресайза изображений
habra.14
habrabot(difrex,1) — All
2014-11-17 13:30:03


Почему изображение, масштабированное с бикубической интерполяцией, выглядит не как в Фотошопе. Почему одна программа ресайзит быстро, а другая — нет, хотя результат одинаковый. Какой метод ресайза лучше для увеличения, а какой для уменьшения. Что делают фильтры и чем они отличаются. Вообще, это было вступлением к другой статье, но оно затянулось и вылилось в отдельный материал. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/243285/#habracut

[>] Семафоры, или как разруливать доступ к ресурсам в DBMS Caché
habra.14
habrabot(difrex,1) — All
2014-11-17 15:00:03


Часто при многопользовательском или параллельном доступе к данным возникает ситуация, когда необходимо заблокировать/дать доступ к переменной или участку памяти одновременно нескольким процессам. Решается данная задача с помощью мьютексов, семафоров, мониторов и т. д. В данном посте рассмотрим как же реализован один из методов предоставления совместного доступа к данным — **семафор** — в СУБД Intersystems Caché. [Что же такое семафор в Cache и с чем его едят?][1]

[1]: http://habrahabr.ru/post/243337/#habracut

[>] Инфраструктура команд для вызова пользователем действий в шаблоне MVVM
habra.14
habrabot(difrex,1) — All
2014-11-17 15:00:03


Представим типичный пользовательский интерфейс. Есть несколько элементов управления, которые запускают некоторые повторяемые (за время жизни приложения) действия разной сложности. Чтобы сложные действия, такие как обращение к различным носителям, обращение к сети или сложное вычисление, не снижали отзывчивость интерфейса, они должны быть асинхронными. Дополнительно могут быть элементы управления, отменяющие асинхронно запущенное действие. Действие имеет свойство состояния (неактивно, запущено, завершено успешно, завершено с ошибкой, отменено), которое тем или иным образом отображается пользователю. Принятый в WPF, Silverlight и WinPhone шаблон проектирования [MVVM][1] диктует, чтобы такое «действие» было частью модели представления, давая возможность вызывать сервисы модели из пользовательского интерфейса без создания между ними жёсткой связи. К сожалению, такое «действие» в базовой библиотеке классов не реализовано. Ближайшие имеющиеся в библиотеке сущности, такие как задачи **System.Threading.Tasks.Task**, команды **System.Windows.Input.ICommand** и делегаты **System.Delegate**, не подходят: задачи всегда одноразовые и не могут представлять повторяемое действие, делегаты и команды не поддерживают отмену и не содержат свойств состояния, а команды вообще не могут быть асинхронными. Далее я предлагаю решение в виде небольшой библиотеки классов, дающей возможность легко использовать описанные «действия» в ваших приложениях. [Читать дальше →][2]

[1]: http://ru.wikipedia.org/wiki/Model-View-ViewModel
[2]: http://habrahabr.ru/post/242073/#habracut

[>] [Из песочницы] Введение в Osquery от Facebook
habra.14
habrabot(difrex,1) — All
2014-11-17 15:30:04




#### Предисловие

Данная публикация — относительно вольный перевод опубликованоой в блоге Facebook статьи [«Introducing osquery»][1].

#### Введение в osquery

Мониторинг состояния вашей системы в реальном времени очень важен. В Facebook мы разработали фреймворк под названием osquery, который позволяет взглянуть на низкоуровневый мониторинг операционной системы по новому. Osquery представляет операционную систему как высокопроизводительную реляционную базу данных. Этот подход позволяет вам писать SQL запросы, чтобы легко и эффективно получать информацию о вашей системе. С osquery текущее состояние ОС представляется в виде SQL таблиц из которых вы можете получить информацию о:

* запущенных процессах;
* загруженных модулях ядра;
* открытых стевых соединениях.

[Читать дальше →][2]

[1]: https://code.facebook.com/posts/844436395567983/introducing-osquery/
[2]: http://habrahabr.ru/post/243391/#habracut

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 210