Search
Write a publication
Pull to refresh
1
0
Роман Сопов @sopov

Разработчик

Send message

Как прокачивать мозг

Reading time8 min
Views174K
В этой теме я хочу поделиться своими знаниями про устройство мозга и тем, как применяю это на практике.

Не правда ли, картинка объемна?

Итак, как известно, мозг — важнейший орган нашего тела. Кто-то говорит, что он — самая сложная вещь во вселенной. И незнание некоторых его особенностей может очень плачевно сказать на жизни человека.

Но обо всем по порядку.

Понимание роли мозга


Нет невежества страшнее, чем невежество по отношению к самому себе.

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

phpDaemon — фреймворк асинхронных приложений

Reading time6 min
Views45K
Сегодня речь пойдет о phpDaemon — асинхронном модульном демоне-фреймворке, который берёт на себя обработку I/O (libevent) и другие низкоуровневые задачи, присущие демонам. С его помощью легко писать правильные сетевые приложения с блэкджеком и шлюхами.
Из коробки идут сервера FastCGI, HTTP, CGI, FlashPolicy, Telnet, WebSocket (!) — да-да тот самый волшебный пендаль новый протокол от Google. И клиенты mysql, memcached, mongodb… И многое другое, полный список под катом. Работать с сетью действительно просто. Программист средней руки может написать, к примеру, IRC-бота за считанные часы.
В качестве наглядного примера я реализовал вот этот чат на phpDaemon + WebSocket + MongoDB + jQuery. Он наглядно демонстрирует преимущества этой технологии: доставка сообщений мгновенна, накладные расходы при обмене данными минимальны, высока производительность, приложение масштабируется горизонтально. Исходники этого чата (в данный момент 17 кб). Прошу заметить, чат тестировался и работает в Chrome, FF, IE6+, Iron, Safari.
Читать дальше →

Поиск и редактирование значений в памяти сторонней программы на C++

Reading time6 min
Views51K

Чем не устраивает ArtMoney



Часто возникает необходимость найти и поменять какие-либо строки/числа в чужой программе. С этой задачей лучше всего справляется ArtMoney. Для тех, кто не умеет или не хочет использовать отладчики, это на сегодня, наверное, единственный вариант, так как нормальных аналогов просто нету. Хотя ArtMoney и поддерживает очень много возможностей для работы с памятью, весь процесс происходит вручную, без возможности создания действий по алгоритму. Если значений много и их надо, например, менять при каждом запуске программы, то время, затрачиваемое на эту работу, превышает всякие допустимые пределы. Выход один — написать свой редактор памяти!
Читать дальше →

I съезд интернет-разработчиков состоится 20 мая 2010 года

Reading time2 min
Views479
20 мая 2010 года состоится мероприятие под названием «I съезд интернет-разработчиков».

Участие в мероприятии полностью бесплатное.

Это первое мероприятие подобного размера и уровня, организованное Ассоциацией интернет-разработчиков (АИР). Вас ждет общая информация об Ассоциации, а так же профессиональная программа, состоящая из докладов ориентированных, прежде всего на владельцев и менеджеров веб-студий.

Мероприятие будет проходить c 10:00 до 18:00 в Конференц-центре «На Филипповском».

Приглашаем всех хабрапользователей на наше мероприятие!
Читать дальше →

Google Analytics: Определение позиции сайта по ключевому слову в поисковой системе Google

Reading time3 min
Views46K
На текущий момент с помощью инструментов веб-аналитики можно отследить множество различных параметров, в том числе и ключевые слова, по которым пользователи перешли на сайт из поисковых систем. Но нам предоставляется информация только о том поисковом запросе, с которого пользователь перешел на сайт, но не его место в выдаче поисковой системы, на которое кликнул посетитель.

К сожалению, большинство поисковых систем не предоставляют возможности отследить, с какой позиции поисковой выдачи был осуществлен переход на сайт. Однако такую возможность предоставляет поисковая система Google. Единственное условие — возможность определить позиции можно только у тех пользователей, которые были авторизованны в Google.

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

Реализация эффекта Philips Ambilight в превью изображений

Reading time16 min
Views4K
Вчера в топике «Модификация изображений для сайта, или какие бывают превьюшки» в комментариях diGreez предложил, как мне показалось, очень интересный способ организации превьюшек изображений. Реализовал на PHP функцию, которая занимается созданием таких превьюшек.
Функция документирована комментариями.
Читать дальше →

Майнд-мэппинг (проектирование) интранета

Reading time2 min
Views1.6K
Интранет — система управления компанией и её проектами для внутреннего пользования под ключ.

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

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

Привязка модели данных к представлению на javascript

Reading time7 min
Views3.1K
Я думаю многие пользуются DataBinding`ом в .NET, она же привязка данных. Она позволяет, при выделенной модели данных и независимом визуальном представлении, забыть о синхронизации данных с формой. Привязав один раз properties модели к элементам представления, мы избавляемся от десятков обработчиков onChange и подобных для изменения полей модели, а в случае изменения поля вне gui-интерфейса (например синхронизация модели с базой), мы не будем мешать уровни абстрации, чтобы обновить textBox.text. Давайте данные будут отдельно, gui отдельно. Плюс мы получаем наглядный, легко переносимый код на asp.net или даже на другой язык/платформу.

 databinding

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

Установка драйверов за 5 минут

Reading time2 min
Views10K

Дорогие коллеги!


Рад представить вам новую версию программы DriverPack Solution 10. Это универсальный менеджер установки драйверов для всех версий Windows, который можно совершенно бесплатно скачать с официального сайта: http://drp.su/

В отличие от встроенной в Windows Update функции обновления драйверов этой программой можно пользоваться без наличия Интернета и для установки драйверов не только на устройства популярных вендеров (как в случае с Windows Update).

image

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

4 ответа, которые принесут вам деньги

Reading time1 min
Views757
Эпиграф:
«Инвестор – умный человек, у которого есть деньги. Дураков-инвесторов не бывает. Это аксиома» А.Морейнис

Сегодня на Startup Weekend Аркадий Морейнис рассказывал, как правильно готовиться к презентации своего проекта инвестору. Его советы были настолько конкретны и просты, что грех было их не законспектировать и передать эти полезные знания всем. Пожалуй, выступление Морейниса было самым полезным и интересным за сегодня (пруфлинк)

image

Итак, Аркадий Морейнис призывает на встрече с инвестором ответить всего лишь на 4 ключевых вопроса.

1. Что? В чем суть вашего продукта? Что будет делать ваш продукт? Какие у него есть уникальные свойства?

2. Почему? Почему ваш проект должен сыграть на рынке? Это может быть уникальный маркетинг, уникальный способ привлечения аудитории и др. И главное – почему другие конкуренты не смогут это повторить.

3. Зачем? Какова будет стратегия вашего выхода из проекта, причем об этом надо думать с самого начала, инвестору необходимо знать ваши намерения.

4. Сколько? Что у вас есть сейчас? На что пойдут инвестиции? Сколько планируете заработать?

Как откровенно сказал Аркадий Морейнис: «Главная причина провала стартапа перед инвестором – то, что люди приходят с полной туфтой». Да, правда такова. Поэтому для начала четко ответьте для себя на эти четыре вопроса, а если у вас это получилось – то смело обращайтесь к Аркадию Морейнису инвестору.

Гениальный копирайтер Боря или 10 заповедей работы с удалённым сотрудником

Reading time7 min
Views32K
Здравствуйте, многоуважаемые хабрачеловеки!

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



(Флеш-приложение 1. Интровертный мир одного из наших сотрудников. Можно кликнуть и поиграть, а потом продолжить чтение. Можно и наоборот — сначала прочитать, а потом поиграть.)

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

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

Подобно Гуглу или Дримуорксу наша контора — паутина, в центре которой, в московском офисе, сидит инфернальное руководство, а злодейские паучата – по краям, в Питере или Краснодаре. Суть такого хитрого аутстаффинга не в том, что провинциалам можно меньше платить. Суть в том, что это позволяет отобрать наиболее ценные, наиболее талантливые кадры.

Организация работы на удалённом доступе – редкостный геморрой. Для того чтобы хоть как-то минимизировать эту популярную болячку, наши менеджеры проектов приняли на вооружение 10 заповедей работы с удалённым сотрудником. Возможно, вам они покажутся интересными.

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

Скринкаст об основах ExtJS — DataStore и GridPanel

Reading time1 min
Views1.4K
ExtJs
Автор книги ExtJs in Action Jesus Garcia представлят очень подробный 49-минутный скринкаст с большим количеством наглядных схем, записанный за 20 часов материала, которые он представит позже
Читать дальше →

Использование URI-Fragment адресации в RIA приложениях на основе ExtJS и Mootools

Reading time7 min
Views1.8K
URI-fragments (они же fragment identifiers, hash, закладки, якоря) в последнее время стали активно использоваться в интерактивных веб-приложениях как удобное средство для указания прямых ссылок на различные элементы интерфейса и состояния приложения. Наиболее ярким примером использования fragment-адресации является GMail. Как Вы могли заметить, папки Входящие, Отправленные, Черновики имеют ссылки, оканчиващиеся на #inbox, #sent, #drafts. Переход между ними не приводит к перезагрузке всей страницы (обновляется только список писем), но в то же время при открытии каждой из них в отдельном окне/вкладке мы сразу же попадаем на искомую страницу.

Реализации такого удобного механизма навигации средствами JavaScript посвящена данная статья
Читать дальше →

Архитектура ExtJS приложений: подход со стороны Zend Framework

Reading time8 min
Views3.7K
В дополнение статей oddy про архитектуру RIA-приложений на основе ExtJS хочу предложить свой, альтернативный подход к данной проблеме. Он состоит в использовании ZendFramework-подобного каркаса xFrame, написанного на JavaScript. Под катом — описание ключевых элементов системы, ссылки на демо приложение и исходный код.
Читать дальше →

Одноврéменно || Одновремéнно

Reading time2 min
Views933
image

Введение


ZendX_Console_Process_Unix позволяет разработчикам создавать объекты под видом процессов, и таким образом параллельно выполнять несколько задач. Из-за особенностей реализации на текущий момент эта возможность доступна только на *nix системах, таких как Linux, Solaris, Mac / OSX и другие в CLI или CGI режиме. Кроме того для работы этого компонента необходимы следующие модули: Shared Memory, Process Control и POSIX. Если одно из требований не выполняется, то будет брошено исключение.

Основы использования ZendX_Console_Process_Unix


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

Метод _run(), а так же каждый метод вызванный внутри него будет выполняться в отдельном процессе. Любой другой метод, вызванный в вашем приложении будет выполняться в родительском процессе.

Методы setVariable () и getVariable () могут быть использованы для передачи переменных между родительским и дочерними процессами. Для наблюдения за статусом дочернего процесса следует вызывать внутри него метод _setAlive () через короткие промежутки времени, таким образом родительский процесс сможет получить информацию о состоянии дочернего процесса посредством вызова метода getLastAlive (). Чтобы получить PID дочернего процесса, родитель может вызвать getPid().
Читать дальше →

Поднимаем софтверный бизнес

Reading time8 min
Views1.9K
WEBO SoftwareЭто вторая статья о становлении софтверного (интернет-) бизнеса в России (первая тут). В ней я собираюсь раскрыть некоторые ключевые моменты адаптации продукта под рынок (под требования пользователей), о преодолении тенологической пропасти, и чуть-чуть о реалиях российского бизнеса.

Данный топик хочу приурочить к тому, что год назад (может, чуть раньше или чуть позже) появился продукт WEBO Site SpeedUp (ранее Web Optimizer). Мысли немного сумбурны, но, видимо, для каждого направления все сильно специфично, поэтому ценными будут только общие идеи, направления и подходы к решению проблем (в чем я искренне надеюсь :). Здесь и далее речь идет о создании коробочного решения (а не софтверном аутсорсе).
Читать дальше →

Многопроцессовые демоны на PHP

Reading time3 min
Views44K
Зачем может понадобиться писать демоны на PHP?
  • Выполнение трудоемких фоновых задач;
  • выполнение задач, которые длятся больше, чем время ожидания при HTTP-запросе (30 секунд);
  • выполнение задач на более высоком уровне доступа, чем серверный процесс (читай — под рутом).

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

Ещё пара слов о разработке сайтов по договору

Reading time4 min
Views21K

Что такое хорошо


Договор — это хорошо. Хороший договор — ещё лучше. Я искренне рад, что есть люди, согласные с этим. (Именно люди: ибо не один, не два, не три и даже (остросюжетный триллер) не четыре человека.)

Но все мы при этом понимаем: чтобы договор мог быть назван хорошим, недостаточно мнения вашего знакомого или штатного юриста. Хороший договор значит тот, с которым не возникает проблем. Прежде всего, в суде. Но судьи ведь тоже люди. Им легче работать по инструкции. Правда, чтобы она появилась, нужна обобщённая судебная практика, со всеми её плюсами и минусами. А сейчас судебные дела, связанные с разработкой сайта — единичные случаи.

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

Отсюда вывод № 1: сейчас нельзя назвать ни один из имеющихся (в том числе, здесь, на хабре) договоров хорошим. Но это ещё не всё.

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

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity