Category: it

Category was added automatically. Read all entries about "it".

debian x64 flash player

Если у вас возникли проблемы с функционированием flash
после установки flashplugin-nonfree

обратите внимание на файл
/usr/sbin/update-flashplugin-nonfree

и ваша жизнь станет немного проще

Big Data

Прочитал
Big Data: Principles and best practices of scalable realtime data systems
http://goo.gl/7jDS4Z

Книжка оказалась очень полезной, в ней много здравых идей и описание их реализации.
Например:
1) работа с множественными файлами в hdfs их представление и объединение, для этого автор сделал небольшую либу.
Реальная проблема если данных грузится много но небольшими кусками.
2) cascalog и jcascalog как библиотека для организации join операций над данными в hdfs
очень красиво DSL для определения джойнов сделан
и оказалось что на джойнах многоие задачи решаются элементарно
например есть у тебя связанные списки в таблицах и хочется найти только цепочки удовлетворяющие определенным критериям
один из самых простых способов заджойнить таблицу нужное количество раз саму с собой.
3) узнал о преимуществах бд которой не нужно делать случайную запись по сравнению с обычной субд
4) отлично расписана идея как можно хранить данные рассчитывая итоги с разлитной степенью агрегации
год , месяц, неделя, день, час с вычислением самого короткого пути чтобы вычислить показатели на заданное дату время
причем как вперед так и назад
типа надо знать на предпоследнее число месяца итоги
считаем агрегированные итоги помесячные и потом вычитаем из них итоги за последнее сичло месяца
эта идея мне раньше в голову не приходила
5) офигенно расписано чем отличается последовательная обработка событий от параллельной и самое главное как при этом гарантировать единственность выполнения операций при сбоях и повторах рассчетов, это важно например если ты какие нибудь финансовые данные обрабатываеш , там должно быть точно
6) узнал профишку storm когда при процессинге событий требуется либо накопить определенное число (чтобы работать батчами ) либо таймаут определенный выждать
оказывается в шторме эта логика реализуется в одном и томже алгоритме
7) хорошо описана методика рассчета оптимальности кластера, причем трудозатраты изменяются во времени, при этом получаются очень простые и наглядные формулы
это нужно чтобы оценить а сколько тебе машин в кластере надо а что будет если ты увеличиш кластер , а какое количество машин оптимально и дальнейшее увеличение это просто трата ресурсов
8) офигенно расписана идея использования hyperloglog set для подсчета уникальности
9) узнал что есть три модели пересчета данных
каждый раз все пересчитываем
инкрементально пересчитываем
бъем на партиции и пересчитываем только те партиции корые затронуты обновленными данными
вот этот третий вариант, я пронего не знал, но он очень просто решает задачи когда
требуется пересчитать данные по каким либо избранным значениям (типа для конкретных абонентов)
10) как я и предсказывал, нихрена не описано как объединять результаты запроса когда запрос затрагивает speed layer и serving layer
тут походу автор выдохся и нужно ждать второй серии

Управление релизами и android repo

Условия задачи




  1. Проект разбит на компоненты.


  2. У каждого компонента собственное версионирование.


  3. Компонент требует сборки исходного кода. При сборке получаются бинарные артефакты.


  4. Компонент может зависить от других компонентов.


  5. Компонентов много (больше 20).


  6. В релиз входят компоненты заданных версий.


  7. Одновременно может разрабатываться несколько релизов.


  8. Используется система контроля версий git.




Требуется




  1. Во время разработки контролировать, что изменения в исходный код вносятся в "правильные" ветки.


  2. Что во время сборки релиза компонента, собирается код с ревизией с тегом релизной версии компонента.


  3. Для каждого релиза контролировать входящие в него бинарные артефакты.




Решение


Collapse )

Написание inline asm вставок в gcc

Ассемблерная вставка в с++ код, подобна использованию шаблона с аргументами

asm | __asm__ ("тело шаблона" [: [output operands] [: [input operands [: [clobber]]]] ]);

тело шаблона это одна или несколько ассемблерных команд

Примечание: все примеры ниже приведены для архитектуры PowerPC

Collapse )

oracle.удаление зависших сессий

получаем информацию о сессиях
select * from v$session where username = '<user>';

находим sid интересующей нас сесии

по sql_id,prevsql_id можно посмотреть что выполняется
select * from v$sql where sql_id='<sql_id>';

ненужную сессию можно отключить использовав команду
alter system kill session '<sid>,<serial#>';

блокировки можно посмотреть в select * from v$lock;

это не всегда помогает, иногда требуется убить dedicated процесс отвечающий за данную сессию на стороне сервера. получаем процесс по sid

SELECT p.spid, p.program, s.program, s.terminal, s.status
FROM v$process p, v$session s
WHERE p.addr = s.paddr and s.sid=<sid>;

после этого kill -9 <spid>

и проверяем через v$lock что блокировок на данной сесии нет

http://www.orafaq.com/node/854
http://www.oracle.com/global/ru/oramag/janfeb2004/easy_kill_session.html

первый взгляд на java script

Моя пополамка играет в www.travian.ru, интерфейс у которого не очень удобен, и сподвигла она меня на написание скрипта для firefox под greaseemonkey.

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

С javascript я ниразу в жизни дела не имел. но слышал что на нем "пишут разные скрипты".
Взялся за дело с энтузиазмом.

За день нужный скриптик был написан. Сценарий простой: скрипт активируется по желания пользователя, собирает статистику и выводит ее на страницу, потом периодически повторяет сбор статистики.

Впечатления от javascript остались сомнительные: динамическая типизация, отсутствие непротиворечивой документации по реализациям (http://help.dottoro.com/index.php и https://developer.mozilla.org/ru/JavaScript это лучшее что нашлось), отсутствие средств для синхронизации асинхронных запросов, нет готовых средств для разбора кастомных datetime, глюки в реализации замыканий (это исключительно от непонимания, см объясние ниже).

Collapse )

загадка в реализация виртуальных функций в VS C++

как известно C++ имеет виртуальные функции и множественное наследование
подробности например тут
http://www.codesourcery.com/public/cxx-abi/cxx-vtable-ex.html
http://www.openrce.org/articles/files/jangrayhood.pdf

исследуя некоторый код обнаружил странную картину
Collapse )

TimeShift на ноутбуке

Решил немного погамится тут.
Раздобыл образ игрушки TimeShift http://www.timeshiftgame.com/
Ставлю на ноут, ставлю патчи. Запускаю - аоно тихо заворачивает ласты :)
Настолько тихо что создает окно и тутже его закрывает.
И ни ошибок ни логов с описанием проблемы.

Посмотрел на форумах. Ничего кроме мыслей о том что все зависит от драйверов.

Решил вскрыть зверюшку
Вскрытие показало, что проблема в том что игра считает что на моей видеокарте (ATI x2300) не хватает памяти. Заглянул в спецификацию у меня 256 метров задекларировано. А драйвер мне в свойствах девайса возвращает меньше 64 метров.

Смотрю дальше, по коду видно что разработчик знает о проблеме и даже завел специальный ключик
VIDEO_IgnoreVidMemCheck который предназначен для пропуска проверки размера видеопамяти.
Добавляю в user.ini параметр VIDEO_IgnoreVidMemCheck = Yes. Запускаю - не работает.

Параметры ведь еще и считывать из файла нужно :). Но оказывается другой разработчик (не будем упоминать его имени) взял и вырезал из релиза код который инициализирует этот параметр из конфига. Потом подумал немного и вырезал еще и код логгера куда программа передает о своих проблемах :)

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

Лечится просто:
для версии 1.2 (локализация от софклаб) по адресу 007734A9 меняем байт 75 на EB

Запустил. Пришлось на минимум свернуть все настройки. Но выше 10-15 фпс видео карта не потянула :(
Прошел пару чекпоинтов и плюнул, невозможно с таким фпс играть, а так игрушка прикольная.

Про бизнес

Роберт Скобл

Первым нашим годом в бизнесе был 1997-й. Мы начали с создания ПО для крупных заказчиков — компаний, больших, чем наша. В числе наших первых сделок был заказ от одной крупнейшей и известнейшей в мире бухгалтерской компании. Проект был большой возможностью заполучить звучного, "баннерного" клиента.

Collapse )