Как стать автором
Обновить
@furtaevread⁠-⁠only

Пользователь

Отправить сообщение

Ресайз картинок в браузере. Все очень плохо

Время на прочтение10 мин
Количество просмотров104K
Если вы когда-нибудь сталкивались с задачей ресайза картинок в браузере, то вы наверное знаете, что это очень просто. В любом современном браузере есть такой элемент, как холст (<canvas>). На него можно нанести изображение нужных размеров. Пять строчек кода и картинка готова:

function resize(img, w, h) {
  var canvas = document.createElement('canvas');
  canvas.width = w;
  canvas.height = h;
  canvas.getContext('2d').drawImage(img, 0, 0, w, h);
  return canvas;
}

Из холста картинку можно сохранить в JPEG и, например, отправить на сервер. Можно было на этом закончить статью, но сперва давайте взглянем на результат. Если вы поставите рядом такой холст и обычный элемент <img>, в который загружена та же картинка (исходник, 4 Мб), то вы увидите разницу.

img
Читать дальше →
Всего голосов 156: ↑152 и ↓4+148
Комментарии90

Почему научиться программировать так чертовски тяжело?

Время на прочтение14 мин
Количество просмотров425K
Привет, Хабр!

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

  • С чего начать обучение программированию?
  • У вас есть курс по Java для новичков, но я слышал, что нужно изучать Python, правда ли это?
  • На других сайтах все просто и понятно, а у вас какие-то компиляции и тесты!
  • Непонятно зачем нужен этот ваш курс по алгоритмам, в реальной жизни все алгоритмы уже реализованы в стандартных библиотеках

Но сложнее всего объяснить новичку, грубо говоря, во что он ввязывается. Благодаря очень простым, игровым образовательным проектам многие считают, что программирование это очень легко, а наши виртуальные машины, где нужно запускать тесты и компилировать код – это надуманная сложность. Давно хотелось найти такой материал, который бы подготовил новичка к длинному и сложному пути к карьере программиста. И недавно наши коллеги из Viking Code School такой материал написали! А мы его перевели для вас.




Квинси Ларсон был просто “офисным парнем в костюме”. Он решил научиться программировать. Начал спрашивать людей вокруг. Изучил немного Руби, потом быстренько посмотрел на другие языки вроде Scala, Clojure и Go. Он изучил Emacs, а потом Vim, а потом раскладку Dvorak. Он втыкал в Линукс, копался с Лиспом и кодил на Питоне, и жил при этом в командной строке больше полутора лет.

Его швыряло туда-сюда как листочек в торнадо. Каждый совет, который он слышал, тащил его то в одну, то в другую сторону, до тех пор пока он не прошел “каждый онлайн-курс по программированию во вселенной”. В конце концов, не смотря на то, что он получил работу разработчика ПО, Квинси:

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

Ох. Звучит знакомо?
Читать дальше →
Всего голосов 65: ↑55 и ↓10+45
Комментарии44

Список YouTube-каналов для обучения веб-разработке

Время на прочтение2 мин
Количество просмотров218K
image


Привет, хабражители!

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

Также хочу попросить вас о небольшой услуге: если вы знаете канал, не вошедший в список — опубликуйте ссылку на него в комментариях или отправьте pull request. Сообщество будет благодарно вам.

Под катом — текущая версия списка.
Читать дальше →
Всего голосов 64: ↑59 и ↓5+54
Комментарии16

CSS спрайты: основные техники и полезные инструменты

Время на прочтение3 мин
Количество просмотров245K
Использование CSS-спрайтов на сайте позволяет повысить производительность и грамотно организовать элементы интерфейса.



Sprite Sheet — это одно большое изображение мелких графических элементов сайта, например иконок или кнопок. И благодаря CSS можно отображать каждый элемент отдельно.
Читать дальше →
Всего голосов 88: ↑77 и ↓11+66
Комментарии33

Приятная сборка frontend проекта

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

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

UPD (13 марта 2015): Заменил несколько плагинов на более актуальные + решил проблему с импортом CSS файлов внутрь SCSS

Читать дальше →
Всего голосов 61: ↑53 и ↓8+45
Комментарии119

Адаптивный и мобильный дизайн с CSS3 Media Queries

Время на прочтение7 мин
Количество просмотров590K
Разрешение экрана в наши дни колеблется от 320px (iPhone) до 2560px (большие мониторы) или даже выше. Пользователи больше не просматривают сайты только на настольных компьютерах. Теперь пользователи используют мобильные телефоны, небольшие ноутбуки, планшетные устройства, такие как iPad или Playbook для доступа в интернет. Поэтому, традиционный дизайн с фиксированной шириной больше не работает. Дизайн должен быть адаптивным. Структура должна автоматически изменяться с учетом всех разрешений дисплеев. Эта статья покажет вам как создавать кросс-браузерный адаптивный дизайн при помощи HTML5 и CSS3 media queries.
Читать дальше →
Всего голосов 91: ↑90 и ↓1+89
Комментарии32

02 Ссылки для UX-специалистов

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


Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии0

Пишем максимально эффективный тест-кейс

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

Что такое тест-кейс?


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

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

Зачем нужны тест-кейсы?


Тест-кейсы должен помочь нам провести проверку продукта без ознакомления с всей документацией. Написанный один раз, удобный в поддержке тест-кейс сэкономит много времени и сил тестировщикам.
Читать дальше →
Всего голосов 6: ↑4 и ↓2+2
Комментарии2

Автоматизация тестирования iOS-приложений с применением Calabash и Cucumber

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


В процессе разработки любого приложения наступает момент, когда в связи с ростом функциональности трудозатраты на регрессионное тестирование становятся непомерно велики. Другая причина значительной трудоемкости тестирования iOS-приложений (так же как и любых других мобильных приложений) — разнообразие линейки поддерживаемых устройств и версий ОС, необходимость тестирования в альбомном и портретном режимах, а также при различных условиях соединения с интернетом. Стремление оптимизировать процесс тестирования приводит нас к необходимости его полной или частичной автоматизации.

В этой статье я расскажу о том, как мы автоматизируем тестирование наших приложений (ICQ и Агент Mail.Ru), поделюсь нашими наработками в этой области и упомяну о проблемах, с которыми мы сталкиваемся.
Читать дальше →
Всего голосов 48: ↑46 и ↓2+44
Комментарии10

Журнал Nature открывает все статьи для просмотра

Время на прочтение1 мин
Количество просмотров21K
Издатели журнала Nature — одного из самых старых и авторитетных журналов естественно-научной тематики в мире — объявили, что все его экземпляры, начиная с 1869 года, будут доступны для чтения через специальное приложение для более чем 6000 университетов по всему миру. Скопировать или распечатать статью будет невозможно.

Доступ к статьям будет осуществляться при помощи специальной платформы ReadCube, которая будет допускать просмотр PDF-версий статей, их аннотацию и возможность поделиться ими с коллегами, чтобы статью можно было просмотреть через браузер. Также документ можно будет сохранить в свою коллекцию в облаке ReadCube — аналогично работает iTunes для медиафайлов.
Узнать подробности
Всего голосов 23: ↑22 и ↓1+21
Комментарии23

Фандрайзинг и краудфандинг своими руками

Время на прочтение2 мин
Количество просмотров5.4K
Пару недель назад незаметно обновился маленький, но очень полезный плагинчик для Wordpress по сбору пожертвований.
image
В новой версии появилась возможность делать полноценные кампании (почти как на Планете или там Кикстаретере), но прямо на вашем сайте. Есть готовые шаблоны кампаний, «градусники»/«прогресс-бары», автоматическое формирование списков доноров и всякие мелочи вроде шорткодов, виджетов, и прочих «коррекционных пожертвований».
Конечно, на фоне такой новости про Яндекс.Деньги и такой новости про Webmoney это прошло очень тихо и камерно.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии10

Автоматическое тестирование Android приложений c любовью

Время на прочтение1 мин
Количество просмотров15K
Новая видеозапись одного из докладов с нашей конференции мобильных разработчиков #MBLTDev. На этот раз мы решили выложить видео для Android-разработчиков и тестировщиков «Автоматическое тестирование Android приложений c любовью» от Алексея Коровянского.

Алексей является Android-разработчиком и основателем некоммерческого сообщества разработчиков Google Developer Group Омск.


Презентация

В своем докладе Алексей рассказал про проблемы и трудности, с которыми сталкиваются при автоматизации тестирования. Привел примеры, исходя из своего опыта, решение проблем, примеры того, что было раньше, что есть сейчас и сделал прогноз того, что нас ожидает в будущем. Кроме того, Алексей рассказал про тестирование на примере двух фреймворков и про Espresso и Robolectic.
Читать дальше →
Всего голосов 22: ↑18 и ↓4+14
Комментарии0

PIN-код при оплате картой — точки над i

Время на прочтение3 мин
Количество просмотров186K
Всем доброго дня!

После прочтения нескольких статей на хабре о пластиковых картах, POS терминалах и сопутствующих вещах, мне показалось, что эта тема довольно интересна сообществу. В данной небольшой публикации я хочу окончательно разобрать тему ввода PIN–кода на POS терминалах и ответить, наконец, в меру своих знаний, на вопрос: почему же в одних случаях требуется ввод PIN, а в других — нет?
Читать дальше →
Всего голосов 144: ↑136 и ↓8+128
Комментарии256

Docker в браузере, или как создать и «расшарить» среду разработки

Время на прочтение7 мин
Количество просмотров27K
Docker нынче не использует только ленивый. Вокруг этой технологии заварилась очень интересная каша, не в последнюю очередь благодаря технологиям и продуктам, интегрировавшим Docker, который стал частью их инфраструктуры. Раннеры на Docker-е — это уже чуть ли не “must” для облачных IDE. Что уж говорить, если Google однозначно признали преимущества запуска приложений в контейнерах, а не на “чистом железе”. Впрочем, это тема другой дискуссии.

Создание среды разработки в браузере

Итак, Docker, скорее всего, изменит лицо технологического мира. Вернее, он уже его меняет. Все мало-мальски активные компании уже выложили свои докер образы, в которых запускаются их продукты. Ни тебе настройки среды, ни установки переменных окружения… Скачал образ, примонтировал локальные ресурсы, если нужно (“сорцы” проекта, локальный репозиторий и так далее), и горя не знаешь.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии17

JarvisJS: Функциональное тестирование веб-приложений

Время на прочтение4 мин
Количество просмотров17K
Здравствуй Хабр! В этом посте мы хотели бы поздороваться и впервые показать миру наш проект JarvisJS.com — сервис для функционального тестирования веб-приложений. Проект еще совсем молод и с любовью разрабатывается командой из трех человек в течении вот уже семи месяцев.

Под катом мы расскажем о нашем сервисе и о причинах, побудивших нас на его создание.
Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии18

Тестируем iOS8 приложения с Xcode 6.1 без Apple Developer Program Membership (Jailbreak) (Обновлено для XCode 6.4)

Время на прочтение3 мин
Количество просмотров25K
В конце мая 2014 года я писал подробную статью как тестировать приложения на iOS7 и Xcode 5.1.1, но не далее как два месяца назад миру был представлен iPhone 6 и iPhone 6 Plus с новой операционной системой iOS 8 и Apple изменила что-то в коде и старый «твик» более не работает. Знаю, что некоторым интересно попробовать написать приложение для iOS, чисто в познавательных целях, но 99USD платить Apple за «любознательность» не хочется. Не отчаивайтесь, не все так страшно, более того, теперь всё гораздо проще — больше не нужно создавать сертификаты и компилировать ldid для отладки.


Читать дальше →
Всего голосов 40: ↑30 и ↓10+20
Комментарии16

Meteor. Разрабатываем TODO List

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

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

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

И еще одно предупреждение: в данном уроке будут использоваться следующие технологии для непосредственного написания примера:

  • jade — html препроцессор;
  • less — css препроцессор;
  • coffeescript — язык программирования, компилируемый в javascript.

Видео, демонстрирующее приложение, полученное в ходе урока



И кому все еще интересно, добро пожаловать под кат.
Читать дальше →
Всего голосов 67: ↑59 и ↓8+51
Комментарии19

Естественный отбор — враг бота

Время на прочтение1 мин
Количество просмотров68K
Интересный баг только что отловили. Рассказываю.

Имеем сервис с капчами. Чтобы уменьшить время отклика логично генерировать картинки по случайному коду в свободное время в час наименьшей нагрузки. Так и делаем — ставим в крон задачку, делаем 100500 капч (картинка + код в базе) и в течение дня их показываем. На тот случай если прегенерированные капчи все-же закончатся, делаем режим аварийного полета — если отгаданная и, в связи с этим, убираемая из базы капча уменьшает общее число капч до опасного уровня (например, остается меньше 50), то генерируем новую капчу вместо убранной.

Казалось бы, простая и рабочая схема. Так и было до недавнего времени.
Читать дальше →
Всего голосов 173: ↑150 и ↓23+127
Комментарии70

Security-фиксы iOS 8

Время на прочтение1 мин
Количество просмотров22K
Компания Apple выпустила существенное обновление для своей мобильной iOS, которое называется iOS 8. Обновление касается устройств iPhone 4s+, iPod 5 touch+, iPad 2+. Всего компания исправила 58 уязвимостей в iOS. Многие из исправленных уязвимостей могли использоваться атакующими для исполнения произвольного кода в систем, а также для повышения там своих привилегий. Также был доработан механизм рандомизации MAC-адреса при поиске Wi-Fi сетей, о котором говорилось за несколько месяцев до появления iOS 8. Использование статического MAC-адреса делает возможным пассивное отслеживание устройства при поиске им Wi-Fi сетей, такая уязвимость относится к типу information-disclosure.



Мы рекомендуем пользователям обновить свои устройства до up-to-date версии iOS 8.

Читать дальше →
Всего голосов 49: ↑41 и ↓8+33
Комментарии14

Автоматизированное тестирование — это просто! Как я тестировал Печкина

Время на прочтение6 мин
Количество просмотров96K
Не так давно стал посматривать в сторону Selenium WebDriver, который в связке с PageObject становится прекрасным инструментом для автоматизированного тестирования. Те, кто не знаком с Selenuim, могут ознакомиться в этой статье, а здесь можно прочесть конкретно про Selenium WebDriver.

При написании этой статьи были использованы:
  1. Maven
  2. TestNG
  3. Selenium WebDriver
  4. PageObject
  5. Подопытный кролик: pechkin-mail.ru

Подробнее
Всего голосов 16: ↑13 и ↓3+10
Комментарии19

Информация

В рейтинге
Не участвует
Откуда
London, England - London, Великобритания
Дата рождения
Зарегистрирован
Активность