Search
Write a publication
Pull to refresh
0
Richard_Ferlow @Richard_Ferlowread⁠-⁠only

User

Send message

EditorConfig — Одни Настройки для всех Редакторов/IDE

Reading time7 min
Views105K
EditorConfig это конфигурационный файл и набор расширений, к большому количеству редакторов кода и IDE (Далее просто IDE).

Его задача — создать единый формат настроек, и, раз и навсегда, решить вопросы вроде “табы или пробелы” для всех IDE и всех языков программирования. Такой файл может храниться в системе контроля версий проекта, что позволит всем его разработчикам использовать одну и ту же конфигурацию.

Файлы .editorconfig можно найти в таких проектах, как jQuery, Ruby, WordPress, и многих других.

Плагины доступны для большого количество IDE




Давайте разберемся, как это работает.
Читать дальше →

15 шаблонизаторов для фронтенд-разработки

Reading time4 min
Views185K

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

Не так давно я писал, что вы могли бы попробовать написать свою библиотеку, когда придёт время. Шаблонизаторы же требуют несколько больших навыков и понимания языка, с которым вы работаете, поэтому лучше полагаться на любой шаблонизатор из имеющихся в списке ниже.
ICanHaz,Hogan,Handlebars,Mustache,Transp-cy,doT,Walrus,Chibi,templayed,ECT,Pithy,T,Nunjuck,Jade,Dust

Начинаем работать с графовой базой данных Neo4j

Reading time12 min
Views86K
В нашем проекте возникла следующая задача — есть база с большим количеством товаров, на уровне сотен тысяч. У каждого товара есть сотни динамически создаваемых характеристик. Необходимо обеспечить быструю фильтрацию по товарам по набору различных характеристик. Время формирования ответа должно быть не более 0.3 секунды, нужно поддерживать сложную логику в стиле.

(характеристика1 = true AND (характеристика2 < 100)) OR (характеристика1 = false AND (характеристика3 > 17)) ... далее обычно мешанина из AND\OR


Типичный пример подобного функционала — hotline.ua/computer/myshi-klaviatury

Пример функционала

У нас все реализовано в рамках MySQL + Symfony2/Doctrine, скорость неудовлетворительная — ответы формируются в течении 1-10 секунд. Мои попытки оптимизировать все это хозяйство — под катом.
Читать дальше →

Ratchet 2.0 — самый красивый HTML5-фреймворк теперь дружит и с iOS, и с Android

Reading time2 min
Views68K


Ratchet — так называется HTML5-фреймворк для быстрого прототипирования мобильных приложений, который 1,5 года назад создали те же парни, которые когда-то выпустили Bootstrap.

Инструмент позволяет быстро создать красивый интерфейс мобильного приложения — и дает вам красивые стили и замечательные иконки, согласованные с гайдлайном в зависимости от платформы. Можно сделать прототип, а можно завернуть в PhoneGap и без особых усилий получить сравнимый с нативным интерфейс приложения в продакшене.
Фреймворк очень прост в использовании и прекрасно документирован.

Я являюсь поклонником Ratchet с момента выхода первой версии. Тогда он был доступен только под iOS.
Не так давно вышла вторая версия, которая наряду с iOS поддерживает Android. Ура-ура!
(правда, обратной совместимости с первой версией нет)

Кому интересно про новые возможности Ratchet 2.0 — прошу под кат!
Читать дальше →

Автоматическая очистка фона изображений

Reading time2 min
Views80K


Разработчики из компании Bonanza потратили более двух лет на создание программы для автоматического удаления фона с изображений. Задача оказалась гораздо сложнее, чем думали поначалу. Как оказалось, автоматическое удаление фона — одна из классических проблем компьютерного зрения, известная ещё с 80-х годов.

Как это часто бывает, если бы разработчики понимали всю сложность задачи, они бы вообще не брались за её решение. Но потом оказалось, что назад пути нет, и всё-таки им удалось добиться определённого успеха. 11 апреля они запустили конвертер Bonanza Background Burner, который неплохо очищает фон на произвольных фотографиях, при небольшой помощи или вовсе без неё. Доступ через API пока бесплатен, но в будущем владельцы сервиса что-нибудь придумают.
Читать дальше →

mysqlnd

Reading time2 min
Views49K
mysqlnd — расширение PHP, которое является драйвером для работы с MySQL по умолчанию в PHP 5.4. Оно работает напрямую с MySQL сервером, а значит, MySQL клиент, а также оверхед на работу с ним, больше не требуется!

image

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

Тонкости работы в командной строке Windows

Reading time3 min
Views333K
Недавно я вырос из лютого эникея в очень большой компании, до скромного сисадмина надзирающего за сетью в 10 ПК. И, как очень ленивый сисадмин, столкнулся с задачами по автоматизации своей деятельности. Полгода назад я еще не знал, что в командной строке Windows есть конвейеры. Это стало первым шокирующим открытием. И я пошел дальше, и выяснилось, что там, где я раньше писал утилитки на C#, Delphi или громоздкие скрипты с вложенными циклами, можно было обойтись парой команд forfiles или robocopy.
Не буду рассказывать о банальностях, типа о перечислении файлов и папок клавишей Tab. Под хабракатом расскажу о том, что может быть полезно начинающим админам и эникеям.

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

Лучшие платные Photoshop плагины для веб-дизайнеров

Reading time3 min
Views32K
Привет, Хабр! Относительно недавно я опубликовал "Лучшие бесплатные Photoshop плагины для веб-дизайнеров". В подборке я попытался собрать все известные мне инструменты, которые значительно помогают в работе. Кстати, по возможности я ее обновляю и несколько дней назад добавил Velositey для построения лэйаутов. Таким образом мне хочется сделать «конкретное местечко» где будут храниться удобные для работы с фотошопом штуки. Аналогично не только поста ради, мне хочется собрать и платные инструменты, которые реально окупятся через «несколько» человеко часов. Некоторыми из них я пользуюсь сам.

PNG HAT $39.99



Сей замечательный плагин от достаточно известной компании Source «символизирует» лучший способ того, как должна происходить нарезка слоев. Принцип «в один клик», которые значительно сокращает потраченное время на экспорт слоев наглядно продемонстрирован в видео выше. Что еще есть внутри: мощная оптимизация с помощью PNG Crush, PNG quant и opti PNG, которая по заявлению разработчиков в разы эффективнее стандартного способа; Base64 encoding; код на изображение копируется в буффер для HTML, CSS или Obj C; масштабирование, что очень удобно в связи с необходимостью разработки дизайна под Retina дисплеи; и даже облако объемом 1GB для хранения изображений.

Говоря про «нарезку» также стоит упомянуть Zeick $19.99, который экспортирует все векторные шейпы в SVG и Glifo $19, который экспортирует эти же шейпы в иконочные шрифты.

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

Минимализм при создании landing page

Reading time8 min
Views43K
За последние несколько лет веб-дизайнеры постепенно пришли к тому, что «захламление» сайтов несущественными элементами — плохая идея. Такие элементы веб-дизайна, как бессмысленные изображения, запутанные навигационные системы, бесчисленные кнопки социального обмена и прочее уводят пользователей от основных целей веб-страницы.

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

Несколько примеров минимализма целевых страниц

Давайте рассмотрим минимализм landing page некоторых успешных веб-приложений:


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

Ускоряем разработку на PHP с помощью перегрузки

Reading time2 min
Views3.8K

Проблема


Часто приходится писать так (примеры кода на Yii, но подход можно применить к любому коду):
$model = new User();
$model->name = 'Вася';
if (!$model->save())
    throw new RuntimeException('Can not save!');

Или так:
$model = User::model()->find();
if (!$model)
    throw new CHttpException(404, 'User not found!');

Кеширование:
$dependency = new \caching\TagDependency('Post');
$posts = Post::model()->cache(1000, $dependency)->findAll();

Транзакции:
$trx = $this->getDbConnection()->beginTransaction();
try {
    if (!$user->makePayment())
        throw new \RuntimeException('Can not complete!');

    $trx->commit();
} catch (\Exception $e) {
    $trx->rollback();

    throw $e;
}


Слишком много кода!

Решение


Вышеприведенные куски кода можно сократить до:
Возбуждаем исключение в случае неудачного результата:
$model->saveException();
User::model()->findException();
Post::model()->findAllCached();


Оборачиваем метод в транзакцию:
$user->makePaymentTrx();


Также возможны комбинации:
User::model()->findTrxCached()


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

Простая замена phpMyAdmin для гиков

Reading time2 min
Views14K
Довольно часто возникает ситуация, когда надо быстренько запустить пару запросов к MySQL базе у клиента на сервере. При этом есть только FTP и параметры соединения с СУБД. Самый простой выход — загрузить туда phpMyAdmin, ну а дальше дело техники. Обычно все это проиcходит на фоне того, что у клиента уже установлена какая-то CMS — WordPress, Drupal, Joomla…

Я люблю простые, красивые и удобные вещи. Я тепло отношусь к phpMyAdmin но в 90% моих Use Cases мне он не нужен. Нужно что-то простое. В идеале такое, что можно просто залить на сервер и открыть в браузере — не настраивая.

Пара вечеров и пакет готов.
Читать дальше →

Полезные материалы для мобильного разработчика #47 (31 марта-6 апреля)

Reading time3 min
Views9.2K
Главной на этой неделе, пожалуй, стала компания Microsoft с анонсом Windows Phone 8.1 и связанных инструментов. Кроме того вышло несколько интересных исследования: Flurry рассмотрела какими приложениями пользуются люди, Fiksu проанализировала влияние количества закачек на положение приложения в поиске, WildTangent рассмотрела работу Value Exchange Advertising.

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

Простой индикатор загрузки картинки на Jquery

Reading time2 min
Views35K
Коль скоро быстрый интернет пока еще доступен не везде, не на всех устройствах, пришла мысль что неплохо бы облагородить процесс загрузки картинок. Задача эта не слишком функциональна, однако дизайн-фрики, полагаю, не раз задавали себе вопрос, как просто реализовать индикацию подгрузки картинки.

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

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

JPHP — Как он работает. История создания

Level of difficultyMedium
Reading time16 min
Views30K
В этой статье я расскажу более подробно об истории проекта JPHP и каким образом он был разработан с технической стороны. Текст будет интересен как простым разработчикам PHP, так и любителям компиляторов. Я постарался описать все на простом языке.

image

JPHP это компилятор языка PHP для Java VM. Две недели назад я писал статью о проекте. Похожие проекты — JRuby для ruby, Jython для python. После публикации первой статьи о JPHP, проект за два дня набрал 500 звёзд на гитхабе и успел засветиться не только в РУнете, но и на зарубежных ресурсах, успел побывать на первом месте в рейтинге гитхаба.
Читать дальше →

Selectel Storage — облачное хранилище

Reading time5 min
Views33K

Что мы предлагаем?


Selectel Storage — облачное объектное хранилище данных на базе OpenStack Swift.

Для чего?


Для удобного, простого и дешевого хранения резервных копий файлов и раздачи статичных файлов (изображения, аудио, видео, js, css) для веб-сайтов и приложений.
Читать дальше →

Научный центр Кейптауна: политехнический музей, где надо нажимать на все кнопки

Reading time5 min
Views32K
Я сейчас в Южной Африке изучаю местные настольные игры. Так получилось, что их довольно много в местном научном центре. Естественно, я не удержался, и прошелся по всему центру, задавая вопросы. Это просто какой-то дикий восторг: здесь можно всё пощупать, потрогать, запустить и проверить.



Что самое крутое, почти всё здесь подходит детям. Для них это вообще приключение – залезть в космический аппарат, запустить пневморакету, поуправлять мячиком с помощью нейроактуатора, побить тапком по трубам и так далее. Просто гениальный способ разжечь интерес к науке с 4-5 лет.

Осторожно, трафик: внизу много фото.
Читать дальше →

Автономный квадрокоптер с нуля: PID и грабли

Reading time12 min
Views87K
Большинство проектов, использующих коптеры, опираются на ручное дистанционное управление, полностью автономных систем пока нет. Но для индустриального использования это необходимо; человеческий фактор — причина большинства аварий. Ниже рассказ пойдёт про то, как мы делали свою систему стабилизации с помощью ПИД, позволяющую свести к минимуму участие человека в процессе работы дрона.

Один из тестовых полётов нашего коптера
Читать дальше →

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

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

FastClick.js


Nota Bene. Практически всегда страница в браузере на вашем тач устройстве реагирует недостаточно быстро. Все из-за задержки в 300ms, чтобы убедиться, что это не double tap. FastClick.js — это полифил, который избавляет пользователей вашего сайта от этой задержки.

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

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

Лёгкий способ писать iOS приложения на вебе

Reading time9 min
Views84K
Всем привет. Не так давно Габриель подарил нам игру 2048. Это тот самый удивительный случай, когда клон игры становится более популярный, чем оригинал. Не малая часть успеха Габриеля — открытый код и, вуаля, MIT лицензия. Набрав чуть больше 20к очков, захотелось поделиться результатом с друзьями, кроме как сделать скриншот не получилось. Глянул аппстор на наличие клона с геймцентром или чем-то подобным — пусто. И тут подумал, почему бы нет?
Забегая вперёд, на создание приложения и всех «ништяков» к нему ушло 4 дня. На выходе универсальный код, который от части работает и в вебе и легко портируется на иос/андроид. Однако, давайте по порядку.


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

Хороший дизайн интерфейсов. Часть 3

Reading time5 min
Views76K
Это третья часть переведённых заметок «Good User Interface». Первые 16 частей уже ранее перевели наши коллеги из ADV на Хабре, а вторые 11 перевели мы.

Идея 28


Используйте варианты по-умолчанию, не заставляя людей выбирать


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

Остальные 10 заметок далее

Information

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