Search
Write a publication
Pull to refresh
18
0
Василий @PyroRed

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

Send message

Интернет-магазин. Как избежать элементарных ошибок в начале и облегчить этим жизнь в будущем

Reading time7 min
Views57K
image

В своем рассказе хочу поведать о своем опыте в области интернет торговли. На Хабре уже лет 5, почерпнул много полезного для себя за это время.

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

История моего опыта в интернет коммерции началась в 2011 году, когда я «дорос» до ведения достаточно трудоемкого проекта. Опыт создания и верстки сайтов визиток и сайтов на CMS-ках приобрел еще в 2003 году, тогда пару раз делал клансайты для War3TFT, после этого делал еще 5-6 сайтов на Joomla, в основном тоже для гильдий и кланов. Конечно, это нельзя назвать полноценным ресурсом, но минимальные нужные знания, перед открытием своего интернет-магазина, уже имелись.

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

Под катом хочу рассказать о том, как этих ошибок избежать.
Читать дальше →

И снова про монады в PHP

Reading time3 min
Views15K


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

Привносим монады в PHP

Reading time4 min
Views25K
http://hermetic.com/jones/in-operibus-sigillo-dei-aemeth/the-circumference-and-the-hieroglyphic-monad.html


Совсем недавно я игрался с некоторыми функциональными языками и их концепцией, и заметил, что некоторые идеи функционального программирования могут быть применимы и к объектному коду, который я писал ранее. Одной из таких идей, о которых стоит поговорить — это Монады. Это что-то такое, о чем пытается написать туториал каждый кодер на функциональном языке, так как это крутая, но трудно понимаемая штука. Этот пост не будет туториалом по Монадам (для этого есть вот этот замечательный перевод от AveNat) — скорее пост о том, как использовать их с пользой в PHP.

Что такое Монады?


Если пост выше не удалось дочитать до конца (а зря!), то Монаду можно представить неким контейнером состояния, где разные Монады делают разные вещи относительно этого состояния. Но лучше таки прочитать. Также будем считать, что мы уже немного поигрались с библиотекой MonadPHP из GitHub, так как в примерах использоваться будет именно она.

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

Советы front-end разработчику

Reading time7 min
Views191K


Привет, читатель хабра.

Наверное, ты сразу спросишь меня: «Да кто ты такой, чтобы давать мне советы?». Итак, немного обо мне.

Первое мое общение с HTML и CSS было 10 лет назад, еще в школе, когда у меня только появился интернет, и я понял что тоже хочу делать странички, которые сможет увидеть весь мир. С тех пор у меня есть как минимум 5 полных лет опыта разработки сайтов по-взрослому. Сейчас я могу без лишней скромности сказать, что сверстал я уже пару сотен сайтов, большинство из которых, как ни странно, совершенно не совпадают с моими текущими требованиями к верстке.

Я не хочу рассказывать как надо делать, эта статья результат моего опыта и попытка написать рекомендации тем, кто только начинает, хотя и для матерых верстальщиков (слово режущие слух) здесь могут найтись интересные идеи.
Если ты заинтересовался прошу под кат…
Читать дальше →

6 мифов, мешающих разработчикам использовать Git

Reading time6 min
Views81K


Сейчас вы с трудом найдете профессионального разработчика, который не пользуется системой контроля версий (VCS) такой, как Git.
Но есть и не мало тех среди нас, кто не использует VCS по причине предвзятого мнения о системах контроля версий.
Ниже несколько мифов и отговорок, которые препятствуют внедрению в рабочий процесс разработчика Git (или любой другой VCS).
Читать дальше →

E-commerce платформы. Вступление. Часть 1

Reading time4 min
Views56K
Ни для кого уже давно не секрет, что мировой объем продаж в интернете неумолимо растет из года в год. На данный момент онлайн-торговля составляет уже немногим более 5% мирового объема торговли. Только представьте себе, каждый двадцатый доллар, потраченный на покупки — тратится онлайн. Такая ситуация просто вынуждает владельцев не только крупного, но и среднего, и малого бизнеса выходить со своими товарами во Всемирную сеть. А вот тут и встает вопрос: как правильно попасть на рынок электронной коммерции? Одной из главных составляющих этого вопроса является выбор платформы для будущего интернет-магазина. Ведь таких платформ довольно много, как же правильно определить какая из них больше подходит под конкретные нужды? Давайте вместе попробуем разобраться в этом на примере нескольких систем.
image
Читать дальше →

Повышение конверсии сайта: 5 способов избежать создания плохой микрокопии. Часть 1

Reading time4 min
Views21K

Сегодня мы хотим поделиться первой частью материала Билла Бирда о том, чего точно не стоит делать при написании микротекстов, чтобы сохранить юзабилити позитивным. В данной статье сначала дадим примеры микрокопии, а затем подробно разберем 5 кейсов.

Представьте, что вы смогли создать отличный пользовательский интерфейс. У вас прекрасные заголовки, изображения, баннеры, кнопки «Купить». А подумали ли Вы о микрокопии? А знаете ли Вы, что это такое?

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

HTML-импорт — include для веба: часть 1

Reading time6 min
Views96K
Перевод статьи «HTML Imports #include for the web», Eric Bidelman.

От переводчика

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

Для чего нужен HTML-импорт?


Давайте поговорим о том, как мы загружаем различные ресурсы. JavaScript мы загружаем при помощи
<script src>
. Для CSS у нас есть
<link rel="stylesheet">
. Для изображений
<img>
. Для видео есть
<video>
. Для аудио —
<audio>
… Давайте ближе к сути! Для большинства видов контента есть простые способы его подгрузки. Но не для HTML. Для HTML у нас есть следующие варианты:
  1. <iframe>
    — испробованный и рабочий, но тяжеловесный способ. Контент iframe'а живет в отдельном от главной страницы контексте. Хоть это и хорошая особенность, она также создает дополнительные трудности: подгонка размера айфрейма к его содержимому, работа с внутренними скриптами и стилями.
  2. AJAX — мне нравится
    xhr.responseType="document"
    , но загрузка HTML при помощи JS выглядит как-то неправильно.
  3. КривыеКостылиTM — html код в виде JS строк или комментариев, например
    <script type="text/html">
    .

HTML код, это самый простой тип контента, но в этом плане, он требует наибольших усилий. Хорошо, что у нас есть Web Components, они помогут нам справиться с этой и другими проблемами.
Читать дальше →

Биохакинг сна: подтверждённые наукой советы

Reading time11 min
Views291K


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

Методология Kanban: введение

Reading time4 min
Views307K
Добрый день!

Одним из моих профессиональных интересов, как координатора команды тестировщиков, являются методологии разработки программного обеспечения. В настоящее время все большую популярность приобретают так называемые Agile-методологии, в особенности Scrum и Kanban. На «раcпиаренных» терминах играют недобросовестные «тренеры», семинары и сертификации («сертифицированный Scrum-мастер», «сертифицированный Product owner» и т.д.) растут как на дрожжах.

Функциональный Javascript. Пишем свои линзы, часть 1

Reading time7 min
Views29K
Привет, хабр.
В данной статье мы познакомимся с линзами, узнаем для чего они нужны, а также реализуем их на JavaScript.

Зачем нужны линзы


Начнем, пожалуй, с ответа на вопрос, зачем же нужны линзы.

В функциональном программировании широко используются неизменяемые структуры данных. Работа с ними значительно отличается по сравнению с изменяемыми данными.

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

Как улучшить свой стиль программирования?

Reading time6 min
Views139K

Исповедь 1


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

Весь мой опыт программирования складывается из университетских работ и пары лет пребывания в различных компаниях. Критикующие меня люди неоднократно говорили мне, что в целом я разбираюсь в теме, так что я далеко не клинический случай, как можно было подумать. Однако, очевидно, я выработал совсем не те программистские привычки (как минимум, на взгляд работодателя) и мне нужно срочно изменить их. Везде, где бы я ни работал, мои решения, использующие иерархии мелких классов с делегированием поведения, признавались плохими. Говорят, будто так и надо писать, но это не так. Потому что всё это «как надо» может стоить мне работы.
Читать дальше →

