Pull to refresh
38
0
Алексей Уколов @alexey-m-ukolov

Веб-программист

Send message

Откуда берётся экономический рост? Понятие и происхождение богатства в экономике

Reading time 19 min
Views 32K
Мне всегда было интересно, откуда берётся богатство в экономике. Если ограничиться ответом только про обмен–торговлю, то получится анекдот про ковбоев, съевших по говну за двадцать баксов: экономические обороты выросли с нуля до $40 — но на деле они просто бесплатно поели говна.


В реальности растёт не только капитализация, но и содержание. Появляются богатства, которых не было. И вот где–то здесь скрыта магия.

Экономику XI века нельзя было даже измерить категориями богатства: её основой был натуральный обмен, товарно–денежные отношения применялись ограниченно и не распространялись даже на основной ресурс — землю, которую можно было получить в надел, в наследство, отнять силой, но не купить. Потребности человека удовлетворялись натуральным обменом и тянули, условно, на пол–козы в год. В XXI веке потребности человека обеспечиваются рыночными механизмами, средняя ценность благ тянет уже на 50 коз, плюс нерыночные, но существенные блага современного социума. Очевидно, что средний объём материальных благ в экономике XXI века на порядки выше XI века. Учитывая выросшее за тысячу лет в 10–20 раз население планеты, мировой ВВП вырос за тот же период вырос минимум стократно. Но что двигало этот рост?
Читать дальше →
Total votes 74: ↑56 and ↓18 +38
Comments 331

Manticore Search — форк Sphinx: отчёт за 3 года

Reading time 12 min
Views 17K

В мае 2017 мы, команда Manticore Software, сделали форк Sphinxsearch, который назвали Manticore Search. Ниже вы найдёте краткий отчёт о проделанной работе за три с половиной года, прошедших с момента форка.

Читать далее
Total votes 56: ↑56 and ↓0 +56
Comments 39

Как быстро получить много данных от Битрикс24 через REST API

Reading time 4 min
Views 29K

Нередко при работе с Bitrix24 REST API возникает необходимость быстро получить содержимое определенных полей всех элементов какого-то списка (например, лидов).

Традиционный способ для этого - обращение к серверу через метод *.list (например, crm.lead.list для лидов) с параметром select, перечисляющим список требуемых полей. При этом, чем больше полей вы запрашиваете, тем больше времени серверу требуется для формирования ответа. Плюс, в силу того, что информация сервером выдается постранично, получение всего списка через последовательные запросы всех страниц может занимать много времени.

Однако существует несколько стратегий для того, которые позволяют ускорить процесс на порядки.

И что это за стратегии?
Total votes 16: ↑16 and ↓0 +16
Comments 9

Перевод звонка с помощью скрипта в Asterisk

Reading time 4 min
Views 17K


Не так давно у одного из наших клиентов возникла необходимость переводить звонки (входящие и исходящие) по клику из браузера. Логика такова: группа операторов колл-центра принимает и осуществляет звонки, и после разговора и выяснения потребностей им нужно соединить клиента с одним из заказчиков или другим специалистом организации.
Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Comments 6

Навигация по коду в IDE от JetBrains с использованием REST API и командной строки

Reading time 4 min
Views 14K

image


При разработке приложений часто приходится сталкиваться с необходимостью просмотра вывода exception stack trace (в логах или при debug-инге). Хотелось бы иметь возможность автоматически попадать в необходимое место кода, прямо кликом по строке в выводе stack trace в браузере или в терминале.


Если вы являетесь пользователем одного из последних продуктов компании JetBrains (в частности PhpStorm), вы можете использовать для этих целей внутреннее REST API (для навигации из браузера) и command line launcher (для навигации в терминале).


Навигация в браузере


Частичное описание методов REST API IDE от JetBrains можно посмотреть здесь:


» http://develar.org/idea-rest-api/


Одним из методов этого API является возможность открыть файл проекта и переместиться на произвольную позицию в этом файле внутри самой IDE.

Читать дальше →
Total votes 29: ↑29 and ↓0 +29
Comments 12

NGINX: Перехват ошибок 5хх с помощью отладочного сервера

Reading time 6 min
Views 23K

Является ли ошибкой ответ 5хх, если его никто не видит? [1]


image

Вне зависимости от того, как долго и тщательно программное обеспечение проверяется перед запуском, часть проблем проявляется только в рабочем окружении. Например, race condition от параллельного обслуживания большого количества клиентов или исключения при валидации непредвиденных данных от пользователя. В результате эти проблемы могут привести к 5хх ошибкам.

HTTP 5хх ответы зачастую возвращаются пользователям и могут нанести ущерб репутации компании даже за короткий промежуток времени. В то же время, отладить проблему на рабочем сервере зачастую очень непросто. Даже простое извлечение проблемной сессии из логов может превратиться в поиск иголки в стоге сена. И даже если будут собраны все необходимые логи со всех рабочих серверов — этого может быть недостаточно для понимания причин проблемы.

Для облегчения процесса поиска и отладки могут быть использованы некоторые полезные приёмы в случае, когда NGINX используется для проксирования или балансировки приложения. В этой статье будет рассмотрено особое использование директивы error_page в применении к типичной инфраструктуре приложения с проксированием через NGINX.
Читать дальше →
Total votes 45: ↑45 and ↓0 +45
Comments 4

Frontend-разработчики должны быть в теме всего

Reading time 7 min
Views 206K

Мысли Криса Койера


Одна из мыслей, которая поселилась в моей голове: должен ли frontend-разработчик быть в курсе всего? В общем смысле, frontend-разработчик может использоваться и на других рабочих местах. Вся команда разработчиков заканчивает разговор на frontend-разработчике. В этом смысл моей идеи. Frontend-разработчики создают те вещи, с которыми будут взаимодействовать люди. Все этапы разработки проходят вместе с frontend-разработчиком. Возможно, именно поэтому это такая забавная работа! Поскольку frontend-разработчик занимает центральное место в цепочке разработки, и при этом мы имеем дело с большим количеством разных специалистов, мы должны понимать их работу и иногда подсказывать, что и как сделать лучше.

От переводчика


Всем привет, с вами Максим Иванов, и сегодня мы поговорим на довольно острую тему в сфере веб-разработки. Как утверждает Крис Койер, frontend-разработчик должен разбираться в очень многих вещах, о которых не все даже и задумываются. Конечно, мы должны понимать, что frontend-разработчик не главный в процессе разработки любого онлайн-сервиса или ПО в целом. На ту же позицию frontend-разработчика вы найдете больше откликов на вакансию, чем на позицию backend-разработчиком. Но почему же тогда Крис Койер считает, что работать frontend-разработчиком сложнее, ибо ты должен специализироваться во всем. Конечно, ситуаций в жизни очень много, разные компании по-разному используют своих специалистов, но в чем наверняка должен разбираться frontend-разработчик? Об этом мы сегодня и поговорим. Жду комментариев на эту тему, а сейчас приступим.
Читать дальше →
Total votes 45: ↑39 and ↓6 +33
Comments 76

У вас нет высыпаний? Будут

Reading time 5 min
Views 63K
Меня зовут Евгений и я жаворонок. Сегодня проснулся в 6 утра, открыл окно в кухне, заварил кофейку и решил глянуть, «что нового». Мне написал мой бывший коллега «Андроид»… Точнее «Андроид-разработчик» Максим, но так звучит фантастичнее…

image

Он спросил:
– Женя, привет. (wave) Вопрос к тебе, как мега лайв хакеру. Сколько времени нужно спать, что бы мозг отдохнул и можно было плодотворно работать? Умные будильники сильно помогают?

Я ответил, а потом подумал, ведь и парочке сотен человек с Хабра тоже пригодится хоть один пунктик из вычитанных мною ранее советов, ведь «так как никто не слушает, приходится повторять»:
Читать дальше →
Total votes 88: ↑63 and ↓25 +38
Comments 203

Проектирование сайтов для людей с деменцией

Reading time 13 min
Views 11K
Статья была опубликована на smashingmagazine и была переведена специально для Хабрахабра.

image

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

Звучит довольно просто, не так ли? А теперь давайте рассмотрим это вот с какой точки зрения… Число интернет-пользователей, страдающих деменцией во всем мире постоянно растет. У них могут быть разные уровни компьютерной грамотности, они могут испытывать следующие проблемы: потеря памяти, спутанность сознания, проблемы, связанные со зрением и восприятием, трудности с упорядочиванием и обработкой информации, речевые проблемы, неспособность решать некоторые проблемы и задачи.

Когда мы думали, что комплексное проектирование уже плотно закрепилось на своих позициях, возникло совершенно новое измерение.
Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Comments 9

