Pull to refresh
57
0
Send message

Литий, он такой литиевый

Reading time3 min
Views34K


Побывав на выставке HKTDC запал на интересную, как мне тогда показалось тему — сборки LiFePO4 элементов в форм-факторе обычного 7 или 9 Ач свинцово-кислотного аккумулятора.
Представить только, выбрасываешь старую батарейку из ИБП, заменяешь литиевым счастьем и сплошной профит. И тебе “вечный примус”, и на морозе емкость не так сильно теряет, и при заряде может принимать большие и большие токи, да и отдавать тоже может много и сразу. Ну в общем сказка.
Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments88

Cоздатели «Вконтакте» и Telegram подали иск на 100 млн рублей на экс-сотрудника за разглашение конфиденциальных данных

Reading time6 min
Views54K

Павел Дуров

Вчера Антон Розенберг, который говорит о себе, как о бывшем заместителе технического директора «Вконтакте» и экс-директоре особых направлений в Telegram, рассказал о крупном конфликте с Павлом и Николаем Дуровыми. По словам Розенберга, братья уволили его из Telegram, а теперь пытаются взыскать с него 100 миллионов рублей якобы за разглашение коммерческой тайны.

Розенберг предоставляет большое количество фактического материала о своей работе в обеих компаниях — как в качестве одного из руководителей социальной сети, так и в качестве топ-менеджера Telegram. Оригинал истории, размещенный на известном ресурсе Medium, изобилует огромным количеством деталей биографии Розенберга, с самого детства и до текущего момента. На Geektimes публикуется сокращенная версия развития событий, без совсем уж личных моментов, но с указанием упомянутых в оригинальном посте подробностей работы Розенберга.
Total votes 83: ↑75 and ↓8+67
Comments263

Виртуальная экспедиция на Луну. Практическое пособие

Reading time7 min
Views13K


К началу 21 века человечество накопило огромный массив данных о нашем естественном спутнике — Луне. Однако поиск этих материалов для не профессионалов может быть затруднен из-за их разброса по различным узкоспециализированным ресурсам. В данном обзоре я предлагаю вам ознакомиться с очень интересным ресурсом LROC, представляющим собой карту Луны высокого разрешения (1-0,5 м/пиксель). Карта дополнена солидным научным инструментарием и 3D отображением нужной площади. Благодаря «Лунному Орбитальному Разведчику», любой желающий может отправиться в путешествие по поверхности нашего естественного спутника.
Total votes 19: ↑19 and ↓0+19
Comments4

HTTP/2.0 — Халтура от IETF: плохой протокол, плохая политика

Reading time5 min
Views21K
Давным давно, в начале 1989 года, Рональд Рейган ещё был президентом, хотя до окончания его срока оставалось 19½ дней. А перед тем, как 1989 год подошел к концу, родилась Тейлор Свифт, а Андрей Сахаров и Сэмюэл Беккет скончались.

В долгосрочной перспективе, наиболее значительным событием 1989 скорее всего станет то, что Тим Бернерс-Ли заложил основы протокола HTTP и назвал результат «World Wide Web». (Одно примечательное свойство этого имени состоит в том, что аббревиатура «WWW» имеет в два раза больше слогов и требует больше времени для произнесения.)

Протокол HTTP, предложенный Тимом, работал в 10-мегабитных сетях с коаксиальными кабелями, а его компьютером был NeXT Cube с частотой 25 МГц. 26 лет спустя, в моем ноутбуке установлен процессор в сотни раз быстрее, а оперативной памяти в тысячи раз больше, чем было на компьютере Тима, но протокол HTTP всё тот же.

Несколько дней назад рабочая группа IESG (The Internet Engineering Steering Group) запросила последние комментарии по новому протоколу HTTP/2.0 (https://tools.ietf.org/id/draft-ietf-httpbis-http2) перед тем, как утвердить его в качестве официального стандарта.

[Спустя пару месяцев с минимальными изменениями стандарт был утвержден. — прим. пер.]
Читать дальше →
Total votes 50: ↑44 and ↓6+38
Comments79

Как взломать Telegram и WhatsApp: спецслужбы не нужны

Reading time2 min
Views716K
На прошлой неделе общественность взбудоражила новость о возможной причастности спецслужб к взлому аккаунтов оппозиционеров в популярном мессенджере Telegram. На протяжении своего существования человечество пыталось объяснить всё необъяснимое с помощью высших сил – Богов. В наше время все непонятные вещи объясняют происками спецслужб.

Мы решили проверить, действительно ли нужно быть спецслужбой, чтобы получить доступ к чужому аккаунту Telegram. Для этого мы зарегистрировали тестовый аккаунт Telegram, обменялись несколькими тестовыми сообщениями:



А затем мы провели атаку через сеть SS7 на один из тестовых номеров (подробнее о самих атаках мы писали ранее). И вот что у нас получилось:
Читать дальше →
Total votes 156: ↑146 and ↓10+136
Comments242

Исследуем «Ревизор» Роскомнадзора

Reading time17 min
Views177K
ФСБшник хороший
Aqua Mine
Ревизор — программно±аппаратный комплекс для мониторинга доступа к сайтам из реестра со стороны провайдеров — берет свое начало в октябре 2015 года, когда компания «МФИ Софт», та же компания, что сделала СОРМы, выиграла тендер на разработку ПО за 84 миллиона рублей. Согласно условиям тендера, разработчик должен был предоставить работоспособное ПО под Windows и Linux и 700 аппаратных «Агентов» в срок до 14.12.2015, всего через 2.5 месяца, и, похоже, все было готово даже на пару недель раньше дедлайна. Провайдерам в добровольно-принудительном порядке уже в начале декабря предлагалось установить один из трех вариантов Ревизора: в виде образа виртуальной машины VMWare, основанной на OpenWRT 14.07, в виде программы-сервиса под Windows, либо же в виде железного «Агента», который представлял из себя маршрутизатор TP-Link MR3020 с установленным на него OpenWRT и необходимым ПО. Многие провайдеры отказывались от установки комплекса из-за того, что он не сертифицирован, а использоваться будет только им во вред, а другим устройств просто не досталось, и им пришлось установить софтовую версию.

Итак, у меня в руках последняя версия VMWare-образа и exe-файла Ревизора. Давайте же посмотрим, что внутри!
image
Читать дальше →
Total votes 191: ↑191 and ↓0+191
Comments292

Стоимость эквайринга

Reading time4 min
Views41K


Всем привет! Обычно когда кто-то начинает сравнивать различных операторов интернет-платежей, разговор начинают со ставки, которую оператор берет за проведение транзакции. Сегодня мы поговорим об этом параметре и постараемся его детально разобрать. Стоимость транзакции (discount rate) для Торгово-Сервисного (ТСП) предприятия обычно задаётся в процентах от суммы платежа, а иногда к процентам добавляется ещё и фиксированная сумма. При этом комиссия взымается за успешную операцию авторизации (authorization), а так же, в некоторых случаях, может взыматься и за отклонённую (declined). Рефанды (refund) и чарджбеки (chargeback) могут облагаться дополнительной комиссией.

В России в основном принято брать % от суммы транзакции за успешную авторизацию. За рубежом к процентам часто добавляется фикса (fixed), при этом фикса может быть разбита по отдельным операциям (authorization, clearing и т.д.). С высокорисковых мерчантов очень часто берут плату как за отклонённую операцию, так и дополнительную стоимость за рефанды и чарджбеки.

Итак, ставка проведения платежа (authorization) состоит из:
  • interchange fee (комиссия, возвращаемая в банк выпустивший карту)
  • комиссии взымаемой Международными Платёжными Системами
  • наценкой Банка-эквайера и агентов (если они есть).

Разберем эти понятия более подробно!

Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments22

Вышла версия 1.4 Perl плагина для IntelliJ IDEA

Reading time2 min
Views3.1K


Новая версия Perl плагина для продуктов JetBrains стала доступна для скачивания из официального репозитория. Главные фичи: оптимизация и поддержка HTML::Mason.

А теперь, немного подробнее:
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments14

История одного проекта. Рейтинг и Анонимайзер

Reading time5 min
Views15K
Как мы уже прояснили в первой части статьи, что нужно пользователю? Все тоже самое, только больше и лучше. Так мы решили улучшить представление информации, ее визуальную составляющую и добавить новые сервисы, которые могут оказаться полезны нашей аудиторией.

image

Одним из первых, мы начали работать над тем, что назвали впоследствии — «Рейтинг анонимности».  
Читать дальше →
Total votes 17: ↑14 and ↓3+11
Comments129

Проблемы после миграции с openvz на lxc в Proxmox 4.x

Reading time3 min
Views19K


К сожалению, развитие openvz зашло в определенный тупик, платный вариант virtuozo сильно ушел по кодовой базе в бок и в какой-то момент оказалось, что openvz работает только на старом ядре версии 2.6.32, а работы по слиянию openvz и virtuozo7 идут, сказать честно, не быстро.

Собственно это подтолкнуло команду proxmox в версии 4.0 отказаться от openvz в пользу lxc и ядра версии 4.2.6. К сожалению, команда proxmox совершенно не уделила внимания тестированию lxc в proxmox, всем, кто хочет хочет мигрировать с openvz, я настоятельно рекомендую воздержаться.

Ниже я расскажу о всех трудностях и проблемах после миграции на lxc.
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments92

HTTP/2: готовимся к переходу

Reading time9 min
Views147K
HTTP/2

В прошлом году в мире сетевых технологий произошло очень важное событие: была утверждена и стандартизирована новая версия протокола HTTP — HTTP/2. HTTP/2 уже поддерживается в популярных веб-серверах: Apache и Nginx. Идёт работа по внедрению HTTP/2 в IIS. Реализована поддержка и в большинстве современных браузеров.

Использование HTTP/2 за последнее время существенно расширилось.
Читать дальше →
Total votes 56: ↑55 and ↓1+54
Comments92

RISC'овый Debian под QEMU

Reading time10 min
Views22K

Для встраиваемых систем на базе процессоров с архитектурами MIPS и ARM нередко используются специализированные генераторы дистрибутивов ОС GNU/Linux: buildroot, openwrt и прочие Yocto.
Но иногда интересно запустить на такой системе универсальную ОС Debian. Установить Debian на ЭВМ с процессором архитектуры x86/amd64 — дело несложное, а вот со встраиваемыми системами, поверьте, у нас не всё так однозначно...
В данной публикации я расскажу как можно при помощи debootstrap установить, а затем как при помощи QEMU запустить ОС Debian для ЭВМ с процессорами MIPS и ARM.
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments10

Как Додо Пицца доставляет пиццу с помощью облака Microsoft Azure

Reading time5 min
Views27K

Мы продолжаем рассказывать о применении облака Microsoft для компаний-разработчиков решений (ISV). В этом выпуске Додо Пицца, уже международная сеть, основанная в Сыктывкаре, чьей особенностью является облачная информационная система Додо ИС, глубоко интегрированная во все бизнес-процессы организации и франшизы. Эта статья подготовлена с участием нескольких человек, Федора Овчинникова, СЕО Додо Пиццы, а также команды внедрения — Александра Шибанова, Андрея Моревского, Арсения Кравченко и Глеба Лесникова. Интересно, что, пока мы готовили статью, Додо Пицца уже должна начать работу в США.





Читать дальше →
Total votes 35: ↑27 and ↓8+19
Comments13

Чем заменить Cisco? Импортозамещение коммутаторов доступа

Reading time5 min
Views161K
Здравствуйте коллеги! Сегодня хотелось бы поговорить о такой актуальной проблеме, как “Импортозамещение”. Мы попробуем подобрать замену для коммутаторов уровня доступа. В свете последних событий в некоторые организации больше нельзя покупать свичи уже полюбившихся нам производителей, таких как: Cisco, Juniper, HP, Extreme Networks, Brocade, Dell и т.д. У многих возникает вопрос: “А на что менять?”. Поэтому я решил поискать возможные отечественные аналоги или же коммутаторы из стран, которые не поддерживают санкции.

А рассматривать мы будем коммутаторы уровня доступа. (Здесь описаны различия между коммутаторам уровня доступа, распределения и ядра). В качестве эталона возьмем один из самых распространенных коммутаторов компании Cisco — WS-C2960S-24TS-L.

Если вы заинтересовались данной темой, добро пожаловать под кат…
Читать дальше →
Total votes 31: ↑21 and ↓10+11
Comments123

Добро пожаловать на русскоязычный сайт для разработчиков на Rust

Reading time3 min
Views9K
Добро пожаловать на русскоязычный сайт для разработчиков на Rust!

Rust — это системный язык программирования, который очень быстро работает, предотвращает почти все падения, и устраняет гонки данных.

Создание сообщества назревает уже давно. Наш язык миновал заветный выпуск «1.0». Rust стабилен, экосистема растёт как на дрожжах, а улучшения поспевают в каждом новом выпуске. Самое время расширять аудиторию!
Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments17

Безопасное динамическое обновление записей на MS DNS из Linux

Reading time4 min
Views20K

Введение


В процессе настройки клиентов службы AD под управлением ОС Ubuntu Linux, я столкнулся с несвоевременным обновлением записей на DNS сервере средствами Samba, а также с некорректной работой команды «net ads dns register». Что вызывает сопуствующие проблемы при работе с доменными компьютерами.

Например, наличие двух DNS серверов в dhclient.conf приводит к появлению ошибки «ERROR_DNS_GSS_ERROR» после выполнения «net ads dns register -P».

В поисках решения этой проблемы я перечитал много статей и баг-репортов, и наткнулся на статью Warlock_ua «Безопасное динамическое обновление DNS записей в Windows домене из Linux (GSS-TSIG)». Идея показалась мне интересной. Но мне не понравилось решение с созданием отдельной учетной записи пользователя домена, которая имеет права на изменение всех записей DNS-зоны. Во-первых, это потенциально небезопасно. Во-вторых, в Windows уже существуют готовое решение: каждая учетная запись компьютера имеет право изменять свою запись на DNS. Почему бы этим не воспользоваться?

За основу я взял скрипт learn-address.sh от Warlock_ua, и доработал его с учетом своих нужд.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments2

Почему автомобильный аккумулятор нельзя использовать в ИБП?

Reading time7 min
Views357K
Предыстория

На тот момент, когда я первый раз попробовал заменить в ИБП старый аккумулятор ёмкостью 7Ач на старый автомобильный аккумулятор номинальной ёмкостью 65Ач, я ещё не знал, почему этого нельзя делать, и как это может навредить здоровью аккумулятора, самому ИБП и людям, проживающим в одном помещении с ним.

Доработка бесперебойника не заняла много времени, но профит был заметен сразу же. Сто-ватная нагрузка в виде домашнего «сервера» продержалась порядка двадцати часов без внешнего питания, хотя раньше 10 минут — это был предел, которого хватало разве что на корректное завершение работы. Более длительных отключений за время эксплуатации данной модификации замечено не было, а подключение интернета по технологии GPON позволяло серверу оставаться в сети даже при масштабных отключениях электроэнергии.



Но это было давно. А год назад мне случайно попалось на глаза объявление о продаже нескольких бывших в употреблении ИБП APC 3000 за смешные деньги, 4000 рублей за штуку, без аккумуляторов, но рабочие. Немного подумав, решил что надо брать, причём сразу два, правда к моменту покупки цена успела подняться до 5000 рублей за штуку, но меня это не остановило, ведь в магазине за те же деньги предлагали лишь варианты на 1кВт, да и то от всяких noname фирм с не очень лестными отзывами и модифицированным синусом.
Читать дальше →
Total votes 61: ↑54 and ↓7+47
Comments183

LIVR — «независимые от языка правила валидации» или валидация данных без «проблем»

Reading time12 min
Views22K
Каждый программист неоднократно сталкивался с необходимостью проверки пользовательского ввода. Занимаясь веб-разработкой уже более 10 лет, я перепробовал массу библиотек, но так и не нашел той единственной, которая решала бы поставленные мною задачи.

Основные проблемы, которые встречаются в библиотеках валидации данных

Проблема №1. Многие валидаторы проверяют только те данные, для которых описаны правила проверки. Для меня важно, чтобы любой пользовательский ввод, который явно не разрешен, был проигнорирован. То есть, валидатор должен вырезать все данные для которых не описаны правила валидации. Это просто фундаментально требование.

Проблема №2. Процедурное описание правил валидации. Я не хочу каждый раз думать про алгоритм валидации, я просто хочу описать декларативно, как должны выглядеть правильные данные. По сути, я хочу задать схему данных (почему не «JSON Schema» — в конце поста).

Проблема №3. Описание правил валидации в виде кода. Казалось бы, это не так страшно, но это сразу сводит на нет все попытки сериализации правил валидации и использования одних и тех же правил валидации на бекенде и фронтенде.

Проблема №4. Валидация останавливается на первом же поле с ошибкой. Такой подход не дает возможности подсветить сразу все ошибочные/обязательные поля в форме.

Проблема №5. Нестандартизированные сообщения об ошибках. Например, «Field name is required». Такую ошибку я не могу показать пользователю по ряду причин:
  • поле в интерфейсе может называться совсем по другому
  • интерфейс может быть не на английском
  • нужно различать тип ошибки. Например, ошибки на пустое значение показывать специальным образом

То есть, нужно возвращать не сообщение об ошибках, а стандартизированные коды ошибок.

Проблема №6. Числовые коды ошибок. Это просто неудобно в использовании. Я хочу, чтобы коды ошибок были интуитивно понятны. Согласитесь, что код ошибки «REQUIRED» понятней, чем код «27». Логика аналогична работе с классами исключений.

Проблема №7. Нет возможности проверять иерархические структуры данных. Сегодня, во времена разных JSON API, без этого просто не обойтись. Кроме самой валидации иерархических данных, нужно предусмотреть и возврат кодов ошибок для каждого поля.

Проблема №8. Ограниченный набор правил. Стандартных правил всегда не хватает. Валидатор должен быть расширяемый и позволять добавлять в него правила любой сложности.

Проблема №9. Слишком широкая сфера ответственности. Валидатор не должен генерировать формы, не должен генерировать код, не должен делать ничего, кроме валидации.

Проблема №10. Невозможность провести дополнительную обработку данных. Практически всегда, где есть валидация, есть необходимость в какой-то дополнительной (часто предварительной) обработке данных: вырезать запрещенные символы, привести в нижний регистр, удалить лишние пробелы. Особенно актуально — это удаление пробелов в начале и в конце строки. В 99% случаев они там не нужны. Я знаю, что я до этого говорил, что валидатор не должен делать ничего кроме валидации.

3 года назад, было решено написать валидатор, который не будет иметь всех вышеописанных проблем. Так появился LIVR (Language Independent Validation Rules). Есть реализации на Perl, PHP, JavaScript, Python (мы на python не пишем — фидбек по ней дать не могу). Валидатор используется в продакшене уже несколько лет практически в каждом проекте компании. Валидатор работает, как на сервере, так и на клиенте.
Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments71

HiDPI в Linux

Reading time4 min
Views69K
HiDPI
Aqua Mine

Введение

После многолетнего доминирования дисплеев с высокой плотностью пикселей на мобильных устройствах, данная тенденция наконец-то дошла и до лаптопов с десктопами. По моему мнению, производители не ставили HiDPI-матрицы в основном из-за слабой поддержки DPI, отличных от 96, в Windows. К счастью, ситуация заметно улучшилась с выходом Windows 8 с Modern UI, хотя в десктопном режиме все еще далеко не идеальная — люди до сих пор жалуются на 3200×1800 при 13.3" в лаптопах и сомневаются о покупке 4K UHD 23.8"-монитора.

DPI и Linux

Возможность установки произвольного значения DPI появилась еще во времена Xfree86, но следует понимать, что это просто значение, которое ничего не делает само по себе. Его считывают и используют программы и компоненты, которые и принимают решение, каким образом отразить изменение DPI на экране. Если текст следует установленному значению DPI в 95% случаев (спасибо xft!), то размер элементов зависит от используемого окружения рабочего стола и тулкитов, на которых написаны приложения.

GTK+ 3-приложения поддерживают как целочисленный скейлинг элементов и дробный скейлинг шрифтов, так и изменение DPI на лету, без перезапуска приложений. Скейлингом элементов управляет переменная окружения GDK_SCALE, а скейлингом шрифтов — GDK_DPI_SCALE.
По умолчанию, шрифты скейлятся вместе с элементами. Таким образом, при DPI 96 и GDK_SCALE=2, вы получите шрифт, словно он с DPI 192. Чтобы отменить скейлинг шрифтов, достаточно установить переменную окружения GDK_DPI_SCALE в 0.5 (для GDK_SCALE=2).
Qt4 не умеет скейлить элементы. Для применения нового значения DPI требуется перезапуск приложения.
Qt5, начиная с версии 5.4, поддерживает целочисленный скейлинг элементов через переменную окружения QT_DEVICE_PIXEL_RATIO. DPI менять на лету нельзя, как и в Qt4, но работы в этом направлении ведутся и будут доступны с релизом Qt 5.6, как и скейлинг на каждый монитор отдельно.
WxWidgets-приложения ведут себя так же, как GTK+ 3, только не поддерживают скейлинг элементов.

Я попытался выяснить, какие DE можно комфортно использовать с HiDPI-мониторами. Тестирование проводилось на лаптопе с 12.5" 1366×768 (125 DPI) с подключенным внешним 23.8"-монитором с разрешением 3840×2160 (185 DPI).
Читать дальше →
Total votes 53: ↑51 and ↓2+49
Comments58

Время Perl

Reading time15 min
Views17K


Perl и CPAN предоставляют множество самых разных инструментов для работы с временем. Традиционный и наиболее известный DateTime вызывает столь же традиционные серьёзные нарекания к скорости работы и потреблению памяти, поэтому он постепенно стал вытесняться из нашей системы альтернативными модулями. TIMTOWDI — это замечательно, но в проекте всё-таки хочется иметь какой-никакой порядок. Поэтому мы решили протестировать несколько самых популярных модулей по скорости, функционалу и удобству использования и выбрать тот самый единственный, который станет нашим основным инструментом.
Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments11
1

Information

Rating
Does not participate
Registered
Activity