Архив за 18 апреля 2013 - 5

image

Шаг за шагом мы создаем сервис, объединяющий людей вокруг музыки. В рамках этой концепции мы многое переработали в новой версии Tracks Flow. Сегодня мы расскажем вам о наших новых решениях, но для начала немного цифр.

За 1 год альфа-версии:

Регистраций: 36 400
Создано плейлистов: 46 700
Отмеченно любимых треков: 389 600
Прослушано: 8 910 000 треков ≈ 594 000 часов ≈ 68 лет непрерывного воспроизведения
Самые популярные треки:

  1. Alex Clare – Too Close ❤ 1183
  2. Gotye – Somebody That I Used to Know ❤ 959
  3. Adele – Skyfall ❤ 897

Да, нам нравится, что именно такие треки возглавляют наш топ, хотя мы никому не навязываем свой вкус.

Читать полностью »

Как я Quake в браузере делал
2 месяца назад я выложил на GitHub первую бета-сборку WebQuake — порта первого Quake, работающего в браузере через WebGL.

В этом посте я бы хотел вам рассказать о подробностях разработки и реализации движка: как сделана графика, как работает звук, и так далее.Читать полностью »

Простенький пользовательский агрегатПользовательские агрегаты (custom aggregates) являются одной из тех уникальных особенностей PostgreSQL, понять которую кажется не под силу никому. Однако как только создать хотя бы один по-настоящему работающий пример, тучи разверзнутся, и вы будете удивляться, как же раньше жили без такого матёрого функционала. Так давайте создадим такой простенький агрегат. Он будет возвращать состояние, то есть наиболее часто встречающееся значение, для логического (булевого) поля.

Кто и зачем может захотеть странного? Ну, представьте, что вы денно и нощно мониторите несколько ваших веб-серверов, и хотите иметь почасовую картину аптайма (uptime). Допустим каждые 30 секунд состояние сервера заносится в таблицу: TRUE — сервер работает, FALSE — сервер лежит. Тогда если большую часть времени сервер работал мы хотим вернуть TRUE, а ежели по большей части сервер стоял, то соответственно FALSE. А если и сама система мониторинга лежит и, следовательно, нет никаких данных, будем возвращать NULL.
Читать полностью »

Всем привет!

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

Напомню, что в проекте используется php(Yii), mysql и memcached. В проекте достаточно много сущностей, для каждой из которой есть своя модель, которая наследуется от CActiveRecord.

Хранятся файлы моделей следующим образом. В папке models создаем папку base. Когда генерируем модель через Gii, то указываем, что ее нужно положить в папку models/base и к имени класса добавляем Base. Затем создаем в models аналогичный класс без Base, который наследуется от базового класса и имеет в себе лишь метод model().

Кстати заранее скажу, что базовые модели наследуем не от CActiveRecord, а от ExtActiveRecord — расширяем CActiveRecord под наши нужды. Но об этом позже. Пока что разницы никакой.

Пример:
models/base/BaseUser.php — стандартный класс, который генерируется через Gii
models/User.php — класс, который наследуется от BaseUser и имеет в себе метод model()

	/**
	 * Returns the static model of the specified AR class.
	 * @param string $className active record class name.
	 * @return User the static model class
	 */
	public static function model($className=__CLASS__) {
		return parent::model($className);
	}
	

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

Не забываем добавить в конфиге 'application.models.base.*'.

Перейдем собственно к теме поста и поставим задачи, которые хотим решить:

  1. Уменьшить количество запросов в базу на обновление
  2. Уменьшить количество запросов в базу на выборку

Читать полностью »

А так же советы «Бывалого» в записи вебинара.
Секреты виртуализации Hyper V Windows Server 2012 от Экс Архитектора Microsoft Алексея Кибкало

На этот раз на глубоком техническом уровне дан обзор по следующим темам:

  • Что такое Hyper-V
  • Версии Windows Server 2012 Hyper-V
  • Аппаратные требования к Windows Server 2012 Hyper-V
  • Динамическое выделение памяти
  • Новый формат VHDX файлов, поддержка Native 4K Drives и дисков до 64Tb
  • Возможности SMBv3
  • Установка Hyper-V
  • Миграция на Hyper-V и её сценарии
  • Сервисы интеграции
  • Модель безопасности Hyper-V
  • Сетевые возможности Windows Server 2012 Hyper-V
  • Виртуальные Fibre Channel
  • Что такое Live Migration
  • Высокодоступные кластеры Windows Server 2012 Hyper-V
  • Live merge of snapshots
  • Аварийное восстановление и Hyper-V Replica
  • Азы управления при помощи System Center
  • Hyper-V на клиентских ОС и их ограничения
  • И многое другое...

Читать полностью »

Google запрещает продавать/одалживать свои Google Glass

На днях на Хабре появилось сразу несколько новостей с описанием технических спецификаций Google Glass, плюс видео с распаковкой гаджета. Но есть и еще одна интересная новость — оказывается, это устройство корпорация запрещает продавать или одалживать (читаем — дать поносить) кому-либо. В противном случае владельца ждет неприятный сюрприз в виде деактивации очков.

Читать полностью »

Не хочу вас агитировать пересаживаться на скутеры. Просто расскажу о своем экспириенсе передвижения на скутере и во что это выливается со временем…

И так началось всё пару лет назад когда я собрался таки и купил себе скутер. Не хотелось покупать что то узкоглазое, угловатое и по дизайну напоминающее что то футуристичное. Захотелось классики, что нибудь вроде Vespa, но дешевле. И выбор мой пал на Honda Giorno.

Скутер для IT шника
Читать полностью »

Компания Nokia, по последним данным, наделила смартфон Lumia 928 экраном Super AMOLED, но сохранила пластиковый корпусЧитать полностью »

Russian Code Cup 2013: разбор задач первого квалификационного раунда
В субботу, 13 апреля 2013 года, в 19 часов состоялся первый квалификационный тур. Несмотря на, казалось бы, несчастливую дату, для многих этот день оказался, наоборот, очень удачным.
В этом посте мы кратко расскажем об итогах первого квалификационного раунда и подробно разберем задачи, которые мы предлагали участникам.
В сегодняшнем разборе участвуют:

  • Олимпиада в Гномляндии
  • Один день Антона Сергеевича и его студентов
  • Проблемы хранения млурана в ядерной лаборатории Флатландии
  • Актуальный вопрос защиты планеты от метеоритов
  • Телепорты и то, какие препятствия они создают для кладоискателей

Читать полностью »

Тестирование приложений на Canvas: рецепты на примере тестирования API Яндекс.КартНесмотря на то, что HTML5 всё ещё находится в процессе разработки, он уже появляется в веб-интерфейсах. Одним из основных нововведений этой версии HTML стал элемент Canvas, который используется для отрисовки двухмерной графики. Например, всё, что вы видите и с чем взаимодействуете в игре MMORPG от компании Mozilla или старом-добром Command and Conquer, отрисовывается и обрабатывается с помощью Canvas. Самые изощрённые умы даже реализуют полноценные формы на Canvas. Или интерактивную модель солнечной системы.

Фреймворки для работы с этим элементом растут как грибы после дождя; про то, как начать программировать, используя Canvas, написано огромное количество статей. Но есть один пункт, о котором, по-видимому, из-за узкой специфики говорят редко и мало. Речь идёт о тестировании приложений на Canvas. В каком-то смысле оно становится проблемой для инженера по тестированию, который привык обращаться к элементам на странице по их css или xpath селекторам, а затем выполнять с объектом какие-то действия. С Canvas такой подход не работает, ведь DOM элемент один, а объектов в нём — много.

Тестирование приложений на Canvas: рецепты на примере тестирования API Яндекс.Карт

Под катом на примере автоматизации тестирования API Яндекс.Карт я расскажу вам о том, как мы решили эту проблему в Яндексе.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js