Как стать автором
Обновить
0
0
Cadaver @Cadaver

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

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

Испытания boost::lockfree на скорость и задержку передачи сообщения

Время на прочтение11 мин
Количество просмотров23K
Не так давно в boost-1.53 появился целый новый раздел — lockfree реализующий неблокирующие очереди и стек.
Я последние несколько лет работал с так называемыми неблокируюшими алгоритмами (lock-free data structures), мы их сами писали, сами тестировали, сами использовали и втайне ими гордились. Естественно, у нас немедленно встал вопрос, переходить ли с самодельных библиотек на boost, и если переходить, то когда?
Вот тогда у меня и возникла в первый раз идея применить к boost::lockfree кое-какие из методик которыми мы испытывали собственный код. К счастью, сам алгоритм нам тестировать не придется и можно сосредоточиться на измерении производительности.
Я постараюсь сделать статью интересной для всех. Тем кто еще не сталкивался с подобными задачами будет полезно посмотреть на то что такие алгоритмы способны, а главное, где и как их стоит или не стоит использовать. Для тех кто имеет опыт разработки неблокирующих очередей возможно будет интересно сравнить данные количественных измерений. Я сам по крайней мере таких публикаций еще не видел.
Читать дальше →
Всего голосов 65: ↑64 и ↓1+63
Комментарии28

Привлечение пользователей в мобильную игру

Время на прочтение4 мин
Количество просмотров29K
Многие начинающие разработчики впадают в довольно наивное заблуждение: сделаем игру, в которую интересно играть, и заработаем на этом денег. К сожалению, рынок мобильных игр перенасыщен, каждый день выходят сотни новых тайтлов, игрок же способен оценить «интересность» от силы десятка игр в неделю. И вряд ли ваш проект окажется в этой десятке, если не предпринять дополнительных усилий.
Читать дальше →
Всего голосов 48: ↑42 и ↓6+36
Комментарии28

Паттерн MVVM и страничная навигация

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

Применение страничной навигации достаточно актуальная задача для настольных WPF-MVVM приложений.
Разномастных руководств по организации такой навигации в сети достаточно.
И, конечно, Хабрахабр не исключение (имеются статьи раз и два).
Взглянув на первую статью Вы узнаете про NavigationService и возможность пользоваться Hyperlink.
Если перейдете по второй ссылке, то узнаете как пользоваться NavigationService в так называемом «Code Behind».
Таким образом, решения полного в этих статьях не представлено (на мой взгляд).
Хочется заполнить пробел и представить Вашему вниманию, как мне кажется, вполне рабочее решение.
Абсолютно не претендую на законченный компонент для организации страничной навигации.
Буду благодарен за полезные комментарии, поправки и дополнения.
Рад буду, если кому-то моя реализация навигатора окажется полезной.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии1

Алгоритм выбора STL-контейнера

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


UPD: схема заменена на вариант с контейнерами из С++11, соавторы — в комментариях ниже

Первый вариант схемы - без контейнеров из С++11

Всего голосов 86: ↑74 и ↓12+62
Комментарии54

История создания стартапа по разработке мобильных игр

Время на прочтение8 мин
Количество просмотров66K
В мае прошлого года я решил создать стартап по разработке социальных и мобильных игр. Спустя год, можно сказать, что авантюра удалась и немного рассказать о полученном опыте.

image

Читать дальше →
Всего голосов 69: ↑67 и ↓2+65
Комментарии19

Разработка одной игры — полезный опыт, немного денег и куча ошибок, Ч1

Время на прочтение8 мин
Количество просмотров51K
Сегодня довольно много программистов думают о том, чтобы создать мобильное приложения, заработать свой первый миллион, сыскать славу успешного разработчика и продолжать работать над своими интересными и многообещающими проектами. Многие не только думают, но и принимают попытки, успешные и не очень. Так вот я не исключение и об одной такой попытке, приобретенном опыте и небольшом финансовом профите я и хочу рассказать.
Читать дальше →
Всего голосов 72: ↑64 и ↓8+56
Комментарии16

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

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

Речь пойдёт о далёком 2005 году, когда только-только вышла Civilization4 от Sid Meier. К тому времени я плотно висел в Civilization3, прошёл её раз дцать на самых разных картах, и тут вышла долгожданная четвёрка. Это были годы P3-512Mb для mid-end и P4-1Gb в hi-end. Только топовые конфиги в те годы имели два гига памяти на борту.

Civilization 4 вышла с графикой уровня года 2002-2003го, что в принципе нормально для мэинстрима тех времён, особенно учитывая что это пошаговая стратегия, а не шутер. Но жрала с течением игры до 900Mb оперативки, что приводило к жуткому свопу, особенно на больших картах, особенно к концу игры, особенно на ноутбуках. Народ недоумевал, я тоже. Учитывая, что в те же годы вышел Far Cry с куда более красивой графикой, и который вполне игрался на максимуме даже с 512Mb на борту, такое поведение Civilization 4 выглядело крайне странным. Захотелось разобраться и покарать…
Читать дальше →
Всего голосов 551: ↑547 и ↓4+543
Комментарии177

Чуть больше о загрузке самодельных ОС — пишем bootloader

Время на прочтение9 мин
Количество просмотров14K
Не так давно решил чуть получше изучить архитектуру IA-32. А что лучше всего для запоминания? Конечно же практика. Но программируя в ОС мы врядли получим самый низкий уровень доступ к железу без помех. Поэтому для этих целей будем писать собственное подобие операционной системы. То есть проще говоря будем выполнять свой код, сразу после загрузки BIOS'а.
Первой проблемой с которой столкнется желающий программировать на низком уровне — как же загрузить свой код?
Читать дальше →
Всего голосов 129: ↑119 и ↓10+109
Комментарии49

Опубликован весь архив Computer Science клуб при ПОМИ РАН

Время на прочтение2 мин
Количество просмотров6.1K
Добрый день!

Как представитель проекта Лекториум рад сообщить — мы опубликовали весь архив Computer Science клуба.
Кроме того, почти год назад мы организовали запись всех лекций на хорошие камеры и микрофоны.
А в этом году планируем подключить вебинары.


Большинство лекций читается на русском языке. Все записи снабжены презентациями и описаниями.

UPD. Кратко. Старые лекции в плохом качестве, а новые с 2010 года с хорошим звуком и в 720p.
UPD 2 Расширили канал, видео грузится теперь без проблем.

Под катом перечень курсов и несколько вопросов касательно вебинаров.
Читать дальше →
Всего голосов 231: ↑227 и ↓4+223
Комментарии78

Впечатляющие анимационные эффекты

Время на прочтение2 мин
Количество просмотров115K
С появлением jQuery, у веб-программистов появилась возможность создавать впечатляющие визуальные эффекты, не прибегая к использованию технологии flash. В данной статье представлено несколько ярких примеров того, каких потрясающих результатов можно достичь, используя стандартные средства браузера и свое воображение.
Читать дальше →
Всего голосов 262: ↑246 и ↓16+230
Комментарии78

Статический анализ кода C++

Время на прочтение5 мин
Количество просмотров33K
Для меня красота C++ заключается, в первую очередь, во вседозволенности и ужасающей мощи языка. Мы можем работать с памятью так же плотно, как и в C, и в то же время имеем такие средства абстракции, как шаблоны и STL, где параметризовать можно что угодно и чем угодно.
Плата за это соответствующая — не всегда вразумительные ошибки компилятора (попробуйте забыть поставить точку с запятой после определения класса), очень большой срок подготовки и обучения программистов, но самое главное — некоторые баги становятся заметными только во время исполнения программы.
Мы хотим больше полезных ворнингов до запуска наших программ. Одно из средств получения желаемого — статический анализ кода. Статический — значит, не запуская программу. Интересны не только вероятные ошибки, случаи undefined behaviour, утечки памяти, но и вещи вроде недоступности/неиспользуемости кода, рекомендации по повышению интуитивности стиля программирования.
Читать дальше →
Всего голосов 40: ↑38 и ↓2+36
Комментарии43

Эволюция дизайна интерфейсов операционных систем с 1981 по 2009 годы

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

