Как стать автором
Обновить
13
0
Антон @deilux

Пользователь

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

Математический подход к созданию сайтов

Время на прочтение8 мин
Количество просмотров65K
«Математика прекрасна». Это может показаться абсурдным, для людей которые при одном только упоминании математики вздрагивают. Однако некоторые из самых красивых вещей в природе и нашей Вселенной — это проецирование математических свойств, от самых маленьких до крупнейших галактик. Один из древних философов, Аристотель сказал: «математическим наукам свойственно выстраивать все по порядку, в симметрии и ограничениях, они являются главными формами прекрасного».

Из-за своей природной красоты, математика является частью искусства и архитектуры. Но она практически не применяется  для дизайна сайтов и приложений. Это наблюдается из-за того, что многие не сопоставляют математику с дизайном. Хотя, наоборот, математика может быть инструментом для производства, поистине волшебных конструкций. Тем не менее, вы не должны полагаться на математику для каждого своего творения. Дело в том, что вы должны рассматривать математику как вашего помощника. Для наглядности мы создали пару сайтов, которые представляют математические принципы, обсуждаемые в этой статье. Мы также создали рекомендации, которые можно использовать в дизайне.

Читать дальше →
Всего голосов 145: ↑107 и ↓38+69
Комментарии33

Массовая остановка запросов

Время на прочтение1 мин
Количество просмотров12K
В качестве небольшого дополнения к статье Чистка сервера базы данных.

Иногда, в очереди скапливается большое количество запросов к БД, выполнение которых необходимо остановить, не перезапуская MySQL.

Для решения этой проблемы мы используем такой метод:

Получаем список долго выполняемых запросов, в данном случае — SELECTы, выполняемые дольше 100 секунд
SELECT CONCAT('KILL ', id, ';') 
FROM information_schema.processlist 
WHERE 
`info` LIKE('SELECT%') 
AND `time` > 100 
INTO OUTFILE '/tmp/killList.sql'; 


Собственно, убиваем их:
SOURCE /tmp/killList.sql; 


По желанию, можно выбирать запросы по хосту, имени пользователя, базе данных, и т.д.
Всего голосов 52: ↑37 и ↓15+22
Комментарии9

Молниеносный JSON в Ruby on Rails

Время на прочтение2 мин
Количество просмотров24K
Вывод результата в JSON достаточно прост в Rails:

render json: @statuses

Это работает отлично, если нужно вывести небольшое количество записей. Но что случится, если нам потребуется вывести сразу 10'000 записей? Производительность серьезно просядет, а самыми затратными по времени окажутся сериализация JSON и операции с базой данных.

Читать дальше →
Всего голосов 35: ↑31 и ↓4+27
Комментарии33

Разукрашиваем вывод mysql-client в консоли

Время на прочтение4 мин
Количество просмотров30K
Цвет и звук — это те небольшие радости, которые могут разукрасить и облегчить будние администратора при постоянной работе с консолью. Вывод цветовой информации регулируется так называемым escape-последовательностями, определяющими среди прочего цвет текста и цвет фона.

Общий вид: \033[Xm, где X — это значение параметра (цифра). Например, echo -ne "\033[34mHELLO" выведет синим цветом «HELLO». Таблицу цветов и других доступных параметров (подчеркивание, мигание и т.п.) можно получить в документации man console_codes в разделе «ECMA-48 Set Graphics Rendition». Обычно поддержка цвета интегрирована в само приложение, но mysql-client не входит в число таких программ.

В интернете не раз был встречен вопрос о разукрашивании консоли mysql, но нигде не нашлось рецепта. Только общие слова «может быть состряпать обертку» или «посмотрите в исходном коде». Такой вопрос на StackOverflow жил без ответа более 2 лет! «Жил» было специально употреблено в прошедшем времени, потому что ответ нашелся.

Поможет нам утилита grc. Она доступна в большинстве дистрибутивов и о ней многие знают. Но как обернуть в нее вывод mysql-client?


Читать дальше →
Всего голосов 103: ↑102 и ↓1+101
Комментарии30

MySQL Query Cache

Время на прочтение5 мин
Количество просмотров109K
В MySQL есть очень полезная функциональность — кеш запросов. Кеш запросов доступен в MySQL начиная с версии 4.0.
Многие СУБД имеют подобную функциональность, но в отличие от MySQL они кешируют планы выполнения запросов, тогда как MySQL кеширует результаты запросов.
Дальше о том, как работает кеш запросов, как его настраивать и оптимально использовать.
Читать дальше →
Всего голосов 70: ↑67 и ↓3+64
Комментарии60

Обратная сторона луны

Время на прочтение14 мин
Количество просмотров46K
При написании приложений, одной из важнейших вопросов являются потребление памяти и отзывчивость (скорость работы).

Считается, что сборщик мусора – черный ящик, работу которого нельзя предугадать.

А еще говорят, что GC в .NET практически не настраиваемый. А еще, что нельзя посмотреть исходники как классов .NET Framework, так и CLR, GC и т.п.

А я скажу как бы ни так!

В данной статье мы рассмотрим:
  • структура организации размещения объектов в памяти
  • CLR 4.5 Background Server GC
  • правильная настройка сборщика мусора
  • эффективный апгрейд приложений до .NET 4.0+
  • правильное ручное управление памятью

Читать дальше →
Всего голосов 138: ↑132 и ↓6+126
Комментарии28

Семь смертных грехов программиста на T-SQL

Время на прочтение13 мин
Количество просмотров204K
Недостаточно писать код хорошо читаемым: он также должен быстро выполняться.

Существует три базовых правила для написания такого T-SQL кода, который будет работать хорошо. Они кумулятивные – выполнение всех этих правил окажет положительное влияние на код. Пропуск или изменение любого из них – скорее всего приведет к отрицательному влиянию на производительность вашего кода.

  • Пишите, исходя из структуры хранения данных: если вы храните данные типа datetime, используйте именно datetime, а не varchar или что-нибудь еще.
  • Пишите, исходя из наличия индексов: если на таблице построены индексы, и они должны там быть, пишите код так, чтобы он мог использовать все преимущества, предоставляемые этими индексами. Убедитесь, что кластерный индекс, а для каждой таблицы он может быть только один, используется наиболее эффективным образом.
  • Пишите так, чтобы помочь оптимизатору запросов: оптимизатор запросов – восхитительная часть СУБД. К сожалению, вы можете сильно затруднить ему работу, написав запрос, который ему «тяжело» будет разбирать, например, содержащий вложенные представления – когда одно представление получает данные из другого, а то из третьего – и так далее. Потратьте свое время для того, чтобы понять как работает оптимизатор и писать запросы таким образом, чтобы он мог вам помочь, а не навредить.

Существует несколько типичных ошибок, которые люди допускают в своем коде на T-SQL – не совершайте их.
Читать дальше →
Всего голосов 67: ↑62 и ↓5+57
Комментарии14

Повышаем безопасность стека web-приложений (виртуализация LAMP, шаг 6/6)

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

Настройка и использование nginx

Мы завершаем перевод цикла статей сайта cyberciti.biz, посвященного виртуализации LAMP-стэка. Речь в заключительном материале пойдет об установке и настройке реверс-прокси nginx.

nginx — open-source продукт, использующийся не только в качестве веб-сервера или реверс-прокси сервер. За его легковесность и бережное отношение к ресурсам его используют и в качестве балансировщика нагрузки (от тупого round-ribbon, до более осмысленного, но тут все туманно прим.пер.) и/или в качестве прокси-решения для организации доступа к службам виртуальной сети, установленной в предыдущих статьях цикла, через один внешний хост-адреса, например через IP 202.54.1.1 (как это было рассмотренное в примерах прежде).
Читать дальше →
Всего голосов 24: ↑16 и ↓8+8
Комментарии5

Еще 12 «рецептов приготовления» MySQL в Битрикс24

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


В нашей прошлой статье — «11 «рецептов приготовления» MySQL в Битрикс24» — мы, в основном, рассматривали архитектурные решения: стоит ли использовать облачные сервисы (типа Amazon RDS), какой форк MySQL выбрать и т.п.

Судя по отзывам, тема грамотной эксплуатации MySQL в больших «хайлоад» проектах — очень большая и важная. Поэтому мы решили рассказать еще о некоторых нюансах настройки и администрирования БД, с которыми сталкивались при разработке «Битрикс24» и которые используем ежедневно.

Еще раз напомню, что эта статья (как и предыдущая) не является универсальным «рецептом» идеальной настройки MySQL на все случаи жизни. :) Такого не бывает. :) Но искренне верю, что она будет полезной для вас для решения отдельных конкретных задач.

А в конце статьи — сюрприз для самых терпеливых читателей. :)
Читать дальше →
Всего голосов 84: ↑65 и ↓19+46
Комментарии14

11 «рецептов приготовления» MySQL в Битрикс24

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


Проектируя, разрабатывая и запуская наш новый большой проект — «Битрикс24», мы не только хотели сделать по-настоящему классный сервис для командной работы (к тому же еще и бесплатный — до 12 пользователей), но еще и собрать и накопить опыт по эксплуатации облачных веб-сервисов, «прокачать» свою компетенцию в разработке высоконагруженных отказоустойчивых проектов и — самое главное — поделиться этими знаниями как с нашими партнерами, так и со всеми веб-разработчиками, кому близка тема «хайлоада». :)

Конечно, в одной статье (и даже не в одной) невозможно описать универсальный «рецепт», который бы подошел абсолютно для всех проектов: для кого-то важнее производительность (иногда — даже в ущерб надежности), для кого-то — наоборот, отказоустойчивость превыше всего, где-то много маленьких таблиц, где-то — большой объем данных…

Мы постарались описать те «изюминки», которые не раз помогали нам в работе в решении тех или иных практических задач. Надеемся, они окажутся полезными и для вас. :)
Читать дальше →
Всего голосов 102: ↑75 и ↓27+48
Комментарии35
2

Информация

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