Pull to refresh
39
0
Николай Ивлев @k0t0vsky

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

Send message
Периодически возникала такая задача, оформил в виде отдельного бандла — AdminPageBoardBundle.
Может кому-то сэкономит время =)
Да, но они это двигают на собственном энтузиазме, проект открытый. Инвестиции тоже не помешали бы скорейшему развитию…
Еще бы довели до ума Symfony CMF и помогли Sylius, составить достойную конкуренцию Magento в e-commerce.
Композер вещь, спору нет! Как собственно и все другие менеджеры зависимостей.
P.S. Кстати композер тоже на базе симфонических компонентов)
это как XML vs JSON
Хорошая ассоциация))

Мне больше JSON симпатизирует)
Да, на счет компонентов симфони в Laravel в курсе, как раз в этом и основываюсь, что будут использовать больше и больше компонентов и популярных библиотек используемых с Symfony. Вот собсвенно и зависимость…

С Zend 2 на мой взгляд очень затягивают. Развитие Symfony 2 субъективно динамичнее и активнее из-за того, что активнее сообщество…
В целом да, в большинстве случаев они в роли догоняющих и перенимающих практики. При том, что в симфони большинство фичей тоже переняты из других фреймворков, других языков. И это при том, что это обеспечивало активное сообщество. Главное, чтобы инвестиции не измении вектор в худшую сторону!
Фабиен парень не промах)
Чувствую Zend, Laravel, Yii будут курить. Сложно будет гнаться…
Self-checkin, который терминалы/киоски, да практически тоже самое, там немного другие принтера использовались, которые совсем по принципу похожи на печатающие чеки. Загружается катушка с термобумагой (вместо уже готовых посадочных, как на стойках) и после печати посадочного он отрезается. Там немного получше было со шрифтами, удалось использовать фирменный шрифт бренда S7 и была возможность загрузить в принтер и использовать на посадосном растровые изображения в формате PCX ru.wikipedia.org/wiki/PCX. Использовали, чтобы печатать лого S7, но помню пришлось жутко долго плясать с бубуном, чтобы этого добиться.

В Self-checkin, который через веб, особых требований к виду не предъявляет, т.к. подразумевается, что конечные пользователи печатают на любом доступном печатающем устройстве и как правило после регистрации получают стандартный PDF документ. У нас он генерировался посредством XSLT, поэтому можно было сверстать как душе угодно. Но здесь мы уперлись в другую проблему (по крайней мере на тот момент, когда self-checkin только внедрялся, чем я как раз и занимался))), человеческий фактор! Банально все агенты на посадке, на тот момент привыкли к уже стандартному формату посадочных талонов и распечатки А4, где основная информация расположена в других местах вводила их в ступор. Это ладно если в крупных городах еще можно было людей переучить, то в каком-нибудь Мухосранске, вас просто могли на борт не пустить с такой бумашкой и отправить в WC, воспользоваться ей))) Поэтому было принято решение в верхней части, так называемой маршрутной квитанции разместить стандартный посадочный талон, а ниже уже информацию авиакомпании и рекламу (аналогично как в вашем примере от EasyJet)

P.S. По поводу рекламы на посадочных талонах, хочу прокомментировать, что это позволяет авиакомпаниям компенсировать не малые затраты на закупку термобумаги и термо бланков для посадочных, которые используются только для одного полета и по сути являются постоянной статьей расходов.
Все круто конечно! И предложенный вариант по дизайну и UI вероятно выигрывает у существующих кандидатов, но стоило подойти к задаче с точки зрения промышленного дизайна и учесть не только интересы пассажиров, но также специфику оборудования на котором производиться печать и имеющиеся стандарты IATA в отношении полетной документации (здесь можно поискать, но доступ только за бабки или для членов IATA www.iata.org/publications/Pages/standards-manuals.aspx). IATA это как w3c в вебе, но только в авиации.

5 лет назад я работал в S7 Airlines и как раз пришлось заниматься разработкой посадочных талонов. Сразу хочу отметить, что в целях оптимизации рабочего процесса для печати посадочных талонов используются специальные термо принтеры en.wikipedia.org/wiki/Thermal_printing, аналогичные устройстам печати чеков. Это позволяет не заморачиваться с расходными материалами типа картриджей и такое оборудование более надежное и стойкое к длительной эксплуатации, что очень актуально для данных задач. Представьте себе, что вы стоите в очереди к стойке регистрации, а вам агент говорит: «Подождите немного, необходимо дождаться инженера и заменить картридж». Стоимость такого принтера 4-5К евро. Термопринтеры технически похожи на матричные, только вместо ударов по чернильной ленте, происходит «прижегание» точек на термоносителе, в нашем случае посадочном талоне (можете убедиться в этом, поджечь край посадочного талона зажигалкой). А как известно у матричных принтеров есть проблема с разрешением (dpi) и ограничения по шрифтам. Этими же проблемами обладают и термо принтеры.

Мы использовали принтера для термопечати французской компании IER. Вот ссылка на краткий ман: ier.fr/file_center/N0680CA3.pdf, чтобы у вас было более детальное представление о специфике работы самого принтера. Помимо выше описанных проблем (разрешение и шрифты), управляющая логика принтера использует определенную инструкцию, описывающую расположение элементов на посадочном талоне. Это можно представить как шахматную доску, только вместо квадратных клеток на ней, матрица примерно 15х40 (уже не помню точно, но если будет очень интересно могу поднять спеки на все это дело), вписанная в посадочный талон. Таким образом подготовка к печати процесс из ряда разработки, необходимо подготовить инструкцию описывающую ваш посадочный талон, загрузить ее в принтер, после чего можно отправлять задания на печать. Сама инструкция представляет собой указание какие фразы, где они будут располагаться + другая мета информация.

