Как стать автором
Обновить
38
0
Алексей Уколов @alexey-m-ukolov

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

Отправить сообщение

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

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


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

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

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

Время на прочтение12 мин
Количество просмотров17K

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

Читать далее
Всего голосов 56: ↑56 и ↓0+56
Комментарии39

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

Время на прочтение4 мин
Количество просмотров29K

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

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

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

И что это за стратегии?
Всего голосов 16: ↑16 и ↓0+16
Комментарии9

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

Время на прочтение4 мин
Количество просмотров17K


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

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

Время на прочтение4 мин
Количество просмотров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.

Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии12

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

Время на прочтение6 мин
Количество просмотров24K

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


image

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

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

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

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

Время на прочтение7 мин
Количество просмотров206K

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


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

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


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

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

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

image

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

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

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

Время на прочтение13 мин
Количество просмотров11K
Статья была опубликована на smashingmagazine и была переведена специально для Хабрахабра.

image

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

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

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

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

Время на прочтение5 мин
Количество просмотров9.9K

Введение


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

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

Время на прочтение7 мин
Количество просмотров7.5K

Предисловие


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

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

Время на прочтение8 мин
Количество просмотров59K

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


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

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

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

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

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

Время на прочтение4 мин
Количество просмотров59K


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

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

Время на прочтение4 мин
Количество просмотров50K


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

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

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

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

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

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

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

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

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

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

Время на прочтение3 мин
Количество просмотров63K
Список составили разработчики Java, C++ и JavaScript библиотеки libphonenumber для парсинга, форматирования и проверки телефонных номеров

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

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

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

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

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

Время на прочтение10 мин
Количество просмотров26K


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

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

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

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

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

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

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

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

Читать дальше →
Всего голосов 88: ↑66 и ↓22+44
Комментарии39

Информация

В рейтинге
5 049-й
Откуда
Екатеринбург, Свердловская обл., Россия
Дата рождения
Зарегистрирован
Активность