Pull to refresh
-1
0

Инженер-программист

Send message

5 правил работы с суммами

Reading time8 min
Views80K
В современном программном обеспечении очень часто возникает необходимость выполнять различные операции с всевозможными суммами денег. Однако до сих пор мне нигде не попадалось документации, в которой были бы сведены воедино основные правила представления сумм и реализации финансовых вычислений. В этой статье я попробую сформулировать те правила, которые составил сам на основании личного опыта.


Читать дальше →
Total votes 126: ↑120 and ↓6+114
Comments241

За что конкретно я ненавижу некоторых отдельно взятых маркетологов — или как айтишник по магазинам ходил

Reading time5 min
Views613K
Знакомьтесь, это обычный «литровый» пакет молока:

image

  • Проверка на внимательность: там 900 грамм. Рядом несколько по 950. Но пакет может быть воспринят как литровый.
  • Проверка на знание физики. Рядом лежит похожий кефир. Объём измеряется в миллилитрах, масса — в граммах. Плотность кефира трагически выше плотности воды. То есть 900 грамм кефира 3,2% жирности — это примерно 874,5 миллилитров.

Второй пациент:



25 лет гарантии. Круто, правда? Есть одна проблема. Надо сохранять чек. Проверка, опять же, на знание физики. Чек у них печатается на обычной кассовой термоленте (я проверил на месте). У меня в офисе лежит много чеков. Мы их ксерокопируем, потому что через год-два они полностью выцветают. Самый старый чек, который видел коллега, держался 3 года в папке в архиве. UPD: смотрите самый низ топика, Икея ответила.

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

Осторожно, трафик: под катом много находок с фотографиями.
Читать дальше →
Total votes 814: ↑769 and ↓45+724
Comments778

Стражи ночи

Reading time9 min
Views81K
Будучи высококвалифицированным исследователем, я потратил немало времени на продвижение науки вперёд. Но я родился на Юге и искренне убеждён, что прогресс — это выдумка, и что нужно готовиться к Судному дню, к жатве того, что мы посеяли и к появлению быстрых зомби, медленных зомби, и даже вежливых зомби, которые обращаются к вам «сэр» или «мадам», но в итоге пытаются съесть ваш мозг дабы заполучить ваши навыки. Когда нагрянет революция, нужно быть готовым; поэтому в моменты тишины и покоя, когда я не произвожу очередной прорыв в науке, я размышляю над тем, что же я буду делать, когда прогноз погоды изменится на «РЕКИ КРОВИ ЦЕЛЫЙ ДЕНЬ ДО СКОНЧАНИЯ ВРЕМЁН».

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

Но! Но… Самым важным членом моей банды будет системный программист, ибо в гоббсовском кошмаре невероятных масштабов умеющему отладить драйвер устройства или распредёленную систему человеку можно доверять; системный программист видел ужасы Вселенной и понимает безысходность бытия. Системный программист писал драйверы для устройств, прошивку которых создавал то ли пьяный ребёнок, то ли трезвый карась. Системный программист отлавливал проблему с сетью через восемь машин, три часовых пояса и с дружеским визитом в Омск, откуда ее перенаправили в левое переднее копыто той лошади, что избавила Трою от перенаселения.1 Системный программист читал исходники ядра для лучшего понимания процессов мироздания и видел комментарий «И ЭТО РАБОТАЕТ ЛОЛ» в коде планировщика, и не смеялся он, но плакал; и отправил он патч ядра для восстановления баланса Силы и устранения инверсии приоритетов, что приводила к зависанию MySQL. Системный программист знает, что делать, когда общество падёт, потому что он уже живет в мире, где царит беззаконие.
Читать дальше →
Total votes 157: ↑136 and ↓21+115
Comments50

Ответный вызов разработчикам Telegram

Reading time3 min
Views111K
Об авторе: Moxie Marlinspike — хакер-исследователь, придумавший атаку SSL-stripping (и нашедший ещё полдюжины уязвимостей в SSL), разработчик системы Convergence, призванной заменить списки «доверенных сертификатов», а также со-основатель компании Whisper Systems, купленной Twitter в 2011 году. Также стоит почитать обсуждение на Hacker News.



На этой неделе некая компания под названием Telegram анонсировала «защищённый» мессенджер. Насколько защищённый? Если верить их FAQ, «очень защищённый». Мне стало интересно, и я решил почитать описание их протокола. У меня тут же появились некоторые сомнения и опасения (как мягко сказано! а всего-то полчаса назад было «сначала я подумал, что это Томас Пташек решил постебаться» — прим. пер.) Однако, когда из них попытались вытянуть технические подробности, они начали перечислять учёные степени разработчиков вместо того, чтобы вступить в диалог. Кроме того, они отклонили все мои предложения о сотрудничестве.
Читать дальше →
Total votes 210: ↑181 and ↓29+152
Comments87

Вышла публичная альфа версия децентрализованного мессенджера Tox

Reading time1 min
Views72K


Совсем недавно стала доступна публичная версия мессенджер Tox.
(Теперь кнопка загрузить на сайте наконец-то активная)

Напомню, что Tox — децентрализованный мессенджер который создается для будущей замены Skype, основные цели проекта:
— Полностью открытый исходный код
— Децентрализованная работа
— Отсутствия закладок и прослушек
— Отсутствие рекламы
Читать дальше →
Total votes 128: ↑115 and ↓13+102
Comments194

Получение «зеленого света» в сервисе GreenLight: советы и рекомендации

Reading time13 min
Views65K

1. Вступление


Всем привет! Не так давно мы стартовали ОБТ нашего нового online-проекта Metal War Online. Со временем мы захотели выйти на глобальный рынок посредством Steam и, как большинство коллег, осуществляем эту затею через сервис Greenlight. Нашему опыту прохождения аппрува и будет посвящен материал.

Сразу оговоримся, что мы не претендуем на какие-либо открытия и новаторские подходы. Наоборот, наблюдается некий дефицит простой доступной информации по Greenlight и хотелось бы собрать воедино пункты, знакомые всем, показав их важность для итоговой цели – получению «зеленого света».

image
Читать дальше →
Total votes 82: ↑77 and ↓5+72
Comments37

Freaks and Geeks: главные чудаки мира IT

Reading time11 min
Views55K
Анархисты, отшельники, наркоманы, сумасшедшие, жулики и люди других самых экзотических мировоззрений, привычек и качеств могут быть изобретателями всем известных вещей.



Существует стандартный образ успешного айтишного предпринимателя: он научился программировать до того, как пошел в школу, застал зарю современных технологий, окончил престижный колледж… Или даже не окончил, а убежал оттуда, чтобы как можно скорее основать свою компанию. Не проходит и пары лет, как стартап «выстреливает» и его покупает какая-нибудь мегакорпорация. Там наш архитипичный предприниматель для порядка работает год-другой и, приумножив связи и опыт, делает новую фирму, которую ждет та же судьба. Через несколько повторений настает пора отойти от дел, купить на заработанные деньги особняк, стать венчурным инвестором, завести блог и заниматься наставлением следующего поколения стартаперов.

Но этот сценарий справедлив, только когда речь идет о некой усредненной личности. А вот судьбы конкретных людей могут отходить от него — и в мелких деталях, и в крупных. Вместо венчурного фонда вполне может быть открыт ночной клуб, и это не выдуманный пример: клубом владеет один из основателей Netscape Джейми Завински. Эксцентричность богачей и творческих личностей широко известна, а когда в одном человеке сходится и то и другое, ждать можно чего угодно.

Читать далее
Total votes 88: ↑78 and ↓10+68
Comments7

Юнит-тестирование для чайников

Reading time15 min
Views1.1M
Даже если вы никогда в жизни не думали, что занимаетесь тестированием, вы это делаете. Вы собираете свое приложение, нажимаете кнопку и проверяете, соответствует ли полученный результат вашим ожиданиям. Достаточно часто в приложении можно встретить формочки с кнопкой “Test it” или классы с названием TestController или MyServiceTestClient.



То что вы делаете, называется интеграционным тестированием. Современные приложения достаточно сложны и содержат множество зависимостей. Интеграционное тестирование проверяет, что несколько компонентов системы работают вместе правильно.

Оно выполняет свою задачу, но сложно для автоматизации. Как правило, тесты требуют, чтобы вся или почти вся система была развернута и сконфигурирована на машине, на которой они выполняются. Предположим, что вы разрабатываете web-приложение с UI и веб-сервисами. Минимальная комплектация, которая вам потребуется: браузер, веб-сервер, правильно настроенные веб-сервисы и база данных. На практике все еще сложнее. Разворачивать всё это на билд-сервере и всех машинах разработчиков?

We need to go deeper
Total votes 70: ↑63 and ↓7+56
Comments65

Information

Rating
Does not participate
Registered
Activity