Архив за 03 марта 2016 - 4

Компания QNAP объявила о выпуске хранилищ с сетевым подключением QNAP TS-128 и TS-228, ориентированных на домашних пользователей. Хранилища рассчитаны на вертикальную установку. Младшая модель вмещает один накопитель типоразмера 3,5 дюйма с интерфейсом SATA, старшая — два. По словам производителя, QNAP TS-128 и TS-228 хорошо подходят для создания «персонального облака».

При планировании любой задачи мы стремимся как можно точнее конкретизировать запросы, определить исходные данные и по возможности избавиться от любой неопределенности, мешающей просчитать конечный результат. Однако при разработке высокоуровневой логики не всегда уделяется внимание таким простым казалось бы вещам, как размещение данных в памяти, менеджмент потоков, обрабатывающих наш функционал, особенности реализации динамических массивов или бинарный интерфейс процедур. Когда написанная программа предельно лаконична и оптимизирована, но при этом работает не так быстро, как хотелось бы, закономерно возникает вопрос: «а что еще можно улучшить?» Насколько можно доверять низкоуровневому инструментарию, написанному профессиональными программистами, безусловно разбирающимися в своем деле, но при этом ни черта не понимающими в тех идеях, что вы хотите реализовать? Фрагментация, зацикленность, прерывания, события, объекты, уведомления, каждое новое знакомство с Си-шными или WinAPI-шными библиотеками подталкивает к очевидной мысли: «зачем такая громоздкая реализация?» Почему нельзя просто сделать менеджер кучи выделяющий память за строгое количество шагов? Использовать real-time статистику при работе с разделяемыми данными, вместо сложной системы семафоров и уведомлений? Наращивать динамические массивы без переразмещения и обращаться к случайной ячейке за одинаковое время после любого количества реформаций? Миссия не кажется невыполнимой. Осталось только попробовать.

Предлагаю широкому вниманию процедурную реализацию менеджера кучи, способного выделять диапазоны памяти заказных размеров. Цикл поиска при этом не превышает нормированных пределов. Работа с памятью состоит всего из двух процедур: memAlloc и memRecycle, выполняющих связанные функции. Потокобезопасность поддерживается с помощью дополнительного инструментария, в свою очередь состоящего еще из нескольких процедур. О распараллеливании немного поподробнее: принцип базируется на ассоциированной блокировке разделяемых данных, схожих с блокировкой шины методами Interlocked, однако без блокировки шины. Весь процесс сводится к созданию позиционных стопоров, являющихся по сути диапазонами памяти, содержащими однобайтовые метки состояний каждого из потоков в доступном пуле. Размер выводится из этого соотношения. Поскольку я использую восьмипотоковый пул (а больше мне не нужно), то позиционные стопоры у меня занимают 8 байт (64 бита). Перед перезаписью разделяемой информации стопор блокируется исполняющим потоком, записывая метку в байт под смещением своего номера в пуле. Другие потоки не будут работать с разделяемыми данными пока стопор не обнулится, выполняя Sleep, либо откладывая задачу, либо считая овечек в цикле, на выбор программиста.

Клоны Interlocked процедур — threadExchange, threadCompareExchange и threadIncrement выполняют те же функции, что и оригиналы. Однако при работе внутри потока из пула не блокируют шину. Вместо этого используется ассемблерная процедура, задача которой сводится к двухступенчатой проверке стопора и установке собственной метки (стоит отметить, что при работе вне пула, в потоке не имеющем номера, все же используется блокировка шины). Ее реализация ниже:
Читать полностью »

Весна – пора любви. И пусть начало календарной весны ознаменовалось для россиян экстремальными снегопадами и погодными катаклизмами – любовь вновь победила. Brand Analytics представляет новые данные по эмоциональному состоянию пользователей социальных сетей в регионах России. Шестое исследование показало очередной рекорд соотношения позитивных и негативных эмоций в публичных сообщениях российских пользователей соцмедиа: «Индекс Любви» в феврале-марте 2016г составил 5,9, что означает, что россияне оставили в социальных медиа в 6 раз больше сообщений о любви, чем о ненависти.
«Индекс Любви» на карте России, весна 2016: исследование эмоционального состояния пользователей социальных медиа - 1
Читать полностью »

