Search
Write a publication
Pull to refresh
7
0
Алексей @boov

User

Send message

Сравнение алгоритмов вычисления чисел Фибоначчи

Reading time3 min
Views9.1K
В комментариях к статьям N-е число Фибоначчи за O(log N) и Еще один алгоритм вычисления чисел Фибоначчи указывалось на тот факт, что уже 100-е число Фибоначчи не помещается в 4 байта, а в «длинной» арифметике скорость выполнения умножения резко просядет. Более того, были предположения, что примитивное сложение может оказаться быстрее. Я решил сравнить 2 алгоритма — простое сложение и алгоритм с логарифмическим количеством операций — и написал тестовую программу на С. Для «длинной» арифметики использовал библиотеку GMP.
Читать дальше →

Как работает архитектура Skype

Reading time5 min
Views19K
В последние дни мы видели сообщения в средствах массовой информации, которые, как мы считаем, являются неточными и могут ввести в заблуждение пользователей Skype относительно нашего подхода к безопасности и конфиденциальности пользователей. Я хотел бы прояснить несколько деталей.
Читать дальше →

Как Warcraft 3 помог мне изучить парочку ЯП'ов

Reading time3 min
Views4.7K
Прочитав статейку я решил рассказать о том, как же Warcraft помог мне. Я уже достаточно долго занимаюсь картостроением для игры Warcraft 3. Для многих наверное секрет, но компания Blizzard, выпустившая игру, дала пользователям достаточно мощный редактор карт с интерпретируемым языком программирования, который они назвали JASS (подробнее на вики).
Читать дальше →

Clang API. Начало

Reading time11 min
Views35K
Сейчас с уверенностью можно утверждать, что времена самописных C++-парсеров постепенно отходят в прошлое. На сцену медленно, но неумолимо выходит clang — полноценный C++-фронренд и компилятор, предоставляющий своим пользователям богатое API. С помощью этого API можно распарсить исходный текст на C/C++/Objective C, и вытащить из него всю необходимую информацию — от простого лексического значения токенов, до таблицы символов, AST-деревьев и результатов статического анализа кода на предмет всяких разных проблем. В связке с llvm и при сильном на то желании C++ можно использовать в качестве скриптового языка, парся и исполняя C++-программы «на лету». В общем, возможности перед программистами открываются богатые, надо только понять — как ими правильно воспользоваться. А тут, как это не редко случается, и начинается самое интересное.
Читать дальше →

Аналог scope(exit) на С++

Reading time2 min
Views6.6K
Прочитал, недавно, на хабре, статью про scope(exit) в языке D и проникся красотой идеи.
Ведь так часто бывает, что нужно выполнить какой-либо код по выходу из функции, а создавать каждый раз страж — утомительно, да и не всегда возможно.
Но, использую новый стандарт, в С++ можно сделать не хуже, кому интересно — прошу под кат.
Читать дальше →

Еще один алгоритм вычисления чисел Фибоначчи

Reading time1 min
Views15K
Перед прочтением статьи, решил попробовать придумать свой алгоритм c асимптотикой O(log N). Времени понадобилось не очень много. Ниже описание идеи и пример на С++.
Читать дальше →

Контракт Settings в WinRT (Windows 8)

Reading time4 min
Views3.6K
Одним из основных контрактов доступных в чудо-панели Windows 8 является контракт Settings.
Активация панели настроек осуществляется соответствующей кнопкой «Settings» в чудо панели:
image

Пользователь всегда может зайти в эту панель для того чтобы управлять настройками приложения. (К примеру отключить возможность определения местоположения).
Довольно логично было бы не заставлять пользователя думать, где искать настройки самого приложения и разместить свои настройки приложения в эту же панель.

В этой статье мы рассмотрим две темы:.
Добавление поддержки контракта Settings
Добавление собственной панели настроек.

Подробности

История и описание уже исправленной уязвимости в игре WarCraft 3