Хорошая и плохая прокрастинация

Reading time7 min
Views77K
Все самые впечатляющие люди, с которыми я знаком — ужасные прокрастинаторы. Так может, прокрастинация не всегда плоха?

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

Существует три типа прокрастинации, в зависимости от того, что вы делаете вместо работы: вы можете (А) ничего не делать, (Б) заниматься чем-то менее важным и (В) заниматься чем-то более важным. Последний тип, я убеждён, и есть хорошая, правильная прокрастинация.

Это как «рассеянный профессор», который забывает или побриться, или поесть, или посмотреть под ноги, когда размышляет над чем-нибудь интересным. Его мозг отстранён от повседневного бытия, потому что занят другими вещами.

Именно в этом смысле я назвал прокрастинаторами всех впечатляющих людей, которых знаю. Они прокрастинаторы типа В: избегают работы над мелочами ради работы над чем-то большим.

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

Хорошая прокрастинация — это уклонение от обязанностей ради выполнения реальной работы.
Читать дальше →

Использование принципов гештальт-психологии для роста конверсии сайтов. Часть 3: анализ выгод и затрат

Reading time3 min
Views12K
Часть 1
Часть 2
Часть 4
Часть 5

Эллиот Шмуклер (из LinkedIn и Wealthfront) однажды сказал, что успех сайта можно свести к трем основным рычагам:

1. Увеличение экспозиции (охватить большее количество людей)
2. Уменьшение трения
3. Увеличение стимула

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

Немного информации

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

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

JQuery Deferred — примеры использования

Reading time5 min
Views66K
В этой статье я не буду говорить о том зачем в javascript нужны промисы и в частности JQuery.Deferred. Также не буду приводить справочную информацию, ее достаточно в интернете. Например тут или тут или вот тут.
Эта статья для тек кто уже немного знаком с объектом Deferred из библиотеки JQuery, но не имеет опыта написания сложных цепочек (очередей).

Подготовка

Все примеры кода, рассмотренные здесь, используют асинхронный метод $.ajax(), который возвращает так называемый jqXHR в котором реализованы промис-методы (done, fail, always, then). Нам нужны будут только они, поэтому будем считать что $.ajax возвращает промис (promise).
В некоторых примерах используются методы $.map() и $.each(), которые входят в состав библиотеки JQuery.

Последовательное выполнение

Простейшее использование промисов — это последовательное выполнение асинхронных операций. То есть следующая операция не начинается пока текущая не закончится.

$.ajax('http://echo.jsontest.com/id/1')
.then(function(result){
    console.log(JSON.stringify(result));
    return $.ajax('http://echo.jsontest.com/id/2')
}).then(function(result){
    console.log(JSON.stringify(result));
    return $.ajax('http://echo.jsontest.com/id/3')
}).then(function(result){
    console.log(JSON.stringify(result));
});

Живой пример тут.
Читать дальше →

Поиск оптимальной аудио-системы распознавания речи на базе открытого исходного кода

Reading time12 min
Views45K

Содержание:


1. Поиск и анализ цветового пространства оптимального для построения выделяющихся объектов на заданном классе изображений
2. Определение доминирующих признаков классификации и разработка математической модели изображений мимики"
3. Синтез оптимального алгоритма распознавания мимики
4. Реализация и апробация алгоритма распознавания мимики
5. Создание тестовой базы данных изображений губ пользователей в различных состояниях для увеличения точности работы системы
6. Поиск оптимальной аудио-системы распознавания речи на базе открытого исходного кода
7. Поиск оптимальной системы аудио распознавания речи с закрытым исходным кодом, но имеющими открытые API, для возможности интеграции
8. Эксперимент интеграции видео расширения в систему аудио-распознавания речи с протоколом испытаний

Вместо введения


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

image

Цели:


Определить наиболее оптимальную аудио-систему распознавания речи (речевой движок) на базе открытого исходного кода (Open Source), которую можно интегрировать в разрабатываемую систему видео-определения движения губ пользователя.

Задачи:


Определить аудио-системы распознавания речи, которые попадают под понятие общественного достояния. Рассмотреть наиболее известные варианта речевых систем преобразования голоса в текст, для перспектив интеграции видео-модуля в наиболее оптимальную голосовую библиотеку. Сделать выводы целесообразности использования аудио-систем распознавания речи на базе открытого исходного кода под наши цели и задачи.

Введение


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

Типы лицензий


Большинство современных продуктов имеют два самых распространенных типа лицензий:
• Проприетарный (собственнический) тип, когда продукт является частной собственностью авторов и правообладателей и не удовлетворяющий критериям свободного ПО (наличия открытого программного кода недостаточно). Правообладатель проприетарного ПО сохраняет за собой монополию на его использование, копирование и модификацию, полностью или в существенных моментах. Обычно полуприетарным называют любое несвободное ПО, включая полусвободное.
• Свободные лицензии (open-source software) — программное обеспечение с открытым исходным кодом. Исходный код таких программ доступен для просмотра, изучения и изменения, что позволяет пользователю принять участие в доработке самой открытой программы, использовать код для создания новых программ и исправления в них ошибок — через заимствование исходного кода, если это позволяет совместимость лицензий, или через изучение использованных алгоритмов, структур данных, технологий, методик и интерфейсов (поскольку исходный код может существенно дополнять документацию, а при отсутствии таковой сам служит документацией).

Среди рассматриваемых систем распознавания речи с открытым исходным кодом нам встретились 2 вида сублицензий BSD и GPL. Рассмотрим их более подробно
Читать дальше →

Функциональный JavaScript, Часть 1: Введение

Reading time3 min
Views26K

Введение


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

Continuous Integration в 10 строках кода или зачем нужны BuildBot, Jenkins, TeamCity и подобные

Reading time5 min
Views60K
Заметка рассчитана на тех, кто уже знает, что такое Continuous Integration, но еще не выбрал, какую именно систему внедрить у себя.

Почитать, что такое CI и зачем его использовать, можно в Википедии и здесь же на Хабре: статья 1, статья 2, тег CI.

А я расскажу, на что стоит обратить внимание при выборе CI для своего проекта, почему стоит использовать готовую стороннюю систему и не стоит ввязываться в написание собственного «велосипеда».


Началось с того, что в одной IT-компании случился такой разговор между коллегами из соседних отделов:

K1: У вас continuous integration есть?
K2: Есть, запускаются тесты на каждый коммит в транке.
К1: На чем работают?
К2: Собственный скрипт. Сейчас переходим на Buildbot.
К1: Может я чего-то не понимаю, но что там сложного? Апнуться, запустить тесты, отправить результат, зачем какой-то Buildbot, проще же самим написать?

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

Итак, пишем «свой маленький скриптик». У меня получилось уложиться в 10 строк, включая shebang, задание в кронтабе и настройку отправки писем.
Читать дальше →

Автоматизируем работу с сайтом за 5 минут на примере Yandex.Почты с помощью NetExport

Reading time7 min
Views10K
Иногда, бывает нужно автоматизировать некоторые процессы на чужом сайте. Залогиниться на сайт, скачать какой нибудь файл, открыть страничку. Часто приходится разбираться в коде сайта, чтобы найти, как правильно написать запрос curl.

Предлагаю Вашему вниманию способ, которым я сам пользуюсь, чтобы значительно облегчить себе жизнь и автоматизировать все и вся, от проверки почты, до загрузки данных в телебанке. Я постараюсь, на примере Yandex.почты показать, как можно очень быстро и почти без программирования сгенерить curl php скрипт для захода на любой сайт и загрузки контента в автоматическом режиме.
Читать дальше →

«Делай что должен» или «Кем я точно не хочу быть в 50 лет»

Reading time9 min
Views158K


Многих из вас, возможно, посещала крамольная мысль «а тем ли я занимаюсь, чем должен?». На правильном ли вы пути? Действительно ли расходуете отведенное вам на планете время на нужные и значимые дела? Стоит ли вообще заниматься тем, чем вы занимаетесь? Как найти свое предназначение и не пожалеть о потраченных впустую годах? Позволим же себе предаться философии чтобы в очередной раз осмыслить свое предназначение.
Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity