Как стать автором
Поиск
Написать публикацию
Обновить
536.64

Веб-разработка *

Делаем веб лучше

Сначала показывать
Период
Уровень сложности

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №136 (24 — 30 ноября 2014)

Время на прочтение4 мин
Количество просмотров50K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


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

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

Время на прочтение1 мин
Количество просмотров47K
Мы в Mozilla понимаем, что разработчики — это фундамент веба, поэтому мы активно продвигаем стандарты и продолжаем разрабатывать отличные инструменты, чтобы облегчить вам создание отличного веб-контента и приложений.

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

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

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


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

Я нашёл ошибку в браузере!

Время на прочтение1 мин
Количество просмотров36K


Наш коллега по браузерному фронту Пол Льюис aka @aerotwist из Google, видимо, порядком устал от неправильных багрепортов и опубликовал сегодня блок-схему, показывающую как это делать правильно. Я не удержался и решил перевести. С одной стороны, схема довольно очевидна для тех, кто хоть раз занимался тестированием, с другой — никогда не бывает лишним напомнить или показать схему тем, кто не в курсе.
Под катом полная картинка и ссылки на трекеры

Несколько интересностей и полезностей для веб-разработчика #17

Время на прочтение5 мин
Количество просмотров35K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Intercooler.js


Кто нибудь помнит FullAjax — разработку Руслана Синицкого sirus (нынешний основатель Jelastic)? Вкратце это библиотека для работы с AJAX с помощью объявления определенных атрибутов у элементов, а подробнее об этом написано в постах «Прямые ссылки на AJAX веб-сайтах – наша технология Fullajax Direct Link», «Полный AJAX. Теория и Примеры. Фишки и Фичи» и «Fly AJAX — пишите меньше, имейте больше. Нестандартный AJAX и индексация поисковиками». Вернемся к Intercooler, это нечто похожее:

<div id="targetDiv">Results Div...</div>
<i id="indicator" style="display:none" class="fa fa-spinner fa-spin">
<input id="hiddenInput" type="hidden" name="hidden" value="42"/>

<div ic-trigger-on="click" ic-verb="POST" ic-src="/example" ic-include="#hiddenInput" ic-indicator="#indicator" ic-target="#targetDiv" ic-transition="none">
    Click Me!
</div>

После клика по div, отправляется POST запрос со значением поля с #hiddenInput, а в процессе будет отображаться #indicator. Ответ будет передан в блок #targetDiv. Разве не здорово?

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

Приемы неявного вызова php кода, применяемые во вредоносных скриптах

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

Данный подход популярен среди разработчиков вредоносного кода, так как с одной стороны значительно усложняет анализ исходного кода, а с другой позволяет хранить код в текстовых данных. Например, часть вредоносного кода может загружаться со стороннего сайта, из базы данных, мета-данных jpeg/png/gif или передаваться в запросе к скрипту. Кроме того, часть кода, представленная в виде обычной текстовой строки, может быть легко зашифрована.

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

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

echo "Test"


который выводит слово «Test» на странице. Естественно, в реальных шеллах и бэкдорах имена переменных и функций, а также исполняемый код не хранятся в открытом виде и в большинстве случаев обфусцированы.

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

Разработка «браузерки» — функциональный уровень

Время на прочтение25 мин
Количество просмотров27K
Достаточно много вопросов поступило после прошлых статей относительно моей непосредственной роли в жизни проекта – все сводилось к желанию узнать технические подробности, не составляющие базовую логику мира, а непосредственно поддерживающие существование всего задуманного. На чьи-то вопросы уже были даны ответы, но некоторые моменты остались за кадром. Я долго пытался сообразить, что же такого хорошего я могу поведать про систему, что не являлось бы «банальными решениями», но было бы действительно необычным. Таковых, действительно архиважных и необычных, на мой взгляд, моментов так и не нашлось.

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

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

Пернатск :: Замок ассасинов
Читать дальше →

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №93 (19 — 25 января 2014)

Время на прочтение5 мин
Количество просмотров40K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


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

Обзор литературы прочитанной за два года

Время на прочтение19 мин
Количество просмотров55K
Привет Хабра! Когда я только начинал заниматься веб-разработкой, то даже не мог представить, сколько литературы нужно прочесть и какой объем знаний получить, чтобы стать нормальным специалистом. Кроме того, сфера постоянно меняется, и знания устаревают.

