Pull to refresh
24
0
Павел @Pamarkin

User

Send message

Многопоточное скачивание в cURL на PHP

Reading time 7 min
Views 34K
В данном топике представлена на мой взгляд удобная и функциональная реализация многопоточного скачивания на cURL для PHP. Возможно кому-то она будет полезна, а мне принесёт инвайт ;)

Скачиванием через cURL не пользовался пусть даже из интереса только ленивый. Будь-то из консоли, либо реализуя код на каком-либо ЯП. Решения блокирующего скачивания одной ссылки валяются на каждом углу сети, к примеру на php.net. Однако, если рассматривать реализации на PHP, то такой подход подчас не подходит ввиду высоких временных затрат на вспомогательные операции ( dns lookup, request waiting и подобные ). Для скачивания большого числа страниц последовательный вариант не приемлем. Если устраивает — дальше можно не читать :)
Читать дальше →
Total votes 17: ↑17 and ↓0 +17
Comments 21

Бикубическая интерполяция, теория и практическая реализация

Reading time 7 min
Views 43K
Возникла задача визуализировать результаты некоторых замеров на 2-мерной карте, были известны результаты в узловых точках на равномерной сетке, соответственно, задача свелась к интерполяции полученных данных. Основное требование было — качество полученной картинки и минимальное количество артефактов интерполяции, поэтому выбор пал на бикубическую интерполяцию. Статьи в Вики мне показались суховатыми (по крайней мере для человека, который математикой не занимался со школьной скамьи), но там же нашлась ссылка на потрясающую статью, детально описывающую алгоритм. Здесь мы рассмотрим практическое применение данного алгоритма и разберем статью.
Далее
Total votes 79: ↑68 and ↓11 +57
Comments 34

7 правил создания красивых интерфейсов

Reading time 8 min
Views 180K


Недавно мы в «Я люблю ИП» закончили курсы по дизайну от trydesignlab.com. И это одна из самых важных статей, которую нам посоветовал ментор в процессе обучения. Именно поэтому мы решили её перевести. Посмотреть все наши работы с курсов можно в ВКонтакте по тэгу #design101@iloveip.

Вступление


Сначала о главном. Это руководство не для всех. Это руководство прежде всего для:
  • разработчиков, которые хотят уметь делать хорошие интерфейсы для себя, если вдруг прижмёт;
  • UX-дизайнеров, которые знают, что хороший UX-дизайн продаётся лучше в красивой UI-упаковке.

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

А пока давайте я расскажу, что вы найдёте в этой статье.

Читать дальше →
Total votes 86: ↑81 and ↓5 +76
Comments 34

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

Reading time 10 min
Views 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
Читать дальше →
Total votes 156: ↑152 and ↓4 +148
Comments 90

Готовое решение доступного видеоплеера на HTML5

Reading time 3 min
Views 52K
Видеоконтент уже прочно вошёл в мир Интернета и без него уже трудно представить глобальную сеть. Тем не менее, технологии встраивания видео в гипертекстовые документы за прошедшее время прошли определённую эволюцию: от RealPlayer к QuickTime и Flash, а в настоящий момент до встроенной поддержки видео в HTML5. Тем не менее, всё это время различные реализации видеоплееров страдали как от проблем кроссплатформенности и кроссбраузерности, так и от низкого или вообще нулевого уровня accessibility. И если способы борьбы с первой группой проблем в целом понятны и существуют в форме готовых решений, то вот проблемы доступности для подавляющего большинства web-разработчиков и без того, как правило, сложны для понимания, а в отношении видео совсем оставались загадкой. Однако, к счастью, появилось готовое решение и второй проблемы, так что все желающие смогут обеспечить своим пользователям полностью доступный видеоплеер и без глубоких компетенций в web accessibility.
Читать дальше →
Total votes 41: ↑38 and ↓3 +35
Comments 54

Простой экспорт в Excel XLSX

Reading time 5 min
Views 44K
В продолжение темы, начатой в предыдущей статье, хочу поделиться своим опытом экспорта данных, в частности, в формате XLSX.



Итак, кому интересно, как заполнить XLSX без больших и сложных библиотек, прошу под кат.
Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Comments 17

Новые медиа-приставки на Rockchip RK3288 от компании Tronsmart уже в продаже

Reading time 3 min
Views 47K

Китайская компания Tronsmart наконец-то анонсировала свои новые медиа-приставки на чипе Rockhip RK3288 под названием Orion R28. Продолжая традиции предыдущей модели Vega S89 будет 3 версии: Pro, Meta, Telos. Отличаются объёмом постоянной памяти и Wifi-чипами, а в версии Telos обещают установить 4GB оперативной памяти!
Ещё одной интересной особенностью является позиционирование устройства как Full Open Source — первые 90 покупателей каждой модели получат microSD карты с полным комплектом разработчика. Начало отгрузки устройств запланировано на 3 сентября.
Читать дальше →
Total votes 28: ↑24 and ↓4 +20
Comments 27

Лучшие способы использования Angular.js

Reading time 9 min
Views 54K

От переводчика:


Привет, Хабр! Мы мы продолжаем делится с сообществом полезными материалами о разработке и дизайне. В этот раз команда TrackDuck подготовили перевод статьи Jeff Dickey о Angular, которая нам очень понравилась и в свое время заставила пристальней присмотреться к Gulp. Эта статья будет полезна разработчиками, которые хотят сэкономить время на рутинных операциях и построить качественные процессы при разработке веб-приложений. Мы активно используем Angular для разработки собственного продукта для визуального комментирования веб-сайтов, поэтому готовы ответить в комментариях на интересующие вас вопросы!




Я использовал Angular в довольно большом количестве приложений и видел много способов структурирования приложений с использованием этого фрэймворка. Сейчас я пишу книгу о проектировании Angular приложений c использованием MEAN стека, и больше всего исследований я провел в этом направлении. В итоге я остановился на довольно оригинальной структуре приложения. Я считаю, что мой подход более простой чем тот, что предложил Burke Holland.
Прежде чем начать, я хотел бы рассказать о существующем подходе к реализации модульности в Angular.
Если вы разрабатываете продакшн решение на Angular - добро пожловать под кат!
Total votes 43: ↑32 and ↓11 +21
Comments 18

Пишем простую систему рекомендаций на примере Хабра

Reading time 4 min
Views 40K

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

  1. Что такое рекомендательная система
  2. Интуиция
  3. Теория
  4. Реализация: код и данные
  5. Сервис Хабра-рекомендаций
  6. Хабра-аналитика

Читать дальше →
Total votes 28: ↑24 and ↓4 +20
Comments 16

Hola: принципы работы

Reading time 4 min
Views 36K
Один из разработчиков рассказал о том, откуда взялся стартап Hola, и прежде всего — о технических аспектах работы компании.

Предпосылки возникновения Hola

Предположим, в среднестатистическом уездном городе N мирно уживаются два провайдера, причем один из них (П1) предлагает своим клиентам за подключение приз: бочку варенья, да пачку печенья. Следовательно, клиентов у него больше, чем у второго провайдера (П2). Но весь бюджет П1 ушел на сладости, да и канал у него не особо широкий и постоянно загружен. А канал П2 широкий, но чаще всего простаивает. П1, ясное дело, не спешит делиться своим каналом с клиентами П1. В итоге имеем большую часть населения с диабетом неэффективное использование канала, вызванное здоровой рыночной конкуренцией.

Другая ситуация. В одном из районов уездного городка N все жители поголовно любят котиков. И регулярно смотрят сами и делятся друг с другом ссылками на смешные видео на Youtube. Получается, что одновременно не только гражданин Васисуалий тащит к себе из заморского хранилища немаленьких размеров видео, но и все остальные жители микрорайона делают то же самое. В итоге: Youtube вынужден тратить деньги на кеширующие сервера поближе к городку N, а провайдеры – на дорогостоящий трафик через океаны. Но ведь гораздо проще и дешевле было бы заполучить видео непосредственно от Васисуалия!
Читать дальше →
Total votes 31: ↑24 and ↓7 +17
Comments 12

Исчерпывающее руководство по составлению почтовых рассылок

Reading time 13 min
Views 175K


Несмотря на то, что большая часть общения онлайн перешла в социальные сети, почтовые рассылки по-прежнему остаются важной частью любой маркетинговой кампании.
Читать дальше →
Total votes 33: ↑30 and ↓3 +27
Comments 12

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

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

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

Reading time 4 min
Views 54K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

DC.js



Библиотека позволяет создавать великолепные многоуровневые/масштабируемые кроссплатформенные графики и диаграммы с моментальным перерендерингом при пользовательском взаимодействии. За процесс визуализации отвечает знаменитая d3.js, а за анализ многомерных наборов данных crossfilter.js. Кстати кроссфильтр — проект небезызвестной компании Square.
chart.renderlet(function(chart){
    // smooth the rendering through event throttling
    dc.events.trigger(function(){
        // focus some other chart to the range selected by user on this chart
        someOtherChart.focus(chart.filter());
    });
})


Читать дальше →
Total votes 205: ↑200 and ↓5 +195
Comments 14

Несколько интересностей и полезностей для веб-разработчика (выпуск 2)

Reading time 3 min
Views 82K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Webflow



С помощью данного сервиса вы сможете сверстать кроссбраузерный отзывчивый макет за 55 минут. Очень красивый и удобный интерфейс. Идеальное решение для веб-дизайнеров, 26 000 из которых уже используют Webflow. Для создания двух проектов сервис бесплатный, а в дальнейшей перспективе вас ждут вполне демократичные цены. Инструмент реально «крутой».

Если Вам GUI для верстки не комильфо сам по себе как для меня, все равно рекомендую зарегистрироваться и экспортировать парочку responsive макетов. А еще есть простой генератор отзывчивого лэйаута и Responsive Patterns.

Parallax.js


Функциональный и простой инструмент для создания параллакс эффекта.

Читать дальше →
Total votes 124: ↑114 and ↓10 +104
Comments 27

Использование Drag&Drop в HTML 5

Reading time 3 min
Views 100K


Долгое время для создания Drag&Drop функционала использовались JavaScript-функции, однако браузеры не всегда корректно могли отображать результат. В HTML 5 есть способ грамотной поддержки Drag&Drop, с небольшим применением JavaScript. В этой статье подробно разобран наглядный пример применения Drag&Drop в HTML 5.

Поддержка браузерами


На сегодняшний день функция Drag&Drop в HTML 5 корректно обрабатывается всеми современными настольными браузерами, (частично даже IE 5.5!), однако мобильные такую возможность не поддерживают. Подробнее данные в таблице caniuse.com.
Читать дальше →
Total votes 48: ↑38 and ↓10 +28
Comments 11

CSS-маски для hover-эффекта

Reading time 4 min
Views 71K


На многих сайтах-портфолио работы представлены в виде небольших картинок-миниатюр с приятными hover-эффектами. В этой статье будет рассказано о способе сделать такой эффект, используя CSS-маски. Работает только в современных браузерах, но к счастью и в старых верстка выглядит корректно и не съезжает.
Читать дальше →
Total votes 58: ↑54 and ↓4 +50
Comments 11

AngularJS vs. KnockoutJS

Reading time 8 min
Views 57K
Добрый день уважаемые, хабрачеловеки.
В данной статье я хочу поделиться с вами своим опытом работы с такими фреймворками как AngularJS и Knockout.
Cтатья будет интересна тем, кто хорошо знаком с JavaScript-ом и имеет представление хотя бы об одном из упомянутых фреймворков и естественно желает расширить свой кругозор.

Читать дальше →
Total votes 63: ↑54 and ↓9 +45
Comments 18

Мобильная веб-разработка: некоторые особенности и советы

Reading time 3 min
Views 17K
Разрабатывая мобильное приложение, я обнаружил пару вещей, знания о которых мне бы пригодились, когда я начинал. Поэтому я решил написать статью в формате небольших советов. Эти советы больше нацелены на разработку мобильных приложений под PhoneGap, Windows 8 и Firefox OS. Но разработчикам мобильных веб-сайтов тоже могут пригодиться. В конце статьи дам ссылки на то, что в конце концов получилось
Подробности
Total votes 26: ↑23 and ↓3 +20
Comments 4

Полученные уроки: год с большим проектом на AngularJS

Reading time 4 min
Views 28K
image

После года работы с большим проектом на AngularJS, думаю поделиться некоторыми, извлеченными в процессе, уроками. Во-первых, мне нравится Ангуляр. Он отлично удовлетворяет моим потребности и, думаю, полностью перейти на него в обозримом будущем, когда мне потребуется надежный фреймворк для одностраничного «толстого клиента». Он потрясающий. Над ним работает команда мирового уровня, сообщество фантастическое, и он содержит (или предлагает сообщество) целый комбайн функций для создания веб-приложений.
Читать дальше →
Total votes 35: ↑28 and ↓7 +21
Comments 25

Ещё один способ устранить ВОШ

Reading time 3 min
Views 26K

Задача


ВОШ — эффект, возникающий при стилизации текста подключаемым шрифтом, не установленным на компьютере пользователя. Проявляется, когда подключаемый шрифт ещё не успел скачаться, и стилизуемый текст отображается следующим шрифтом из значения свойства font-family этого элемента. Такое переключение шрифтов также может повлиять на размеры элемента, если они зависят от размеров текста в нём.
Эффект известен также как FOUT — так его назвал Пол Айриш.

При общих моментах, есть и особенности. Например, в Файрфоксе текст, который нужно будет отрисовать нестандартным шрифтом, в течение 3 секунд не отображается, в Хроме тоже есть подобная задержка. Если шрифт успеет скачаться за это время, текст отобразится сразу нужным шрифтом.

На эту тему здесь была такая статья. В ней последствия ВОШ рекомендовалось нивелировать грамотной игрой со шрифтами. К сожалению, иногда подключаются такие шрифты, которые слишком отличаются по характеристикам от стандартных.
Подробности
Total votes 56: ↑51 and ↓5 +46
Comments 16

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity