Заказчик хочет видеть на android полную кальку приложения с iOS? Не знаете от чего оттолкнуться? Тогда, добро пожаловать под кат.
Читать полностью »
Заказчик хочет видеть на android полную кальку приложения с iOS? Не знаете от чего оттолкнуться? Тогда, добро пожаловать под кат.
Читать полностью »
Сразу стоит отметить, что демонстрационное видео под катом не похоже на броскую картинку из «Звёздный войн» с эффектными вспышками лазеров и характерными пульсирующими звуками, однако же реальность того, что военное применение лазерного оружия на высоком технологическом уровне весьма близко, почти не вызывает сомнения.
В начале следующего года ВМФ США планирует проводить полевые испытания лазерной пушки на американском десантном корабле 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
», — сказала программистка.
Читать полностью »