Reading time6 min
Views3.9K
Было это 2009 году, в марте месяце, я тогда увлекался созданием карт к игре WarCraft 3. Однажды мне показали карту, которая при запуске игры каким-то хитрым образом создавала консоль и писала в ней какой-то «Привет Мир!». Я мягко говоря был ошарашен — это значило, что есть возможность выполнять произвольный код в системе.

Под катом описание уязвимости и история ее закрытия.

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

События .NET в деталях

Reading time9 min
Views153K
Если вы .NET программист, то вы наверняка объявляли и использовали события в своем коде. Несмотря на это, не все знают, как события работают внутри и какие особенности связаны с их применением. В этой статье я попытался описать работу событий как можно более подробно, включая некоторые частные случаи, с которыми редко приходится иметь дело, но про которые важно и\или интересно знать.
Читать дальше →

Portable Components, кроссплатформенная библиотека для C++

Reading time13 min
Views28K
«Система должна быть спроектирована так,
чтобы оставаться как можно проще
после серии внесенных в нее изменений»

Бьярне Строуструп – программист, автор языка C++

Преамбула


В данной статье мне бы хотелось бы рассказать о довольно популярной, но так редко освещаемой на Хабре библиотеке Portable Components (сокр. POCO). Она будет полезна как разработчикам бизнес-логики программного продукта, так и в решении большинства прикладных задач. При всем изобилии кроссплатформенных библиотек для C++ всё больше людей сталкиваются с POCO лицом к лицу и не знают с чего начать. В данной статье я постараюсь описать технологии, заложенные в библиотеке и дать простейшие примеры решения некоторых задач. Также хотелось бы отметить, что за плечами библиотеки множество успешных как Open Source, так и коммерческих проектов.
Читать дальше →

Контракт «share» — передача данных в метро приложениях Windows 8

Reading time19 min
Views2.4K
В Windows 8 в метро-приложениях появилась возможность передачи данных (Share) между приложениями. В дальнейшем для простоты в статье буду употреблять термин «шаринг».
В целях безопасности передачей данных управляет сам пользователь и вызывается с боковой панели соответствующей чудо-кнопкой Share
image
или сочетанием клавиш Win + H.

В качестве примера можно привести возможность передачи своего местоположения с карт или понравившуюся фотографию в почтовое приложение или твиттер.

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

Здесь я буду употреблять термины приложение-поставщик для приложения которое «расшаривает» данные. И приложение-приемник для приложения который может принять расшаренные данные.
Читать дальше →

SQL injection для начинающих. Часть 1

Reading time5 min
Views805K

Приветствую тебя, читатель. Последнее время, я увлекаюсь Web-безопасностью, да и в какой-то степени работа связана с этим. Т.к. я всё чаще и чаще стал замечать темы на различных форумах, с просьбой показать, как это всё работает, решил написать статью. Статья будет рассчитана на тех, кто не сталкивался с подобным, но хотел бы научиться. В сети относительно много статей на данную тематику, но для начинающих они немного сложные. Я постараюсь описать всё понятным языком и подробными примерами.
Читать дальше →

Альтернатива Arduino от Texas Instruments за $4.30

Reading time2 min
Views77K
Как известно, конкуренция среди производителей микроконтроллеров весьма высока. Каждый старается завлечь потребителей низкой ценой и расширенным функционалом своих камней.

Компания Texas Instruments, для продвижения в массы своих контроллеров MSP430, предлагает дешевую ($4.30) отладочную плату LaunchPad (MSP-EXP430G2). Внешне она напоминает Arduino, но, естественно, с ней не совместима. В комплекте с платой щедрые техасцы кладут сразу два своих микроконтроллера серии Value Line в DIP-корпусах: msp430g2553 и msp430g2452.

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

Инвайт на Windows Store или как попасть в Windows 8

Reading time1 min
Views16K
Последний месяц полон новостями по Windows 8. С начала июня публично доступен Windows 8 Release Preview вместе с первыми российскими приложениями, появились анонсы новых устройств, стало известно о возможностях апгрейда с Windows XP, Windows Vista и Windows 7 до Windows 8 Pro.

Вчера было объявлено о том, что финальная версия Windows 8 (RTM) выйдет уже совсем скоро — в первую неделю августа.
Напомню, что внутри каждого устройства с Windows 8 находится единый магазин приложений — Windows Store. Это единый канал доставки ваших приложений пользователям всех десктопов, ноутбуков и планшетов.
Таким образом, нахождение приложения в Windows Store обеспечивает прямой доступ ко всей экосистеме пользователей Windows.
Разрабатывать приложения для Windows 8 можно на HTML5/JavaScript, C#/XAML или на C++/DirectX.

На сегодня доступ к Windows Store открыт только по инвайтам
Читать дальше →

Анонс. Бесплатный вебинар: Отладка в Visual Studio 2012 — советы и новые возможности

Reading time1 min
Views4K
Уважаемые разработчики! 19 июля, в 17:00 состоится бесплатный онлайн-семнар, посвященный вопросам использования отладчика Visual Studio и его новым возможностям.

Visual Studio это инструмент для настоящих мастеров своего дела, но несмотря на это некоторые разработчики используют только часть возможностей по отладке. На вебинаре будут рассмотрены основные возможности по отладке для различных версий VS от Professional до Ultimate. Будут показаны некоторые интересные технологии в том числе позволяющие экономить массу времени при выяснении источников проблем в приложении( IntelliTrace) а так же показано как настроить среду отладки подходящую для ваших нужд. Так же будет показано как интегирироваться с процессом сборки в Team Foundation Server для последующей отладки приложений в эксплуатируемой среде и легкого нахождения соответствующих исходных кодов.

Вход свободный. Регистрация уже открыта, ждем вас на вебинаре.

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

Маленькие чудеса C#/.NET – структура DateTimeOffset

Reading time4 min
Views42K
Рассмотрим некоторые части .Net Framework'a, выглядящие тривиальными, но вполне способными сделать ваш код более простым как в написании, так и в сопровождении.


Пишущие на .NET (а если вы этого не делаете, то зря читаете этот пост) наверняка время от времени используют для своих нужд структуру DateTime. Эта структура удобна для хранения дат, времени или даты/времени, относящихся к локальной временной зоне (или же к UTC).


Однако, бывают случаи, когда вам необходимо сохранить время в виде смещения, а не конвертировать его в локальное время. И вот здесь вам на помощь придёт структура, впервые появившаяся в .NET 3.5 — DateTimeOffset.
Читать дальше →

Использование SQLite в .NET приложениях

Reading time7 min
Views162K


В некоторых проектах достаточно часто возникает необходимость в хранении данных, объем которых уже нельзя назвать маленьким, но в тоже время использовать какую-либо СУБД слишком накладно из-за сложности развертывания приложения. И тут на помощь приходит такая прекрасная вещь как SQLite – компактная встраиваемая база данных.

Для тех, кто пишет с использованием платформы .NET приятным моментом станет наличие
Читать далее...

Делаем сами remote-desktop клиент для смартфона. Часть 1: серверная

Reading time7 min
Views14K
Я всегда хотел себе портативный удалённый рабочий стол на телефоне, чтобы, например, когда кто-то стучится в аську, а я на балкон покурить вышел, можно было не уходя с балкона посмотреть на телефоне, кто там. Ну или, например, переключить трек, принимая ванну. Да, я знаю, что всевозможные VNC-клиенты уже написаны, но я решил сделать такую программу сам.

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

Конечную функциональность я представляю себе так: на дектопе (сервер) резидентно висит программка, которая, по пришедшему снаружи UDP-пакету начинает передавать фрагменты изображения на обратный адрес. На телефоне (клиент) отображаются присланные фрагменты. Пользователь может сдвинуть оконо отображения или кликнуть внутри него. Информация о сдвигах и кликах передаётся на сервер так же – по UDP.
Читать дальше →

Сравнение объектов в C#.NET

Reading time6 min
Views141K
C#.NET предлагает множество способов сравнить объекты, как экземпляры классов, так и структур. Способов так много, что без упорядочения этих способов и понимания их грамотного использования и имплементации (при наличии возможности переопределения), в голове, неминуемо, образуется каша.
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity