Pull to refresh
7
0.2
Андрей Абакумов @ScratchBoom

User

Send message

Химический редактор Chem4Word вышел под Open Source

Reading time1 min
Views4.6K
Редактор химических формул Chem4Word вышел в бета-версии 22 марта 2010 года и с тех пор достиг цифры 250 000 скачиваний. Это удобное расширение для Word 2007 и 2010, которое позволяет создавать и редактировать в текстовом редакторе химические формулы и 2D-структуры.

И вот наконец-то вышла версия 1.0. Как и было запланировано, компания Microsoft опубликовала Chem4Word под лицензией Apache 2.0 и передала проект под крыло The Outercurve Foundation, так что сообщество теперь имеет право изучать и модифицировать исходники на своё усмотрение. Некоторые уже выразили желание добавить 3D и векторную графику.
Читать дальше →
Total votes 48: ↑37 and ↓11+26
Comments23

Игрушка для гиков — беспроводное домино

Reading time1 min
Views1.6K


В век бурного развития информационных технологий наименее ожидаемая вещь, которую можно увидеть на прилавке компьютерного магазина — это домино. Оказывается, домино тоже может быть высокотехнологичным, понятное дело, оставаясь при этом игрушкой. В продолжении поста представлено видео hi-tech домино, которое называется Esper Dominoes.

Читать дальше →
Total votes 77: ↑68 and ↓9+59
Comments39

Основы фотографии: выдержка, диафрагма, ГРИП, светочувствительность

Reading time6 min
Views408K

Введение


Часто люди приобретают цифровые зеркальные камеры в погоне за качеством снимков, но при этом не имеют представления о технических моментах съемки. В основном это касается тех, кто до зеркалки держал в руках исключительно компактные фотоаппараты и пользовался автоматическими режимами (которые, к слову, весьма продвинутые в современных камерах).

В результате у кого-то возникает разочарование в камере и фотографии в целом, а другие проявляют терпение и пытаются освоить премудрости фотографии, чтобы раскрыть весь потенциал камеры с полноценным (или почти полноценным) сенсором.

Изначально я планировал написать одну статью, но по ходу дела понял, что объем получается слишком большой и решил разбить ее на несколько частей. В этой главе рассмотрю такие понятия как выдержка, диафрагма, ГРИП и светочувствительность, как эти параметры влияют на результат съемки. На очереди статья про типы и параметры объективов, работу со вспышками и советы по съемке в различных условиях.
Читать дальше →
Total votes 272: ↑232 and ↓40+192
Comments378

Периодическая система элементов API

Reading time1 min
Views2K
image

Google, с которым работают миллионы разработчиков по всей планете, элегантным способом решил проблему раздробленности API и создал таблицу ее элементов: code.google.com/intl/ru/more/table

Умно и удобно.
Total votes 110: ↑95 and ↓15+80
Comments20

Подсветка синтаксиса языка F# в gedit

Reading time11 min
Views1K

Введение


Создание подсветки синтаксиса для какого-либо языка в gedit, осуществляется с помощью библиотеки gtksourceview. В общем и целом работа по добавлению подсветки синтаксиса какого-либоязыка в gnome-edit состоит в написании файла с расширением .lang, который по сути является XML файлом, в которм хранится описание синтаксиса того или иного языка. Обычно .lang файлы, которые подерживает gtksourceview находятся в директории /usr/share/gtksourceview-2.0/language-specs/
Подробности
Total votes 22: ↑21 and ↓1+20
Comments1

Всемирная слава или смерть ждет Windows Phone 7?

Reading time1 min
Views1.6K
Долгое время в интернете бурлили холивары на тему мобильной платформы Windows Phone 7. Ей пророчили как скорую смерть, так и победу на всех рынках.

И наконец в одном подкасте встретились обе стороны:
ведущий аналитик мобильного рынка Эльдар Муртазин, который хоронил Windows Phone 7 с момента появления, и апологет платформы, ведущий разработчик программного обеспечения и Microsoft Student Partner Guru Юрий Трухин.

image

Слушайте, будет жарко!
Total votes 59: ↑41 and ↓18+23
Comments256

Тестирование поведения приложения в условиях нехватки памяти

Reading time2 min
Views7.3K
В android мы можем перехватить событие low memory для нашего приложения или активити, путем установки им через registerComponentCallbacks в качестве обрабочика наследника от интерфейса ComponentCallbacks переопределив ему метод onLowMemory.

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

Так же система гарантирует что после вызова onLowMemory будет вызвана системная сборка мусора (garbage collector)

И так, если наше приложение реализует какое либо поведение при наступлении данного события — хорошо бы протестировать это поведение.
Стандартный способ простой — начинаем искуственно увеличивать количество потребляемых ресурсов (например загружать картинки по два раза) пока не упремся в лимит.

И есть и второй способ — изменить данный лимит, о чем собственно и речь пойдет ниже.
Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments12

Android для x86

Reading time1 min
Views12K
Вы настолько любите Android что готовы отдать ему на растерзание свой нетбук — но не знали как? Тогда вам поможет www.android-x86.org (странно что об этом проекте еще не упоминали на хабре — я по крайней мере не нашел).
android
Читать дальше →
Total votes 78: ↑63 and ↓15+48
Comments66

Альтернативные аллокаторы памяти

Reading time13 min
Views91K
Написал Стивен Тови в 2:29 утра по программированию (шутка юмора Google Translate)
Вступление от себя: эта заметка, прорекламированная Алёной C++, предназначена в основном разработчикам игр для консолей, но будет, наверное, полезна и всем, кому приходится сталкиваться с экстремальным аллоцированием динамической памяти. Возможно, любители посравнивать управление памятью в C++ и Java тоже найдут над чем задуматься.

Оригинал с небезынтересной дискуссией в комментариях: altdevblogaday.org/2011/02/12/alternatives-to-malloc-and-new


Обязательная вступительная басня

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

Сейчас объясню, почему...
Total votes 75: ↑72 and ↓3+69
Comments59

Экспериментальное определение характеристик кэш-памяти: практикум

Reading time9 min
Views5.9K
Первая статья об экспериментальном определении характеристик кэш-памяти появилась на свет несколько необычным образом. Играясь с утилитами из lmbench, я получил те самые три графика, и задался вопросом, сколько же информации об исследуемой системе можно из них вытянуть. Определив некоторые характеристики кэша и TLB, я затем задал эти графики студентам как домашнее задание — предвкушая, что им удастся обнаружить что-то такое, что я проглядел. В целом, студенты меня разочаровали, и не заметили даже связь ассоциативности с наклоном ступенек на графике. В конце семестра я собираюсь рассказать им своё решение; а чтобы оно к тому времени не забылось, я написал на скорую руку ту статью.

Затем Yekver предложил мне идею простой программы для Windows, которая определяла бы характеристики кэша автоматически, не требуя ручного анализа графиков. (Тем более, что версии lmbench для Windows не существует.) Для замера времени будем использовать функцию __rdtsc, которая возвращает 64-битное количество тактов с момента последнего сброса процессора. Сначала определим тактовую частоту процессора, замерив на произвольной нагрузке время выполнения и количество потребовавшихся тактов. Затем для расчёта времени доступа к памяти будем делить количество потраченных тактов на тактовую частоту процессора.

Подобно прошлому эксперименту, мы будем брать данные различного объёма от 4КБ до 512МБ, и проходить по массиву миллионы раз с последующим усреднением результата. Чтобы минимизировать влияние дополнительных операций в цикле нагрузки, следуя примеру авторов lat_mem_rd, используем для тела нагрузки операцию p=(void**)*p;, которая компилируется в одну машинную команду, и развернём её 256 раз, чтобы возврат к началу цикла выполнялся относительно редко.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments21

Экспериментальное определение характеристик кэш-памяти

Reading time6 min
Views5.1K
В ряде случаев (например, для тонкой оптимизации программы под конкретный компьютер) полезно знать характеристики кэш-подсистемы: количество уровней, время доступа к каждому уровню, их размер и ассоциативность, и т.п.
Для одноразовой оптимизации необходимые значения можно посмотреть в спецификации на компьютер, но когда требуется автоматическая оптимизация (например, во время сборки и установки программы), характеристики приходится определять косвенно, по результатам прогона специального набора тестов.
Удобная тестовая программа для Linux — lat_mem_rd из пакета тестов lmbench. Её работа заключается в том, что она выделяет в памяти массив и читает его элементы с заданным шагом, циклически проходя по массиву снова и снова. Затем выделяется массив большего размера, и т.д. Для каждого значения шага и размера массива подсчитывается среднее время доступа.
Пример графика, который был получен этой программой на реальной системе:

Как по полученным данным определить характеристики кэша?
Total votes 33: ↑33 and ↓0+33
Comments10

Программы для генеалогического дерева

Reading time5 min
Views251K

О генеалогических программах.



Зачем оно нужно?

1. Хранение информации. Если все
хранится на бумаге — может сгореть, пропасть и т.д. В электронном виде если регулярно делать бэкап опастность меньше
2. Упорядочивание информации. Быстро найти все людей которые погибли на войне. всех троюродных братьев данного человека, всех которые родились в Киеве до революции. такие задачи возникают часто при работе. Получить все такие срезы очень тяжело если все у вас хранится в одном файле или на бумаге.
3. Работа с источниками. Часто бывает важно знать из какого источника поступила информация. Часто надо найти все, что известно из этого источника.
4. Работа с фотографиями. Хранить все картинки имеющие отношение к одному человеку вместе. Если на фотографии несколько людей не хранить ее несколько раз. Привязывать фотографии не только к людям но и к конкретным событиям.
5. Работа с географическими местами. Описание, фотографии, прежнее имя, список всех кто там родился.
6. Обмен информацией с другими людьми
7. Автоматическое построение деревьев и еще многое многое

Теперь про конкретные программы.
Читать дальше →
Total votes 43: ↑35 and ↓8+27
Comments78

UJAM открывает публичное альфа-тестирование

Reading time1 min
Views753
UJAM — веб-сервис, позволяющий любому человеку сочинять свою собственную музыку. Возможности сервиса действительно впечатляют — достаточно напеть в микрофон (на «ла-ла-ла», «а-а-а», или просто промычать) или сыграть на любом музыкальном инструменте нужную мелодию, чтобы веб-приложение само записало её в виде нот. После этого можно выбрать, на каком инструменте должна играться мелодия, и приложение начинает играть мелодию на выбранном инструменте. Оно также может добавить к мелодии аккомпанемент в указанном стиле.

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



Работает UJAM на двух облаках, одно в США, второе в Европе. Выбор облака производится автоматически, но можно переключиться вручную.

Ранее в течение многих месяцев велась активная разработка и проводилось закрытое альфа-тестирование, и сейчас наконец-то открыто публичное альфа-тестирование веб-сервиса.

Если говорить точнее, то на UJAM могут зарегистрироваться 4 000 пользователей.
Total votes 37: ↑36 and ↓1+35
Comments17

Что нужно знать про оплату банковскими картами через интернет

Reading time5 min
Views229K
Прочитав вот этот топик, я увидел, что очень многие хабралюди (в том числе и автор топика) не представляют себе, как работает оплата банковскими картами в интернете. Руководствуясь домыслами и предположениями, а не фактами, автор делает вывод, будто бы карты Сбербанка наиболее уязвимы для мошенничества в интернете. Поэтому я решил рассказать о том, как на самом деле устроена оплата банковскими картами в интернете, чтобы хабралюди на основании фактов, а не домыслов, представляли себе, как это работает, и где их могут поджидать реальные, а не мнимые, опасности.

Disclaimer: Я работаю в Сбербанке России. Моя работа связана с помощью клиентам, а не с карточками, однако раньше я работал в области e-commerce, и очень хорошо знаю, как работает схема оплаты карточками в интернете.

Читать дальше →
Total votes 219: ↑205 and ↓14+191
Comments101

Первый Dropquest от Dropbox.com

Reading time1 min
Views1.2K
DropquestЗавтра 15.01.2011 состоится первый Dropquest. Что такое Dropquest?

Dropquest — это специальный конкурс который дает шанс выиграть свободное пространство к своему аккаунту на dropbox'e и также памятные призы.

Немного о сути квеста:
Читать дальше →
Total votes 134: ↑123 and ↓11+112
Comments397

Заставляем ProgressBar крутиться пока идет http-запрос

Reading time2 min
Views48K
Все началось с того, что мне вдруг очень захотелось сделать что-нибудь под андроид. И все это несмотря на то, что java — не мой родной язык.
В процессе создания своего приложения я столкнулся с несколькими трудностями, о решении которых и хочу поведать. Думаю, они будут полезны, таким же как я, новичкам, и буду благодарен за советы и более красивые примеры от гуру.
Но главное подтверждение работоспособности примеров — это то что приложение работает, можете проверить.
Читать дальше →
Total votes 52: ↑43 and ↓9+34
Comments22

Мы проанализировали 20 лэндингов крутых стартапов и вот чему мы научились

Reading time9 min
Views86K
main

В нашем проекте мы постоянно меняем основной лендинг или создаем дополнительные лендинги для направлений нашего сервиса. Каждый раз стараемся найти лучший вариант представления нашего продукта. Но что менять, а что оставлять, не всегда понятно с первого взгляда. Поэтому мы перевели статью, в которой препарируются 20 лэндингов известных стартапов.

Это как собрать идеальную девушку из топ моделей или любимых актрис. Только про лэндинги.
Итак, запаситесь чашкой кофе, понеслась.
Читать дальше →
Total votes 76: ↑59 and ↓17+42
Comments17

Путешествие по Стеку. Часть 1

Reading time7 min
Views94K


В предыдущих материалах мы рассмотрели размещение программы в памяти – одну из центральных концепций, касающихся выполнения программ на компьютерах. Теперь обратимся к стеку вызовов – рабочей лошадке большинства языков программирования и виртуальных машин. Нас ожидает знакомство с удивительными вещами вроде функций-замыканий, переполнений буфера и рекурсии. Однако всему свое время – в начале нужно составить базовое представление о том, как работает стек.
Читать дальше →
Total votes 47: ↑44 and ↓3+41
Comments15

Организация памяти процесса

Reading time8 min
Views140K
image
Управление памятью – центральный аспект в работе операционных систем. Он оказывает основополагающее влияние на сферу программирования и системного администрирования. В нескольких последующих постах я коснусь вопросов, связанных с работой памяти. Упор будет сделан на практические аспекты, однако и детали внутреннего устройства игнорировать не будем. Рассматриваемые концепции являются достаточно общими, но проиллюстрированы в основном на примере Linux и Windows, выполняющихся на x86-32 компьютере. Первый пост описывает организацию памяти пользовательских процессов.
Читать дальше →
Total votes 28: ↑25 and ↓3+22
Comments12

Как найти показатель степени двойки за O(1) с помощью последовательности де Брёйна

Reading time2 min
Views30K

Аперитив


Всем, наверное, известно, как посчитать количество бит в числе. Например, подойдут следующие два способа:
while (n)
{
    ++count;
    n &= (n-1);
}

while (n)
{
    if (n&1)
        ++count;
    n >>= 1;
}

Упражнение: какое в среднем количество операций будет выполнено в первой и во второй реализации?

Блюдо


Пусть у нас есть n-битное число вида 2^i. Нам необходимо найти i за O(1).
Как это сделать? Пусть n = 2^k. Построим последовательность де Брёйна (de Bruijn) над алфавитом {0,1} для подстрок длины k.

Что такое последовательность де Брёйна?

Читать дальше →
Total votes 60: ↑52 and ↓8+44
Comments49

Information

Rating
2,763-rd
Location
Россия
Date of birth
Registered
Activity