Юзабилити линч: ищем уязвимости интерфейса в CMS Diafan - 1

Привет. Я уверен, ты всё-таки еще не умираешь! Постараюсь, чтобы данный материал внёс свои 5 коп в фонд развития “Хабр — живи!”.

Я достаточно длительное время занимаюсь дизайном интерфейсов. Люблю своё дело и каждый раз ищу любую возможность развиваться. Поиск ошибок и уязвимостей интерфейсов в рабочих системах, прототипах и приложениях нахожу такой возможностью. Обнаружив несколько типичных ошибок у других, выводы точно отпечатаются в подсознании, что позволит не наступать на подобные грабли вновь в собственной повседневной рутине.
Прошу заранее не судить строго. Обзор носит чисто субъективный характер. Взгляд на данную систему изложен исключительно через призму личного профессионального опыта. Обрадую тем, что будет не только критика — будут предлагаться и решения!
Читать полностью »

Компания EK Water Blocks представила серию наборов для сборки систем жидкостного охлаждения. В серию Performance или P вошли наборы EK-KIT P240, EK-KIT P280 и EK-KIT P360 с радиаторами типоразмера 240, 280 и 360 мм соответственно.

Набор EK-KIT P240 стоит 320 евро, EK-KIT P280 — 340 евро, EK-KIT P360 — 345 евро

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

Продолжаем рассказывать, как обходиться с очередью е-мейл обращений. В предыдущий раз мы обсудили сортировку обращений и приоритет, распределение на команду и назначение ответственного. Сегодня дадим три комментария к каждому из этих процессов.

1. Блатных без очереди!

Один из параметров для сортировки обращений — ценность клиента для компании. Вкладчики с миллионом или держатели кредиток, постоянные или новые покупатели, пользователи с тарифом “старт” или “энтерпрайз”.
Те, кто платят больше, рассчитывают на привилегии и не хотят ждать.Читать полностью »

С 1 марта крупнейший в России доменный регистратор RU-CENTER отменил старые условия работы с партнерами, предложив им присоединиться к новой клубной программе, подразумевающей фиксированную плату от 990 руб до 44,9 тысяч руб в год в зависимости от размера получаемых скидок. В результате стоимость услуг компании для ряда клиентов выросла. В RU-CENTER объясняют это стремлением сделать работу с партнерами более прозрачной.

Мы видим, Читать полностью »

Учредитель сервиса RentacarFor.me Кирилл Антошин рассказал, как сугубо офлайновый бизнес — прокат, собрал все сливки с онлайна в Черногории и какие сложности есть в других странах.

Про Черногорию

В Черногории основная проблема оказалась в низком уровне проникновения интернета в принципе и слабом владении компьютерами в частности. На этапе запуска мы делали полностью онлайн-сервис, Читать полностью »

Ловим усталость с помощью AndroidWear - 1

Это небольшая история про один из экспериментов нашей компетенции Wearables.
Мы провели его больше года тому назад, поэтому код изрядно устарел, да и AndroidWear-приложением сегодня уже никого не удивишь, однако задумка была очень интересной, и поработать над ней было здорово. За что огромное спасибо авторам идеи: Арсению Печенкину и VP of Engineering Роману Чернышеву, благодаря которым стартовал этот R&D.

Посмотреть код можно на GitHub. А вот небольшая презентация.


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

image

Вчера представители мин. транспорта США объявили о запрете вэйпинга («курение» электронной сигареты с жидкой рабочей частью) на коммерческих рейсах. Запрет распространяется на все регулярные рейсы США и иностранных перевозчиков. Теперь «парить» в самолете запрещено, также как и курить по старинке.

Министерство транспорта США решило официально запретить использование электронных сигарет и других аналогичных устройств на борту самолетов, чтобы прекратить путаницу на тему того, является ли вэйпинг в небе законным, сообщает arstechnica.com.
Читать полностью »


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