Перевод «Operating System Interface Design Between 1981-2009»



imageГрафический пользовательский интерфейс (GUI — Graphical User Interface) это средства позволяющие пользователям взаимодействовать с аппаратными составляющими компьютера достаточно комфортным и удобным для себя образом.
В течении многих лет для большого количества операционных систем, таких как OS/2, Macintosh, Windows, AmigaOS, Linux, Symbian OS, и т. п., было создано еще большее количество графических интерфейсов.
Давайте попробуем взглянуть на эволюцию дизайна интерфейсов этих систем, начиная с 80-х годов.
Должен заметить, этот топик демонстрирует только значительные достижения и этапы в области графического дизайна (а не операционных систем в целом), да и не все системы существуют и по сей день.

Я догадываюсь что там много графики, но все же хочу посмотреть.
Всего голосов 211: ↑185 и ↓26+159
Комментарии126

Fly AJAX — пишите меньше, имейте больше. Нестандартный AJAX и индексация поисковиками.

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

Обсуждение предыдущей статьи было бурным. Самые ярые любители jQuery, Mootools кричали зачем мол нужен другой велосипед.
В данной статье мы рассмотрим использование техники Fly AJAX. Это одна из нескольких функциональных возможностей, которые не реализованы в ранее указанных больших (и мною уважаемых) фреймворках. Также, в данной статье, мы рассмотрим принципы правильного проектирования и построения сайтов для хорошей индексации с применением AJAX технологии.
Читать дальше →
Всего голосов 91: ↑80 и ↓11+69
Комментарии207

Круговая прокрутка а-ля iPod на тачпаде

Время на прочтение2 мин
Количество просмотров4.2K
Всем известно, что мультитач и прочие удобные трюки тачпадов от фирмы Synaptics, которые стоят практически на всех ноутбуках, зачастую реализуются драйвером тачпада и от аппаратной составляющей мало что зависит. Вот только поддержка их на разных системах разная.
Около полугода назад я, покопавшись в сети, настроил себе нажатие двумя пальцами на правую кнопку мыши, а тремя — на левую, после чего стал переносить руку на мышь гораздо реже. Но хотелось несколько большего.
Порывшись в man synaptics, нашел там интересную вещь под названием CircularScrolling, что в переводе означает «круговая прокрутка». Многим она знакома по плеерам iPod — весьма и весьма удобна при прокрутке длинных документов. Естественно, мне захотелось себе такую же, ибо прокрутка по правому краю не лучший выбор.
Итак, приступим к настройке. Попутно покажу, как реализуется обработка нажатий двумя и тремя пальцами.
Читать дальше →
Всего голосов 77: ↑76 и ↓1+75
Комментарии88

Полный AJAX. Теория и Примеры. Фишки и Фичи

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

Наибольшие трудности при построении сайтов c применением AJAX возникают при реализации механизма AHAH (Asynchronous HTML and HTTP). Особенно выполнение на лету подгружаемых Javascript-ов. Также есть куча дополнительного «гемороя» при разработке AJAX сайтов и веб-приложений. Вы можете ознакомится с детальным описанием некоторых существующих проблем. Из-за указанных сложностей, многие разработчики отказываются от более насыщенного внедрения AJAX.

Однако, мало кто знает, что перечисленные проблемы можно решить.
Читать дальше →
Всего голосов 112: ↑95 и ↓17+78
Комментарии141

7 простых способов протестировать кроссбраузерную совместимость

Время на прочтение4 мин
Количество просмотров71K
Эта статья предназначена для дизайнеров, верстальщиков, разработчиков и всех остальных людей, бьющихся с тестированием сайтов в нескольких браузерах.

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

В этой статье, мы рассмотрим 7 простых инструментов для тестирования кроссбраузерной совместимости; инструментов, которые справляются со своей задачей очень легко, и к тому же, каждый из этих инструментов можно использовать бесплатно.
Читать дальше →
Всего голосов 99: ↑96 и ↓3+93
Комментарии57

Заметаем следы

Время на прочтение1 мин
Количество просмотров23K
Помните я про kill -9 $$ рассказывал?

