Добавить любой RSS - источник (включая журнал LiveJournal) в свою ленту друзей вы можете на странице синдикации.
Исходная информация - http://habrahabr.ru/. Данный дневник сформирован из открытого RSS-источника по адресу http://habrahabr.ru/rss/, и дополняется в соответствии с дополнением данного источника. Он может не соответствовать содержимому оригинальной страницы. Трансляция создана автоматически по запросу читателей этой RSS ленты. По всем вопросам о работе данного сервиса обращаться со страницы контактной информации.[Обновить трансляцию]
Все началось с данного топика на сайте gamedev.ru. Топикстартер предложил найти сортировку, которая обладает следующими свойствами:
Время выполнения — гарантированные O(nlogn).
Использование O(1) дополнительной памяти.
Применимость для сортировки данных в односвязных списках (но не ограничиваясь ими).
Оговорки на все три ограничения:
Гарантированные O(nlogn) означают, что, например, среднее время быстрой сортировки не подходит — должно получаться O(nlogn) для любых, даже самых худших входных данных.
Рекурсию использовать нельзя, поскольку она подразумевает O(logn) памяти на хранение стека рекурсивных вызовов.
Произвольного доступа к элементам сортируемого массива нет, мы можем двигаться итератором от любого элемента только к соседнему (за O(1)), причем только в одном направлении (вперед по списку). Модифицировать сам список (перевешивать указатели на следующие элементы) нельзя.
Вся информация, которую мы знаем об элементах массива — это то, что они все образуют линейно упорядоченное множество. Все, что мы можем делать — это сравнивать два элемента массива (за O(1)) и менять их местами (тоже за O(1)).
Под катом можно узнать, что в итоге получилось у нас.
Challenge. Прежде чем заглядывать под кат, предлагаю сначала самостоятельно подумать над алгоритмом. Если придумается что-то круче нашего варианта — напишите в комментариях.
Переводил три дня с переменным успехом, осталось текста в два раза больше =) Наслаждайтесь историей успеха, которую мало кто знает, но сам продукт при этом знают все.
Пьяный программист сидит с открытым Norton Commander на экране. На обоих панелях открыт диск С. «Ну и зачем мне два диска С с одними и теми же файлами?» — подумал он и стер все его содержимое, нажав F8 и Enter.
— анекдот конца 80-х годов (а я так пару папок грохнул, когда был мелким — прим. перев.)
Нортон (Norton Commander) for DOS – это файловый менеджер для DOS, который существовал в 5 основных версиях – 1.0, 2.0, 3.0, 4.0, 5.0, причем только последняя версия имеет подверсию 5.5. Многие версии до сих пор используются различными энтузиастами и лежат на различных сайтах по сети Интернет.
Например, сайт Symantec содержит такой раздел FAQ: «Поддерживает ли Norton Commander 1.0/2.0 работу под MS Windows NT 5 (Beta)?»
Это был, возможно, один из самых популярных файловых менеджеров в эпоху операционной системы DOS, который наряду с XTree порвал со своими корнями DOS и в виде других программ, унаследовавших его функциональность, которые существуют на других операционных системах. Читать дальше →
В Windows Вы не можете просто так сделать полупрозрачный элемент управления, Вы должны либо рисовать все контролы сами(Qt, FMX) либо использовать DrawThemeParentBackground, что неминуемо приводит к тормозам.
Регионы тут не помогут т.к. они не поддерживают частичную прозрачность.
Было бы удобно использовать окна со стилем WS_EX_LAYERED («Слоистые» окна поддерживающие альфа прозрачность отдельных пикселей), однако Windows поддерживает этот стиль только для окон верхнего уровня. Так было до Windows 8 в которой, не прошло и полвека, наконец-то стало возможно назначать этот стиль дочерним окнам.
Что это дает? Первое что приходит в голову, это то, что композицией окон будет заниматься видео карта, что даст прирост производительности.
Под катом небольшое исследование этой возможности Windows 8. Читать дальше →
Данный короткопост будет ходить около вопросов проектного управления, сдобрив это прототипом реализации идеи совмещения канбана и водопада.
Преамбула
Неоднократно сталкивался с картиной: от менеджера требуют сказать конечный срок и дают в руки трекер задач. Решение бывает такое — план проекта в MS Project/TeamWork или в каком-то привычном для Waterfall инструменте, а для трекинга кастомизированная Jira/Trello или что-то еще. Глядя на мучения с актуализацией туда-сюда, родилась идея поженить Waterfall и Kanban: методически и практически (в рамках наколенно-доморощенной реализации на Gtk#).
Начнём с пианино. Очень упрощёно этот музыкальный инструмент представляет собой набор белых и чёрных клавиш, при нажатии на каждую из которых извлекается определённый звук заранее заданной частоты от низкого до высокого. Конечно, каждый клавишный инструмент имеет свою уникальную тембральную окраску звучания, благодаря которой мы можем отличить, например, аккордеон от фортепиано, но если грубо обобщить, то каждая клавиша представляет собой просто генератор синусоидальных акустических волн определённой частоты.
Когда музыкант играет композицию, то он поочерёдно или одновременно зажимает и отпускает клавиши, в результате чего несколько синусоидальных сигналов накладываются друг на друга образуя рисунок. Именно этот рисунок воспринимается нами как мелодия, благодаря чему мы без труда узнаём одно произведение, исполняемое на различных инструментах в разных жанрах или даже непрофессионально напеваемое человеком.
В предыдущей cтатье мы описали базовые принципы работы с API и консольными утилитами, управляющими отдельными компонентами платформы Openstack (nova, cinder, glance, neutron). Сегодня мы рассмотрим, как с помощью модуля оркестрации Heat можно построить готовую инфраструктуру из виртуальных устройств. Читать дальше →
Компания Apple исправила опасную уязвимость в своем сервисе iCloud, которая позволяла перебирать пароли аккаунта Apple ID в обход накладываемого системой безопасности лимита на количество неверных попыток ввода пароля. Исходный текст эксплойта для этой уязвимости под названием iDict был размещен ранее на сервисе GitHub. По информации автора, этот инструмент также мог обходить систему двухфакторной аутентификации Apple ID.
A 100% Working iCloud Apple ID Dictionary attack that bypasses Account Lockout restrictions and Secondary Authentication on any account.
У хорошего интерфейса пользователя высокая конверсия и его просто использовать. То есть, он хорош и для бизнеса, и для использующих его людей. Вот список опробованных нами идей.
1 Один столбец вместо нескольких
Один столбец точнее отражает то, что вы хотите донести. Пользователи проходят сверху вниз по более предсказуемому пути. В дизайне с несколькими колонками есть риск отвлечения пользователя от основной задачи страницы.
Хочу рассказать как мы использовали списки базовых типов для обработки сообщений. Сообщения представляют собой структуры, унаследованные от небольших базовых структур. Вся полезная информация хранится в базовых структурах. Для обработки нужно знать от каких базовых структур было унаследовано обрабатываемое сообщение. Все что нужно для работы со списками типов мы нашли в Boost.MPL. В качестве списка типов выбрали boost::mpl::vector. Для прохода по списку типов boost::mpl::for_each. Читать дальше →
Миф о том, что русские программисты лучшие в мире, запущен вовсе не партийными пропагандистами, он возник на перестроечной волне, вместе с мифами о хозяине-предпринимателе, невидимой руке рынка и ста сортах колбасы. Миф, это то, что человек не читавший взрослых книг называет «мем», а человек вообще не читающий, называет правдой. Передача «Разрушители мифов» берёт поверхностные мифы, которые можно легко опровергнуть, например, бросив бутерброд с маслом на пол тысячу раз. А вот Гордон, в одном из своих первых телепроектов «Собрание заблуждений», брался за раскрытие мифов посложнее, такие мифы нельзя раскрыть затопив машину и проверив, можно ли всё-таки открыть двери до того, как машина полностью наполнится водой, они как плавающий баг у которого нету «steps to reproduce». Вспомните Холмса или Хауса, интеллектуал в первую очередь отличается тем, что видит невидимое — пока паникующие пассажиры всматриваются в туман за бортом, он закрывает глаза и всматривается в свои «чертоги разума», вспоминает карту местности и ТТХ парохода.
«Всё содержится в моих чертогах разума, вы же понимаете о чём я мистер Холмс? Я обладаю знаниями, и поэтому могу щёлкать доктора Ватсона по носу хоть целый день.»
Доброго времени суток, уважаемые хабровчане и просто случайные гости.
В данном посте я сделал небольшой обзор нового мини-компьютера ODROID-C1 в сравнении с Raspberry Pi при использовании обоих устройств в качестве ТВ-приставки/медиасервера для дома. Статья рассчитана на знатоков Raspberry Pi или других похожих платформ. Читать дальше →
Скриптинг — пожалуй наиболее важная (хотя и не самая сложная) часть задуманного мной проекта. Для того, чтобы всё заработало, мне потребуется язык общего назначения, с переменными, условным выполнением, циклами и исключениями. Мне не требуется что-то сложное, вроде анонимных функций или замыканий. Скорее всего, мне не пригодится даже рекурсия, во всяком случае, пока, для неё не нашлось применений, ни в одном из моих case-ов. В этом языке совсем не будет синтаксического сахара, поскольку все задачи метапрограмирования возьмёт на себя XSLT. В общем, этот язык будет прост настолько, насколько это возможно, но… не проще. Читать дальше →
Я хочу написать коротенький пост, про то, как я решил проблему наследования в ReactJS. Обычно, на форумах, люди советуют использовать миксины для наследования функционала, но, по-моему, это не совсем правильно. Все-таки трэйты/миксины и классы это не одно и то же, да еще и из-за возможности множественного наследования могут возникать вот такие казусы:
var A = {
doStuff (){}
}
var B = {
doStuff (){}
}
var C = React.createClass({
mixins: [A, B]
});
//упс... ошибка, потому что React не может решить какой из doStuff унаследовать
Так уж сложилось, что в начале нового года принято подводить итоги прошлого года и строить планы на год грядущий. Мы в Web-payment.ru, проекте о платежных системах c мониторингом обменников, решили не отходить от этой замечательной традиции и попытались найти ответ на вопрос, что ждет сферу платежей в будущем, 2015-м году.
Но для начала остановимся на итогах года ушедшего. Итак, эксперт Karen Webster сформулировала основные мировые события платежного рынка уходящего года.
ТОП 10 событий, повлиявших на систему электронных платежей в 2014 году
1. Масштабная кибератака на торговую сеть Target
В конце 2013-го года крупная торговая сеть Target, владельцем которой является одноименная американская компания, подверглась нападению хакеров, в результате чего мошенники получили доступ к информации о 40 миллионах банковских карт. После этого случая доверие клиентов к сети резко сократилось, а вместе с ним сразу на 46% упали и объемы продаж. Каким образом это событие повлияло на платежи в 2014-ом, спросите вы? Самым прямым.
Практически сразу после атаки в компании Target начались масштабные работы по предотвращению подобных нападений в будущем. Кибератака позволила расставить приоритеты компании – отныне безопасность превыше всего. Читать дальше →
В репозитории можно найти, к примеру, реализации CRC/MD5/ГОСТ 34.311-95/SHA-3. Каждая хеш-функция представлена исходником на языке С и make-файлом для его сборки. Алгоритмы предполагается использовать в целях обучения — в реальных проектах рекомендуется в целях безопасности использовать существующие библиотеки (например, Crypto++ для C++, BouncyCastle для Java и т.д.), список которых есть в репозитории.
Над репозиторием продолжается активная работа, поэтому в перспективе стоит ждать пополнения коллекции.
О конструкторе Makeblock я узнал уже после того, как завершилась его кампания на кикстартере. А жаль, поскольку был шанс приобрести наборы конструктора по достаточно низкой цене. После удачной кампании авторы продолжили развивать свои идеи и создали набор для плоттера — XY-Plotter Robot Kit v2.0. Мне он обошелся в $300 с бесплатной доставкой через EMS в рамках акции «накупи на $500».
Плоттер заинтересовал меня по двум причинам: возможность рисовать ручкой Circuit Scribe с токопроводящими чернилами и возможность проапгрейдить плоттер лазерным резаком. В этой статье я расскажу о своих впечатлениях от плоттера в его оригинальной конфигурации. Читать дальше →
SageMathCloud (сокращённо SMC) — это онлайновый сервис, в котором можно написать математический или любой другой расчёт в Sage или IPython Notebook. Расчёт можно комбинировать с HTML, CSS, JavaScript, CoffeeScript, Go, Fortran, Julia, Gap, Axiom, R, Ruby, Perl, Maxima, Maple, Markdown, Wiki (и это неполный список!). При редактировании поддерживается мультикурсорность, можно включить биндинги Vim или Sublime Text. Пользователю также доступна консоль Ubuntu и доступ к проекту по ssh. Можно создавать документы LaTeX и встраивать в них код на Python, который не будет отображаться в итоговом pdf. Широкие возможности позволяют написать не просто расчёт с 2D и 3D графикой, а целое интерактивное приложение или собственный веб-сервер на Flask. Можно расшарить расчёт пользователям на редактирование, и Вы будете видеть, что они меняют и даже где стоит их курсор! При этом великолепии SageMathCloud имеет открытый исходный код, который выложен на Github.
Приветствую всех пользователей хабра, в частности тех, кто страдает темой Arduino как и я.
Меня уже давно спрашивают — можно ли прошивать hex файлы при помощи Arduino? Изменять фьюзы? Считывать прошивку? И всякое такое… Ответ — можно, и я сегодня вам расскажу, как я это делаю.
(Данное видео дублирует представленную ниже информацию) Интересненько...