Pull to refresh
6
0

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

Send message

Используем IoC-контейнер Laravel на полную мощность

Reading time 14 min
Views 66K

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


Примеры в данной статье основаны на Laravel 5.4.26, другие версии могут отличаться.


Введение в Dependency Injection


Я не буду объяснять, что такое DI и IoC в этой статье — если вы не знакомы с этими принципами, вы можете прочитать статью "What is Dependency Injection?" от Fabien Potencier (создателя фреймворка Symfony).

Читать дальше →
Total votes 19: ↑18 and ↓1 +17
Comments 19

Подготовка приложения для iOS 9

Reading time 3 min
Views 30K
9 сентября выйдет новый релиз iOS и OS X. Времени остается все меньше, и многие разработчики уже оптимизировали свои приложения для работы на новых ОС. Тем, кто этого ещё не сделал, предлагаю коротко рассмотреть, что необходимо для поддержки iOS 9.


Читать дальше →
Total votes 17: ↑15 and ↓2 +13
Comments 20

Мультизагрузка в wysiwyg редакторе

Reading time 3 min
Views 11K


Суть вот в чем, есть редактор (для примера: imperavi.com/redactor) и есть необходимость загружать сразу много картинок за один раз. В идеале простым перетаскиванием, а в нашем случае редактор кушает только одну картинку за раз. Это нужно поправить.

Покопавшись в api редактора и не найдя ничего про мультизагрузку, я начал думать, как решить эту проблему, не прибегая к каким-то глобальным разработкам вроде написания плагина с нуля. Это займет много времени и усилий, к тому же время поджимало и сделать нужно до вечера.
Читать дальше →
Total votes 19: ↑17 and ↓2 +15
Comments 2

Буфер вывода в PHP

Reading time 8 min
Views 51K
В этой статье я хочу рассказать о том, как реализован слой «буферизации вывода» в PHP, как работает и как с ним взаимодействовать из PHP. В этом слое нет ничего сложного, но многие разработчики либо совсем не понимают, как с ним обращаться, либо не имеют полной ясности. Всё, о чём я буду писать, относится к PHP версии 5.4 и выше. Именно начиная с неё изменились многие вещи, связанные с буфером вывода (БВ). По сути, этот функционал был полностью переписан, поэтому совместимость с версией 5.3 сохранилась лишь частично.

Что такое буфер вывода?


Поток вывода в PHP содержит байты, обычно в виде текста, которые разработчику надо вывести на экран. Чаще всего для этого используется конструкция echo или printf(). Во-первых, нужно понимать, что любая функция, которая что-то выводит, будет использовать БВ из области PHP. Если говорить о расширениях для PHP, то можно получить доступ к функциям, пишущим в SAPI напрямую, в обход любого вышерасположенного БВ. API C задокументировано в lxr.php.net/xref/PHP_5_5/main/php_output.h, отсюда можно почерпнуть немало информации, например, о размере буфера по умолчанию.

Второй важный момент: слой БВ является не единственным слоем, в котором буферизуются выводимые данные.

И третье: в зависимости от SAPI, который вы используете (веб или cli), слой БВ может вести себя по-разному.

Ниже представлена схема, которая поможет понять всё вышесказанное:

Читать дальше →
Total votes 59: ↑52 and ↓7 +45
Comments 10

Сервисы дистрибуции мобильных приложений для iOS. Часть 1: TestFlight

Reading time 7 min
Views 56K

Вступление


С каждым годом становится всё очевиднее, что для распространения тестовых версий iOS-приложений нужны специализированные сервисы. Это актуально не только для компаний, занимающихся разработкой приложений в “промышленных масштабах”, но и для инди-разработчиков. Причины: увеличение количества устройств с “нестандартным”/”не кратным” размером экрана, отличия в архитектуре центрального и графических процессоров — всё то, что раньше было повседневностью для разработки под Android, теперь становится справедливым и для iOS.

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

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

В обзоре участвуют следующие сервисы (в таком порядке и будут публиковаться части обзора):
  • Apple TestFlight
  • HockeyApp
  • Ubertesters
  • Crashlytics (как часть Fabric)


TestFlight старой версии не будет рассмотрен, так как хотя он по-прежнему работает и доступен по адресу www.testflightapp.com, использование его в долгосрочной перспективе не имеет смысла по ряду причин:
  • нет никаких гарантий, что Apple не приостановит или не прекратит его работу в любой момент
  • SDK сервиса не доступно для скачивания, более того невозможно использовать сервис, если приложение использует SDK
  • сервис больше не является кросс-платформенным, поддерживается только распространения приложений для iOS (подробнее)

Важно! Буквально накануне публикации статьи команда TestFlight (старой версии) разослала уведомление, в котором сообщается, что старый сервис прекратит свою работу 26 февраля 2015 года (подробности).

Система оценки: сервисы будут оценены по 10-балльной шкале по каждому из разделов (Регистрация и интеграция, Основной функционал, Дополнительный функционал, Continuous Integration). Суммарная оценка позволит определить победителя (итоговое заключение войдет в последнюю часть обзора).

Читать далее. Осторожно, много картинок!
Total votes 15: ↑15 and ↓0 +15
Comments 36

Набор Ruby библиотек для CMS и сайта медиа издания

Reading time 15 min
Views 30K


Набор библиотек для разработки CMS медиа издания практически ничем не отличается от любого другого приложения. На примере приложения для Ленты и Ведомостей мы решили прокомментировать выбор каждой библиотеки. Описание составлено в формате обсуждения каждого гема.
Стенограмма
Total votes 56: ↑51 and ↓5 +46
Comments 84

Swift: теперь и на русском!

Reading time 1 min
Views 11K
Чертовски приятно быть причастным к большому и нужному делу, не так ли? Поэтому мы в Alconost Translations очень обрадовались, когда один из наших клиентов предложил подарить миру добро в виде перевода мануалов по молодому и перспективному языку программирования Swift. Язык новый, документации на русском по нему нет, а в англоязычной полно специфичных терминов. Мы же как раз специализируемся на IT-переводах, так что задача оказалась нам по плечу (кстати, будем рады помочь и вам с переводами мануалов, если что).

Первые главы уже есть в публичном доступе, приглашаем к прочтению! Переводы доступны по этой ссылке.

Как считаете, актуальное чтиво для iOS и OS X разработчиков?
Total votes 22: ↑20 and ↓2 +18
Comments 10

Создание оффлайн карты для iOS приложения

Reading time 4 min
Views 19K


Доброго времени, дорогие Хабровчане!

В этой статье я расскажу о том, как реализовать оффлайн карты.

Дисклеймер. Статья не является пиаром чего-либо. Данный вариант реализации был выбран мною как самый оптимальный и я бы хотел поведать о нем в доступной форме.
Спасибо!

Предыстория


При разработке гид приложения для Гонконга, возникла нужда в использовании оффлайн карт. Google карты, к сожалению, не предоставляют такой возможности, так что, из за безысходности пришлось использовать такой сервис как MapBox, точнее расширение для iOS — MapBox-ios-sdk.

Заинтересовавшихся прошу под кат.
Читать дальше →
Total votes 29: ↑28 and ↓1 +27
Comments 7

Создание пакета для Laravel

Reading time 11 min
Views 28K
Привет Хабр!

Фреймворк Laravel быстро набирает популярность и уже обрел большую армию фанатов. В этой статье я опишу разработку простого пакета для Laravel, а так же публикацию созданного нами пакета на сайте packagist.org для того, чтобы добавлять наш пакет в проект одной строчкой в composer.json.

Итак, о чем все это


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

В итоге мы получим это.


Читать дальше →
Total votes 31: ↑23 and ↓8 +15
Comments 3

Перевод App Store Review Guidelines

Reading time 1 min
Views 13K
Не так давно Apple обновила руководство по публикации приложений в App Store (App Store Review Guidelines). В документ были добавлены пункты, описывающие правила работы с Extensions, HomeKit, HealthKit, TestFlight и Apple Pay (с 25 по 29).

Ранее на Хабре уже публиковался полный перевод этого руководства (низкий поклон автору), но было это аж в 2010 году. С тех пор многие правила были исправлены или удалены.
Читать дальше →
Total votes 21: ↑18 and ↓3 +15
Comments 5

Мышь и клавиатура для PS3. Приятное дополнение или необходимый атрибут?

Reading time 1 min
Views 105K
Вот такие мышь и клавиатуру создала специально для PS3 компания HORI. В принципе, мышки и клавиатуры для PS3 создавались и раньше, но продукт HORI явно выделяется на фоне других своими удобством и эргономичностью. Впрочем, окончательный вердикт вынесут только полевые тесты. В первую очередь новый продукт появится в магазинах Японии и США и будет продаваться там по рекомендованной розничной цене $99.


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

Съемка Full HD видео теперь возможна на Canon 50d

Reading time 4 min
Views 70K


Введение. About Magic Lantern


Magic Lantern — открытая среда разработки расширений возможностей цифрозеркалок Canon 5D Mark II / 500d / 550D / 600D / 60D / 50D. По сути это не взломанная или модифицированная прошивка, а дополнение, которое запускается вместе с оригинальной прошивкой, загружаясь с карты памяти при каждом включении фотоаппарата. Исполняемый файл записывается на флеш-карту и автоматически подгружается в память при включении камеры. Единственным изменением оригинальной прошивки является возможность загрузки этого самого дополнения с карты памяти. В основном прошивка заточена для съёмки видео (после её установки Mark II получает функционал, сравнимый с профессиональными видеокамерами RED ONE и Phantom 65, которые находятся в совершенно других ценовых категориях), но присутствует немало новых возможностей для фото:
Читать дальше →
Total votes 65: ↑63 and ↓2 +61
Comments 87

Основы фотографии: выдержка, диафрагма, ГРИП, светочувствительность

Reading time 6 min
Views 405K

Введение


Часто люди приобретают цифровые зеркальные камеры в погоне за качеством снимков, но при этом не имеют представления о технических моментах съемки. В основном это касается тех, кто до зеркалки держал в руках исключительно компактные фотоаппараты и пользовался автоматическими режимами (которые, к слову, весьма продвинутые в современных камерах).

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

Изначально я планировал написать одну статью, но по ходу дела понял, что объем получается слишком большой и решил разбить ее на несколько частей. В этой главе рассмотрю такие понятия как выдержка, диафрагма, ГРИП и светочувствительность, как эти параметры влияют на результат съемки. На очереди статья про типы и параметры объективов, работу со вспышками и советы по съемке в различных условиях.
Читать дальше →
Total votes 272: ↑232 and ↓40 +192
Comments 378

URL в PDF? Без проблем

Reading time 1 min
Views 2.6K
Уже несколько месяцев являюсь счастливым обладателем ebook'а.
Очень часто нахожу интересные статьи в интернете, но бывает, что статья довольно объемная, да и не всегда есть время читать ее. Зато есть много времени по дороге домой.

Конкретно моя книжка кушает все форматы, в том числе и html. Но html без картинок, а только текст. А некоторые модели не кушают html. И что же тогда делать?

Недавно открыл для себя удобный и простой конвертер, который преобразует нужный URL в обычный PDF. Причем без особых сложностей. Просто вводите ссылку и через 5-10 секунд у вас готовый PDF файл.


Читать дальше →
Total votes 118: ↑100 and ↓18 +82
Comments 59

Дополнение firefox для отправки смс

Reading time 1 min
Views 524
Разработал дополнение, пока для себя, но может кому-то понадобится:
addons.mozilla.org/en-US/firefox/addon/14555

Позволяет отправлять сообщения на телефон посредством веб гейтов сотовых компаний.

Поддержку буду осуществлять через гугл код:
code.google.com/p/sendsms-ff

Буду рад любым замечаниям-дополнениям. Если нужны будут новые операторы — пишите какие именно, и как можно с вами связатся для тестирования.
Total votes 27: ↑22 and ↓5 +17
Comments 39

100 вирусных видео на Youtube за 4 минуты

Reading time 1 min
Views 1.3K


P. S. Определение, что такое вирусное видео:
en.wikipedia.org/wiki/Viral_video

Если вам не нравится это определение, пожалуйста, не показывайте свое невежество, не начинайте искать виноватых в Википедии, на западе, не делайте виноватым меня и не ссылайтесь на установившуюся в рунетовской среде традицию использовать некоторые понятия не по назначению.
Total votes 173: ↑107.5 and ↓65.5 +42
Comments 106

Разработка Flex приложений в Linux (Ubuntu 8.10)

Reading time 2 min
Views 8.1K
Хочу поделиться опытом. Перешел на Ubuntu с Windows, установил Eclipse и различные плагины. Раньше пользовался Flex Builder под виндой и тут встал вопрос установки FlexSDK и Flex Builder для Linux. Собственно речь пойдет о том, как настроить Eclipse+FlexSDK+FlexBuilderLinux для разработки MXML и Air приложений под Linux…
Читать дальше →
Total votes 53: ↑51 and ↓2 +49
Comments 40

Обзор систем для ведения домашней бухгалтерии

Reading time 10 min
Views 142K
При отборе программ для обзора для меня немаловажным требованием является отсутствие синхронизации с каким-либо внешним сервисом (да, я параноик) и наличие версии для айфона. Сравнительная таблица прошарена в гуглдоксах.

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

Общий момент — те программы, которые обновляют курс валют автоматически, делают это с finance.yahoo.com.
Читать дальше →
Total votes 69: ↑60 and ↓9 +51
Comments 68

Программа от SysInternals превращает ваш ПК в виртуальную машину

Reading time 1 min
Views 8.2K
Disk2vhd, новый шедевр от Марка Руссиновича — простая в использовании утилита, позволяющая создать образ загруженной, работающей системы в формате Virtual PC. Нужно всего лишь скачать и запустить программу, выбрать диск, на котором расположена ваша Windows и указать, где следует сохранить виртуальную машину. Поддерживается 32 и 64-bit Windows XP SP2 и новее.

Само приложение выглядит так:

image

А вот скриншот уже созданной и загруженной виртуальной машины:

click

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

Страничка программы: technet.microsoft.com/en-us/sysinternals/ee656415.aspx
Total votes 128: ↑109 and ↓19 +90
Comments 64

Визуализация работы веб-сервера Apache — logstalgia

Reading time 1 min
Views 15K
image

Logstalgia скорее порадует разработчиков и системных администраторов, которые много времени проводят на «заднем дворе» сайтов, но сам результат работы программы очень красив и видео будет интересно посмотреть всем. Данная программа визуализирует работу веб-сервера Apache используя log-файлы. По ссылке видео, а саму программу можно скачать по здесь.
Total votes 101: ↑96 and ↓5 +91
Comments 57

Information

Rating
Does not participate
Location
Antwerpen, Бельгия
Date of birth
Registered
Activity