Pull to refresh
25
0
Артур Бикмуллин @devolonter

User

Send message

Windows 8: Проектирование интерфейсов

Reading time1 min
Views19K

В продолжении темы о подготовке MSDN к выходу Windows 8, хочется отметить ещё одну порцию полезных материалов. На этот раз собрана документация по проектированию интерфейсов. Приведены рекомендации и руководство о том, как спланировать все сценарии использования вашего приложения, как спроектировать интерфейс, показаны конкретные примеры и многое другое.
Читать дальше →

Оптимизация связки Nginx, Apache, PHP, MySql

Reading time9 min
Views80K
Неожиданно поступила задача разобраться почему определенный сайт не работает столь быстро сколь хочется. В основе его CakePHP, в связке с Apache и MySQL. В статье описание процесса поиска узких мест и приведение в порядок на столько, на сколько это возможно.

Название сайта светить не буду — думаю, программисты сами узнают. Скажу лишь, что это приложение для социальной сети нагрузкой 70-150 тысяч посетителей в обычное время. Все усложняется тем, что периодически производится рекламная рассылка, которая привлекает около 200-300 тысяч посетителей за пару часов.

Итак, под катом описание всей борьбы на протяжении 4 дней.
Читать дальше →

Laravel — PHP Framework для ремесленников

Reading time2 min
Views108K
Laravel PHP Framework
Laravel — это чистая и стильная основа для разработки. Он избавит вас от спагетти кода. Поможет вам создавать прекрасные веб-приложения используя простой и выразительный синтаксис. Разработка должна доставлять удовольствие. Наслаждайтесь глотком свежего воздуха.
Читать дальше →

Ropes — быстрые строки

Reading time5 min
Views26K
Здравствуй, Хабр.
Большинство из нас так или иначе работает со строками. Этого не избежать — если ты пишешь код, ты обречен каждый день складывать строки, разбивать их на составные части и обращаться к отдельным символам по индексу. Мы давно привыкли что строки — это массивы символов фиксированной длины, а это влечет за собой соответствующие ограничения в работе с ними.
Так, мы не можем быстро объединить две строки — для этого нам потребуется сначала выделить необходимое количество памяти, а потом скопировать туда данные из конкатенируемых строк. Очевидно, что такая операция имеет сложность порядка О(n), где n — суммарная длина строк.
Именно поэтому код

string s = "";
for (int i = 0; i < 100000; i++) s += "a";

работает так медленно.

Хочешь выполнять конкатенацию гигантских строк быстро? Не нравится, что строка требует для хранения непрерывную область памяти? Надоело использовать буферы для построения строк?

Хватит это терпеть!

Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое

Reading time16 min
Views40K
Нравится мне эта картинка, у меня, вот никогда такие красивые графики в какти не получались =(

Введение


С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.
Статья большая, так что будет поделена на логические блоки:

0. Зачем вообще что-то оптимизировать?
  
1. Оптимизация ОС (FreeBSD)
  1.1 Переход на 7.х 
  1.2 Переход на 7.2
  1.3 Переход на amd64
  1.4 Разгрузка сетевой подсистемы
  1.5 FreeBSD и большое кол-во файлов
  1.6 Softupdates, gjournal и mount options
  
2. Оптимизация фронтенда (nginx)
  2.1 Accept Filters
  2.2 Кеширование
  2.3 AIO
  
3. Оптимизация бэкенда
  3.1 APC
  3.1.1 APC locking
  3.1.2 APC hints
  3.1.3 APC fragmentation
  3.2 PHP 5.3
  
4. Оптимизация базы данных
  4.1 MySQL 
  4.1.1 Переход на 5.1
  4.1.2 Переход на InnoDB
  4.1.3 Встроеный кеш MySQL - Query Cache
  4.1.4 Индексы
  
4.2 PostgreSQL
  4.2.1 Индексы
  4.2.2 pgBouncer и другие.
  4.2.3 pgFouine
  
4.3 Разгрузка базы данных
  4.3.1 SphinxQL
  4.3.2 Не-RDBMS хранилище
  4.4 Кодировки
  4.5 Асинхронность
  
Приложение. Мелочи.
  1. SSHGuard или альтернатива.
  2. xtrabackup
  3. Перенос почты на другой хост
  4. Интеграция со сторонним ПО
  5. Мониторинг
  
 6. Минусы оптимизации

Кому что-нибудь из этого списка интересно, жмём сюда...

Самые простые техники адаптивной верстки

Reading time2 min
Views465K
Сайтов с адаптивной разметкой с каждым месяцем становится все больше, заказчики кроме кроссбраузерности все чаще требуют адаптивность, но многие разработчики не спешат обучаться новым техникам. Но адаптивный дизайн — это просто! В этой статье представлено 5 примеров адаптивной разметки различных элементов веб-страниц.


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

«Детский» геймдев или «Как я играл в инди-разработчика»

Reading time6 min
Views15K
Здравствуй, хабр и его обитатели. В этом посте я поделюсь с тобой прохладной историей о том, как я пытался создать Самую Настоящую Инди Игру в одиночку, и через что мне пришлось пройти, чтобы не бросить это неблагодарное дело на полпути, а также о том, что в итоге вышло.
Читать дальше →

Ностальгия: роемся у «Танчиков» под капотом

Reading time12 min
Views107K
Многие из нас выросли на «Танчиках», «Марио» и прочих нетленных шедеврах времён рассвета игровой индустрии. Приятно порой вспомнить, как днями напролёт резались с друзьями у экранов телевизоров, меняя джойстики как перчатки. Но время не стоит на месте, и одни интересы сменяются другими. Однако, порой любовь к старым-добрым игрушкам не угасает.
Я отношу себя к людям именно таким, и мой интерес к старым играм пошёл в сторону реверс-инжиниринга, что и привело меня в IT-сферу, где я и осел с концами.

Я хочу рассказать вам о том, что же под капотом у железных монстров из знаменитой игры Battle City (в простонародье «Танчики») с не менее знаменитой приставки Nintendo Entertainment System (сокращённо NES, в России более известен её китайский клон «Dendy»). Мне в своё время эта информация показалась довольно любопытной — надеюсь, такой же она покажется и вам.
Читать дальше →

Запрос номера из реестра «Россвязи»

Reading time2 min
Views24K
Доброго времени суток!
Давно искал инструмент, чтобы быстро можно было узнать принадлежность того или иного телефонного номера к тому или иному оператору связи и/или региону.

Всегда использовал для этих задач МТТ, чего, в принципе всегда хватало.
Но хотелось чего-то ещё более простого и быстрого.

Если Вас также как и меня интересовало что-то подобное, прошу под кат.
Читать дальше →

Создаем плагин для Netbeans на примере языка Vala

Reading time10 min
Views4K
Vala — это язык программирования, который создавался как замена языка C при разработке приложений для Gnome. При этом язык на мой взгляд удался, в своем синтаксисе взял многое из C# и Java. Прочитать подробнее о нем можно на Хабре или сайте Gnome. Захотев попробовать этот проект в деле столкнулся с тем, что по текущий момент для него не существует качественного IDE или плагина для IDE, которая позволила бы комфортно на нем разрабатывать.

В результате был создан плагин для NetBeans IDE, которая на мой взгляд является одной из лучших open source IDE (наряду с Eclipse). Тем не менее информация о том, как именно разрабатывать модули и плагины для NetBeans Plaform довольно разрознена, а на русском языке практически ничего нет.

Если интересно как именно создать плагин, прошу внутрь

StartPSD — в помощь дизайнерам сайтов, автоматизируем работу

Reading time1 min
Views3.9K
Сегодня решил поделиться с вами своими материалами по автоматизации работы в photoshop. А именно это тот стартовый шаблон с которого я начинаю делать любой дизайн сайта.
Подправил, добавил, оформил в виде приятного продукта под названием — StartPSD.
Можно скачивать, редактировать, пользоваться на здоровье!

Встречайте.
image
Читать дальше →

Canvas-трансформации доступным языком

Reading time3 min
Views53K
Доброго времени суток, хабравчане! В этой статье я подробно расскажу вам о трансформации и вращении в javascripte. Матрица трансформаций, на первый взгляд, штука непонятная и многие ею пользуются даже не осознавая, что она делает на самом деле, используя готовые значения из интернета. На MDC об этом рассказано скудненько, а информацию в английской Википедии тяжело назвать общедоступной. Постараемся разобраться в этом вместе.
Читать дальше →

Скринкасты в линуксе, личный опыт

Reading time4 min
Views10K
openshot
Чуть больше года назад я публиковал здесь на хабре скринкасты. Недавно вышел последний и хотелось поделится опытом создания скринкастов под линуксом.
Читать дальше →

Пишем плагины для Android

Reading time4 min
Views7.4K
По долгу службы мне уже полтора года доводится писать для платформы Android, и вроде бы знания мои в данной области обширны, но и на хабре объем уже охваченных тем не мал. В общем-то после долгих рассуждений решил я поведать хабралюдям о данной теме.
Читать дальше →

Золотые правила успешной кнопки

Reading time3 min
Views71K
Здравствуй, дорогой хабрадруг! Сегодня существуют более тысячи способов создать кнопку; чтобы понять их сущность, вам нужно лишь потратить немного времени, просмотрев работы на сайте dribbble.com. Большинство из этих примеров очень похожи друг на друга, однако время от времени попадаются и такие кнопки, на создание которых потратили чуть больше внимания, времени и сил.



Воспользовавшись замечательными параметрами CSS3, мы можем создать элегантые и стильные кнопки без особых усилий (учитывая старые браузеры, конечно). Создаете ли вы кнопку непосредственно в CSS или пользуетесь специальными инструментами для их создания, всегда нужно тщательно подумать о том, как ваша кнопка будет выглядеть в контексте веб-сайта.
Читать дальше →

Шокирующий Objective-C для Java программистов, часть вторая

Reading time5 min
Views5K
Продолжаю краткий обзор особенностей Objective-C, удивляющих Java программистов (первая часть). Во второй части немного будет рассказано о философии языка, о поддержке пространств имен и о типе id. Судя по комментариям к первой части, необходимо немного пофилософствовать, поэтому обещанные свойства (property) переносятся в третью часть. Также узнаем какие вопросы задают в американских супермаркетах.

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

Шокирующий Objective-C для Java программистов

Reading time4 min
Views26K

О чем эта статья?


Два факта. В мире много Java программистов. Популярность Objective-C растет. Вывод: Java программист, изучающий Objective-C не такая уж редкость. Если знать ключевые различия между языками, то можно эффективно использовать существующие знания Java и быстрее начать писать на Objective-C.
Читать дальше →

Information

Rating
Does not participate
Location
Казань, Татарстан, Россия
Date of birth
Registered
Activity