Search
Write a publication
Pull to refresh
0
0
Pavel Burns @63pHc

Web developer

Send message

Универсальный JavaScript

Reading time2 min
Views28K
В начале был Netscape. И возжелал Netscape выполнять Scheme-код в браузере Netscape Navigator. И наняли они Брендана Айка (Brendan Eich), чтобы он в поте лица своего работал над этим. Но потом они передумали и решили, что Java хотят они. И вот, рождён был JavaScript. И было это (достаточно) хорошо.

Безумная идея овладела Райаном Далом (Ryan Dahl) годы спустя: подружить движок V8 с библиотекой libev, дабы могли программисты выполнять свой JavaScript-код за пределами браузера. И возник Node.js. И npm. И люди возрадовались.

И стали люди писать веб-сервера на JavaScript, и запускать вертолёты с JavaScript на борту, и водружать его на планшеты и смартфоны, и встраивать его в термостаты и холодильники, да и во всё, во что их душа желала. И распространился JavaScript весьма и весьма широко. И презирали Нормальные Программисты™ (Serious Developers) простых людей, пишущих на JavaScript, но простые люди продолжали писать на JavaScript всё больше и больше.

И ждали люди Слово, способное вместить в себя всю широту проникновения JavaScript, ибо слово «JavaScript», как оно есть, более не вмещало той широты. И изрёк Чарли Роббинс (Charlie Robbins) мысль, что термином «Isomorphic JavaScript» можно назвать JavaScript-код, выполняющийся и в браузере, и на сервере. И никто нафиг не понимал значения сего, но, вместо просто программирования на JavaScript, люди стали программировать на изоморфном JavaScript.

Секундочку, что?
Читать дальше →

Tor для всех: если заблокируют сайт torproject

Reading time2 min
Views67K
Что делать, если у вас в стране запретили Тор, и заблокировали все ссылки, ведущие на проект torproject? Где скачать Tor-браузер человеку, совершенно не разбирающемуся в IT? На этот случай сообщество, развивающее эту сеть, предлагает сервис GetTor Robot. Это почтовый робот, который в ответ на мейл-запрос присылает ссылки на облачные файловые хранилища с дистрибутивом браузера.

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

Ускорение и оптимизация PHP-сайта. Какие технологии стоит выбирать при настройке сервера под PHP

Reading time7 min
Views55K


Эта статья поможет ответить на вопросы владельцев, разработчиков и системных администраторов PHP-сайтов:



  • Как оптимизировать сайт и ускорить его работу?
  • С какой скоростью будет и может работать сайт, в соответствии с теми технологиями на которых он будет запущен?
  • Какие технологии следует использовать настраивая сервер или VPS?


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

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

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

В этом обзоре я протестирую только что установленный сайт на одном из самых распространённых движков управления контентом Drupal 7.33.

Для теста выбрана лишь одна составляющая php-хостинга. Мы будем тестировать web-серверы Nginx и Apache2, модули mod_php и php-fpm, версии php php53 и php56, посмотрим, как влияют оптимизаторы apc и opcache на скорость работы сайта.

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

Введение в JavaScript итераторы на ES6

Reading time4 min
Views33K
В EcmaScript 2015 (также известном как ES6) представлена совершенно новая концепция итераторов, которая позволяет задать последовательности (ограниченные и другие) на уровне языка.

Давайте поговорим об этом детальнее. Все мы хорошо знакомы с оператором цикла for, а многие даже знают его менее популярного брата for-in. Последний можно использовать, чтобы помочь нам объяснить базовые принципы работы с итераторами.
for (var key in table) {
  console.log(key + ' = ' + table[key]);
}

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

Тонкости ES6: Коллекции (часть 1)

Reading time4 min
Views34K
Ранее на этой неделе (статья от 19 июня — прим.) спецификация ES6, официально названная ECMA-262, 6th Edition, ECMAScript 2015 Language Specification, преодолела последний барьер и была утверждена как стандарт Ecma. Мои поздравления TC39 и всем остальным, кто помогал. ES6 закончен!

Даже лучше: больше не надо будет ждать следующего обновления 6 лет. Комитет собирается выпускать новую версию в срок около года. Предложения по ES7 уже примаются!

Я считаю, что уместно отпраздновать это событие поговорив о той части Javascript, которую я так желал в нем увидеть, и у которая все еще имеет потенциал к улучшению.

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

Тонкости ES6: Коллекции (часть 2)

Reading time6 min
Views23K
От переводчика: это вторая часть перевода статьи про коллекции в EcmaScript 6. Первую часть можно прочитать тут. По разным причинам перевод второй части затянулся на достаточно долгий срок.

Map


Map (ассоциативный массив) — это коллекция пар ключ-значение (key-value). Вот что умеет Map:
  • new Map возвращает новый пустой ассоциативный массив.
  • new Map(pairs) создает новый ассоциативный массив и наполняет его данными из существующей коллекции пар [key, value]. Эта коллекция может быть другим Map объектом, массивом из двухэлементных массивов, генератором который возвращает двухэлементые массивы, и т.д.
  • map.size возвращает количество элементов в ассоциативном массиве.

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

10 правил хорошего тона при описании багов

Reading time6 min
Views209K
Здравствуйте, меня зовут Наталья, я инженер по тестированию компании Docsvision.
Иногда, когда я просматриваю ошибки, записанные новенькими (а иногда и старенькими) тестировщиками, рука машинально тянется к лицу. В голове возникает только одна мысль:



«Что? Что я сейчас прочитала?»

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

Обновление React компонентов с сохранением состояния в режиме реального времени для Browserify

Reading time8 min
Views16K


Всем доброго времени суток!
Давайте немного поговорим о DX (Developer Experience) или «Опыте разработки», а если конкретнее — об обновлении кода в режиме реального времени с сохранением состояния системы. Если тема для вас в новинку, то перед прочтением советую ознакомиться со следующими видео:

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




Введение: Как это работает?


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

Создание игры на Blend4Web. Сцена и окружение

Reading time7 min
Views13K
В наше время первопроходцем быть трудно, ибо совсем мало осталось областей деятельности для пытливого ума. «Эка, загнул», — скажете вы и, возможно, подумаете о скромности автора. Что ж, отрину философские, занудные тексты и начну повествование на нормальном языке.

Есть WebGL — универсальная технология для веб. Есть Blend4Web — платформа для работы с технологией WebGL. Есть документация и примеры работы с этой платформой, но совсем нет игр.

«Совсем?»
«Увы, совсем».

А может я плохо искал? Не знаю, но хочу положить конец этой несправедливости и создать Первую игру. Первую не для себя, ведь у меня уже есть три коммерческие игры на Unity. Первую на этом движке.

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

Многострадальный notepad: ошибка, которую не исправляют уже 13 лет

Reading time6 min
Views145K


В стандартном блокноте для всех версий Windows, начиная примерно с 2001 года, имеется ошибка, про которую практически все знают, но никто не собирается её исправлять. И это понятно, ведь это не критическая уязвимость, ничьей безопасности она не угрожает. Да и пользуется ли кто блокнотом вообще?

Тем не менее, сам факт довольно странный, поэтому мы попробуем найти эту ошибку в коде 64-битного и 32-битного notepad.exe от windows 7, исправим её, и выясним наконец, почему же она возникла. Заключается ошибка в следующем:

Если в блокноте включена опция «перенос по словам» (word wrap), то после сохранения файла начинаются всевозможные глюки: строки начинают разъезжаться, курсор улетает, текст вводится не туда, куда вы ожидаете, и так далее.
Читать дальше →

Создание игры на Blend4Web. Путь программиста

Reading time8 min
Views13K
В своей первой статье на Хабре, посвященной разработке браузерной игры, я показал основные этапы создания базовой сцены для Blend4Web. Пара примитивов, несколько текстур плюс встроенные возможности платформы позволили с легкостью воплотить задуманную идею — воду с рефракцией и каустикой.

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

Как повысить уверенность в том, что кнопка была нажата живым пользователем на сайте и избавиться от капчи?

Reading time6 min
Views35K
Капча всем известна. Также всем известно, что она представляет собой большую проблему и для программистов и для пользователей. Она ни тем ни другим не нравится! Ее приходится использовать по необходимости!

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

Последний предлагаемый метод спорный, но судите сами!
Читать дальше →

Работа с паролями: как защитить свои учетные записи (мнения специалистов)

Reading time8 min
Views35K
Недавно стало известно об «уязвимости» в системе для корпоративных клиентов такси-сервиса Gett. Как выяснили исследователи, всем им по умолчанию выдавались одинаковые пароли (естественно, многие из них никто потом не меняет). В итоге, зная один пароль, злоумышленники могли попасть в множество аккаунтов сразу (среди клиентов Google Россия, «Вконтакте», Ozon и другие компании).



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

Ускорение обработки изображений в Android

Reading time29 min
Views16K
image Центральные процессоры и графические ядра современных устройств, работающих под управлением Android, способны на многое. Например, их вычислительную мощность можно направить на обработку изображений.

Для того чтобы это сделать, стоит обратить внимание на технологии OpenCL и RenderScript.

В этом материале рассмотрен пример Android-приложения, в котором показаны методики высокопроизводительной обработки изображений с использованием языков программирования OpenCL и RenderScript. Эти технологии разработаны с прицелом на возможности графического аппаратного обеспечения, рассчитанного на параллельную обработку данных (шейдерных блоков). Они позволяют ускорить работу со значительными объёмами данных и решение задач, предусматривающих большое число повторов команд. Хотя, для ускорения обработки графики в Android-приложениях, вы можете воспользоваться другими технологиями, в этом материале рассматриваются примеры построения инфраструктуры приложения и реализации графических алгоритмов на OpenCL и RenderScript. Здесь так же рассмотрен класс-обёртка для OpenCL API, который позволяет упростить создание и исполнение приложений, работающих с графикой и использующих OpenCL. Использование исходного кода этого класса в ваших проектах не требует лицензирования.
Читать дальше →

Автоматизация ip-сети с помощью подручных инструментов (Python)

Reading time33 min
Views30K
Эта статья подойдет сетевым специалистам, которые находятся в поисках примеров возможной автоматизации ip сети с помощью подручных инструментов.

Как один из вариантов автоматизации, это взаимодействие программной среды с CLI (Command Line Interface) оборудования, так называемый ‘Screen Scraping’. Собственно, об этом варианте и пойдет речь.

В качестве программной среды, будет использован язык программирования Python версии 3.3. Для сомневающихся в потребности изучения языка программирования, необходимо отметить, что базовые навыки программирования на Python достаточно просты в освоении и для решения описанных ниже задач являются достаточными. В дальнейшем с совершенствованием навыков будет совершенствоваться код и уровень производимых продуктов. Для удаленного взаимодействия с оборудованием в основном будет использоваться протокол SSH, поэтому в качестве работы с SSH, для облегчения задач, выбран дополнительный модуль для Python – Paramiko. Как правило рассмотрение решения конкретных задач, может способствовать лучшему усвоению материала, поэтому не затягивая процесс далее будут рассмотрены выборочные примеры задач по возрастающей степени сложности и их решение с использованием выше описанных инструментов (важно заметить, все ip адреса, логины, пароли, названия и специфические значения параметров с сетевых устройств — вымышленные, любое совпадение случайно).
Читать дальше →

Выбираем плагин для кэширования WordPress: бенчмаркинг 18 плагинов

Reading time7 min
Views65K


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

Структуры данных. Неформальный гайд

Reading time6 min
Views170K


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

Кто такие контент-хакеры?

Reading time4 min
Views7.4K
По исследованиям IBM, 80% информации, добавляемой в интернет — это хаотичные, деструктивные и никому не нужные данные. А человечество использует лишь 0,5% всего объема.

Контент стратегия — один из маркетинговых трендов последних лет. 89% маркетологов, которые используют контент-продвижение, признались в его эффективности.

Планируя контент-стратегию, важно продумать как попасть в эти ничтожные 5% полезного траффика. Можно писать по 100500 статей в день и не получить даже тысячи прочтений. А можно стать контент-хакером и покорить мир.

Перед прочтением статьи лучше пройти тест на уровень контент-хакерства.

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

Landing Page и лидогенерация

Reading time2 min
Views9.1K
Привет, Хаброжители!

Недавно у нас вышли книги по созданию посадочных страниц и лидогенерации.

image

А. Петроченков, Е. Новиков «Идеальный Landing Page. Создаем продающие веб-страницы»
К. Андреева «Лидогенерация. Маркетинг, который продает»
Р. Назипов «Лидогенерация: клиентов много не бывает»

Цель поста — краткий обзор книг.
Читать дальше →

Полный путеводитель по созданию лендингов, которые продают

Reading time16 min
Views79K


Мы продолжаем знакомить вас с лучшими статьями по веб-дизайну. Сегодня мы перевели свежую статью на Medium о создании эффективных посадочных страниц. Перевод выполнен «Я люблю ИП».

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

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

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

Information

Rating
Does not participate
Date of birth
Registered
Activity