Search
Write a publication
Pull to refresh
-1
0
Send message

11 видов кэширования для современного сайта

Reading time7 min
Views98K


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

Как заставить PostgreSQL считать быстрее

Reading time15 min
Views26K

Источник фотографии


Все умеют считать, но не все умеют считать быстро. В этой статье мы подробно рассмотрим методы оптимизации count в PostgreSQL. Существуют приемы, которые могут позволить ускорить подсчет количества строк на порядки.


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


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

Мы проанализируем решения для каждой конкретной ситуации, а также сравним их скорость и потребление ресурсов. Разобрав ситуацию с централизованной БД, мы воспользуемся Citus, чтобы продемонстрировать параллельное выполнение count в распределенной базе данных.

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

Кэши для «чайников»

Reading time12 min
Views38K
Кэш глазами «чайника»:


Кэш – это комплексная система. Соответственно, под разными углами результат может лежать как в действительной, так и в мнимой области. Очень важно понимать разницу между тем, что мы ждем и тем, что есть на самом деле.

Давайте прокрутим полный оборот ситуаций.

Tl;dr: добавляя в архитектуру кэш важно явно осознавать, что кэш может быть средством дестабилизации системы под нагрузкой. Смотрите конец статьи.
Читать дальше →

От арбитражника до владельца компании с оборотом в $100 млн

Reading time14 min
Views29K
Каждый арбитражник, хоть раз задумывался о том, чтобы создать свой бизнес. В арбитраже есть много плюсов — можно много путешествовать, ни от кого не зависеть и при этом зарабатывать хорошие деньги. Но рано или поздно наступит момент, когда ты начнешь задавать себе вопрос: «А что дальше?»



Мы хотим рассказать о Роберте Грине, основателе Zeropark и Voluum. Роберт прошел нелегкий путь от обычного арбитражника до владельца крупной компании с оборотом более $100 млн в год.

Под катом мы публикуем перевод интервью с Робом, в котором он рассказал:

  • как завязал с арбитражем и начал собственный бизнес;
  • как выжил из компании двух владельцев;
  • как ему удалось справиться с эмоциональным и физическим выгоранием;
  • как потерял на старте $300 000 за четыре часа;
  • как научился делегировать.
Читать дальше →

Как писать конспекты, если ты программист

Reading time6 min
Views81K

Когда в техническом вузе преподаватель заставляет студентов писать конспекты от руки, получается что-то вот такое:


Фотка двух листов конспекта


Это – результат работы программы, генерирующей рукописный текст пользовательским почерком. Она может менять толщину пера и цвет пасты, писать буквы слитно или раздельно, поддерживает письмо на множестве разных языков и потенциально способна переносить слова по слогам на многих из них. Написано на C++/Qt, есть версии под Windows и Linux. Дальше будет небольшой разбор рукописного письма, описание разных способов его имитации, разбор наиболее интересных моментов работы программы и ссылка на репозиторий.

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

Худой Scrum лучше доброго Agile

Reading time12 min
Views30K
Залп скосил 50 офицеров и 760 рядовых. Французы дрогнули, запаниковали и — обратились в бегство. «Тут дела наши пошли не вполне хорошо», — описывает этот момент битвы официальная французская депеша.

Келли Дж. Порох. От алхимии до артиллерии.

Формирование Scrum команды всегда сопряжено со многими трудностями. Почти все справляются с тем, чтобы изменить порядок рабочего процесса и начать проводить некоторые из необходимых по Scrum событий. Но получить от этих формальных изменений видимую пользу и начать действительно менять рабочий процесс удается меньшинству. В результате у команды формируется следующее мнение о Scrum: “Мы без толку тратим время на митинги. Scrum не работает. Нужно что-то менять”.

Пытаясь как-то спасти положение, активисты Scrum вспоминают, что Scrum — это же еще и framework. Объявляется новая стратегия: “Мы не только Scrum, мы еще и Agile! Мы используем best practices, берем из Scrum только самое лучшее, то, что подходит конкретно для нашей ситуации, а все остальное лишнее и необязательно”. А раз так — “Мы — молодцы и все делаем правильно”.


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

«Великий уравнитель» или способ решить проблему выравнивания по высоте

Reading time4 min
Views18K
Мы много занимаемся электронной коммерцией и часто встречаем задачу по выравниванию элементов. На первый взгляд все просто, в коде пишется несколько строк и все ок. Но на самом деле элементы бывают очень разные, правил применения тоже много, а еще есть адаптив.

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

Рис. 1. Порядок отображения группы товаров.

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

Пишем свой язык программирования без мам, пап и бизонов. Часть 0: теория

Reading time3 min
Views63K

Тема написания своего ЯПа не дает мне покоя уже около полугода. Я не ставил перед собой цель "убить" CoffeeScript, TypeScript, ELM, тысячи их, я просто хотел понять кухню и как они вообще пишутся.


К моему неприятному удивлению, большинство из этих языков используют Jison (Bison для JavaScript), а это не совсем попадало под мою задачу — "понять", так как по сути дела Jison делает все за вас, собирает AST по заданным вами правилам (Jison как таковой отличный инструмент, который делает за вас львиную долю работы, но сейчас не о нем).


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


Стоит заметить, что данное руководство не привязано к JavaScript, он выбран исключительно из соображений скорости разработки и читаемости, так что вы можете написать свой "лисп"/"питон"/"ваш абсолютно новый синтаксис" на любом знакомом вам языке.


Также до момента написании компилятора (в нашем случае транслятора), процесс написания языка не отличается от процессов создания языков компилируемых в ASM/JVM bitcode/LLVM bitcode/etc, а это значит, что данное руководство не ограничивается созданием языка трансляцируемого в JavaScript.


Весь код, который будет написан в данной (и последующих статьях), лежит на Github'е. Тегами обозначены начало и концы статей для удобства.


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

Очереди и блокировки. Теория и практика

Reading time12 min
Views31K
Мы выдохнули после HighLoad++ и продолжаем публикации лучших докладов прошлых лет. HighLoad++ получился прекрасным, количество организационных улучшений скачкообразно переросло в новое качество продукта. Хабр, кстати, вёл текстовую трансляцию с конференции (первый, второй дни).

Александр Календарёв

Александр Календарев ( akalend )


Здравствуйте, уважаемые коллеги! Мой доклад будет про вещь, без которой не обходится ни один HighLoad-проект — про сервера очередей, и если успею, то расскажу про блокировки (примечание расшифровщика — успел :).
Читать дальше →

Публикуем сайт в межпланетной файловой системе IPFS

Reading time5 min
Views21K

В этой статье я расскажу как в ней запустить статичный сайт который будет доступен и напрямую и по IPNS. У сайта будет нормальное доменное имя благодаря использованию DNS. Доменное имя можно использовать для доступа к сайту напрямую, через глобальный и локальный шлюз.


Условия:


  1. На нашем сервере установлен IPFS
  2. У нас есть домен и доступно редактирование DNS записей

Напомню: InterPlanetary File System — это новая децентрализованная сеть обмена файлами (HTTP-сервер, Content Delivery Network). О ней я начал рассказ в статье "Межпланетная файловая система IPFS".

image

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

Адреса ФИАС в среде PostgreSQL. Часть 2

Reading time10 min
Views11K
Это вторая часть статьи, в которой изложен опыт работы со списком адресообразующих элементов ФИАС, загруженным в базу данных под управлением PostgreSQL. С первой частью статьи можно ознакомиться здесь.


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

5 причин не использовать свой личный счёт в фрилансе

Reading time6 min
Views98K

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

Демонстрационная база данных для PostgreSQL

Reading time7 min
Views69K

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


Сразу приведу ссылку на полное описание (там же написано, где взять демо-базу и как ее установить).


image

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

8 инструментов для создания личного или делового чат бота

Reading time4 min
Views69K


Переписываться любят все. Мессенджеры теперь повсюду, и скорее всего ваш клиент пользуется хотя бы одним из следующих:

  • WhatsApp
  • Facebook Messenger
  • WeChat
  • Skype
  • LINE
  • Slack
  • QQ Mobile
  • и множество других…

Я думаю, вы со мной согласны. А если нет, то взгляните на данные Statista об использовании приложений для обмена сообщениями на мобильных устройствах.

Станьте частью нового мира и воспользуйтесь чат ботом. Обслуживание, поддержка и восприятие ваших клиентов полностью изменятся.
Читать дальше →

«Шесть умов» UX Дизайна

Reading time5 min
Views10K
Представляю, Вам, перевод статьи " The Six Minds of UX Design" Это мой первый перевод и первая статья на Хабре, любая критика уместна, все пожелания будут учтены, не забывайте к чему мы все стремимся, к получению опыта и обучению других.

«Шесть умов» UX Дизайна


Мы говорим с UX психологом Джоном Уэлен о понятии UX, что происходит на экране, это же происходит в уме, глубоко в нашем подсознании. Вот почему дизайнеры должны учитывать это в своем подходе.
Когда мы думаем о дизайне пользовательского опыта, мы часто думаем о том, как пользователь чувствует опыт и решения, которые он предлагает пользователю сделать. Но, как утверждает психолог Джон Уэлен, они представляют собой лишь две из движущих сил опыта пользователя. Есть ещё четыре других акцента внимания, которые способствуют или нет, эффективности дизайна.
Продолжение далее..

Вплетение нарратива в процедурные миры

Reading time17 min
Views16K
image

Уже в течение трёх лет я веду блог разработки моего нового roguelike-проекта. Истории игры в нём уделено довольно мало обсуждений, что отражает её малую информативную роль и важность в процессе разработки альфа-версии. На самом деле за посредственной и избитой научно-фантастической историей 7DRL, изложенной в версии для гейм-джема, последовал перезапуск проекта в 2013 году, и первое растягивание сроков разработки произошло только из-за воплощения уникальной детализированной истории. Всё, происходившее позже, тем или иным образом служит для поддержки нарратива.

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

Domain-Driven Design: стратегическое проектирование. Часть 1

Reading time14 min
Views117K


Здравствуйте, хабрапользователи! В этой статье речь пойдет о предметно-ориентированном проектировании программного обеспечения с использованием, в первую очередь, стратегических шаблонов. Вторую часть – про тактическое проектирование – читайте здесь.

Данный подход использовал Вон Вернон в своей книге «Реализация методов предметно-ориентированного проектирования». Цель написания этой книги: дать возможность разработчикам совершить полет на самолете DDD (в детстве автор зачастую путешествовал со своей семьей на небольших самолетах). Вид с высоты дает более широкое представление о проблемах моделирования, не давая застрять в различных технических деталях. Наблюдая ландшафт DDD таким способом, можно осознать преимущества как стратегического, так и технического проектирования. Подробнее – под катом!
Читать дальше →

Редизайн устаревшего личного кабинета: не повторяйте наших ошибок

Reading time9 min
Views21K
Меня зовут Евгений Цветков и я расскажу, что надо учитывать при редизайне интерфейсов, чтобы малыми средствами получить большой результат.


Телфин на рынке телекоммуникаций с 2003 года. За 13 лет у пользователей расширился выбор настроек телефонии. Интерфейс личного кабинета абонента по разным причинам не менялся. И в один прекрасный день он настолько устарел, что стал представлять из себя квест «Угадай нужную кнопку».
Читать дальше →

Grep все, что можно

Reading time6 min
Views57K

Про grep знают если не все, то многие читатели Хабра, однако его многочисленных родственников знают немногие.




Давайте узнаем, как можно грепать все, что таит в себе хоть крупицу текста.

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

Вкладываясь в точки, а не линии

Reading time3 min
Views4.9K
Марк Састер опубликовал отличную статью несколько лет назад на тему вложения денег в линии, а не точки. Если не читали, обязательно прочтите.
image
Признаюсь, я немного старомоден в сфере Европейских венчурных проектов. Я стал работать аналитиком венчурного фонда в Атласе почти десять лет назад. Моими наставниками стали Фред Дестин и Сонали де Рикер, которые сейчас являются партнёрами в Accel Partners. Во многом они повторяли советы Марка: надо вкладывать в процесс, в идеальном варианте, способствуя росту бизнеса, там, где вы разбираетесь в подспудных движущих силах бизнеса, понимаете динамику работы команды и экономику данной сферы.
Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity