Search
Write a publication
Pull to refresh
38
0
Георгий Оганисян @Grox

Full Stack Web Developer

Send message

Еще несколько полезных плагинов

Reading time2 min
Views1.8K
За последний месяц, я написал уже два поста с обзорами плагинов jQuery (1 и 2). Надо сказать, что подобные статьи на английском языке появляются все чаще и чаще. Однако их содержание довольно быстро приедается. Галереи картинок, слайдеры, опять галереи картинок, многочисленные динамические меню и опять слайдеры. Мне не хочется описывать очередную порцию подобных плагинов. Поэтому сегодня я расскажу не о двадцати-тридцати как обычно, а только о семи важных на мой взгляд плагинах, о которых очень хотелось рассказать. Лучше меньше, да лучше.
Читать дальше →

Психоэргономика

Reading time2 min
Views1.2K
:-)

В войне с лишними кликами и тормозящими приложениями мы часто забываем о восприятии глазами конечного пользователя. Поясню, что это значит на простом примере: MacOS скрывала консоль с протоколом загрузки, а Windows — нет. В результате MacOS казалась проще людям, далеким от IT.

Опыт работы с восприятием конечного потребителя накоплен в разных областях – от производства роботов до памперсов. Я подобрал несколько показательных примеров.

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

Использование git во Flash разработке

Reading time10 min
Views5.9K
Я давно уже начал писать эту статью, но меня опередили (8.
Основная задумка была объяснить братьям флэшерам как работать с git. В статье я попытался описать свой личный опыт, а не просто перечислить очевидные плюсы git. Поэтому она будет полезна всем.

В первую очередь буду рад дополнениям и исправлениям. И конечно же вопросам.

Что такое git


git — это распределенная система контроля версий. Отличается от SVN отсутствием необходимости в центральном репозитории (который все же хорошо было бы держать) и легкостью работы с ветками (branch). Изначально я решил попробовать его в работе прочитав эту статью, что всем рекомендую.

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

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

Онлайн игра: howto, или как я проспорил девушке программисту

Reading time7 min
Views5.1K
Не мало было историй о том, как небольшие группы разработчиков добивались успеха. И ещё больше о том, как эти разработки проваливались. Но здесь я хочу рассказать именно об эволюции процесса разработки онлайн игры, опираясь на свой опыт. Оговорюсь заранее: это первый мой опыт разработки массовой онлайн игры.
Всё началось весьма интригующе. Я имел неаккуратность поспорить со знакомой web-программисткой о том, кто быстрее и качественнее из нас сделает web-проект. Чтобы не сильно распыляться и не тратить много времени, решили, что нам будет дана всего одна неделя, а разрабатывать мы будем многопользовательскую игру!

По истечению этого срока проекты были сданы «оценочной комиссии», которой являлись наши общие друзья. И… Мой проект не выиграл. А самым обидным на тот момент казалось то, что, по условиям спора, я должен был выделить ещё одну неделю рабочего времени, чтобы помочь своей оппонентке в развитии её игры. Но спор есть спор!
Читать дальше →

Вышла Rework в русском переводе

Reading time2 min
Views12K
На этой неделе книга уже появилась на полках многих интернет-магазинов.
Не так давно обсуждалась на Хабре публикация английского оригинала и вот наконец-то можно оценить и переведенную версию. Я пока просмотрел лишь доступные в сети отрывки, но судя по другим публикациям издательства, они делают свое дело на хорошем уровне.
image

Поехал за книгой в магазин. А пока некоторые отрывки из книги и комментарии:
Читать дальше →

Что и как покупать на Taobao

Reading time5 min
Views189K

В нашей прошлой статье мы показали семь смешных товаров c китайского интернет-аукциона TaoBao, лишь вскользь упомянув о том, что же это такое. Пришло время подробнее рассказать о TaoBao, сравнить его с Ebay и поведать как можно удобно и недорого покупать на этом товарном торжестве победившего социализма
Читать дальше →

Функции наносят ответный удар

Reading time5 min
Views2.3K
В этом топике хочу рассказать о подходе, который эксплуатирую уже несколько лет.
Сразу предупрежу, если Вы истовый фанат ООП, огромных конструкций и монструозных диаграмм классов, не читайте.

Вкратце, суть концепции — это перенос части unix way в программирование на PHP.
А конкретно, концепции простых программ, выполняющих одну функцию.
Читать дальше →

Файлы на день

Reading time1 min
Views831
Хочу представить Вашему вниманию файловый хостинг для передачи файлов One Day Files. Почему передачи? Потому что для хранения файлов он не предназначен. Файлы хранятся только один день, но доступны на скачивание без ввода капчи или ожидания. Все что Вам нужно сделать это выбрать файл и скопировать ссылки.

Чем мы лучше?
  1. У нас нет рекламы
  2. Пользователь скачивающий файл не смотрит рекламу и ничего не вводит
  3. Возможность загрузить несколько файлов по очереди, каждый из которых может быть до 100Мб
  4. Поддержка QR кодов, теперь скачивание файлов с мобильных устройств стало гораздо проще
  5. Drag'n'Drop, просто перетащите файлы в зону загрузки
Надеюсь найдутся люди, которым данный сервис покажется удобным, спасибо за внимание.

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

jQuery без рамок

Reading time4 min
Views3.6K
Фреймворк — набор инструментов, но не традиций или конвенций программирования, а цель любого приложения — это скорость выполнения и правильность результатов. В опубликованной статье показано эффективное использование запросов к DOM, но не только от этого приложение на jQuery будет работать быстрее.

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

Как не надо писать деловые письма: дайте два

Reading time2 min
Views10K
Год назад я уже публиковал бестселлер "Как не надо публиковать деловые письма". И вот, очевидно, пришла пора для сиквела: сегодня в моей хабрапочте случился ремейк шоу под названием «Предложение, от которого нельзя отказаться-2».

За прошедшее время подросла новая поросль эффективных менеджеров, предприимчивых стартаперов и прочих халявщиков всех мастей — они освоили новые приёмы, хитрые ходы и совсем растеряли чувство меры.

Эталон деловой переписки - под катом

Не строим с нуля. Теперь у Вас есть шаблон для верстки HTML5

Reading time2 min
Views17K
Любовь к HTML5 продолжает вдохновлять Поля Айриша. Во-первых, он подарил нам Modernizr, а сейчас он объединился с Divya Manian для создания шаблона HTML5, который использует передовые техники, чтобы Вы могли начать использовать его в своей практике.

Он, в сущности, является хорошей отправной точкой, состоящей из HTML и CSS, предлагающим также и структуру папок, которая работает. Но созданным с учётом многих лет передового опыта профессионалов в разработке клиентской части. Загляните в исходные тексты, чтобы почувствовать, что находится внутри. А если вы думаете, что этого слишком много, просто удалите лишнее.
Читать дальше →

Специализированный софт: Купить или написать?

Reading time4 min
Views1.3K
Приветствую хабровчан!
Думаю, многие сталкивались с проблемой выбора программного обеспечения для каких-либо специфических задач. В отличие от засилья всевозможных редакторов или клиентов для соц.сетей (Facebook, ВКонтакте и тп), подобрать узкоспециализированную программу крайне тяжело. Такой софт – продукт нишевый, соответственно производители такого софта малочисленны и интерес у сообщества к таким программам не велик (в сети нет ни руководств, ни обзоров, ни другой полезной информации) – приходится двигаться на ощупь.
Вот тут и наступают муки выбора – взять готового «кота в мешке» или же взвалить на себя бремя разработки софта «для себя любимого».
Мне не повезло пройти оба пути…
Читать дальше →

Библиотека dklab_rowlog для версионирования строк в таблицах PostgreSQL

Reading time4 min
Views3K
В продолжение сегодняшнего топика Версионность и история данных — поделюсь простеньким инструментом, который мы используем.

Dklab_rowlog — это библиотека из нескольких хранимых процедур PostgreSQL, позволяющая добавить версионирование записей к любой таблице в БД. Иными словами, что бы ни происходило с таблицей, как бы данные там ни менялись (добавлялись/удалялись), это будет отражено в специальной табличке-логе.

Преимущества:
  • Версионирование добавляется к любой таблице за 1 минуту с использованием 1 SQL-команды.
  • Можно указать, какие колонки надо сохранять, а какие — нет (что экономит место). При этом запись в лог добавится только в случае, если хотя бы одна из указанных колонок изменилась.
  • Можно указать колонку, которая будет трактоваться как «ID автора изменения».
  • Можно задать колонки, которые будут логироваться в любом случае, независимо от того, менялись они или нет.

Примеры использования


Предположим, нам нужно логировать изменения вот в такой табличке:
Читать дальше →

Новые профессии интернет проектов

Reading time4 min
Views15K
Креативный интернет-маркетолог, амбициозный бренд-менеджер, незаурядный специалист по продвижению, организатор креативных рекламных компаний, управляющий социальными медиа, целеустремленный стартап-директор, современный консультант по развитию интернет бизнеса…

И ни в одном резюме нет слова профессиональный



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

И если бы это был один человек, то это можно было бы назвать случайностью, но это очень грустная тенденция, когда куча ничего не умеющих людей называют себя профессионалами и желают получать зарплату в 4K просто за красивые разговоры.

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

Динамические поддомены с использованием nginx+apache

Reading time3 min
Views29K
Этот топик — очередной топик про реализацию динамических поддоменов на сайте, коих много в интернете и даже есть пара топиков на хабре.

Проблема в том, что этот вопрос везде освещается только с точки зрения перенаправления с поддомена в папку и вся динамичность поддомена заключается в том, что ты создал папку — поддомен у тебя заработал.

Иногда же требуется решение другой проблемы — например вынос на поддомен профиля пользователя и всего функционала, который с ним связан.

Например, у нас есть готовый сайт, на котором работают профили по такому url: www.example.com/users/username, и есть всякие дополнительные возможности (например www.example.com/users/username/contact и другие страницы, связанные с этим юзером).

И мы теперь хотим вынести все, что связано с юзером, на поддомен, например username.example.com, username.example.com/contact и т.д.)

Решения, которые были найдены в интернете, меня не удовлетворили по 2 причинам:
  • Не нашел решения как заставить ее работать, сохранив работоспособность домена www.example.com
  • Все найденные решения подходят только для перенаправления в папку и не работают если дальше должны работать какие то правила


На нашем сайте стоит nginx над апачем (как и на многих других), поэтому пришлось изобретать велосипед самому, используя эту связку (nginx+ apache, благо сейчас почти на всех крупных сайтах стоит проксирующий nginx над апачем)

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

Требования к html-верстке

Reading time6 min
Views76K

1. Верстка, аутсорсинг и технические задания


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

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

Бизнес в стиле «Купи-продай», или о войнах с таможней

Reading time5 min
Views2.2K
Поскольку я не умею создавать хорошие сайты, рисовать дизайны, кодить и продвигать сайты в Интернет, и я достаточно ленива для того, чтобы целыми днями делать авторские украшения и расставаться с ними за копейки, направление собственного бизнеса для меня было предопределено: купи-продай!

Почти ни один из интересующих меня видов товаров не производится в России, поэтому я вооружилась гуглом и стала искать поставщиков за границей. «К черту все! Берись и делай!» – и прошлой осенью я заказала товар из Китая, Индии и Непала на 1243, 510 и 311 долларов США соответственно, совершенно не представляя, что меня ждет, когда эти заказы приедут и, как и положено, будут задержаны таможней.

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

«Hello world!» с помощью генетических алгоритмов

Reading time5 min
Views26K
В наше время все большую популярность набирают генетические алгоритмы. Их используют для решения самых разнообразных задач. Где-то они работают эффективнее других, где-то программист просто решил выпендриться…

Так что же такое генетический алгоритм? Если верить википедии, то генетический алгоритм — это эвристический алгоритм поиска, используемый для решения задач оптимизации и моделирования путём случайного подбора, комбинирования и вариации искомых параметров с использованием механизмов, напоминающих биологическую эволюцию. Является разновидностью эволюционных вычислений. Отличительной особенностью генетического алгоритма является акцент на использование оператора «скрещивания», который производит операцию рекомбинации решений-кандидатов, роль которой аналогична роли скрещивания в живой природе.

Т.е. генетический алгоритм работает наподобие нашей с вами эволюции. Сначала создаются начальные популяции, затем они скрещиваются между собой (при этом возможно возникновение мутаций). Популяции выжившие в процессе естественного отбора проверяются на удовлетворение заданным критериям. Если удовлетворяют — все счастливы, если нет — вновь скрещиваются и так до финальной победы.

Как это все выглядит вы можете увидеть на следующем рисунке:



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

Настройка роутинга для домашнего multihomed сервера

Reading time12 min
Views32K
Сейчас наличие нескольких подключений к интернет на одном, в том числе и домашнем сервере — не редкость. Городские локалки, ADSL, 3G модемы… Добавим к этому сети домашние локальные и внешние виртуальные (VPN), и получим ядрёную смесь интерфейсов, между которыми необходимо роутить трафик, балансировать трафик между разными каналами в интернет (когда они есть), и переключаться с нерабочих каналов на рабочие (когда они отваливаются).

Судя по постам в инете, большинство людей, столкнувшихся с этой ситуацией, очень плохо представляет себе, как это настраивается. Надо отметить, что в линухе действительно управление роутингом весьма сложное и запутанное — следствие эволюционного развития и поддержки (частичной) совместимости. Я хочу описать принципы настройки роутинга multihomed серверов на конкретном, достаточно сложном, примере: на сервере три физических сетевых интерфейса (один в домашнюю локалку и два к ADSL-модемам), два ADSL-подключения (ADSL-модемы в режиме bridge, так что pppd поднимает этот же сервер) к разным провайдерам (одно со статическим IP, второе с динамическим), плюс VPN на сервер компании — итого шесть интерфейсов.

Тема достаточно сложная, поэтому для понимания материала потребуется хотя бы минимальное понимание работы роутинга (что такое default route и gateway), файрвола (маркировка пакетов, отслеживание соединений, связь между разными таблицами и цепочками файрвола и роутингом), pppd (скрипты ip-up/ip-down) и протоколов IP и TCP.
Читать дальше →

Амперка — магазин Arduino

Reading time1 min
Views8.3K
image
Многие на Хабре знают, что такое Arduino. Собственно, ему посвящён отдельный блог. Некоторые даже успели возненавидеть его за то, что для любой примитивной штуковины мигающей лампочками вместо пары транзисторов за пять копеек, народ за основу берёт эту платформу.

Не буду рассуждать на эту тему. Скажу лишь, что некоторое время назад меня так же заинтересовала эта игрушка. Однако когда я решил приобрести себе такую, стало понятно, что это не тривиально. Лучшее, что предлагалось в российских магазинах на тот момент — реплика оригинального Ардуино, с 100% предоплатой, с доставкой Почтой России. Да и ассортимент аксессуаров сильно отставал от европейских. Поэтому в итоге я сделал заказ в немецком магазине с доставкой через UPS. Переплата за доставку была ощутимой.

Я поэкспериментировал с платформой, понял, что это на самом деле — крутотень. Показал друзьям — они одобрили. Вспомнил про интерес, любовь и ненависть на Хабре и подумал: «А почему бы не попробовать продавать их в России? Ну или в Москве для начала».
Читать дальше →

Information

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