Архив за 08 апреля 2013

Кастомизация Android контролов под iOS стиль

Заказчик хочет видеть на android полную кальку приложения с iOS? Не знаете от чего оттолкнуться? Тогда, добро пожаловать под кат.
Читать полностью »

iconBIT NetTAB ULTRA NT 0704M: Хорошая конфигурация за небольшие деньги в необычном исполнении

Почти год назад я покупал себе планшет. С того момента у меня не раз появлялось желание обновить его. Однако безумно быстрая технологическая гонка сильно тормозила обновку — можно было взять прямо сейчас или подождать месяц-другой и взять устройство классом выше, но по той же цене… Решал подождать, а через пару месяцев история повторялась снова.

Так могло бы повторяться вечно, однако переломным моментом стала поломка устройства. Как ни странно он не выдержал тест «а что будет, если выбросить планшет с 7 этажа?», который проводил один из моих знакомых по своей неосмотрительности. Как показывает практика, поломка устройства часто порождает большой стимул обновить девайс.

Собственно начал подбирать себе 7" планшет до 10К. Ввиду наличия положенного опыта общения с продукцией компании iconBIT, не упускал из виду и новинки от этой компании. После непродолжительного поиска наткнулся на модель NetTAB Matrix Ultra NT-0704M. И довольно быстро пришел к выводу, что аналогов на рынке ну просто нет — я мог найти планшеты по такой же цене с близким по параметрам железом, но нигде больше не видел встроенной защиты экрана «аля iPad». Эта уникальная особенность + личное доверие к компании не оставили сомнений в том, что NT-0704M будет моим следующим планшетом.
Читать полностью »

Сразу стоит отметить, что демонстрационное видео под катом не похоже на броскую картинку из «Звёздный войн» с эффектными вспышками лазеров и характерными пульсирующими звуками, однако же реальность того, что военное применение лазерного оружия на высоком технологическом уровне весьма близко, почти не вызывает сомнения.

В начале следующего года ВМФ США планирует проводить полевые испытания лазерной пушки на американском десантном корабле Ponce, которые в прошлом году нёс службу в Персидском заливе в качестве плавучей базы Пентагона обеспечения военных операций. В качестве доказательства того, что деньги налогоплательщиков уходят не на бесполезные игрушки, в ВМФ приводят короткое видео, где показано отслеживание и уничтожение летящего дрона лазерной пушкой с палубы ракетного эсминца Dewey — при этом в качестве отслеживающей системы используется радар зенитного комплекса MK 15 Phalanx (по прозвищу «R2-D2»).

Процесс показан с обеих сторон — как это видел оператор на корабле, и то, что было снято встроенными камерами дрона. Уничтожение цели не выглядит эффектно, подобно фантастическим боевикам — вспышка лазера, взрыв и падение в море — напротив, лазер, скорее, «сжигает» дрона на протяжение некоторого времени. Любопытно также и то, что одним из преимуществ использования лазерного оружия на флоте является дешевизна. Указывается, что запуск ракеты стоимостью в десятки или сотни тысяч долларов является более расточительным занятием, чем выстрел из лазера по той же цели.

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

Я фрилансер, и основная моя специализация — решения IP телефонии на основе Asterisk.

На днях ко мне обратился один из моих довольно давних клиентов, у которого в прошлом году я внедрял телефонию для call-центра интернет-магазина. Там я ставил и настраивал только и исключительно Asterisk с сопутствующими пакетами, установкой же собственно сервера и ОС (Ubuntu), как и поддержкой системы после внедрения, занимался местный сисадмин, а ко мне изредка обращались с разовыми нетривиальными задачами, требующими квалификации большей, чем простая правка контекстов в диалплане. В этот раз им потребовалось изменить логику работы CDR в части статистики принятых вызовов по очередям.

Договорившись о стоимости и сроках, я приступил к работе. Каково же было мое удивление, когда после включения логирования незавершенных звонков в CDR пошел поток записей а-ля «UNKNOWN UNKNOWN» со статусом «FAILED»! Причем попытки дозвона были направлены на несколько литовских номеров в коде +370.

Поскольку мысль о подключении извне к самому asterisk была после проверки отброшена сразу (все рекомендации по безопасности были выполнены еще на этапе внедрения, стоял fail2ban, а sip-аккаунты имели жесткое ограничение по ip), и при этом AMI был отключен, то оставался один вариант — call-файлы. Так и оказалось. Уточнил у клиента: они не использовали эту технологию и тем более не звонили в Литву. Мораль? Правильно, банальный взлом.
Читать полностью »

Разработчик Google Chrome Team Франсуа Бофор (François Beaufort), уже сообщавшийЧитать полностью »

Оловянные нанокристаллы увеличивают энергоёмкость батареи
На фотографии: монодисперсная система оловянных частиц под электронным микроскопом.

Группа ученых под руководством Максима Коваленко из лаборатории неорганической химии в Швейцарской высшей технической школе Цюриха и Швейцарской федеральной лаборатории материаловедения и технологий смогли получить новый тип наноматериала, помогающий сохранить в литиевом аккумуляторе значительно больше энергии.

Наноматериал состоит из крошечных фрагментов олова, которые закрепляются на аноде аккумулятора, его отрицательном полюсе. Принцип действия достаточно прост: во время заряда ионы лития поглощаются электродом, а во время работы батареи и её разрядки они выпускаются обратно. Как объясняет сам Коваленко, чем больше ионов поглощается в процессе такого «дыхания», тем больше энергии может быть сохранено в аккумуляторе.

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

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

Итак, начнем с представления строк в памяти

В.NET строки располагаются согласно правилу BSTR (Basic string or binary string). Данный способ представления строковых данных используется в COM (слово basic от языка программирования VisualBasic, в котором он первоначально использовался). Как известно в C/C++ для представления строк используется PWSZ, что расшифровывается как Pointer to Wide-character String, Zero-terminated. При таком расположении в памяти в конце строки находится null-терминированный символ, по которому мы можем определить конец строки. Длина строки в PWSZ ограничена лишь объемом свободной памяти. Читать полностью »

СКС в серверной или сказ о том, как я впервые укладывал много кабеля

Вечер добрый. Пару лет назад компания, которую администрирую, расширялась и переехала в новое, более обширное, помещение. Арендодатель сдал нам голую площадь, на которой строители возводили стены, электрики тянули проводку, ну а я, впервые для себя, побывал в роли монтажника СКС. Данный пост является просто фото-отчетом, может кому-нибудь будет интересно посмотреть, а люди, у которых монтажные работы — хлеб, выдадут какие-нибудь замечания и поругают за кривизну работы. Прошу под кат(осторожно, много фотографий).
Читать полностью »

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

В статье будет рассказано о базовых подходах к возврату асинхронных результатов, функциях обратного вызова, объектах deferred и их возможностях. Будут приведены примеры на языке JavaScript, а также произведён разбор типового объекта deferred. Статья будет полезна программистам, начинающим постигать асинхронное программирование, а также знакомым с ним, но не владеющим объектом deferred.
Читать полностью »

По мотивам «Коанов Вима».

Тишина
Что-то одно, но хорошо
Только богам
Хобгоблин
Длинное и короткое

Тишина

Python-программистка передала свой файл ~/.gitconfig мастеру Гиту. Среди строчек кода было следующее:

[alias]
; Явное лучше подразумеваемового. Если мы хотим выполнить слияние,
; нам следует сделать это самим.
pull = pull --ff-only

Мастер Гит кивнул. «git pull origin master», — сказала программистка.
Читать полностью »