Habrahabr лучшее

Лучшие публикации за последние 24 часа
Подписка на Лента Habrahabr лучшее Habrahabr лучшее


Привет! Грядут новогодние каникулы, а с ними и некоторое количество свободного времени Собрали подборку популярых статей из нашего блога. Внутри деление → бекенд, фронтенд, команда, мобильная разработка.

Приглядитесь, даже если почитываете наш блог время от времени.
Читать дальше →

Лонгрид варнинг: вас предупредили, много букв.


Уже давно ведётся разработка формата дистрибуции приложений, которые были "свободны" от общесистемных зависимостей. Ubuntu очень, очень активно продвигает свой snap, gnome — flatpack. Оба обещают рай и свободу от rpm/deb. Давайте же подумаем про проблему, которую они хотят решить, и цену, которую они просят за решение этой проблемы.

Читать дальше →
Многие знают Михаила Филиппенко — организатора и соучастника конференций ISDEF, но есть в Fast Reports и «теневой лидер», которого мы попросили выйти из тени. Беседа с основателем компании Fast Reports Александром Цыганенко.

Читать дальше →


Игра SimCity является даже не то, что классикой игрового мира, а одним из его столпов. Успех этого симулятора градостроительства никому не удалось повторить, хотя старались многие. Но речь сейчас не о самой игре, а об одной из ее ранних версий, прототипе, который разрабатывался для Nintendo NES. Нет, здесь нет опечатки, именно для NES, а не SNES.

Выход SimCity на Super Nintendo Entertainment System позволил игре приобрести огромную аудиторию — геймеров, предпочитавших консоль любой другой игровой платформе. 8-битная версия была анонсирована примерно в то же время, что и 16-битная, ее возможности во многом повторяли возможности «старшей сестры». Кратко об игре рассказали на CES 1991 года, но затем планы компании изменились и 8-битная версия была отменена. При этом прототип SimCity для NES уже был создан и даже существовал в виде картриджа.
Читать дальше →
Информационно-аналитическое агентство Content Review опубликовало результаты исследования стоимости мобильного интернета в 50 странах мира. Россия по-прежнему удерживает позиции среди стран с самым дешёвым трафиком. Впрочем, в связи с издержками на инфраструктуру и «закон Яровой» в следующем году тарифы операторов могут повыситься, пишет «Коммерсантъ».

В декабре 2018 года стоимость 1 ГБ трафика в России снизилась до 55,5 руб. (ещё полгода назад она составляла 65,2 руб.), при том что в среднем по миру стоимость гигабайта равняется 269,3 руб. в переводе на рубли.
Читать дальше →
Хочу рассказать о своей попытке создать простой однострочный клиент Dropbox под Linux, используя только бесплатные компоненты с открытым исходным кодом, в том числе rclone, entr и systemd.

Контекст
Недавно проприетарный клиент Dropbox под Linux отказался от поддержки всех файловых систем Linux, кроме незашифрованной ext4. А мой домашний каталог, «к сожалению», зашифрован.

В начале декабря проприетарный клиент перестал работать. Он вышел из системы и предложил выбрать другую папку синхронизации в «поддерживаемой файловой системе».
Читать дальше →


Во время очередного спора знакомый озвучил мысль, которая меня очень сильно задела. «В большинстве популярных ЯПов существует очень много разных путей сделать одно и то же. Это приводит к проблемам. А вот в Go всё не так. Философия языка такова, что на Go разные разработчики решают одинаковые проблемы одинаковым образом. Поэтому их код легко читаем, предсказуем и надежен. И поэтому крупный бизнес выбирает Go». Это достаточно мощный аргумент, над которым нужно как следует поразмыслить, прежде чем опровергать.


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

Читать дальше →
Компания «Яндекс» составила список самых забавных поисковых запросов 2018 года (см. под катом). Вдобавок, на подборке «смешных, трогательных и парадоксальных» запросов компания запустила «генератор предсказаний».



По нажатию на кнопку генератор просто выдаёт случайный запрос из подборки — и пользователю предлагают подумать, к чему бы это.
Читать дальше →
Для мира digital характерен быстрый карьерный рост, который заставляет молодых управленцев переключаться с освоения фундаментальных идей того же MBA на тренинги, лекции и митапы, поскольку они позволяют еще больше ускорить процесс. Однако в том и в другом случае точного ответа на извечный вопрос «что делать» не получить. Причина заключается в сложности адаптации теории к своей личной практике. Но это не значит, что выхода нет.

Как появилась идея TeamLead Conf, при чем тут новый тип образования в digital и серендипность, рассказывает Александр Зиза, один из организаторов нашей конференции Aletheia Business и член программного комитета TeamLead Conf.


Читать дальше →
Ansible — система, которая решает различные задачи автоматизации, включая конфигурирование, резервное копирование и деплой проектов. Систему приятно использовать для написания сценариев автоматизации от простого окружения до крупного проекта. В сценариях важную роль играют playbooks и роли — структурированные playbooks.

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

Как раз об этом расшифровка доклада Александра Харкевича на DevOps Conf Russia. В докладе: разработка Ansible-ролей через CI, механизм разработки публичных ролей и публичных ролей с тестовыми прогонами в приватной инфраструктуре. А еще в докладе нет вывода.


Читать дальше →
На нынешней работе приходится использовать Go. Я хорошо познакомился с этим языком. Мне он не нравится, и меня озадачивает его популярность.

Эргономика разработки

Никогда не встречал языка, настолько открыто противостоящего удобству для разработчика. К примеру, Роб Пайк неоднократно и открыто враждебно относился к любому обсуждению подсветки синтаксиса на Go Playground. В ответ на разумно сформулированные вопросы пользователей его публичные ответы отсвечивали пренебрежением и неуважением:

Gofmt написан специально чтобы уменьшить количество бессмысленных дискуссий о форматировании кода, что отлично удалось. К сожалению, это никак не повлияло на количество бессмысленных дискуссий о подсветке синтаксиса или, как я предпочитаю её называть, spitzensparken blinkelichtzen.
И снова в ветке 2012 Go-Nuts:

Подсветка синтаксиса — для маленьких. В детстве меня учили арифметике на цветных палочках. Сейчас я вырос и использую чёрно-белые цифры. Читать дальше →

С 30 ноября по 2 декабря в Москве прошел PicsArt AI hackathon c призовым фондом — 100,000$. Основной задачей было сделать AI решение для обработки фото или видео, которое можно будет использовать в приложение PicsArt. Коллега по работе(на тот момент) Артур Кузин предложил поучаствовать, заинтересовав меня идеей — анонимизация личных фотографий пользователей с сохранением деталей(мимики и т.д). Также Артур позвал Илью Кибардина — студента МФТИ (кому-то же нужно было писать код). Название родилось очень быстро: DeepAnon.



Это будет рассказ про наше решение, его деградацию развитие, хакатон, и как не надо подстраиваться под жюри.

Читать дальше →
Привет, Хабр!

Меня зовут Виталий Котов, я работаю в компании Badoo и бо́льшую часть времени занимаюсь вопросами автоматизации тестирования. Решением одного такого вопроса я и хочу поделиться в этой статье.

Речь пойдёт о том, как мы организовали процесс работы UI-тестов с A/B-тестами, коих у нас немало. Я расскажу о том, с какими проблемами мы столкнулись и к какому флоу пришли в итоге. Добро пожаловать под кат!


Читать дальше →
Автор статьи – Виктор Варламов, OCP.
Оригинал статьи опубликован 07.07.2017.
Отдельное спасибо автору перевода — brutaltag.

В нашей системе подготовки отчетности обычно выполняются сотни длительных запросов, которые вызываются различными событиями. Параметрами запросов служат список клиентов и временной интервал (дневной, недельный, месячный). Из-за неравномерных данных в таблицах один запрос может выдать как одну строку, так и миллион строк, в зависимости от параметров отчета (у разных клиентов — различное количество строк в таблицах фактов). Каждый отчет выполнен в виде пакета с основной функцией, которая принимает входные параметры, проводит дополнительные преобразования, затем открывает статический курсор со связанными переменными и в конце возвращает этот открытый курсор. Параметр БД CURSOR_SHARING выставлен в FORCE.
В такой ситуации приходится сталкиваться с плохой производительностью, как в случае повторного использования плана запроса оптимизатором, так и при полном разборе запроса с параметрами в виде литералов. Связанные переменные могут вызвать неоптимальный план запроса.
Читать дальше →
Привет Хабр!

