Pull to refresh
2
0
Par Mactep @parmactep

User

Send message

Использование стандарта ES2015 в рамках библиотеки Backbone.js

Reading time2 min
Views14K

В то время, как ребята из команд, работающих над Angular, React, мягко, но уверенно пересаживают разработчиков на ES2015, я хотел бы немного рассказать о возможностях использования нового стандарта спецификации с библиотекой Backbone.js. На сегодня основной подход к использованию ES2016 в браузерах один и не зависит от используемого фреймворка/библиотеки. И заключается он в следующем: пишем код на ES2015 и с помощью транспайлера (напр., Babel) получаем код (который и выполняется в браузере) на предыдущем стандарте ES5.


Но как модули, классы и прочие "фишки" из ES2015 использовать в рамках сущностей библиотеки Backbone.js? Об этом речь пойдет под катом.

Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments98

Декораторы в PHP

Reading time3 min
Views23K
image
Решил поделиться своим видением и наработками по реализации python-style декораторов в PHP.
В качестве завлекалочки небольшой пример использования на изображении справа. Выводит (после реализации логики самих декораторов):
Log: calling b()
int(42)

Реализация выполнена в виде C расширения и не требует пересборки самого PHP. Но не заведется на хостингах, где нельзя загрузить свою so'шку.
На данный момент код находится в стадии беты (весь нужный функционал написан, но баги и утечки памяти наверняка есть :) ). Так что as is. Ну а если есть желание помочь в развитии, то буду рад принять коммиты на github.
Немного PHP и ленивых вычислений. C и Zend не пострадали
Total votes 61: ↑45 and ↓16+29
Comments54

Еще раз о каррировании и частичном применении в PHP

Reading time4 min
Views6.2K
Искусство каррированияВ недавней статье предложена реализация каррирования (currying) и частичного применения (partial function application) на PHP. Ее фундаментальным недостатком является то, что результатом каррирования является не функция, а объект. Он уже не может быть передан в качестве callback-параметра, а для подстановки аргументов приходится использовать специальный синтаксис. В настоящем тексте предлагается новая, прозрачная реализация этих конструкций для PHP 5.3 и выше.

Термин currying происходит от фамилии американского математика Haskell Curry. Второе значение слова currying — выделка дубленой кожи.

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

Эмуляция каррирования и частичного применения на PHP — это один из примеров того, что Макконнелл в «Совершенном коде» (гл. 4.3) называет программированием с использованием языка, а не на языке.
Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments20

Привносим монады в 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, так как в примерах использоваться будет именно она.

Читать дальше →
Total votes 52: ↑43 and ↓9+34
Comments25

Лучшие практики и рекомендации по защите php-приложений от XSS-атак

Reading time5 min
Views70K

Лучшие практики и рекомендации по защите php-приложений от XSS-атак


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



Большинство уязвимостей связано с неправильной обработкой данных, получаемых извне, или недостаточно строгой их проверкой. Одной из таких уязвимостей является межсайтовое выполнение сценариев (Сross Site Sсriрting, XSS), которая может привести к дефейсу сайта, перенаправлению пользователя на зараженный ресурс, вставке в веб-ресурс вредоносного кода, краже COOKIE-файлов, сессии и прочей информации. Противостоять XSS своими сила поможет применение лучших практик и рекомендаций по безопасному программированию, о которых и пойдет речь ниже.
Читать дальше →
Total votes 52: ↑35 and ↓17+18
Comments35

Экранирование (или что нужно знать для работы с текстом в тексте)

Reading time10 min
Views224K
SQL инъекции, подделка межсайтовых запросов, поврежденный XML… Страшные, страшные вещи, от которых мы все бы хотели защититься, да вот только знать бы почему это все происходит. Эта статья объясняет фундаментальное понятие, стоящее за всем этим: строки и обработка строк внутри строк.
Читать дальше →
Total votes 76: ↑51 and ↓25+26
Comments115

6 XSS на Хабрахабр и методы защиты с их последствиями

Reading time3 min
Views54K
image

Как-то мне стало интересно, сколько же стоят корпоративные блоги на Хабрахабре. Я зашел на эту страницу и перешел по ссылке заказать. Автоматом, вместо ожидаемых данных, ввел вектор для тестирования XSS и получил выполнение JS у себя в браузере. Но это не всё так интересно, как методы защиты на Хабре от последствий XSS.
Читать дальше →
Total votes 115: ↑105 and ↓10+95
Comments50

Unit-тестирование от начинающего начинающим

Reading time5 min
Views78K
Здравствуйте.

На написание статьи меня сподвигнул этот пост. В нём приведено описание инструментов и некоторая теоретическая информация.

Сам я только начинаю разбираться в unit-тестировании и тестировании вообще, поэтому решил поделиться некоторой информацией касательно этого дела. А также систематизировать свои знания и навыки. Далее постараюсь объяснить процесс тестирования по шагам простым обывательским языком, так как нигде в интернете не нашёл разжёванного описания, по шагам так сказать. Кому интересно и кто хочет попробовать всё-таки разобраться, добро пожаловать.
Читать дальше →
Total votes 47: ↑40 and ↓7+33
Comments46

Текстовый туториал по react-router, а так же react-router + redux. На русском

Reading time3 min
Views43K

Всем добрый день. Немного с задержкой, но все же выходит третий мини-учебник. На этот раз разобран react-router. А так же две главы посвещены интеграции react-router + redux.


В процессе интеграции rr+redux я не использовал react-router-redux и redux-router. Как указано в самой книге, из-за активного развития библиотек, мне хотелось бы «научить вас рыбачить», а не просто «дать рыбу».


Также, приведенный способ по интеграции основан на личном опыте, плюс ответах разработчика redux (его твиттер) на SO, и изучении различных репозиториев. Он не является «единственно верным». Пожалуйста, укажите ссылки на ваши репозитории, либо предложите свои варианты в комментариях.


Поехали!


book_screen

Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments5

React.js: собираем с нуля изоморфное / универсальное приложение. Часть 1: собираем стек

Reading time22 min
Views195K
image

Лицо моей жены, когда она вычитывала эту статью


Я решил написать цикл статей, который и сам был бы счастлив найти где-то полгода назад. Он будет интересен в первую очередь тем, кто хотел бы начать разрабатывать классные приложения на React.js, но не знает, как подступиться к зоопарку разных технологий и инструментов, которые необходимо знать для полноценной front-end разработки в наши дни.


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

Читать дальше →
Total votes 51: ↑46 and ↓5+41
Comments78

Шрифты в вебе, обзор от 2016 года

Reading time8 min
Views26K


Предисловие


Статья — не про всё возможное, связанное с типографикой и текстами, вроде letter-spacing и max-height. Это скорее некоторый список занятных возможностей, которые могут быть углублённо изучены при наличии достаточного любопытства и времени. Надеюсь, для большей части найдётся то, что они не знали или слышали краем уха.
Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments16

Как написать хорошее резюме для удаленной работы в зарубежной компании

Reading time4 min
Views19K


В предыдущей статье, раскрывающей общие тенденции развития рынка удаленной работы, мы слегка затронули тему составления грамотного резюме. Нами были перечислены основные пункты и важные моменты, на которых работодатели акцентируют пристальное внимание. Сегодня мне бы хотелось осветить данную тему подробнее, тем более что большинство вопросов, получаемых нашей службой поддержки, связано именно с необходимостью корректного составления резюме.
Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments2

Резюме программистов. Часть 1 (плохие)

Reading time3 min
Views325K
Честно скажу, когда я искал работу, мое резюме смело можно было отнести к категории плохих. Да, там было несколько хороших секций (типа, а вот я написал 2 книжки и 30 статей), но также там была и таблица скилов со строчкой: C#, 1 year of experience, Intermediate (!).

Сейчас я читаю много резюме и приглашаю людей на интервью. За последние 3 года я провел около сотни интервью, а резюме повидал раз в 5 больше. Так что сейчас я довольно четко представляю, что я хочу видеть в резюме. Но для начала я расскажу, чего в резюме я видеть не хочу.

Шаблоны


Многие аутсорсинговые компании придумали себе шаблоны резюме. Мотивация, в принципе, понятна, они хотят все унифицировать чтобы использовать machine learning для извлечения хороших кандидатов все выглядели одинаково, как рядовые в строю. Однако, шаблоны эти одинаковы для всех позиций и составлены мудрыми CTO недалекими HR, которые понятия не имеют, что такое реально классный программист.

Читать дальше →
Total votes 272: ↑181 and ↓91+90
Comments211

Резюме программистов. Часть 2 (хорошие)

Reading time3 min
Views283K
Я сполна получил п***й за первый пост. Самое время писать продолжение! Итак, чего же мне надо от резюме разработчика?

Все ниже в порядке приоритета.

Код


Я хочу видеть код, которым вы гордитесь. Я хочу знать, как вы называете переменные, как декомпозируете систему, как проверяете входные условия и насколько любите все усложнять. Очень желательно, если будет описание проблемы, иначе понимание кода и решения затруднено.
Читать дальше →
Total votes 201: ↑135 and ↓66+69
Comments341

DisQwerty: чтобы печатать не нужно больше одной кнопки

Reading time3 min
Views22K
Всем привет! Как я писал тут, я разработал клавиатуру для людей с очень тяжёлыми двигательными нарушениями, которые могут нажимать только одну кнопку. Наверное нужно сразу оговориться, что это не уникальная разработка и такие клавиатуры есть во многих операционных системах в стандартных программах экранных клавиатур. Однако моя разработка включает уникальные функции. О них и как они появились я сейчас расскажу. Ссылки на GitHub будут в конце поста.


Лина пишет письмо отцу
Читать дальше →
Total votes 131: ↑129 and ↓2+127
Comments30

Полезные хаки и сниппеты для .htaccess

Reading time7 min
Views462K


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

О предназначении файла .htaccess знает каждый веб-разработчик. На базовом уровне он позволяет управлять доступом к каталогам сайта. Но добавляя в него различные дополнительные фрагменты кода, с ним можно сделать и много других интересных вещей.

Если же вам нужны базовые сведения о предназначении данного файла, то вы можете получить из нашей статьи введение в .htaccess (перевод данной статьи не делал, так как там основы, их достаточно в русскоязычном сегменте Сети, но если будет проявлен интерес, то можно и ее перевести для полноты картины — прим. переводчика), в которой достаточно подробно раскрыты все аспекты его применения.
Узнать больше
Total votes 114: ↑92 and ↓22+70
Comments82

Идеальный Мини-Хакинтош

Reading time6 min
Views131K
image

Когда в 2005 году Apple перешла на платформу Intel, энтузиасты со всего мира задались целью установить MAC OS X на обычные PC (Хакинтош). На пути реализации этой затеи стояли четыре причины. 2 физические и 2 юридические. Дело в том, что для запуска компьютера MAC используется не привычный BIOS, а собственный EFI загрузчик. Вторая причина, это чип SMC который установлен в каждом компьютере Mac. Он генерирует ключи для запуска всех системных приложений MAC OS X. Благодаря нашему соотечественнику под ником Netkas, удалось обойти эти два ограничения созданием эмулятора загрузчика EFI (Chameleon, Chemera, Clover) и эмулятора чипа SMC (FakeSMC.kext). Этих двух программных решений достаточно, что бы установить MAC OS на PC.
Читать дальше →
Total votes 63: ↑48 and ↓15+33
Comments125

Маслобойка

Reading time4 min
Views48K

Ты слышал про парня, который попрощался с OOП?


О нет. Ещё один? Что же он сказал?

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


Ох. Да, я слышал всё это раньше...

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


Двигаться дальше к чему?

Ты чего? К следующему технологическому прорыву, конечно!


А, к этому… И что там у нас на очереди?

Читать дальше →
Total votes 178: ↑136 and ↓42+94
Comments326

К хорошему привыкаем быстро. А ну, быстро, я сказала

Reading time4 min
Views11K
Именно плохие привычки мешают бедным людям разбогатеть – такое заключение сделали специалисты Университета Браун. Они провели масштабное исследование, на которое понадобилось 5 лет. Речь идет не о переедании, курении или чистке зубов по праздникам. Все гораздо серьезнее.


Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments15

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity