Search
Write a publication
Pull to refresh
10
0
Владислав Шевченко @lutov

Архитектор ПО

Send message

Компоненты авторизации и регистрации в CMS 1C-Bitrix

Reading time10 min
Views94K
В CMS 1C-Bitrix вниманию разработчикам представлено четыре системных компонента для реализации функционалов авторизации, смены пароля и регистрации рядовых пользователей системы (system.auth.*), но отсутствует официальная документация оных. В этой статье вы узнаете ограничения и недостатки использования этих компонентов, почему следует использовать именно их, каким образом лучше их использовать и, возможно, сделаете некоторые выводы о том, почему документации нет.
Читать дальше →

Десять типичных вопросов на собеседованиях на знание HTML

Reading time7 min
Views100K
Аурэлио Де Роза несколько дней назад выпустил, на мой взгляд, очень привлекательную статью, которой я хочу с вами поделиться на тот случай, если у вас плохо с английским.
Читать дальше →

BabelFish — полиглот в мире JavaScript

Reading time8 min
Views12K
BabelFish


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

Например, в REG.RU на сегодня в словарях более 15000 фраз, из которых порядка 200 используют склонение, и более 2000 используют подстановку переменных. Каждый день добавляется не менее 10 фраз. И это при том, что мы пока только начали локализацию сайта и впереди планы на новые языки.

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

DON'T PANIC.

Недавно был опубликован пакет BabelFish 1.0, предназначенный для интернационализации JavaScript-приложений.

Идеи, лежащие в его основе, настолько пришлись нам по душе, что мы даже перенесли их на Perl в виде CPAN-модуля Locale::Babelfish, и используем это для Perl-приложений. Но вернёмся к JavaScript-реализации.
Читать дальше →

Вышла новая версия reCaptcha API 2.0

Reading time3 min
Views132K
На днях, занимаясь очередным внедрением reCaptcha для одного из проектов, столкнувшись с небольшой проблемой в области отображения нескольких защитных изображений на 1 странице с помощью AJAX я в очередной раз пошел на страницу официальной документации «reCaptcha» и обнаружил, что документация существенно отличается от предыдущих версий.
Воспользовавшись поиском стало ясным — в мир вышла «recaptcha 2.0» с обновленным API и визуализацией а так же рядом других «плюшек», о чем я и расскажу в данной статье.
Читать дальше →

Выразительный JavaScript: Рисование на холсте

Reading time23 min
Views126K

Содержание




Рисование — это обман.
М.К.Эшер


Браузеры позволяют нам рисовать графику разными способами. Проще всего использовать стили для расположения и расцветки стандартных элементов DOM. Так можно добиться многого, как показал пример игры из предыдущей главы. Добавляя частично прозрачные картинки узлам, мы можем придать им любой нужный вид. Возможно даже поворачивать или искажать узлы через стиль transform.

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

Есть две альтернативы. Первая – SVG, масштабируемая векторная графика, также основанная на DOM, но без участия HTML. SVG – диалект для описания документов, который концентрируется на формах, а не тексте. SVG можно встроить в HTML, или включить через тег <img>.

Вторая альтернатива – холст (canvas). Холст – это один элемент DOM, в котором находится картинка. Он предоставляет API для рисования форм на том месте, которое занимает элемент. Разница между холстом и SVG в том, что в SVG хранится начальное описание форм – их можно в любой момент сдвигать или менять размер. Холст же преобразовывает формы в пиксели (цветные точки растра), как только нарисует их, и не запоминает, что эти пиксели из себя представляют. Единственным способом сдвинуть форма на холсте является очистить холст (или ту часть, которая окружает форму) и перерисовать её на другом месте.
Читать дальше →

PHPStamp — честная генерация DOCX документов из шаблона

Reading time2 min
Views27K
Это еще одна попытка реализовать стабильный, полноценный шаблонизатор офисных документов, основанных на XML, пользуясь стандартными для PHP средствами DOMDocument и XSL.

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

Перезагрузка ЛитТайма или небольшая история 2х лет пробуксовки стартапа

Reading time4 min
Views2.9K


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

Google: рекомендации для приложений в Google Play

Reading time4 min
Views24K
Тема приложений является одной из самых обсуждаемых и «трендовых», а тема фичиринга и успешности приложения в том или ином сторе — самая обсуждаемая в ней подтема.

На днях было опубликовано руководство The Secrets to App Success on Google Play, которое, если переводить практически дословно, поможет вашему приложению или игре стать успешными в Google Play (кстати, скачать книгу можно из Google Play).

image

Кто-то подумает, что это, конечно, здорово, но вряд ли станет волшебной палочкой-выручалочкой для приложения. Определенно в руководстве есть советы, которые могут быть интересны и полезны начинающим разработчикам, пишущим не только под Android, но и под iOS, Windows или для магазина Amazon и т.п. Разработчики, которые уже не первый год в индустрии, смогут найти для себя рекомендации, применительные именно к Google Play.
Дальше

LESS: программируемый язык стилей

Reading time13 min
Views432K
Я не люблю CSS. Он простой и понятный. Это движущая сила Интернета, но он слишком ограниченный и им трудно управлять. Пришло время привести этот язык в порядок и сделать его более полезным, используя динамический CSS при помощи LESS.
Объясню свою позицию на примере. Почему бы вместо использования #FF9F94 для получения темно-персикового цвета просто не хранить значение этого цвета в переменной для её последующего использования? Что бы перекрасить сайт достаточно будет изменить значение переменной всего в одном месте и всё.
Другими словами: это будет очень изящно, если мы будем использовать немного программирования и логики в CSS, что бы сделать его более мощным инструментом. Хорошо, что это всё возможно с использованием LESS.
Так что же такое LESS?

ObjectManager в API Яндекс.Карт. Как быстро отрисовать 10 000 меток на карте и не затормозить всё вокруг

Reading time10 min
Views112K
Перед разработчикам, которые используют API Яндекс.Карт, довольно часто встаёт задача отобразить много объектов на карте. Действительно много — порядка 10 000. Причем эта задача актуальна и для нас самих — попробуйте поискать аптеки на Яндексе. На первый взгляд кажется: «А в чем собственно проблема? Бери да показывай». Но пока не начнешь этим заниматься, не поймешь, что проблем на самом деле целый вагон.



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

Удобное удаленное управление консолью linux из-под Windows

Reading time5 min
Views70K
Итак, друзья, некоторое подмножество нас (людей) так или иначе испытавает необходимость удаленного управления компьютером (как правило, сервером) на linux (способ может сработать и в BSD, и в Mac OS X, но я не пробовал) при помощи ssh. Другое подмножество использует Windows в качестве ОС на основной рабочей машине. К пересечению этих подмножеств обращена моя статья.

Полезности, ради которых затевается всё вселье:
1. Сохранение подключения при обрыве связи. Этот пункт для меня самый важный и сыграл решающую роль в том, чтобы взяться за настройку такой системы. Дело в том, что я живу в общежитии с очень-очень нестабильным интернетом, и обрывы связи у меня (в плохие дни) могут происходить поминутно. А putty требует последовательности действий, чтобы переподключиться каждый раз
2. Сохранение сессии, включая текущую директорию, историю команд и вывода. Зачастую, единственной задачей при подключении к серверу стоит: зайти в одну и ту же директорию и написать git pull. Чтобы каждый раз не вспоминать путь к этой директории, нужно сохранение сессии
3. Терминал поддерживает вкладки. Самое главное, что данный терминал можно использовать также и для cmd, и для PS, и для git bash консоли. Поэтому не придется держать несколько разных терминалов открытыми.
4. Плюсы tmux: многооконность в одной сессии и split

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

Теоретический минимум *nix-based-систем для WebDev-падавана

Reading time12 min
Views110K


Помни: сила рыцаря-джедая — это сила Вселенной.
Но помни: гнев, страх — это всё ведет на темную сторону Силы.
Как только ты сделаешь первый шаг по темному пути,
ты уже не сможешь с него свернуть…


Добрый день, уважаемый галактический сенат! На связи снова Денис Мельский, и сегодня на повестке дня — определение теоретического минимума познания *nix систем для юного падавана web-мастерства.

Хотелось бы начать с того, что все мы прекрасно знаем: на 67.4 % наши любимые интернеты крутятся на *nix-based-серверах, а в жизни среднестатистического web-разработчика в вакууме — так и на все 90 %.



Для любителей пруфов — welcome.

Т. ч. в нашем ремесле без знания *nix-систем никак. Давайте проведем экскурс в мир *nix и поймем, какими знаниями должен обладать юный падаван.

Предлагаю рассмотреть три юниорских степени познания дзена управлением шайтан-машиной ака *nix-сервак на примере всеми любимой ubuntu.
Читать дальше →

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

Reading time2 min
Views61K
Уровень подготовки веб-мастера: любой

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

Чтобы предупредить возможные неудобства пользователей мобильных устройств при просмотре сайтов, мы станем помечать в результатах нашего поиска страницы, оптимизированные для смартфонов и планшетов.
Отметка “Для мобильных” в результатах поиска
Отметка «Для мобильных» в результатах поиска
Для мобильных

Что такое утечки памяти в android, как проверить программу на их отсутствие и как предотвратить их появление

Reading time14 min
Views89K
В этой статье для начинающих android-разработчиков я постараюсь рассказать о том, что такое «утечки памяти» в android, почему о них стоит думать на современных устройствах, выделяющих по 192МБ на приложение, как быстро найти и устранить эти утечки в малознакомом приложении и на что нужно обращать особое внимание при разработке любого приложения.


Конечная цель этой статьи — ответ на простой вопрос:
Куда нажать, чтобы узнать, какую строчку в приложении поправить?

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

JavaScript F.A.Q: Часть 2

Reading time14 min
Views76K
image

Около 2-х месяцев назад я и TheShock собирали вопросы по JavaScript в теме FAQ по JavaScript: задавайте вопросы. Первая часть, те вопросы, которые достались мне, появилась буквально через несколько дней JavaScript F.A.Q: Часть 1, а вот вторая часть все не выходит и не выходит. TheShock сейчас переезжает в другую страну и поэтому ему не до ответов. Он попросил меня ответить на его часть. Итак вторая часть ответов — те вопросы, которые достались тоже мне.
Читать дальше →

JavaScript F.A.Q: Часть 1

Reading time15 min
Views74K
image

Несколько дней назад мы с TheShock создали топик в котором собирали ваши вопросы, касательно JavaScript (архитектура, фрэймворки, проблемы). Настало время ответить на них. Мы получили очень много вопросов, как в комментариях так и по email. Эта первая часть ответов — те вопросы, которые достались мне.
Читать дальше →

Краткий конспект по языку JavaScript

Reading time15 min
Views114K
Я —.NET разработчик. Но в последнее время всё чаще сталкиваюсь с JavaScript. Причём, процентах в 50 случаев я что-то на нём пишу, в остальных 50 — разбираюсь с чужим кодом, да ещё и прошедшим через минификацию, а иногда и обфускацию. В этой статье захотелось поделиться теми моментами, которые мне показались важными для понимания языка и эффективной работы с ним. Тут не будет ничего нового или неизвестного для людей, уже имевших дело с языком, и не будет чего-то такого, чего нельзя найти в других источниках. Для меня статья будет полезна как способ лучше разобраться в предмете, для читателей, я надеюсь, — как повод освежить знания.

Брендан Айк упоминал, что JavaScript был создан за 10 дней. Думаю, идея вынашивалась дольше. Как бы то ни было, язык получился и с тех пор только набирает популярность. Особенно после появления AJAX.

JavaScript — язык со слабой динамической неявной типизацией, автоматическим управлением памятью и прототипным наследованием.

JavaScript состоит из трёх обособленных частей:

  • ядро (ECMAScript),
  • объектная модель браузера (Browser Object Model или BOM),
  • объектная модель документа (Document Object Model или DOM).


В статье, в основном, пойдёт речь о ядре. Конечно, в примерах кода будут использоваться элементы DOM и BOM, но заострять на них внимание не буду.
Читать дальше →

Подключаем FB, VK, G+ в Android. Версия Light

Reading time9 min
Views29K
Встала передо мной задача – сделать постинг ссылок из Андроида в пару-тройку соцсетей. Причем, максимально простой и легкий – чтобы не плодить сущности и как можно меньше заморачиваться с токенами, сессиями и прочая. Задача, действительно, минимум – только размещение ссылки в собственном аккаунте пользователя. Если к ссылке можно легко добавить описания или картинки – сделать, но не упираться.

В силу разных причин были выбраны Facebook, Vkontakte и Google+. Планировала добавить Twitter, но его Fabric к тому времени еще не вышел, а использовать стороннюю библиотеку не хотелось (см. п.2 ниже). Позже добавлю.

В итоге, задача для этих трех соцсетей получилась следующей:

  1. Максимально простой программный интерфейс постинга ссылок.
  2. Использование только нативных SDK (из тех соображений, что эти знания пригодятся в дальнейшем).
  3. Минимум кода – только самое необходимое для работы.
  4. Работать все должно вне зависимости от наличия у пользователя установленного клиента соцсети. Но если он есть – использовать диалоговые окна клиента.
  5. Пользователю должно выводиться сообщение об успешном или нет размещении записи.
  6. Должна быть возможность программно реагировать на успешное размещение записи.

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

Загрузка Eloquent связей используя left join вместо дополнительных запросов

Reading time1 min
Views21K
Если вы когда-либо пытались выполнить следующий код для загрузки данных из вашей Eloquent модели и получали ошибку:

MyModel::with('relation')->where('relation.title', '=', $title)->orderBy('relation.field', 'asc')

То вы наверняка знаете, что Eloquent производит загрузку связанных данных отдельным запросом и ни фильтрация, ни сортировки по ним работать не будут.

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

npm для простых смертных

Reading time5 min
Views650K


Эта статья предназначена для тех, кто не очень дружит с Node.js, но хочет использовать приложения вроде Grunt, Gulp и тому подобные. Процесс работы с этими приложениями подразумевает редактирование файла package.json и использование команд npm, так что понимание принципов работы npm поможет вам справиться с трудностями.
Читать дальше →

Information

Rating
Does not participate
Location
Белгород, Белгородская обл., Россия
Date of birth
Registered
Activity