Например:

12:34 Boarding pass — будет означать для принтера: напечатай фразу начиная с ячейки 12 по вертикали и 34 по горизонтали. Здесь пытаюсь передать основную логику, за давностью производимого уже не помню точно, но опять же могу спеку найти если очень надо будет.

Поэтому ваш вариант надо сначала подогнать под определенную сетку принтера (примерно как дизайн и верстка под сетку grid 980px 24 col) и после этого уже мечтать об улучшениях! Собственно основной мой посыл в том, что не стоит разрабатывать дизайн макет в отрыве от оборудования которое будет его печатать!

P.S. Да, я очень старался тогда сделать максимально удобно для всех и чтобы это было лучше чем у остальных российских авиакомпаний, но из всех хотелок удалось реализовать очень маленькую часть, остальное упиралось в оборудование(((
Все круто конечно! И предложенный вариант по дизайну и UI вероятно выигрывает у существующих кандидатов, но стоило подойти к задаче с точки зрения промышленного дизайна и учесть не только интересы пассажиров, но также специфику оборудования на котором производиться печать и имеющиеся стандарты IATA в отношении полетной документации (здесь можно поискать, но доступ только за бабки или для членов IATA www.iata.org/publications/Pages/standards-manuals.aspx). IATA это как w3c в вебе, но только в авиации.

5 лет назад я работал в S7 Airlines и как раз пришлось заниматься разработкой посадочных талонов. Сразу хочу отметить, что в целях оптимизации рабочего процесса для печати посадочных талонов используются специальные термо принтеры (http://en.wikipedia.org/wiki/Thermal_printing), аналогичные устройстам печати чеков. Это позволяет не заморачиваться с расходными материалами типа картриджей и такое оборудование более надежное и стойкое к длительной эксплуатации, что очень актуально для данных задач. Представьте себе, что вы стоите в очереди к стойке регистрации, а вам агент говорит: «Подождите немного, необходимо дождаться инженера и заменить картридж». Стоимость такого принтера 4-5К евро. Термопринтеры технически похожи на матричные, только вместо ударов по чернильной ленте, происходит «прижегание» точек на термоносителе, в нашем случае посадочном талоне (можете убедиться в этом, поджечь край посадочного талона зажигалкой). А как известно у матричных принтеров есть проблема с разрешением (dpi) и ограничения по шрифтам. Этими же проблемами обладают и термо принтеры.

Мы использовали принтера для термопечати французской компании IER. Вот ссылка на краткий ман: ier.fr/file_center/N0680CA3.pdf, чтобы у вас было более детальное представление о специфике работы самого принтера. Помимо выше описанных проблем (разрешение и шрифты), управляющая логика принтера использует определенную инструкцию, описывающую расположение элементов на посадочном талоне. Это можно представить как шахматную доску, только вместо квадратных клеток на ней, матрица примерно 15х40 (уже не помню точно, но если будет очень интересно могу поднять спеки на все это дело), вписанная в посадочный талон. Таким образом подготовка к печати процесс из ряда разработки, необходимо подготовить инструкцию описывающую ваш посадочный талон, загрузить ее в принтер, после чего можно отправлять задания на печать. Сама инструкция представляет собой указание какие фразы, где они будут располагаться + другая мета информация.

Например:

12:34 Boarding pass — будет означать для принтера: напечатай фразу начиная с ячейки 12 по вертикали и 34 по горизонтали. Здесь пытаюсь передать основную логику, за давностью производимого уже не помню точно, но опять же могу спеку найти если очень надо будет.

Поэтому ваш вариант надо сначала подогнать под определенную сетку принтера (примерно как дизайн и верстка под сетку grid 980px 24 col) и после этого уже мечтать об улучшениях! Собственно основной мой посыл в том, что не стоит разрабатывать дизайн макет в отрыве от оборудования которое будет его печатать!

P.S. Да, я очень старался тогда сделать максимально удобно для всех и чтобы это было лучше чем у остальных российских авиакомпаний, но из всех хотелок удалось реализовать очень маленькую часть, остальное упиралось в оборудование(((
Да, с packagist-ом не тяните! Сразу выкладывайте! Баги по ходу использования поправятся…
$blogpost->setCreated(time());
Для этого есть Timestampable из DoctrineExtensions.

Конфиги в виде многомерного массива подбешивают, ну есть же yaml/xml, не удобно ведь такие конфиги использовать…
Аналогичные предпочтения)
Дело не в выигрыше производительности, а в сокращении тем для холивара между приверженцами различных инструментов)

P.S. Я для большей части веб проектов использую PHP, если вас чем то обидело…
Осталось родить синтаксический сахар в духе Ruby, Python, Haskell, Erlang и транслировать сразу в opcode кеш.
Приверженцам этих языков останется хаить php только на тему производительности)
Я не знаю где вы тут разглядели такого рода процесс)))
В этом комменте написал, что все должно занимать 3 команды + написание кода.

По большому счету мое предложение — попытка сделать инструмент для системного использования, вы же зацепились за конкретный пример для статьи, набросали быстро свою реализацию в одну строчку и с вами сложно спорить о ее простоте))
Конечно портиться портится
Спасибо!
Вы в целом о форматировании, а я подумал речь о конкретном примере.
Да было бы более удобно, если бы вывод формировался посредством некого OutputBuilder-а.
Стоит подумать над этим…
Спасибо
Этот код чисто для примера, но по вашему совету немного скорректировал.

Information

Rating
Does not participate
Location
Домодедово, Москва и Московская обл., Россия
Date of birth
Registered
Activity