Так вот, немного повторюсь: kill -9 $$ — «выход» из консоли без сохранения истории.
Как это работает: $$ — идентификатор текущего процесса консоли; kill -9 думаю объяснять не надо? Ну на всякий случай: kill -9 убивает указанный процесс (дочерние процессы также убьются, сами).

Но перед тем как бесследно исчезать из консоли не мешало бы всё таки подчистить файл ~/.bash_history, и самый интересный файл: /var/log/lastlog, именно в нём записан последний IP с которого логинились. Файл этот не обычный plain text, поэтому править его надо осторожно. Открываем и везде меняем свой IP.
В общем то его можно совсем удалить, тогда при логине в консоль вообще не будет строчки с last login, у меня на Debian, например, он сам не создается.

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

Для операций с файлом lastlog нужны права root.

И пожалуй самое главное: не забывайте о том, что Linux ведет довольно подробные логи, и каждое ваше действие может быть где-то да и записано.
Всего голосов 47: ↑31 и ↓16+15
Комментарии32

Почему я не могу перейти на Kubuntu/Ubuntu etc

Время на прочтение2 мин
Количество просмотров7.2K
Несколько раз честно пыталась перейти с Windows на Ubuntu (и затем сразу на Kubuntu). Тому причина и мое теплое отношение к идеологии Open Source, и частые хвалебные отзывы Ubuntu в Интернете, и в частности на Хабре.

Ставила новую ОС три раза, полная энтузиазма и веры в светлое будущее Open Source. Разбиралась сразу — все-таки интерфейс там удобен и понятен. Правда мне, как пользователю Windows, казалось, что Kubuntu немного загруженa, но делала скидку на то, что к этому можно быстро привыкнуть.

Все было хорошо, до тех пор, пока я не открывала свой любимый FF или другой браузер, и не заходила в интернет. Боже. Такого кошмара со шрифтами я и в страшных снах не видела. Я работаю в IT сфере, разрабатываю сайты, мой взгляд изнежен мягкими, четкими и гладкими шрифтами Windows. Когда я видела свои сайты в Kubutu, мне становилось страшно. Все шрифты другого кернинга, разных размеров, сглаживание ужасное.

Я долго искала решение проблемы, излазила весь интернет. Промежуточное решение было найдено — установить шрифты от Windows (msttcorefonts). Конечно, сайты стали выглядеть лучше. Шрифты обрели нормальные размеры, кернинг почти стал на место. Но вот антиалиазинг остался прежним. Все мои попытки настроить окончательно кернинг и сглаживание не увенчались успехом. Моя трепетная душа в очередной раз не воспринимала недоделанность шрифтов Ubuntu и возвращала меня обратно к Windows.

Мой крик души разработчикам Ubuntu и вообще Open Source (шрифты в Gimp просто ужас!). Пожалуйста, сделайте что-нибудь с вашими шрифтами. Почему для нормального вида (на тройку с минусом) в окне браузера я должна брать дополнительные пакеты от Windows? Почему вы не можете настроить коробочную версию до такой степени, чтобы после установки и первого захода в интернет у людей не вставали волосы дыбом от шрифтов? Пожалуйста, мы все хотим пользоваться вашими программами, вашими разработками. Мы любим Open Source.

P.S. Спасибо всем за понижение кармы. Я получила много полезных советов, и за это спасибо.
Всего голосов 377: ↑274 и ↓103+171
Комментарии597

Как установить Debian Linux с USB flash

Время на прочтение3 мин
Количество просмотров201K
В этой статье вы узнаете, как создать USB flash диск, с которого можно будет установить Debian Linux.

Введение


Здесь я расскажу, как подготовить загрузочную USB флешку с Debian Lenny и установить с неё Debian на любой накопитель (IDE/USB HDD). Заметьте, что в этой статье описывается не то, как установить Debian на USB диск/флешку, а то, как создать «Инсталляционный USB диск». То есть результатом станет то, что вы сможете установить Debian Lenny с USB накопителя, вместо традиционного CD-ROM.

Существует несколько путей установки Debian Lenny:
Читать дальше →
Всего голосов 34: ↑28 и ↓6+22
Комментарии29

Информация

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