Современный интернет ушами незрячего — Заголовки

Reading time 5 min
Views 9.9K

Введение


Доброго времени суток. Я думаю, что accessibility знакомое слово многим IT-специалистам (я не считаю себя специалистом, так как не имею образования в этой сфере, я любитель). Для кого-то accessibility знакомо, как абстрактное понятие доступности. Кто-то с ним работает каждый день, а кто-то его использует каждый день.
Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Comments 7

Современный интернет ушами незрячего – Заголовки (дополнение)

Reading time 7 min
Views 7.5K

Предисловие


В этой статье я рассказывал повышении доступности сайта для людей с ограничениями по зрению при помощи HTML-заголовков. Насколько я понял, статья вызвала интерес у определённой категории читателей, в связи с этим я решил продолжить написание статей такой тематики и немного углубить тему «Заголовков». В этой статье я предлагаю читателю ознакомится с некоторыми удачными и не очень примерами использования заголовков на веб-страницах.
Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Comments 23

Первые 10 минут на сервере

Reading time 8 min
Views 59K

Азбука безопасности Ubuntu


«Мои первые 5 минут на сервере» Брайана Кеннеди — отличное введение, как быстро обезопасить сервер от большинства атак. У нас есть несколько исправлений для этой инструкции, чтобы дополнить ею наше полное руководство. Также хочется подробнее объяснить некоторые вещи для более юных инженеров.

Каждое утро я проверяю почтовые уведомления logwatch и получаю основательное удовольствие, наблюдая несколько сотен (иногда тысяч) безуспешных попыток получить доступ. (Многие довольно прозаичны — попытки авторизоваться как root с паролем 1234 снова и снова). Приведённая здесь общая методика подходит для серверов Debian/Ubuntu, которые лично мы предпочитаем всем остальным. Они обычно служат только хостами для контейнеров Docker, но принципы те же.

На больших масштабах лучше использовать полностью автоматические установки с инструментами вроде Ansible или Shipyard, но иногда вы просто поднимаете единственный сервер или подбираете задачи для Ansible — для таких ситуаций предназначена инструкция.

Примечание: Эта справка создана как базовая азбука. Её следует расширить и дополнить в соответствие с вашими потребностями.
Читать дальше →
Total votes 54: ↑40 and ↓14 +26
Comments 55

Поиск работы за рубежом: дайджест полезных материалов для потенциальных ИТ-экспатов

Reading time 4 min
Views 59K


Вопрос о поиске работы за границей при нынешней нестабильной экономической ситуации в России стоит перед многими ИТ-специалистами довольно остро. Недавний опрос мэрии Иннополиса и рекрутингового портала HeadHunter показал, что около 13% российских ИТ-спецалистов готовы стать «трудовыми мигрантами». Но так ли просто найти работу за рубежом и настолько ли «там» все лучше, чем «здесь» — чтобы с этим разобраться я изучил много интересных материалов. Свое мнение афишировать не буду, лучше поделюсь полезным дайджестом материалов о поиске работы в разных странах и решения возникающих по ходу дела задач и вопросов.
Читать дальше →
Total votes 40: ↑27 and ↓13 +14
Comments 61

Как настроить двухфакторную аутентификацию для логина и sudo

Reading time 4 min
Views 50K


Безопасность в моде, как это и должно быть. Мы живем в мире, где данные — невероятно ценная валюта, которую вы всегда рискуете потерять. Поэтому вы должны сделать все, чтобы убедиться, что то, что вы держите на серверах и десктопах — в безопасности. Для этого администраторы и пользователи создают невероятно сложные пароли, используют менеджеры паролей и т.д. Но что, если я вам скажу, что вы можете логиниться на ваши серверы и десктопы Linux за два шага, вместо одного? Вы можете это делать благодаря Google Authenticator. Более того, это невероятно легко настроить.

Я собираюсь провести вас через процесс настройки двухфакторной аутентификации для использования ее на логине и sudo. Я продемонстрирую это на десктопной Ubuntu 16.04, но процесс также работает и для сервера. Чтобы справиться с двухфакторной стороной вещей, я буду использовать Google Authenticator.
Читать дальше →
Total votes 69: ↑53 and ↓16 +37
Comments 86

Заблуждения программистов об именах

Reading time 3 min
Views 86K
Две недели назад на Хабре публиковался перевод «Заблуждения программистов о времени», который по своей структуре и стилю основан на этом классическом тексте Патрика Макензи, опубликованном два года назад. Поскольку заметка о времени была крайне благоприятно воспринята аудиторией, то, очевидно, имеет смысл перевести и исходную статью об именах и фамилиях.

Джон Грэхем-Камминг (John Graham-Cumming) сегодня жаловался в своём блоге, что компьютерная система, с которой он работал, не приняла его фамилию из-за недопустимых символов. Конечно, там нет недопустимых символов, потому что любой способ, как человек представляет себя, — по определению — является подходящим идентификатором. Джон выразил сильную досаду насчёт данной ситуации, и он имеет полное право, потому что имя — суть нашей индивидуальности, практически по определению.
Читать дальше →
Total votes 94: ↑78 and ↓16 +62
Comments 223

Заблуждения программистов относительно времени

Reading time 3 min
Views 88K
За последние пару лет я потратил много времени на дебаггинг чужих тестов. Это была интересная работа, иногда расстраивающая, но всегда поучительная. Кто-то может подумать, что в тестах нет багов, но конечно баги есть везде, и тесты не исключение.

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

На самом деле, я повидал так много заблуждений, которые оставляют след в чужих (и моих собственных) программах, что посчитал полезным составить список самых частых проблем.
Читать дальше →
Total votes 241: ↑218 and ↓23 +195
Comments 216

Заблуждения программистов о телефонных номерах

Reading time 3 min
Views 62K
Список составили разработчики Java, C++ и JavaScript библиотеки libphonenumber для парсинга, форматирования и проверки телефонных номеров

Телефонные номера используются повсеместно и довольно давно. Поэтому очень удивительно, сколько заблуждений остаётся у программистов относительно них.

1. Телефонные номера, действительные сейчас, останутся действительными всегда. Телефонные номера определённого типа (например, мобильные), никогда не сменят тип.

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

Подсказка. Не сохраняйте свойства телефонного номера, такие как валидность или тип. Проверяйте эту информацию с помощью библиотеки, когда необходимо.
Читать дальше →
Total votes 35: ↑30 and ↓5 +25
Comments 24

Многоязычный Badoo: «трудности перевода»

Reading time 10 min
Views 26K


Хорошая локализация, то есть адаптация приложения для пользователей из разных стран, позволит ему завоевать сердца своей аудитории. Плохая же, напротив, станет настоящей болью. Например, один из навигаторов в Google Play предлагает «Не обновлять, не вы приобрели коммерческая карта» и пугает, что «На некоторых устройствах вы будете просить, чтобы выбрать папку установки».

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

В этой статье мы вкратце расскажем о тех аспектах локализации, которым нужно уделить внимание в первую очередь, и поделимся опытом, который мы накопили при переводе Badoo на 46 языков. Это очень обширная тема, и мы продолжим рассказывать в деталях, как мы реализовали те или иные инструменты. В конце статьи вы можете проголосовать и выбрать тот аспект, о котором вам интересно узнать в первую очередь.
Читать дальше →
Total votes 75: ↑69 and ↓6 +63
Comments 30

Правильная работа с датой и временем

Reading time 12 min
Views 143K
Практически все проекты сталкиваются с проблемами, вызванными неправильной обработкой и хранением даты и времени. Даже если проект используется в одном часовом поясе, все равно после перехода на зимнее/летнее время можно получить неприятные неожиданности. При этом мало кто озадачивается реализацией правильного механизма со старта, потому что кажется, что с этим проблем быть не может, так как все тривиально. К сожалению, в последствии реальность показывает, что это не так.
Читать дальше →
Total votes 29: ↑28 and ↓1 +27
Comments 29

Взвешиваем селекторы CSS

Reading time 4 min
Views 85K
Ближе к двум часам ночи в голову в месте с мыслями о вечном приходят не менее вечные вопросы — «в чём смысл жизни ?», «зачем вообще человеку спать ?» или «Какого чёрта эта #%^$ не работает ?» и чем ближе утро, тем сильнее начинает волновать именно этот самый последний вопрос.

Чуть ниже я расскажу о том какого чёрта сss селекторы иногда не ведут себя так, как нам кажется правильным, и о том как они на самом деле должны себя вести.

Читать дальше →
Total votes 88: ↑66 and ↓22 +44
Comments 39

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity