Архив за 23 декабря 2013 - 2

«Старая песня о главном»

«Стандарты именование объектов БД» и «правила оформления кода» темы не новые. Так или иначе, к вопросу выработки или заимствования таких стандартов и правил приходят все команды разработчиков. При желании в сети можно найти статьи и презентации по данной теме, а так же примеры и шаблоны различных соглашений. Многие из них безусловно полезны, некоторые — практически идеальны, если бы не одна маленькая оговорка: они написаны разработчиками и для разработчиков.

К сожалению, в моей субъективной реальности разработчики являют собой лишь некую абстракцию. Эдакие фантомы по ту сторону телефонной трубки, от которых меня отделяют тысячи километров и 3 часовых пояса. Прямого доступа в их коллективный мозг у меня нет. Доступны только образы, порожденные данным мозгом,- в виде объектов эксплуатируемой системы.

В принципе, пожелания по оформлению и именованию у «прикладника» (администратора приложения/технолога) и разработчика на 90 процентов совпадают. Но существуют все же некоторые отличия в восприятии «читателя» и «писателя», о которых я хотел бы поговорить.
Читать полностью »

О переводе

Это перевод 15 главы книги The Passionate Programmer: Creating a Remarkable Career in Software Development. Её автор — Chad Fowler — талантливый Ruby-разработчик, известный докладчик на конференциях, посвящённых Ruby и IT в целом. Бывший саксофонист, а сейчас — CTO 6Wunderkinder.
Читать полностью »

После анонса смартфона R827T, относящегося к среднему сегменту, компания Oppo анонсировала аппарат, стоящий на ступень выше, хотя характеристики новинок во многом совпадают. Речь идёт о новинке с именем R1, которая ранее фигурировала под названием R829T. Как видно, Oppo решила перейти на единый стиль именования своих аппаратов, начало которому дал N1Читать полностью »

У компании Asus готов прототип системной платы для настольных ПК, поддерживающей SATA Express. Новинка называется Z87-Deluxe/SATA-Express. Это модификация флагманской модели Z87-Deluxe с процессорным гнездом LGA 1150, отличающаяся наличием двух портов SATA Express. Наши коллеги получили возможность протестировать ее.

Данных о цене системной платы Asus Z87-Deluxe/SATA-Express пока нет

Интерфейс SATA-Express стандартизован в спецификации SATA 3.2Читать полностью »

Привет, Хабр

Ещё в августе мы делали краткий экскурс о нашем глобальном соревновании Nokia Sensing XCHALLENGE в области современного здравоохранения. Пришло время немного рассказать о проекте, завоевавшим Гран-при — технологии Gene-RADAR от нанотехнологичсекого инкубатора Nanobiosym, имеющей все шансы сделать медицинскую диагностику простой и доступной каждому.

Гран при Nokia Sensing XCHALLENGE: нанотехнологии против эпидемий
Читать полностью »

Пришло время мне менять ноутбук, и с крайнем неудовольствием для себя, я обнаружил, что ноутбуков с экраном 16х10, кроме продукции одной фруктовой компании(с), на рынке просто нет. Надо сказать, что по железу новая прошка весьма не дурна, и не смотря на конский ценник, жаба была задавлена, а ноутбук приобретен.Читать полностью »

Задача выбора случайных строчек из таблицы довольно часто возникает перед разработчиками.
В случае, если используется СУБД MySQL, обычно она решается примерно следующим способом:

SELECT *
FROM users
WHERE role_id=5
ORDER BY rand()
LIMIT 10

Такой код работает крайне медленно для больших таблиц и когда задается условие WHERE, без WHERE или таблица небольшая, есть эффективные решения, например habrahabr.ru/post/54176/ или habrahabr.ru/post/55864/.
Но решений для случая большой таблицы и необходимости фильтровать по условию, получая при каждом запросе новые значения в сети я не нашел, поэтому описание моего способа под катом.
Читать полностью »

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

Внимательный читатель, перечитывая протокол Диффи — Хеллмана, может обратить внимание на строчку «Предполагается, что злоумышленник может получить оба этих значения (об открытых ключах), но не модифицировать их (то есть у него нет возможности вмешаться в процесс передачи)». Будучи паранойком, автор не мог просто проигнорировать это условие, потому что сервер Telegram (далее просто сервер) является активным участником взаимодействия. Запросы API идут к серверу, от него же пользователь получает ответ. Если гипотетически предположить, что сервер находится под контролем злоумышленника, протокол MTProto должен защищаться не просто от атаки MITM, а даже от подмены трафика.

Как такое возможно? Давайте разбираться.
Читать полностью »

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


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