Для меня проблема заключалась в том, что я не люблю читать и чтение расцениваю исключительно как неизбежную работу, которую необходимо проделать, чтобы добыть материал из печатного вида. Но так получилось, что для повышения своей квалификации читать приходится. Я установил для себя норму — одна книга в месяц. С одной стороны, это мало, с другой, — много (если действительно придерживаться плана). Ну и раз уж мне приходится читать в принудительном порядке, это должно давать какую-либо выгоду. Каждая книга — это мучение, и я не вижу смысла тратить время на литературу, которая мне ничего не даст после. Поэтому каждый раз, попадая в книжный и держа в руках очередную книгу, я задаю себе вопрос: «А зачем?! Какой толк от этих кусков бумаги?! Что я вообще тут делаю?!». Чтобы вы не тратили время на книги, которые мне кажутся бесполезными, я решил написать небольшой обзор прочитанной за два года литературы и прочих найденных источников знаний. Весь материал ниже так или иначе связан с веб-разработкой и различными её аспектами. Ниже описаны только те книги, которые я прочитал. Те книги, которые «не осилил»/не дочитал (например, про NodeJS и пару фреймворков) не привожу.
Читать дальше →

Управляем светодиодной лентой при помощи Raspberry Pi и Android

Время на прочтение8 мин
Количество просмотров66K
Здравствуй, завсегдатай и гость Хабра.

Давно читаю Хабр, но всё никак не было поводов написать статью, пока меня не накрыло мне очередной раз не напомнили о существовании Raspberry Pi и о такой вещи как WS2801 LED Strip. Тут уже однажды писали о подобной, но для связи с Ардуиной, чтобы получить Эмбилайт, поэтому я решил рискнуть и написать свою статью, с Лего и Котиками.

В статье будет мало картинок, несколько видео, много текста, включая лирические отступления не по сабжу и совсем мало кода, но в самом конце будут ссылки на проект на Гитхабе. А теперь обо всём по-порядку:
Читать дальше →

Tetris на javascript (в 30+ строк)

Время на прочтение2 мин
Количество просмотров59K
Решил поддержать тему!
image
Тетрис в 30+ строк js кода.
  • Знает все фигуры тетриса
  • Управление с клавиатуры
  • ВВЕРХ — фигурки крутятся по часовой стрелке
  • ВНИЗ — ускорить падение
  • Скорость падания постепенно увеличивается
  • Очки подсчитываются

ссылка на jsfiddle
Читать дальше →

Скриншоты без десктопа на HTML5

Время на прочтение4 мин
Количество просмотров28K
Практически каждый день я пользуюсь почтой Gmail, но вот недавно заметил, что если сделать скриншот экрана (www.take-a-screenshot.org), то простым нажатием Ctrl + V этот скриншот можно скопировать прямо в текст письма Gmail. Это работает везде, но естественно кроме IE. Заинтересовавшись вопросом как это происходит нагуглил следующий пост на Stackoverflow. Под сильным впечатлением от возможностей HTML5 clipboardData решил сделать простенький портал, где без всяких Desktop приложений любой юзер может загрузить скриншот просто скопировав его.
Под катом исходники с объяснением и примерами

Ещё о тестировании в Яндексе роботами

Время на прочтение9 мин
Количество просмотров28K
С точки зрения тестирования, Яндекс — это тысячи человеко-часов работы по проверке большого количества сервисов. Функциональности много, сценариев взаимодействия — миллионы. Мы стараемся сделать так, чтобы люди занимались только сложными и интересными задачами, а всю рутинную работу можно было бы поручить роботу.

В идеале именно робот должен проверять, что в результате простой загрузки страницы или сложного взаимодействия с формой ввода не возникает никаких вылетающих наружу исключений, “NaN”, “undefined” или пустых строк на месте подгружаемых данных. Экспериментальный проект по созданию и внедрению такого робота имеет кодовое название “Роботестер”.

image

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

Windows Store c точки зрения разработчика

Время на прочтение4 мин
Количество просмотров31K

Windows Store для Windows 8 достаточно молодой. Некоторые разработчики уже успели его попробовать в деле, другие еще не решились. Сегодня я хочу немного рассказать про то, как этот магазин приложений выглядит изнутри, а именно с точки зрения разработчика.

Как один из самих молодых магазинов приложений Windows Store, по идее, должен был бы впитать в себя самое лучшее из Google Play и App Store. Но на практике оказалось, что этого не случилось.

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

Налоговая декларация (Tax Profile)

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


Попробуйте догадаться, что означает надпись: «Ваша налоговая декларация заполнена неправильно. Пожалуйста, исправьте ошибки».

Читать правильный ответ

Ближайшие события

Сайты для онлайн-обучения веб-разработчиков и веб-дизайнеров

Время на прочтение2 мин
Количество просмотров128K
В заметке собраны сайты с обучающими материалами для веб-дизайнеров и веб-разработчиков. Старался не повторяться с постом 27+ ресурсов для онлайн-обучения хабраюзера nicolausYes.

Academic Earth


Множество бесплатных лекций, в том числе от известных университетов (Гарвард, MIT, Стенфорд и др.).

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

Статистика зарплатных ожиданий от HeadHunter

Время на прочтение3 мин
Количество просмотров49K
Любые темы, связанные с зарплатой, вызывают живой интерес. Мой топик «Как понять, сколько ты стоишь, или зарплатные кластеры в действии!» о том, как самостоятельно собрать статистику по зарплатам, набрал почти сотню комментариев и получил позитивную оценку у читателей.
Сегодня я расскажу, как мы автоматизировали визуализацию подобной статистики, создав новый сервис «Статистика зарплатных ожиданий». Доступен он пока только работодателям, а к сервису для соискателей (со статистикой по зарплатным предложениям) приступим позднее.

Под катом подробности о фиче и о том, как мы ее разрабатывали.
Читать дальше →

Opera тоже переходит на движок Blink

Время на прочтение1 мин
Количество просмотров61K


Компания Google вчера сделала громкий анонс о создании более компактного и производительного браузерного движка Blink, оптимизированного для многопроцессной архитектуры Chromium. Новый движок станет результатом большой зачистки: из форка WebKit удалят 7 тыс. файлов и 4,5 млн строк кода.

Издание TNW оперативно взяло комментарий у представителей компании Opera. Они подтвердили неизменность своей позиции по привязке к проекту Chromium. Другими словами, они тоже переходят на open source движок Blink.
Читать дальше →

Вышел новый PyCharm 2.7 с поддержкой Django 1.5, улучшенным рефакторингом и автодополнением

Время на прочтение2 мин
Количество просмотров19K
В свежей версии PyCharm 2.7 команда разработчиков постаралась учесть пожелания сообщества, внесла несколько полезных улучшений и добавила поддержку свежей версии Django.

Более предметно:

Внешний вид
В версии 2.7 PyCharm получил новую тему интерфейса в темных тонах (Darcula), знакомую по IntelliJ IDEA 12.



Если вы — счастливый обладатель новенького MacBook, то ваш глаз порадуют новые значки, разработанные специально для экранов Retina.
а внтури?

Анимированные кнопки произвольной ширины на CSS3

Время на прочтение1 мин
Количество просмотров23K
Перед нами стояла задача сверстать универсальную кнопку только на HTML и CSS, не имеющую фиксированного размера по ширине, которая в дефолтном состоянии отображает только иконку, а при наведении будет показываться текст внутри неё.

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

JavaScript SIP библиотека от авторов стандарта

Время на прочтение1 мин
Количество просмотров20K
Я уже писал заметку на эту тему, с того времени стала доступна еще одна JavaScript SIP библиотека. В первой статье я упоминал её, но на тот момент вся информация о библиотеке включала: описание авторов и видео демонстрирующее работу. Сейчас исходный код открыт под MIT лицензией, имеются документация и форум.

Примечательно, что данную библиотеку разрабатывают авторы того самого стандарта, который и описывает особенности SIP протокола при работе поверх WebSocket. Помимо этого разработчики указывают следующие достоинства:
  • легковесна, ~140КB
  • простой и мощный API
  • совместима с популярными SIP серверами
  • аудио-видео вызовы; мгновенные сообщения
  • статус пользователей (эта функция уникальна, пока отсутствует в других библиотеках)

От себя к преимуществам добавлю: компетентность и отзывчивость авторов, багрепорты закрывают очень быстро.

Под катом длинное подробное видео с пошаговой инструкцией в первой половине для тех кто захочет попробовать самостоятельно, и демонстрацией работы во второй половине (c 3:10). Кстати, в свежих версиях Chrome, WebRTC — протокол для обмена аудио-видео данными, доступен и включен по умолчанию.
Читать дальше →

Гео-модуль для PHP приложений

Время на прочтение5 мин
Количество просмотров33K
image Вопрос «Где?» возникает сразу же после вопроса «Что?» эта закономерность верна и в вебразработке. Многие сайты запрашивают информацию у пользователя, предлагая ему ввести свой адрес, т. е. страну, регион, город, улицу, дом почтовый индекс. Но как потом обрабатывать эти данные, если они были указаны в свободной форме? В своих первых проектах мы использовали свой «велосипед», но по мере роста и развития это «чудо» превратилось в «чудовище», которое поставило крест на эффективной обработке гео-информации о наших пользователях. Мне была поставлена задача прибить этого монстра, заменив его стандартизованной гео-базой и простым интерфейсом для работы с ней. Гугление на эту тему не дали готового решения, поэтому пришлось отбросить простой вариант и сделать свой гео-модуль.
Описание сего процесса и сам модуль под катом

Вклад авторов