Как стать автором
Обновить
1
0
Андрей Попов @Nord001

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

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

UX-стратегия на практике. Часть 1 — Фреймворк

Время на прочтение14 мин
Количество просмотров31K
В идеале дизайном нужно заниматься системно с запуска первых продуктов компании. Но так получается далеко не всегда по самым разным причинам — важно запуститься как можно раньше, не было денег на старте, требовался максимально быстрый рост, концепция постоянно менялась в поиске работающей бизнес-модели и т.п. Вспомните первые Windows, Android до версии 4.0 и уйму других продуктов. Почему так происходит?

Стратеги

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

Прямая запись в справочник 1C: Предприятие через Linq на примере работы с пользователями Asp.Net

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

Прямая запись в справочник 1C: Предприятие через Linq на примере работы с пользователями Asp.Net


Статья описывает как зарегистрировать пользователя веб-сайта в справочнике 1С: Предприятие 8, расположенном в MSSQL базе данных. Далее пользователь может авторизоваться на сайте, используя логин и пароль, указанный при регистрации. Работа ведется только со справочником с названием Пользователи и не затрагивает систему работы с пользователями через конфигуратор 1С.

Описаны только простейшие операции по регистрации и авторизации. Вспомогательные операции по восстановлению пароля, информированию через E-mail не освещаются. Работа ведется прямым доступом к базе MSSQL через Linq. Подход позволяет использовать одновременно функционал Asp.Net и 1С, а также обойтись без посредников в виде разных CMS.

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

Что быстрее? foreach vs. List.ForEach vs. for-loop

Время на прочтение4 мин
Количество просмотров49K
Сегодня (прим. переводчика: т.е. 6 лет назад) я перебирал список List, используя конструкцию foreach, и чувствуя небольшое самодовольство, осознавая насколько это производительнее, того что было бы, попытайся я использовать ArrayList. Благодаря чуду Generic компилятор C# аккуратно избегает многочисленные упаковочные операции с помощью экземпляров System.Collections.Generic.IEnumerator вместо старых System.Collections.IEnumerator. Тогда я подумал: "действительно ли это самый быстрый способ?" По результатам расследования, получается, что, нет, это не самый быстрый способ.
Читать дальше →

Ежемесячные расходы дизайн-студии на электроные сервисы

Время на прочтение2 мин
Количество просмотров46K
Поговорим о ежемесячных тратах на электронные сервисы, которые необходимы для работы небольшой студии с удалённой командой, занимающейся дизайном в интернете. Давайте посмотрим, какими платными сервисами мы пользуемся в Genue.



50$. Basecamp



image

Простая и удобная система управления проектами от команды 37signals. Это основной инструмент взаимодействия как внутри студии, так и с заказчиками. Все задачи заводятся в виде простых списков и легко меняются местами друг с другом простым перетаскиванием. Каждая задача выглядит как публикация с комментариями. Любой может указывать, кто из команды получит уведомление на email о его комментарии. Можно ограничивать видимость некоторых задач для клиента.
Читать дальше →

Анализ популярных теорий игровой зависимости

Время на прочтение15 мин
Количество просмотров89K
Просмотрев пару другую статей на этом сайте по игровой зависимости, я решил их показать специалисту с 30 летним практическим опытом лечения разного рода зависимостей психотерапевту наркологу А.Г. Данилину.
Из его беседы мы решили подготовить статью.




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

В качестве лечения предлагается запрет на компьютерные игры и «заместительная терапия» психотропными препаратами.
Второй взгляд – трактовка зависимости от виртуальных игр через примитивную биологическую систему. Создатели компьютерных игр… играют на человеческих слабостях и формируют у игрока рефлекторное поведение. В этой логике геймер – нечто вроде «собаки Павлова» за компьютером.
Читать дальше →

Прокачиваем Google Tasks с помощью стороннего сервиса: повторяющиеся задачи, совместный доступ, уведомления о сроках и другие возможности

Время на прочтение14 мин
Количество просмотров62K
Недавно на Хабре мы публиковали небольшой обзор системы управления задачами, над которой работаем. Одна из ее возможностей — односторонняя и двусторонняя синхронизация с Google Tasks. Настроив ее, можно существенно расширить возможности по работе с вашими задачами в Google Tasks, к примеру, достаточно быстро реализовав следующие «плюшки»:
  • создание задач в Google Tasks по почте (причем каждая задача имеет свой адрес и можно отсылать подзадачи к любой задаче)
  • сделать повторяющиеся задачи в Google Tasks (к примеру, каждый вторник будет возникать задача «Проверить операции по карте»)
  • запланировать будущие задачи (т.е. они появятся в Google Tasks в нужную дату)
  • уведомлять о приближении срока (даты завершения, due date) задачи из Google Tasks по почте (один или несколько раз)
  • через некоторое время (к примеру, неделю) удалять уже выполненную задачу
  • предоставить доступ к своим задачам другим пользователям Google Tasks (грубо говоря, расшарить свой список, подробнее ниже)

image

Реализация всего этого сделана через синхронизацию с нашим сервисом, т.е. мы не говорим о каких-то «хаках» или недокументированных возможностях Google Tasks, а реализуем их через обработку ваших задач у нас. Поэтому если вы не согласны доверить ваши тасклисты сторонним сайтам, то наше решение не для вас.
Читать дальше →

Использование EXPLAIN. Улучшение запросов

Время на прочтение10 мин
Количество просмотров188K
Когда вы выполняете какой-нибудь запрос, оптимизатор запросов MySQL пытается придумать оптимальный план выполнения этого запроса. Вы можете посмотреть этот самый план используя запрос с ключевым словом EXPLAIN. EXPLAIN – это один из самых мощных инструментов, предоставленных в ваше распоряжение для понимания MySQL-запросов и их оптимизации, но печальным фактом является то, что многие разработчики редко его используют. В данной статье вы узнаете о том, какие данные предлагает EXPLAIN на выходе и ознакомитесь с примером того, как использовать его для оптимизации запросов.
Читать дальше →

Разработка под Android в NetBeans IDE без плагинов. Часть 2

Время на прочтение11 мин
Количество просмотров12K
Продолжаем начатый эксперимент, посвящённый настройке NetBeans IDE для программирования под Android. В прошлый раз нам удалось создать проект в NetBeans, настроить систему сборки, а также сделать автоматический запуск приложения. Кроме этого мы немного посмотрели на то, как система сборки построена изнутри. Во второй части статьи мы пойдём дальше и посмотрим, как в NetBeans можно осуществлять отладку, создавать библиотечные проекты, а также добавлять библиотеки к проектам и работать с модульными тестами.
Читать дальше →

О вопросах сравнения и оптимизации клавиатурных раскладок

Время на прочтение50 мин
Количество просмотров39K
В данной статье затрагиваются вопросы анализа и синтеза клавиатурных раскладок. Проводится сравнение стандартных и альтернативных раскладок. Также приводится одна из возможных моделей для оптимизации раскладки. Подразумеваются стандартные жесткие зоны для слепого десятипальцевого метода набора.
Тем, кого интересует исключительно модель, можно пропустить первую половину статьи.



Предварительный анализ возможных улучшений раскладки ЙЦУКЕН


Не будем долго описывать традиционно упоминаемые недостатки стандартной раскладки ЙЦУКЕН: 50% всех нажатий производится указательными пальцами, причем часто несколько нажатий подряд производит один из них, а также значительная нагрузка на правый мизинец. Перейдем к характеристике следующего уровня — чередованию рук. По моему скромному мнению (и не только, как будет показано ниже), это важнейшая характеристика, влияющая на скорость набора, поскольку руки могут действовать независимо, а пальцы в пределах каждой руки двигаются в большей степени согласованно.

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

О безопасности в Meteor и не только (часть 2)

Время на прочтение9 мин
Количество просмотров8.9K
Если вас не испугала первая часть, предлагаю продолжить разговор о механизмах безопасности Meteor. Начав с loginToken, выдаваемого клиенту, правил allow/deny при модификации базы данных клиентом, коснемся доверенного и недоверенного кода, серверных методов, использования HTTPS и пакета force-ssl, пакета browser-policy (Content Security Policy и X-Frame-Options), и закончим встроенным механизмом валидации данных (функция check() и пакет audit-arguments-check).
Читать дальше →

О безопасности в Meteor и не только (часть 1)

Время на прочтение8 мин
Количество просмотров9.7K
Для разработки приложений фреймворка Meteor существует некоторое число приемов и средств, предназначенных для обеспечения безопасности. В первой части мы поговорим о более известных вещах — скрытии серверной части кода, пакетах autopublish / insecure, скрытии полей коллекций при публикации и встроенной системе учетных записей, заглянув внутрь коллекции Meteor.users. Во второй — про loginToken, выдаваемый клиенту, правила allow/deny при модификации базы данных клиентом, доверенном и недоверенном коде, серверных методах, HTTPS, пакете force-ssl и пакете browser-policy (Content Security Policy и X-Frame-Options), встроенном механизме валидации данных (функция check() и пакет audit-arguments-check).
Читать дальше →

Как прочитать патент за одну минуту

Время на прочтение3 мин
Количество просмотров39K
Допустим, кто-то подал на вас в суд за нарушение патента. Вам нужно выяснить, насколько все плохо. Или, например, ваш начальник дал вам поручение проверить, нарушает ли кто-либо патент, который вы когда-то получили. А вы совершенно ничего про это не помните, потому что в среднем на патентную экспертизу уходит около четырех лет и к тому времени, когда случится что-то интересное, вы обо всем этом благополучно забудете.

Или, например, читаете вы одну из восьмидесяти сиксилиардов историй на Slashdot, в которых используется название патента, чтобы порассуждать на тему из разряда «догадайтесь, какую простую вещь додумались запатентовать». При этом вы понимаете, что название — это еще не само изобретение, и вам любопытно, о чем же все-таки идет речь.

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

Стресстест Apache и Nginx на EC2 MicroInstance

Время на прочтение4 мин
Количество просмотров19K
Stopwatch imageНесколько лет назад, когда я знакомился с сервисом Amazon EC2 была заведена MicroInstance с Ubuntu 10.04 LTS на борту. На ней был поднят Apache и настроено несколько виртуальных хостов, включая блог на MODx Revolution. Выпала тут свободная минутка и подумалось мне, а что будет если на мой потаённый бложик вдруг набежит толпа читателей. Набегать ей в общем то неоткуда, но дух познания, привитый ещё в детстве многократными просмотрами киножурнала «Хочу всё знать», не давал покоя. Мне не доводилось пока участвовать в высоконагруженных проектах, поэтому было проведено небольшое исследование материалов в сети. Из блога в блог кочует утверждение, что необходимо отказаться от использования Apache в пользу Nginx. Это утверждение мне показалось странным, учитывая историю проекта Apache и сообщество разработчиков вокруг него. Неужели разработчики Apache не могут решить проблему ругаемого везде режима prefork? Так ли это на самом деле я и решил выяснить. О результатах читайте под катом.
Читать дальше →

История собаченьки. Создание персонажа для новой игры «Эволюция: Битва за Утопию»

Время на прочтение6 мин
Количество просмотров25K
Каждая игра, будь то маленький инди-проект или глобальная игра ААА класса, начинается с предпродакшена. Это, если вы не знали, смутное время, когда разработчики пытаются понять, что за игру, собственно, они собираются делать. Будучи художником, я очень люблю этот этап разработки, поскольку именно в этот период процесс еще не встал на отлаженную колею, нет выматывающей рутины и можно креативить от души.

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


Итак…
Читать дальше →

Эволюция разработки в Badoo

Время на прочтение1 мин
Количество просмотров19K
Как устроен процесс организации разработки в крупном интернет-проекте на всех этапах его роста? Что происходит, когда из стартапа компания перерастает в проект с более чем 190 миллионами пользователей.

В прошлом году на конференции Whalerider Алексей fisher Рыбак рассказывал о том:

  • как у нас Badoo сейчас устроена разработка;
  • как в процессе развития проекта её перестраивали;
  • какие проблемы решали;
  • как преодолевали кризисы роста;
  • на какие грабли наступали.

В секции вопросов есть интересная информация о том, как в Badoo устроена система мотивации и бонусов.
Сейчас у нас появилось видео и мы хотим поделиться им с вами.



«Эволюция: Битва за Утопию»: от идеи до релиза

Время на прочтение8 мин
Количество просмотров42K
В январе мы запустили новый проект — игру для iOS-устройств «Эволюция: Битва за Утопию». Это вторая мобильная игра студии ITT после «Джаггернаута: Месть Соверинга». На этот раз мы ушли от фэнтези и сделали проект с сеттингом в жанре постапокалиптического sci-fi.

«Эволюция» уже появилась в App Store (пока только для игроков в России и СНГ), и я хочу поделиться с сообществом историей создания этой необычной игры.

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

Концепции Boost

Время на прочтение6 мин
Количество просмотров33K
От использования шаблонов в С++ лично меня всегда отпугивало отсутствие стандартных механизмов задания ограничений параметров. Другими словами, когда разработчик пишет функцию

template <class T>
bool someFunc(T t)
{
	if (t.someCheck()) {
		t.someAction(0);
	}
}

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

Включение PostgreSQL репликации на платформе Jelastic в облаке InfoboxCloud

Время на прочтение3 мин
Количество просмотров4.6K
Репликация — важный процесс для любого сервера баз данных. Настроив репликацию с одного сервера на несколько дополнительных Вы сможете значительно уменьшить вероятность потери данных.

Данная статья посвящена настройкe кластера PostgreSQL. С Jelastic Вы можете легко создать кластер с одним или несколькими резервными серверами, готовыми взять на себя основные операции, если основной сервер выйдет из строя. В этом случае основной сервер работает в режиме архивирования, в то время как резервный работает в режиме восстановления, считывая данные с журнала транзакций WAL (Write-Ahead Logging) основного сервера.

image

В случае полного отказа основного сервера, содержимое WAL будет передано на резервные серверы с минимальной задержкой.

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

CRTP. Static polymorphism. MixIn. Размышления на тему

Время на прочтение9 мин
Количество просмотров40K
В этом посте я поразмышляю на тему статического полиморфизма в С++, архитектурных решениях, строящихся на его основе. Рассмотрю интересную идиому — CRTP. Приведу несколько примеров ее использования. В частности, рассмотрю концепцию MixIn классов. Пишу, чтобы систематизировать собственные знания, но может быть и вы сможете найти что-то интересное для себя.
Читать дальше →

Создание и использование Matlab кластеров

Время на прочтение7 мин
Количество просмотров17K
Цель статьи: хочу поделится опытом создания трех вычислительных кластеров Matlab, а также их удаленного администрирования.

Небольшое вступление

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

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

Итак, обо всем — по порядку


Железо в наличии:

Дома: комп (Phenom II x4 840, 7x64) и ноут (Athlon II Dual-Core M320, 7x64) соединенные в одну сеть старым добрым маршрутизатором DIR-300.

Дома у девушки: комп (i5 4440, 7x64).

На работе: 10 компов (Athlon II Dual-Core, XPx86) (связанных в одну сеть) в одном помещении и 4 (Athlon II Dual-Core, XPx86) в другом (тоже связанных в одну сеть). Локальной сети между помещениями нет.

На всех вышеперечисленных ящиках присутствует доступ в интернет.
Читать дальше →

Информация

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