Search
Write a publication
Pull to refresh
23
0
Anton MegaPort @AlexTest

Magento, Telegram bots

Send message

Теперь в WebStorm есть многокурсорность, она же multiple selection

Reading time1 min
Views42K
Многие веб-разработчики давно любят многокурсорность, она же multiple cursors, она же multiple selection.

image

Теперь она есть в WebStorm 8 EAP, и мы в JetBrains ждем откликов от тех, кто хотел ее и теперь сможет пользоваться в наших IDE (первая ласточка — Webstorm, в остальных — пока нет, будем включать по мере получения откликов и подготовки свежих версий).

Если коротко: Ctrl+G на Mac или Alt+J в Windows.

UPD: и Alt+Shift+Click чтобы расставить курсоры, куда хочется.
Кстати, если нажать и немного подержать Alt+J, то все следующие вхождения выделятся автоматически.

Magento Enterprise: Что такое Full Page Cache и почему он нужен

Reading time20 min
Views15K
Magento Enterprise - Full Page Cache

Magento Enterprise: Что такое Full Page Cache и почему он нужен.



Для тех, кто знаком с Magento, не секрет, что этот e-commerce движок довольно требователен к железу. Но разработчики этого интернет-магазина попытались решить эту проблему и придумали много различного рода «ускорялок», без которых, пожалуй, запускать магазин на движке Magento в продакшн не стоит. Слишком долго Magento будет отдавать конечному пользователю страницу. Среди таких «ускорялок» кеши, индексы, компиляция, объединение JS/CSS в один сжатый файл и др.

Одной из основных «фишек» Magento Enterprise является Full Page Cache (далее FPC). Эту «фишку» реализует модуль Enterprise_PageCache, входящий в состав пакета Magento Enterprise.

В статье рассматривается самая свежая на момент написания статьи версия Magento Enterprise: 1.13.1.

FPC позволяет отдавать серверу страницу за считанные миллисекунды, практически не нагружая сервер. Я провел замеры времени отдачи страницы продукта сервером (в одном из проектов, над которым работал), вот результаты:

Magento Enterprise - FPC

  • 65 ms при включенном FPC (когда все блоки были закешированы);
  • 1250 ms при выключенном FPC (при этом все остальные виды кеша включены);
  • 2500 ms при отключенном кеше всех видов.

Почему разница настолько велика? Давайте разберёмся.
Читать дальше →

Единый интерфейс управления рекламой на сайте

Reading time4 min
Views19K
Монетизация собственного проекта – всегда вызов. Самый простой вариант: поставить на него тизерную рекламу или контекст, и наблюдать, сколько денег капает в карман. Но этот же вариант часто оказывается разочаровывающим – заработок не стоит усилий по его приобретению. Так ли плоха тизерная/контекстная реклама для монетизации сайтов? Скорее всего, вы просто не умеете её готовить.


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

Автоматизируем щелчки мышкой в Linux: xdotool

Reading time4 min
Views50K
Эта очень короткая заметка на примере активации ключей в Steam описывает процесс автоматизации операций, выполняемых при помощи мыши и клавиатуры.

Допустим, вы купили несколько наборов игр Humble Bundle. Теперь у вас есть, например, 5 ключей для активации в Steam. А может быть 15 или даже 25. Вы очень не хотите активировать их вручную, потому что это слишком муторно: в клиенте Steam нужно каждый раз наводить курсор на меню «Games», щёлкать, потом наводить курсор на пункт меню «Activate a Product on Steam…», опять щёлкать, потом нажимать Enter, потом ещё раз Enter, и только затем наконец-то вводить ключ (а потом нужно подождать, ещё раз нажать Enter, затем Escape). А потом повторять то же самое для каждого последующего ключа. Как писал Леонид Каганов, стоило ли вообще ради такого «прогресса» спускаться с пальмы и брать в руки каменный топор?

В общем, вы решили этот процесс автоматизировать — тем более, что задача-то, на самом деле, очень простая. Для её решения нам потребуются консольные утилиты xdotool и xclip — убедитесь, что они установлены у вас в системе.
Читать дальше →

Как использовать секционные элементы HTML5

Reading time5 min
Views204K
Один славный малый Matt West c туманного альбиона, промышляющий фрилансом и предпринимательством, предложил нашему вниманию пост: «Как использовать секционные элементы HTML5».
Ниже приводится его перевод.




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

Тренды e-commerce: Работа под заказ

Reading time3 min
Views12K
image

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

Адаптивные изображения без шаманства

Reading time5 min
Views40K
Все, кто сталкивался с задачей сделать адаптивную графику, знает, что решений уже масса, но никакого единогласно принятого не существует. Зачастую выбор и применение решения для адаптивных изображений становятся головной болью фронтенд-разработчиков. Им приходится заменять src картинок, подгружать однопиксельные изображения и лепить прочие костыли. Нас это не устроило и мы решили сделать свой мотороллер.

На типичных сайтах изображения могут появляться тремя способами.
  1. Быть элементами дизайна сайта (бекграунды, кнопки и т.д.).
  2. Загружаться через специальные модули (например, изображения в фотоальбом).
  3. Вставляться через WYSIWYG-редактор CMS (например, в текст статьи).


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

Сначала на помощь приходит реализация Adaptive Images
Но что происходит потом?

Геттеры и сеттеры в Javascript

Reading time5 min
Views49K
Javascript — очень изящный язык с кучей интересных возможностей. Большинство из этих возможностей скрыты одним неприятным фактором — Internet Explorer'ом и другим дерьмом, с которым нам приходится работать. Тем не менее, с приходом мобильных телефонов с актуальными браузерами и серверного JavaScript с нормальными движками эти возможности уже можно и нужно использовать прям сейчас. Но по привычке, даже при программировании для node.js мы стараемся писать так, чтобы оно работало в IE6+.

В этой статье я расскажу про интересный и не секретный способ указывать изящные геттеры и сеттеры и немножко покопаемся в исходниках Mootools. Частично это информация взята из статьи John Resig, частично лично мой опыт и эксперименты.
function Foo(bar){
    this._bar = bar;
}

Foo.prototype = {
    get bar () {
        return this._bar;
    },
    set bar (bar) {
        this._bar = bar;
    }
};


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

Бан по континентам

Reading time3 min
Views81K


В одно прекрасное утро я просматривал логи и задал себе ряд вопросов:

  1. А жду ли я письма из Юго-Восточной Азии? (когда смотрел логи почты)
  2. И с какого перепугу ко мне стучатся ssh брутфорсеры из Штатов?
  3. Мне надо терпеть сетевые сканеры из Австралии?
  4. Кто мне звонит из Африки? (когда разглядывал логи asterisk)
  5. С какой стати к моему POP-серверу обращаются из Латинской Америки?


Почему бы не забанить по континентам? Оставив только нужный континент(ы)?


Под катом bash скрипт, который этим занимается

Обнаружение изменений в файлах на веб-сервере

Reading time2 min
Views38K
Здравствуйте, уважаемые читатели!

Картинка, кратко и аллегорично передающая смысл описанного в посте скрипта:


У меня есть несколько сайтов, на которых в какой-то момент начал появляться вредоносный код, выглядящий как отдельные php-файлы либо дополнительные строки с длинными eval() в существующих файлах.

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

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

Как я купил wi-fi весы, уволился с работы и начал жить

Reading time6 min
Views210K
image

Stop fucking procrastinating and do some fucking work!


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

Пользовательские события в действии

Reading time5 min
Views21K
В этой заметке расскажу, как я использую пользовательские события jQuery (custom events) в своей работе.

Имитиация событий


Дана простая задача, реализацию которой наблюдают все хабровчане: когда пользователь достаточно прокрутил страницу вниз, анимированно отображается блок-врезка «Лучшее за 24 часа», и скрывается, когда пользователь прокручивает страницу вверх. Эта задача решается подвешиванием обработчика на события scroll и resize окна (window), который занят двумя вещами: вычисляет, нужно или нет отображать/скрывать блок-врезку, и в зависимости от результата производит анимацию отображения или осуществляет скрытие.

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

ElasticSearch 1.0 — новые возможности аналитики

Reading time9 min
Views32K
Многие слышали о высокоуровневом поисковом сервере ElasticSearch, но не все знают, что многие используют его не совсем по прямому назначению. Речь идет о реалтайм-аналитике различных структурированных и не очень данных.

Эта статья также назрела ввиду того, что многие крупные интернет-проекты рунета в 2014 году получили письма счастья от Google Analytics с предложением заплатить $150 000 за возможность использовать их продукт. Я лично считаю, что ничего плохого в том, чтобы оплатить труд программистов и администраторов нет. Но при этом это довольно серьезные инвестиции, и, может, вложения в собственную инфраструктуру и специалистов, даст большую гибкость в дальнейшем.

Аналитика в ElasticSearch основана на полнотекстовом поиске и фасетах. Фасеты в поиске — это некая агрегация по определенному признаку. Вы часто сталкивались с фасетами-фильтрами в интернет-магазинах: в левой или правой колонке есть уточняющие галочки. Ниже пример тестового фасетного поиска у нас на главной странице http://indexisto.com/.



Буквально неделю назад вышла стабильная версия поискового сервера ElasticSearch 1.0, в которой разработчики настолько серьезно поработали над фасетами, что даже назвали их Aggregation.

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

