Архив за 16 мая 2012 - 2

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

Вот я начинаю серию постов/статей по заработку в сети. Нет не подумайте я не буду вам рассказывать какие то заезженные темы. Все исключительно ново и эксклюзивно (по крайней мере не разу не сталкивался ни в русском интернете ни в американском)
Эту статью я посвящу монетизации торрент-трекеров, сериалам и же сними. ВНИМАНИЕ: Очень-очень много букв.
Читать полностью »

Вникаем в метаклассы Ruby
Примечание переводчика: данный пост является логическим развитием, а точнее «предысторией» поста Вникаем в include и extend и был подсказан в комментариях к нему пользователем murr, за что ему большое спасибо.

Классы и объекты в Ruby связаны между собой достаточно затейливо и не сразу можно понять что к чему. Из-за особого назначения классов очень легко потерять из вида тот факт, что классы — это тоже объекты Ruby. От «обычных» объектов их отличает два вещи: они служат образцом для создания новых объектов и они являются частью иерархии классов. Все верно, классы могут иметь экземпляры себя (объекты), суперклассы (родителей) и подклассы (детей).

Если классы — это объекты, то у них должен быть свой собственный класс. Классом всех классов (как объектов) в Ruby является класс Class:

# один из способов создать новый класс
Dog = Class.new
    
# общепринятый способ создания класса
class Dog
    # какая-то реализация собачьего поведения
end

Dog.class
=> Class

Читать полностью »

Немного вводных данных. Компания, в которую я пришёл работать на должность начальника отдела информационных технологий, занимается разработкой и внедрением учётных систем. В то время было 3 крупных проекта информатизации и десяток компаний-абонентов ИТ аутсорсинга в комплекте с сопровождением учётных систем. Количество обслуживаемой техники около 250 компьютеров и серверов.
Немного о персонале. Отдел состоял из четырёх человек, двое из них работали в компании первый месяц — это были 2 студента без спец. навыков, пришедшие на первую работу, ещё один человек, как мне сказали, «его уровень выше чем у остальных», как выяснилось позже, эта точка зрения была субъективной, ну и четвёртый человек — это сотрудник, находящийся при клиенте, т.е. привлекать к проектом не представлялось возможным.
Читать полностью »

Time Machine: бекапим OS X Lion на Ubuntu 12.04 LTS сервер
Time Machine: бекапим OS X Lion на Ubuntu 12.04 LTS сервер

Если кто не знает, Time Machine — это такой замечательный бэкап-сервис из коробки для Apple OS X, тут и тут можно почитать поподробнее. Если у вас есть мак, и вы не пользуетесь «машиной времени», то это совершенно напрасно. Time Machine делает постоянные дифференциальные бэкапы, поэтому она удобна даже в случае прекрасной жизни ваших HDD / SSD. Можно в любой момент открутить назад историю и восстановить случайно удаленный файл, или, что еще важнее, предыдущую версию измененного файла.

Предполагается, что пользователи будут использовать либо обычный жесткий диск (который придется целиком отдать под тайм-машину), либо специальный сетевой девайс Time Capsule. Традиционный внешний жесткий диск — решение для очень организованных людей, которые регулярно (хотя бы ежедневно) будут его подключать для автоматического бэкапа, иначе польза от тайм машины будет весьма ограничена (хотя прошлогодний бэкап все же лучше, чем совсем ничего). С тайм-капсулой будет гораздо удобнее и надежнее. Кроме функции бэкапа, она может выполнять еще и функцию сетевой шары, раздачи Wi-Fi (фактически Time Capsule — это Wi-Fi роутер с HDD). Но устройство стоит денег, и оно не такое универсальное. Мне захотелось прикрутить на свой сервер работающий на Ubuntu возможность делать бэкапы тайм-машиной. И это не так сложно, о чем и будет эта заметка.

Читать полностью »

Вступление

Javascript BMP ParserЕще с появления скриптов для отображения PDF, извлечения информации с MP3 и декодировки H.264 меня очень заинтересовала тема чтения и работы с бинарными данными в JavaScript.

В этом посте хотелось бы рассказать про свои эксперименты и рассмотреть эти возможности на примере «ручного» парсинга и отображения BMP-файлов (а заодно и освежить память о школьных временах работы с BMP на Паскале :) ).

Сразу хочу предупредить, что речь будет идти именно о написании JavaScript самостоятельно, а не его генерации с исходных кодов других языков с помощью какого-либо транслятора типа Emscripten.Читать полностью »

Относительно недавно, прочитав местную статью "Демо, которых никто никогда не видел", решил, что тоже стоит пролить свет на некоторые плоды своей программистской молодости.

Начиналось с этого:
image

Читать полностью »

Навигация в помещениях, где не работает GPS

Fraunhofer Research совместно с Bosch разрабатывет систему Smartsense — сенсор для смартфонов с возможностями точной навигации внутри помещений, где не ловится сигнал GPS-спутников.

Читать полностью »

Вычисление CRC32 строк в compile time
По своей программистской природе я очень не люблю неоптимальность и избыточность в коде. И вот, читая в очередной раз на работе исходный код Mail.Ru Агента, вновь наткнулся на одну раздражающую особенность в способе реализации перевода строк продукта на разные языки.

Локализация здесь выполняется довольно нехитро. Все строки, требующие перевода, оборачиваются в макрос _TR():

wprintf(L"%sn", _TR("Some hashing string"));

Макрос возвращает нужную версию текста в зависимости от текущего используемого языка. Определён он следующим образом:

#define _TR(x) g_Translator.Translate(x)

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

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

Немного погуглив по запросу «compile-time crc32» я быстро понял, что задача это не самая тривиальная, а готовых решений мне найти так и не удалось.
Читать полностью »

Создание штамма вируса М13, обладающего пьезоэлектрическими свойствами, о котором шла речь в этом топике, может иметь интересные последствия. Дело в том, что хотя использование пьезоэлектриков для сбора отходов механической энергии не получило пока широкого распространения, эта идея — вовсе не фантазия и не дело отдалённого будущего. А изобретение более дешёвых, безопасных и эффективных пьезоэлектрических элементов вполне может вывести пьезоэнергетику на новый уровень.

Израильский стартап Innowatech занимается разработкой и внедрением пьезоэлектрических систем утилизации кинетической энергии. При движении автомобилей, поездов или пешеходов, часть их энергии тратится на деформацию дорожного покрытия. В результате деформации покрытие нагревается, тепло рассеивается и энергия теряется безвозвратно. Если встроить в дорожное покрытие, тротуар или железнодорожное полотно пьезоэлементы, часть её можно вернуть в дело. Причём довольно ощутимую часть.
Читать полностью »

Ассортимент компании Accell пополнился активным адаптером UltraAV DisplayPort to DVI-D Dual-Link, поддерживающим стереоскопические дисплеи.

Устройство дает возможность подключить к выходу DisplayPort или mini-DisplayPort компьютера монитор с входом DVI Dual-Link. Для подключения к выходу mini-DisplayPort используется входящий в комплект переходник.

Accell оценивает активный адаптер UltraAV DisplayPort to DVI-D Dual-Link в $110

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js