?

Log in

No account? Create an account

rauf


Блог Алиева Рауфа

О жизни и о себе


Entries by category: it

На март месяц в теме SAP hybris…
rauf
На март месяц в теме SAP hybris уже пятеро моих бывших коллег по «прошлой жизни» — исключительные профессионалы и мастера своего дела. Окромя тех многих, кого я ранее еще не знал. Если так и дальше пойдет, рынок екоммерса в части технологий в России заметно изменится. Ну и да, лишнее подтверждение тому, что в августе 2013 я сделал правильный выбор в сторону SAP hybris и Java-разработки.



В Мюнхене, на SAP hybris global partner…
rauf
В Мюнхене, на SAP hybris global partner summit второй день открывал Питер Шелдон из Forrester (http://www.forrester.com/Peter-Sheldon). Показывал интересные цифры по e-commerce. Публикую сюда мои заметки, вдруг кому будет интересно.



1. США 2013: онлайн-продажи 261 bln$, web-influenced - $1290bln, offline sales - $1574bln. Другими словами, доля оффлайн-ритейла в 16 раз больше, но половина оффлайна по их расчетам web-influenced.



2. «Насколько важны эти фичи в онлайн-шоппинге» (в скобках - ответы very likely). Сроки доставки (51%), сток оффлайн-магазина (42%), карта магазинов (34%), доставка на оффлайн-точку (25%), рекомендации (25%), онлайн-резерв в магазине, онлайн-покупка (25%), только онлайн-резерв, покупка в магазине (23%), самовывоз из удобного места типа pickuppoint 20%. // Опрос ноябрь 2013



3. «В обычном магазине что ждете от консультанта, вооруженного планшетом?» Информация по продукту (50%), остаток на складе (44%), проверка склада магазина (43%), общая информация типа возвратов или гарантии (40%), резерв товара, чтобы его забрать не в этом магазине, а поближе к дому (33%), чтобы тут же выбил чек (24%), рекомендации из соцсетей и отзывы по товарам (15%), последние покупки и рекомендации (8%) // Опрос ноябрь 2013



4. «Что на ваш взгляд главные аргументы апгрейда на омниканальные (мультиканальные) продажи?» Покупатели хотят (62%), конкуренты уже делают (55%), для получения преимуществ перед чисто онлайн-продажами (36%), хотим увидеть рост удовлетворенности покупателей (36%), омниканальный покупатель остается с нами дольше (35%), оптимизация процессов (26%), многоканальность не очень нам нужна (3%), другое (1%).// Опрос ноябрь 2013



5. «Проранжируйте по стратегической важности программы»: Купил онлайн – заберу в магазине (56%), купил в магазине – привезли откуда-то домой (49%), чтобы склад магазина был онлайн и без задержек (46%), купил онлайн – привезли из магазина домой (44%), доставка на следующий день (44%), возможность выбирать удобное время для доставки (34%), купил в магазине, но забрал в другом магазине (34%), резерв онлайн, забрал и оплатил в магазине (32%), купил онлайн – привезли в магазин (30%), доставка в тот же день (23%), общая история заказов оффлайн-онлайн (23%), кросс-канальные системы лояльности (23%), кросс-канальные возвраты или обмены – купил онлайн, вернул в магазин (17%) // Опрос 256 ритейлеров по миру, ноябрь 2013



6. Что из технологий вы уже используете или планируете использовать для поддержки омниканальности/мультиканальности? 1) Промышленные платформы E-commerce – Уже (43%), строим 15%, через 6мес 8%, через 12мес. 23% 2) POS-терминалы Уже (41%), строим (20%) 3) система управления заказами Уже (41%), строим (21%), 4) Бизнес-аналитика Уже (38%), строим 20%, 5) CRM Уже 35%, скоро – 18% … остальное не так интересно. Опрос 256 ритейлеров по миру, ноябрь 2013.



7. Планы на развитие североамериканских и английских ритейлеров (159 штук) – eCommerce (уже 66%;планируют 26%), Фасеточный поиск и search-based навигация (Уже 60%;план 26%), персонализация (Уже 50%;план 41%), Управление каталогом PIM (Уже 47%;план 36%), управление цифровыми активами DAM (Уже 42%;план 40%), соцсети (Уже 38%;план 38%)



8. Прогноз 2013 - рынок B2B $559 bln , $252 bln. (2012 “Key Trends In B2B eCommerce For 2013” forrester)



9. «После включения e-commerce платформы в область B2B, как изменился средний чек» (AOV) – 44% увеличился, 24% остался тем же, 11% уменьшился.



10. «После перехода на e-commerce-платформу B2B как изменились ваши затраты на поддержку?» – 52% уменьшились, 30% остались теми же, 9% увеличились



11. «У нас есть бизнес-партнеры, которым критически важен онлайн-канал» Да, так и есть – 56%, нет, не думаем 24%



12. «Партнеры/покупатели хотят, чтобы вы им дали B2B портал, потому что» Хотят спокойно поисследовать каталог/акции онлайн 62%, чтобы можно было по телефону также заказывать 51%, чтобы была поддержка онлайн 58%.



13. Большинство B2B-компаний консервативны в области e-commerce, причем чем они более молодые, тем больше онлайна. Пятилетних компаний вдвое меньше двухлетних, а десятилетних нет вообще.



Это только часть презентации, которая, как мне показалась, может быть вам интересна.



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



Нашел неприятный баг в iMovie…
rauf
Нашел неприятный баг в iMovie (MacOS X). Там есть два вида экспорта видеофайла - простой и через Quicktime. Простой делает компактные файлы с плохим качеством, вариант через QT работает обычно хорошо. Но вот в моем проекте сейчас у него есть ньанс. У меня в проекте две звуковые дорожки. Одна идет вместе с импортнутым с камеры видео, а вторая записывается отдельно. Для монтажа иначе никак. Так вот, по варианту с "экспортом через QT" вместе с наложенной дополнительной второй звуковой дорожкой экспортируется удаленная первая основная (то есть, та, что с исходными видеофрагментами была снята). Ее в проекте как бы нет - я ее предварительно отделил (команда в меню так называется) и удалил, как мне казалось, напрочь. До удаления пробовал выставлять в ноль ее громкость, а после - пробовал у дополнительной выставлять "глушить соседние дорожки на 100%". Итог один - вариант с QT плох по звуку, вариант без QT плох по картинке. Выбрал второй, конечно. Утром публикну.



Сделал VBA-скрипт для…
rauf
http://www.rondebruin.nl/mac/mac013.htm
Сделал VBA-скрипт для экселя, который объединяет Excel-файлы из указанной папки в одну сводную книгу с закладками, по одной на файл. Каждый раз, когда я касаюсь Visual Basic, меня пугает логика разработчиков.



Вот смотрите. В VBA есть функция DIR, которая выдает все файлы из директории по маске. DIR ("c:\*.*") выдаст все из текущей директории. Просто и понятно. Но это не работает на маке, где, казалось бы, тот же вижуал бейсик. Там просто жесть. Во-первых, там же нет никакого "C:\", а есть /Users/Documents. Казалось бы, ну замени одно другим — и ура. Нет, они выпендрились. Они требуют указания пути вот в таком виде: "Macintosh HD:Users:raufaliev:Documents:" — вот именно так, с двоеточиями и обязательным в конце. Но это еще не все. Там нет wildcards. То есть, получить все эксельники не так просто. Есть функция MacID, которая передается вторым параметром в DIR. У этой MacID есть параметр ID, который может принимать значения TEXT, OBIN, XLS5, XLS8 и так далее. Так прям и написано "and so on" — если я хочу только вордовские файлы, то я должен догадаться, что в скобках нужно написать W8BN. Ну и даже со всем этим работает через пень-колоду.



Один хороший человек разобрался и выложил в сеть свои готовые функции. Я их периодически дорабатываю под автоматизацию своей работы — все-таки эксель частый гость на моем мониторе. Пользуйтесь, особенно те, у кого маки и программисткое прошлое. Один раз разобраться на выходных экономит тучу времени на работе:-)



http://www.rondebruin.nl/mac/mac013.htm

http://www.rondebruin.nl/mac/

Love++, Сайт знакомств для программистов. Там…
rauf
http://loveplusplus.ru/
Love++, Сайт знакомств для программистов. Там хардкор-регистрация через консоль) На хабре длинная простыня комментов http://habrahabr.ru/post/169405/ Фото девушек-программистов надо было делать в ASCII — типа так: http://www.asciipr0n.com/pr0n/pinups.html ;-)

Роман Андреев (СПбГУ) занял…
rauf
http://www.facebook.com/photo.php?fbid=36732110996…
Роман Андреев (СПбГУ) занял первое место на олимпиаде по программированию Facebook Hacker Cup.

Язвы и грабли CSV
rauf

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

История этого формата насчитывает не менее 30 лет. Но даже сейчас, в эпоху повального использования XML, для выгрузки и загрузки больших объемов данных по-прежнему используют CSV. И, несмотря на то, что сам формат довольно неплохо описан в RFC, каждый его понимает по-своему.

В этой статье я попробую обобщить существующие знания об этом формате, указать на типичные ошибки, а также проиллюстрировать описанные проблемы на примере кривой реализации импорта-экспорта в Microsoft Office 2007. Также покажу, как обходить эти проблемы (в т.ч. автоматическое преобразование типов Excel-ом в DATETIME и NUMBER) при открытии .csv.

Тем, у кого есть habrahabr-аккаунт, продолжение читать здесь Остальным сюда :-)Collapse )

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

В разное время, имея разные задачи и разные ограничения в управлении разработкой, я испробовал всё: от Microsoft Project и онлайн-сервисов до «самописных» решений. У каждого варианта есть свои недостатки и преимущества, и каждый из них заслуживает отдельной статьи. Сегодня речь пойдет о наиболее простом варианте — управление релизной разработкой в Excel-е.

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

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

Как я уже говорил выше, я испробовал разные способы упорядочивания работы с такими проектами. Microsoft Project, например, не обладает достаточной степенью гибкости в управлении изменениями в плане, он предназначен для управления связанными в проект задачами, в которых их очередность объясняется их сущностью, а не порядком поступления или срочностью. Менять задачи в плане Project местами довольно неудобно, особенно, если это нужно делать часто. Да и вообще, для описанной задачи там всё неудобно.

Использовать сервисы web-based, как онлайновые, так и инсталлируемые на офисный сервер — лучше, потому что среди них выбор больше. Например, на прошлом месте работы я внедрил JIRA и мы ее очень активно использовали. Но минусов у нее хватает… Решения, которое нужно было мне, я среди них не нашел. Если кто-то может его подсказать, буду рад.

Возвращаясь к теме планирования задач с использованием Microsoft Excel.

Вот так выглядит план:




скачать шаблон

плана релизной

разработки в Excel


Итак, строки плана — задачи. Столбцы имеют следующую структуру:



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

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

Прошедшие недели «сворачиваем» минусиками сверху. Новые недели добавляем копированием предыдущей недели на следующий период. При копировании можно автоматически пересчитывать даты и номер недели.

Как только задача полностью выполнена, в блоке сделано ставим «Да». Настраиваем фильтр так, чтобы он НЕ показывал сделанные задачи (снимаем галочку с «да» в первом столбце).

Очень удобно, что при всем при этом работает фильтрация (Filter в «экселе») по строке 5, с заголовками. Это позволяет отвечать на вопросы:

  • Все задачи одного «заказчика» (фильтр по ЗАКАЗЧИК)

  • Все задачи на указанную неделю (фильтр по TOTAL части «План» недели)

  • Все сделанные задачи (фильтр по «сделано») и все задачи, которые еще предстоит сделать (фильтр по «сделано»)

  • И многое другое…


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

Теперь я опишу решение, которое для меня было бы идеальным. Я не нашел нигде реализации похожей концепции и буду рад, если кто-то может ее подсказать:

Строки — исполнители (люди, группы или целые отделы) , столбцы — время. Приходит новая задача — падает в «неразобранное». Я ее оттуда перетаскиваю на нужную строку, она либо раздвигает стоящие там уже задачи, либо перетаскиваю в хвост этих задач у конкретного исполнителя, и она цепляется в «водопад» после последней. Перетаскиванием я могу произвольно менять порядок очередных задач для исполнителя, но задачи для него всегда выстраиваются в «водопад». Либо могу переносить задачу с одного исполнителя на другого, тогда перестраивается «водопад» у обоих. После нажатия на кнопку "Применить " мне демонстрируется перечень изменений (заказчик — задача — старая дата — новая дата) и по нажатию на кнопку «Разослать» происходит уведомление заказчиков и исполнителей об изменениях. Текущая задача может быть в любой момент прервана, ее остаток может быть пересмотрен по времени и поставлен куда-нибудь в будущее или перенесен в блок «неразобранное» или вообще удален. Что происходит в этом случае? Все следующие задачи сдвигаются.

Вот иллюстрация:












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

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

Раскладка включает в себя все дополнительные символы раскладки Ильи Бирмана. Раскладкой Ильи я пользуюсь давно и без нее даже уже неудобно даже. Самое ценное в ней для повседневного применения — это длинные тире (—, вводятся правый Alt + дефис) и кавычки («», вводятся правый Alt плюс клавиши "<" ">"). Там довольно много всякого дополнительного добра, но о вводе диакритических знаков Илья не позаботился. Разве что только для ввода русских ударений. Этого не хватает для ввода французских текстов, конечно.

Итак, что у меня появилось:

Ctrl-' (контрол-кавычка) плюс:
  • «e» дает «é», «Е» дает «É»
  • «c» дает «ç», «C» дает «Ç»

    Ctrl-` (контрол-ё) плюс:
  • «a» дает «à», «A» дает «À»
  • «e» дает «è», «E» дает «È»
  • «i» дает «ì», «I» дает «Ì»
  • «o» дает «ò», «O» дает «Ò»
  • «u» дает «ù», «U» дает «Ù»

    Ctrl-^ (контрол-шифт-6) плюс:
  • «a» дает «â», «A» дает «Â»
  • «e» дает «ê», «E» дает «Ê»
  • «i» дает «î», «I» дает «Î»
  • «o» дает «ô», «O» дает «Ô»
  • «u» дает «û», «U» дает «Û»

    Таким образом можно вводить тексты с диакритическими знаками довольно шустро. Например,

    Je demande pardon aux enfants d'avoir dédié ce livre à une grande personne. J'ai une excuse sérieuse... même les livres pour enfants...sans la mârcher.. Il était comme ça..

    Скачать дистрибутив можно здесь: http://raliev.ru/download/en-fr/en-fr.zip

    Все просто, запускаете, и появляется раскладка. За деталями, если какие проблемы, можно посмотреть сайт Ильи Бирмана, там все необходимое есть.


  • Про сегодняшние проблемы с Chronopay
    rauf
    Мне сегодня не переставая сыпятся звонки от знакомых и друзей на эту тему. Напишу тут, чтобы развеять все вопросы. Я в Chronopay — руководитель по разработкам. Упрощенно говоря, руковожу разработкой процессингового софта и системами внутренней автоматизации. Мы делаем софт, который после передаем в эксплуатацию. В эксплуатации сегодня «пожар», как это всем видно из новостей. Итак, о проблеме. У нас довольно сильно разграничен доступ к информации, поэтому я могу прокомментировать лишь то, что мне видно и понятно.

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

    Но при этом выложенный якобы кусок нашей базы вызывает вопросы.

    CVC2 — у нас просто нет этой информации, вообще нет. В выгрузке ее быть не может.

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

    Expiredate не хранится в виде двух отдельных полей. А в выгрузке они так представлены.

    Есть предположение, что эта база — перехваченные где-то формы ввода платежных реквизитов, выдаваемые за нашу базу. Это невозможно доказать, ни опровергнуть, но других объяснений, откуда взялась база с CVC2, я не вижу.

    Кстати, известно, что злоумышленники воруют с реальных банкоматов пин-коды т.н. «скиммерами». Фактически, это утечка с банкомата конкретного банка, но, к сожалению, такие утечки невозможно предотвратить (не ставить же охрану рядом с каждым банкоматом). В сети такое более контроллируемо, но все равно есть масса подобных способов (например, кейлоггеры). Замыкать подобные проблемы сразу на банк (в случае банкомата) или на процессора (в случае кейлоггеров), не доказав — не совсем этично. Хотя, конечно, с точки зрения потребителя — логично.

    Ну и сам факт якобы «утечки» данных не был бы заметен, если бы не кража домена chronopay.com, что действительно было. Отсюда и дефейс с ложной информацией, и проблемы с другими сервисами, где был задействован этот домен. Сейчас этим всем занимаются как технари, так и соответствующие органы.

    Ну вот пока все, что я знаю. Я оговорился в начале — что пишу только про то, что знаю. А те, кто знают больше — сейчас «тушат пожар». Как потушат — разберусь и я сам. Может, напишу что.