Роботы-термиты реализуют проект без централизованной координации

Reading time2 min
Views82K


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

  • сооружения достаточно сложны
  • каждый участник процесса не обладает развитым интеллектом
  • весь проект не имеет генерализованной координации


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

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

Как я перехватывал трафик покер рума или «Пишем свой MitM SSL прокси на C#»

Reading time5 min
Views77K
Однажды у меня появилась навязчивая идея: посмотреть, а что же там такого покерный клиент отправляет на сервер. Как Вы понимаете, крупные покерные румы используют SSL для передачи данных. Протоколы, основанные на асимметричном шифровании, подвержены только одному известному мне виду атак — MitM (Man in the middle — человек посередине).

Помаявшись с тонной софта, предназначенного для реализации MitM на SSL соединение, я пришел к выводу, что руки растут не из того места либо у разработчиков данных инструментов, либо у меня. Но идея была жутко навязчивая, и было принято решение сделать всё вручную. Если интересно, что же из всего этого вышло, прошу под кат.

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

Американские учёные создали искусственные мышечные волокна из обычной рыболовной лески

Reading time2 min
Views95K
Сегодня, 21 февраля, в журнале «Science» была опубликована статья о принципиально новом способе создания искусственных мышц, на основе обычной рыболовной лески и других подобных полимерных нитей, вообще без использования дорогих или экзотических материалов наподобие углеродных нанотрубок, диоксида ванадия или металлических сплавов с памятью. Причём способ их изготовления совершенно тривиален и доступен в домашних условиях — леска скручивается под нагрузкой, пока не свернётся в спираль, а затем нагревается. При нагревании спираль сокращается, развивая достаточно большое усилие, при остывании удлиняется до исходных размеров.



Искусственное мышечное волокно из нейлона может сокращаться на 49% относительно начальной длины и поднимать вес, в сто раз больший, чем человеческие мышечные волокна такой же толщины и длины. Его удельная механическая мощность достигает 5,3 киловатт на килограмм — это сравнимо с реактивными двигателями самолётов и самыми совершенными современными электродвигателями.
Читать дальше →

Как монетизировать идею. Опыт и ошибки

Reading time4 min
Views34K
У меня в голове, как и у многих из вас, постоянно крутились идеи различных сервисов, сайтов, которые по моему мнению просто необходимы интернет-сообществу. Я хотел научиться превращать свои идеи в деньги и со временем понял, что успешных людей отличает именно то, что у них есть идеи, которые они не боятся реализовывать.

Не бойтесь реализовывать

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

Использование комментариев для хранения статических данных в Javascript

Reading time2 min
Views7.7K
Иногда создаваемый компонент связан с большим количеством статических данных. Единственный «нормальный» способ хранить эти данные в javascript — это строки. Но хранить в строках многострочные данные неудобно, т.к. каждая строка требует дополнительного форматирования. Кроме того приходится следить за экранированием символов.
но можно хранить многострочные данные ненормально

Поиск работы Java Middle Developer (наблюдения и впечатления)

Reading time3 min
Views61K
И вот настал момент, когда я твердо решила распрощаться с родной и уютной компанией-интегратором и найти работу поинтереснее. За три недели активного поиска получила массу впечатлений, коими и хотела бы поделиться.

Входные данные

Место действия – Москва. Мидл в заголовке поста — некая условность, в заголовке резюме значилось просто «Java разработчик». Опыта в Java – 1.5 года в пресловутом интеграторе, до этого 4+ года в PHP (думаю, подобная ситуация сейчас не редкость). Поскольку дети и ипотеки у меня отсутствуют, деньги были не решающим фактором – главное, интерес и потенциальное развитие.
Читать дальше →

Пространства имен в PHP, разъяснение

Reading time5 min
Views125K
Прим.пер.: Я в курсе, что на момент перевода актуальная версия PHP — 5.5, а также что есть мудрая книга мануал. Но мне показалось интересным, то как автор преподносит namespace функционал, возможно кому-то из тех, кто только постигает азы (да и не только, есть немало бородатых разработчиков, остановившихся на PHP 5.2), статья поможет проникнуться. Ходор.

В PHP, начиная с версии 5.3 появились пространства имен. Большинство современных языков уже давно заимели себе такой функционал, но PHP немного опаздывал. Тем не менее, у каждой новой функции есть свое предназначение, давайте выясним, какие выгоды мы можем извлечь, используя namespace.

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

Пространства имен позволяют нам обойти эту проблему, и мы можем создать столько классов User, сколько нам понадобится.Кроме того пространства имен позволят нам организовать код в удобные пакеты, а также обозначить свои права владения этим кодом.
Давайте взглянем на самый обычный класс...

Information

Rating
Does not participate
Registered
Activity