Продолжаем битву за производительность Javascript на примере построения сводных таблиц. В прошлый раз камнем преткновения стал асинхронный интерфейс IndexedDB, который, используя межпоточный вызов для каждой записи курсора, работает чудовищно медленно. Решив эту проблему путем организации крупноблочного хранения, а также применив все известные оптимизации, мне удалось поднять производительность приложения в 20 раз, и в настоящее время расчет по хранилищу в 1 миллион фактов занимает 21 секунду, что потенциально дает надежду догнать Америку Excel, который обрабатывает тот же миллион строк за 5..7 секунд.

Однопроходный алгоритм, не использующий индексы и вложенные запросы, отлично ложится на блочную схему хранения данных, и, самое обнадеживающее — позволяет распараллелить расчет по разным потокам (воркерам), по сути повторяя алгоритмы «взрослых» СУБД. Таким образом — возможности по оптимизации далеко не исчерпаны. В настоящее время расчет производится лишь одним воркером, WASM не используется, результаты «милионного» теста на различных браузерах следующие:
Браузер Время Chomium Linux 21 сек Firefox Linux 51 сек Chrome Android 29 сек Firefox Android 62 сек В приложении доступен генератор тестовых данных, также можно загрузить собственный JSON и проверить цифры. Приложение в глубокой бетте, так что ошибки должным образом не обрабатываются, простите. Под катом — несколько кейсов по ускорению WEB-приложений, которые, конечно, все являются банальностями и очевидностями, просто я, как любитель учиться на собственных ошибках — их проверил, зафиксировал, и теперь стараюсь соблюдать.
Читать дальше →
Ещё с прошлого месяца на Хабре, да и на других сайтах, стали появляться прогнозы о том, что нас ждёт в 2019 году: кто-то пишет про свои новые фичи, кто-то про тренды рынка, думается, что будет много итогов и споров о том, за какими технологиями окажется наступающий 2019-й. Конечно, все мечтатели и визионеры ждут прорывов в AI, VR, BigData, а реалисты — новых роботов от Boston Dynamics и сюрпризов от регуляторов. Мы тоже ждём роботов, уж очень они прикольные. А сегодняшний пост мы хотим посвятить тем вещам и принципам, которые должны переходить из года в год и никогда не исчезать из трендов (некоторые, увы, исчезают). Итак, наш непрогноз.


Источник. Просто у нас, как во всех порядочных IT-конторах, есть свой шаман (опционально — чукча), особенно, когда винды ёкхэрэ.
Читать дальше →


Что общего между снежинкой, капустой Романеско, морской звездой, молниями и деревьями? Так сразу и не скажешь, но с математической точки зрения у всех этих объектов есть общая черта — фрактальность. В глазах математика все в нашем мире подчиняется законам «царицы наук». Любое явление, процесс или объект можно выразить в математической форме, что позволяет его проанализировать под новым углом, так сказать. Многие годы ученые пытаются создать идеальную математическую репрезентацию генов, их взаимосвязи и процессов, в которых они участвуют. Сегодня мы поговорим о том, как фракталы помогли заложить фундамент совершенно новой математической модели генов человека с позиции онкологических заболеваний. Что такое фрактал, чем он так важен для генетиков и математиков, и как новая математическая модель может помочь современной медицине? Ответы будем искать в докладе исследовательской группы. Поехали. Читать дальше →
Автор материала, перевод которого мы публикуем сегодня, говорит, что он, после того, как долго занимался объектно-ориентированным программированием, задумался о сложности систем. По словам Джона Оустерхаута, сложность (complexity) — это всё, что делает тяжелее понимание или модификацию программного обеспечения. Автор этой статьи, выполнив некоторые изыскания, обнаружил концепции функционального программирования наподобие иммутабельности и чистых функций. Применение таких концепций позволяет создавать функции, не имеющие побочных эффектов. Использование этих функций упрощает поддержку систем и даёт программисту некоторые другие преимущества.



Здесь мы поговорим о функциональном программировании и о некоторых его важных принципах. Всё это будет проиллюстрировано множеством примеров кода на JavaScript.
Читать дальше →


Привет, Хабр! Меня зовут Александр Колобанов, я Android-тимлид в компании FunCorp. В ноябре я был на droidcon в Сан-Франциско. Под катом небольшой обзор конференции, путевые заметки и немного фоточек. Читать дальше →


Скоро конец года, и пора сдавать отчётность. Мы подготовили чек-лист для предпринимателей на УСН. Узнайте, что нужно успеть сделать до 31 декабря. А также какие сервисы помогут вам сдать отчётность.

Читать дальше →

Страницы

Последние публикации

Новые комментарии