Facebook совсем недавно пришел в Россию, однако с каждым днем он все больше набирает популярность. На данный момент в социальной сети Марка Цукерберга насчитывается около 5 000 000 русских пользователей. В сравнении с 35 000 000 ежедневной аудитории ВКонтакте и 27 000 000 в Одноклассниках это очень мало, однако если вы все-таки решите продвигать свой бренд или стартап в Facebook, то это статья для вас.
@Ygarikread-only
Пользователь
«One Last Thing» — документальный фильм о Стиве Джобсе (2011 год), профессиональный русский перевод
1 мин
13K«Одна последняя вещь» (One Last Thing) — документальный фильм о Стиве Джобсе, выпущенный в 2011 году. В фильм включено неизвестное интервью Стива Джобса, данное в 1994 году, а также интервью со Стивом Возняком, Рональдом Уэйном, Дином Хови, Россом Перо. Перевод на русский язык — канал GTV.
+34
Как замутить стартап: пособие вебдванолера (часть 1).
6 мин
992Итак. Отбрасываем сомнения. Ставим перед собой портрет Брина в рамочке. Запасаемся "Дошираком" на полгода вперед и начинаем стартапить. На какую тему? Плевать — миллиарды баксов зовут нас вперед. Тем, кто готов, но к чему — не знает, посвящено это пособие.
+36
Основы программирования под Android на примере игры Судоку
6 мин
375KВ статье описаны основные трудности создания приложений под Android.
Рассматриваются базовые понятия программирования Android.
Для примера описано создание игры Sudoku из книги Hello, Android – Ed Burnette.
Осторожно много скриншотов.
Рассматриваются базовые понятия программирования Android.
Для примера описано создание игры Sudoku из книги Hello, Android – Ed Burnette.
Осторожно много скриншотов.
+125
Жизнь разработчика (в картинках)
1 мин
65KВзято отсюда специально для хабра. Возможно, в некоторых из ситуаций вы узнаете себя.
Когда я показываю босу, что окончательно пофиксил баг
Когда проджект-менеджер входит в офис
Когда я показываю босу, что окончательно пофиксил баг
Когда проджект-менеджер входит в офис
+516
Интеллектуальное управление процессом обучения
11 мин
9.4KСейчас популярна тема онлайн-образования: все слышали про Coursera, Udacity, EdX. Это отличные образовательные платформы, содержащие много полезных курсов. Но можно ли их сделать более интеллектуальными? Вообще исследования по интеллектуальным обучающим системам (intelligent tutoring systems) ведутся давно и у ученых есть что предложить программистам-практикам. В этой статье в научно-популярной форме рассматриваются результаты и выводы, полученные научным сообществом, по построению конкретного вида интеллектуальных обучающих систем. Затрагиваются вопросы построения подсистем проверки решений задач, моделей обучаемого, алгоритмов управления учебным процессом.
Широко распространены обучающие программы с тестами, содержащими вопросы с вариантами выбора ответа, в числе которых один правильный, а остальные неверные, содержащие типичные ошибки. Теоретическую основу для создания подобных систем в 50-х гг. XX века разработали известный психолог Б.Ф. Скиннер и исследователь Н.А. Кроудер. Предложенные ими концепции неоднократно подвергались критике. В частности, критики отмечали, что контролироваться должны не только ответы, но и пути, ведущие к ним. Ну действительно, ведь главная цель обучения – не зазубривание правильных ответов, а формирование рациональных приемов решения типичных задач изучаемого предмета. Поэтому научная мысль пошла по новому пути. Во-первых, ученые начали создавать обучающие программы, способные распознать не только конечный ответ, но и оценить ход рассуждений обучаемого при выполнении задания (см. часть 1 этой статьи). Во-вторых, ученые начали разрабатывать средства измерения характеристик обучаемых, важных для управления процессом обучения (так называемые «модели обучаемого», см. часть 2) и алгоритмы управления учебным процессом (см. часть 3).
Введение
Широко распространены обучающие программы с тестами, содержащими вопросы с вариантами выбора ответа, в числе которых один правильный, а остальные неверные, содержащие типичные ошибки. Теоретическую основу для создания подобных систем в 50-х гг. XX века разработали известный психолог Б.Ф. Скиннер и исследователь Н.А. Кроудер. Предложенные ими концепции неоднократно подвергались критике. В частности, критики отмечали, что контролироваться должны не только ответы, но и пути, ведущие к ним. Ну действительно, ведь главная цель обучения – не зазубривание правильных ответов, а формирование рациональных приемов решения типичных задач изучаемого предмета. Поэтому научная мысль пошла по новому пути. Во-первых, ученые начали создавать обучающие программы, способные распознать не только конечный ответ, но и оценить ход рассуждений обучаемого при выполнении задания (см. часть 1 этой статьи). Во-вторых, ученые начали разрабатывать средства измерения характеристик обучаемых, важных для управления процессом обучения (так называемые «модели обучаемого», см. часть 2) и алгоритмы управления учебным процессом (см. часть 3).
+6
Использование ActiveRecord от Yii в игре тайм менеджере
6 мин
7.5KВсем привет!
Сегодня я хочу вам рассказать, как была реализована работа с кэшем в социальное игре тайм менеджере. Можете считать эту статью продолжением вот этой.
Напомню, что в проекте используется php(Yii), mysql и memcached. В проекте достаточно много сущностей, для каждой из которой есть своя модель, которая наследуется от CActiveRecord.
Хранятся файлы моделей следующим образом. В папке models создаем папку base. Когда генерируем модель через Gii, то указываем, что ее нужно положить в папку models/base и к имени класса добавляем Base. Затем создаем в models аналогичный класс без Base, который наследуется от базового класса и имеет в себе лишь метод model().
Кстати заранее скажу, что базовые модели наследуем не от CActiveRecord, а от ExtActiveRecord — расширяем CActiveRecord под наши нужды. Но об этом позже. Пока что разницы никакой.
Данная схема используется для того, чтобы в случае повторной генерации файла модели не потерять свой код и просто не забивать пространство стандартным кодом от Yii.
Не забываем добавить в конфиге 'application.models.base.*'.
Перейдем собственно к теме поста и поставим задачи, которые хотим решить:
Сегодня я хочу вам рассказать, как была реализована работа с кэшем в социальное игре тайм менеджере. Можете считать эту статью продолжением вот этой.
Напомню, что в проекте используется 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.*'.
Перейдем собственно к теме поста и поставим задачи, которые хотим решить:
- Уменьшить количество запросов в базу на обновление
- Уменьшить количество запросов в базу на выборку
+7
Чеклист вопросов к проекту: старт, реализация, финал — и 10 советов «в полёт»
4 мин
47KПроверьте свой проект: вы летите или думаете, что летите?
Ниже вопросы, которые стоит задавать себе на старте проекта и время от времени на его протяжении.
Контрольные вопросы на старте проекта:
- Что конкретно нужно сделать на текущем этапе? В целом? Есть ли чётко определённые цели каждого этапа? Как вы определите, что цели достигнуты? Соответствует ли текущий статус заявленным планам и целям или их необходимо корректировать?
- Реалистичны ли эти цели?
- Что случится, если цели не будут достигнуты в срок? Каков план действий?
- Насколько этот проект значим? Например, зависит ли от него место вашей компании на рынке?
- Какую выгоду вам, обществу и инвесторам принесёт проект?
- Достаточно ли хорошо спланирован проект? Все ли в вашей команде понимают пункты плана одинаково?
- Нужны ли внешние эксперты, например, юристы?
- Есть ли у команды опыт работы вместе? Кто будет координировать команду? Важно ли для проекта работать именно вместе — или возможен труд одиночек? Отвечает ли каждый член команды за работу всех остальных?
- Можно ли сократить размер команды? Если нет, то почему? Если да, то почему это не сделано?
- Как вы будете компенсировать форс-мажоры с персоналом, например, что случится, если ваш ведущий разработчик сломает руку?
+39
Отложенная обработка команд в социальной игре
4 мин
11KВсем привет!
Сегодня я хочу поделиться с вами решением задачи, с которой мы столкнулись при разработке социальной игры. Игровой клиент был написан на flash, а для back-end был выбран php. Игра относится к тайм-менеджмент играм.
Схема работы была выбрана следующая:
Все работало отлично, пока не происходило резкое возрастание количества игроков.
Сначала начались тормоза со стороны php. Основная проблема данной реализации заключалась в том, что на каждое действие игрока дергается сервер, который производит довольно много вычислений по обсчету объектов на карте перед выполнением команды. Эта проблема была решена путем добавления дополнительных серверов с обработчиками php.
Потом мы уперлись в производительность mysql. Было слишком много запросов. Так как шардинг не был заложен в систему, то выкручивались как могли. Что-то перенесли в mongodb, где-то улучшили работу с кэшем.
Собственно для нового аналогичного проекта было принято решение использовать другую схему взаимодействия клиента и сервера.
Именно об это я и хочу рассказать.
Сегодня я хочу поделиться с вами решением задачи, с которой мы столкнулись при разработке социальной игры. Игровой клиент был написан на flash, а для back-end был выбран php. Игра относится к тайм-менеджмент играм.
Схема работы была выбрана следующая:
- игрок совершает действие на клиенте
- клиент проверяет возможность совершения действия
- отсылает команду на сервер
- сервер проверяет возможность совершения действия, выполняет команду, производя изменения в базе
- клиент уведомляется о том, что все ок или информируется об ошибке
Все работало отлично, пока не происходило резкое возрастание количества игроков.
Сначала начались тормоза со стороны php. Основная проблема данной реализации заключалась в том, что на каждое действие игрока дергается сервер, который производит довольно много вычислений по обсчету объектов на карте перед выполнением команды. Эта проблема была решена путем добавления дополнительных серверов с обработчиками php.
Потом мы уперлись в производительность mysql. Было слишком много запросов. Так как шардинг не был заложен в систему, то выкручивались как могли. Что-то перенесли в mongodb, где-то улучшили работу с кэшем.
Кстати, mongodb оказался не таким простым хранилищем, как может показаться на первый взгляд. Учитывая то, что у нас было включено шардирование и стояли правильные индексы, мы все равно словили там тормоза, с которыми не смогли разобраться на тот момент. Периодически просто высыпалась пачка запросов в log, которые вдруг затупили. Хотя через секунду те же запросы работали нормально при том же количестве запросов. Но это тема отдельного поста.
Собственно для нового аналогичного проекта было принято решение использовать другую схему взаимодействия клиента и сервера.
Именно об это я и хочу рассказать.
+20
Курс лекций «Стартап». Питер Тиль. Стенфорд 2012. Занятие 12
26 мин
73KТуториал
Перевод
Весной 2012 г., Питер Тиль (Peter Thiel), один из основателей PayPal и первый инвестор FaceBook, провел курс в Стенфорде — «Стартап». Перед началом Тиль заявил: «Если я сделаю свою работу правильно, это будет последний предмет, который вам придется изучать».
Один из студентов лекции записывал и выложил транскипт. В данном хабратопике astropilot переводит двенадцатое занятие.
Занятие 1: Вызов будущего
Занятие 2: Снова как в 1999?
Занятие 3: Системы ценностей
Занятие 4: Преимущество последнего хода
Занятие 5: Механика мафии
Занятие 6: Закон Тиля
Занятие 7: Следуйте за деньгами
Занятие 8: Презентация идеи (питч)
Занятие 9: Все готово, а придут ли они?
Занятие 10: После Web 2.0
Занятие 11: Секреты
Занятие 12: Война и мир
Занятие 13: Вы — не лотерейный билет
Занятие 14: Экология как мировоззрение
Занятие 15: Назад в будущее
Занятие 16: Разбираясь в себе
Занятие 17: Глубокие мысли
Занятие 18: Основатель — жертва или бог
Занятие 19: Стагнация или сингулярность?
+29
Управление растущими нагрузками в Postgres: 5 советов от Instagram
5 мин
28KПеревод
С тех пор как число активных пользователей Instagram стало постоянно расти, Postgres оставался нашим надежным фундаментом и неизменным хранилищем данных для большинства данных, создаваемых пользователями. И хотя меньше года назад мы писали о том, как мы храним большое количество данных на Instagram при 90 лайках в секунду, сейчас мы обрабатываем более 10000 лайков в секунду – и наша основная технология хранения данных не изменилась.
За последние два с половиной года, мы поняли несколько вещей и подобрали пару инструментов для масштабирования Postgres и мы хотим ими поделиться – то, что мы хотели бы знать при запуске Instagram. Некоторые из них специфичны для Postgres, другие представлены также и в других базах данных. Чтобы знать, как мы горизонтально масштабируем Postgres, смотрите наш пост Sharding and IDs at Instagram
За последние два с половиной года, мы поняли несколько вещей и подобрали пару инструментов для масштабирования Postgres и мы хотим ими поделиться – то, что мы хотели бы знать при запуске Instagram. Некоторые из них специфичны для Postgres, другие представлены также и в других базах данных. Чтобы знать, как мы горизонтально масштабируем Postgres, смотрите наш пост Sharding and IDs at Instagram
+62
Необходимые ресурсы для геймдизайнеров
3 мин
82KВ данном топике я хочу представить подборку ресурсов, имеющих непосредственное отношение к дизайну и разработке игр. В первую очередь, эта информация будет полезна начинающим или будущим геймдизайнерам, которые только задумываются о выборе профессии, но, возможно, и профессионалы своего дела найдут что-то полезное или интересное для себя. Кроме того, я предполагаю, что читатели хорошо владеют английским языком, что в наше время для айтишников, настоящих или будущих, подразумевается практически по умолчанию.
Итак, поехали.
Итак, поехали.
+54
Сниппеты для Twitter Bootstrap
1 мин
97KФреймворк Twitter Bootstrap уже давно стал одним из самых любимых средств ленивых сторонников быстрого прототипирования и разработки интерфейсов, а где популярность там много разных сторонних интересных штук.
На этот раз я случайно попал на пополняющуюся коллекцию сниппетов.
Думаю многим пригодится, сейчас там набор небольшой (23 штуки), но уже достаточно полезный чтобы поделиться.
Кликабельные картинки:
На этот раз я случайно попал на пополняющуюся коллекцию сниппетов.
Думаю многим пригодится, сейчас там набор небольшой (23 штуки), но уже достаточно полезный чтобы поделиться.
Кликабельные картинки:
Интерфейс аля gmail
+109
Пишем игру для Android используя Canvas
12 мин
56KПривет Хабр!
Сегодня я хочу рассказать о том, как написать простую логическую игру для Android OS с использованием Canvas. С этой игрой я познакомился около 5 лет назад на своем телефоне. Название забылось, а поиски на нескольких тематических форумах ни к чему не привели и я решил написать свою реализации этой игры. Разработка для меня скорее хобби, хотя иногда берусь за небольшие проекты. После некоторых раздумий я решил не использовать движок, а писать самостоятельно. Причины такого решения: желание получить опыт работы с Canvas'ом.
Сегодня я хочу рассказать о том, как написать простую логическую игру для Android OS с использованием Canvas. С этой игрой я познакомился около 5 лет назад на своем телефоне. Название забылось, а поиски на нескольких тематических форумах ни к чему не привели и я решил написать свою реализации этой игры. Разработка для меня скорее хобби, хотя иногда берусь за небольшие проекты. После некоторых раздумий я решил не использовать движок, а писать самостоятельно. Причины такого решения: желание получить опыт работы с Canvas'ом.
+26
Разработчики из Google начали показывать примеры улучшения приложений [Видео]
1 мин
11KРазработчики из google начали цикл видео, где они анализируют чужие приложения и предлагают свои варианты интерфейса.
В первом выпуске они изучили три приложения (точнее три проблемных activity). Много болтовни, конечно, но в будущем надеюсь будет больше приложений и меньше воды.
Первый выпуск под катом.
В первом выпуске они изучили три приложения (точнее три проблемных activity). Много болтовни, конечно, но в будущем надеюсь будет больше приложений и меньше воды.
Первый выпуск под катом.
+15
Русские субтитры в курсах Coursera
3 мин
32KЭто уже не первая на хабре статья про курсы, предоставляемые командой профессоров Coursera. Были и в целом про ресурс, и про отдельные курсы.
Но мне кажется, это настолько замечательная организация, что лишний раз про неё вспомнить не грех.
Большой преградой на пути к знаниям является то, что все курсы проводятся на английском языке. И это отталкивает. Я сама не так давно думала, что изучать незнакомый материал на малознакомом языке — это что-то невообразимо тяжёлое. Но ребята из Coursera и этой проблеме придумали решение — студентам предоставлена возможность в довольно удобном сервисе создавать субтитры к лекциям. И на русском, несмотря на не очень большое русскоязычное сообщество, уже тоже появляются.
Итак, в этой статье я собираюсь привести список существующих на сегодня субтитров к лекциям курсов Coursera и заодно порекламировать курс по машинному обучению, который как раз заново запустился на этой неделе.
Но мне кажется, это настолько замечательная организация, что лишний раз про неё вспомнить не грех.
Большой преградой на пути к знаниям является то, что все курсы проводятся на английском языке. И это отталкивает. Я сама не так давно думала, что изучать незнакомый материал на малознакомом языке — это что-то невообразимо тяжёлое. Но ребята из Coursera и этой проблеме придумали решение — студентам предоставлена возможность в довольно удобном сервисе создавать субтитры к лекциям. И на русском, несмотря на не очень большое русскоязычное сообщество, уже тоже появляются.
Итак, в этой статье я собираюсь привести список существующих на сегодня субтитров к лекциям курсов Coursera и заодно порекламировать курс по машинному обучению, который как раз заново запустился на этой неделе.
+46
Впечатляющие анимационные эффекты
2 мин
115KПеревод
С появлением jQuery, у веб-программистов появилась возможность создавать впечатляющие визуальные эффекты, не прибегая к использованию технологии flash. В данной статье представлено несколько ярких примеров того, каких потрясающих результатов можно достичь, используя стандартные средства браузера и свое воображение.
+230
Меню с плавной инверсией цвета
1 мин
20KRecovery Mode
Представляю вашему вниманию меню с плавной инверсией цвета при перетекании курсора.
Под катом сам плагин и немного о концепции.
+50
Правильный хостинг для MODx своими руками
7 мин
57KТуториал
Топик рассказывает о настройке быстрого и недорогого хостинга для MODx Revolution. В принципе, вещи тут описаны общие, так что информация подойдет для любой CMS. Позже была смонтирована и видеоверсия этой инструкции.
На всякий случай, приложу видео, как должна работать админка MODx Revo.
Для быстрой и комфортной работы желательно:
- Быстрый браузер — Google Chrome. Админка Revo работает в нем молниеносно
- Хороший интернет-канал. Тут без вариантов, нужно всем и всегда.
- Качественный хостинг — про него и пишу.
В конце поста есть ссылки на скрипты для автоматической установки MODx с созданием юзера, хоста nginx, процесса php5-fpm и базы дынных.
+35
Мобильная веб разработка
6 мин
11KВ настоящее время, всё больше и больше людей используют электронные устройства для упрощения своей жизни. Использование громоздких ПК плавно перетекло в ноутбуки, а теперь и в смартфоны. Крупные компании, как Apple, Dell и Microsoft хотят получить часть рынка смартфонов: ожидается, что к концу 2011 года, мировые продажи смартфонов побьют мировые продажи ПК.
Именно поэтому мобильная веб разработка очень актуальна сейчас. Продажи смартфонов растут каждый день и это говорит о необходимости повышенного внимания к интерфейсам для мобильных устройств. Как удовлетворить все запросы от пользователей, которые становятся все более и более требовательными? Как сделать так, чтобы люди могли смотреть сайт, как на Full HD монитор, так и на мобильном телефоне?
У веб-разработчиков всегда были проблемы с кросс-браузерностью. Теперь у них есть еще одна головная боль: кросс-платформенность, потому что Android приложение никогда не будет работать на iPhone и наоборот.
Целью данной статьи является рассмотрение проблем веб-разработчиков, в связи с появлением смартфонов, предложение пути их решения и показ эффективного решения на практике, изпользуя фреймворк Sencha Touch. Основная проблема заключается в том, что все больше и больше людей используют и хотят использовать интернет на своих мобильных устройствах, но не все сайты готовы предоставить эту услугу.
Именно поэтому мобильная веб разработка очень актуальна сейчас. Продажи смартфонов растут каждый день и это говорит о необходимости повышенного внимания к интерфейсам для мобильных устройств. Как удовлетворить все запросы от пользователей, которые становятся все более и более требовательными? Как сделать так, чтобы люди могли смотреть сайт, как на Full HD монитор, так и на мобильном телефоне?
У веб-разработчиков всегда были проблемы с кросс-браузерностью. Теперь у них есть еще одна головная боль: кросс-платформенность, потому что Android приложение никогда не будет работать на iPhone и наоборот.
Целью данной статьи является рассмотрение проблем веб-разработчиков, в связи с появлением смартфонов, предложение пути их решения и показ эффективного решения на практике, изпользуя фреймворк Sencha Touch. Основная проблема заключается в том, что все больше и больше людей используют и хотят использовать интернет на своих мобильных устройствах, но не все сайты готовы предоставить эту услугу.
+28
Информация
- В рейтинге
- Не участвует
- Откуда
- Stockholm, Stockholms Län, Швеция
- Зарегистрирован
- Активность