Да, на счет компонентов симфони в Laravel в курсе, как раз в этом и основываюсь, что будут использовать больше и больше компонентов и популярных библиотек используемых с Symfony. Вот собсвенно и зависимость…
С Zend 2 на мой взгляд очень затягивают. Развитие Symfony 2 субъективно динамичнее и активнее из-за того, что активнее сообщество…
В целом да, в большинстве случаев они в роли догоняющих и перенимающих практики. При том, что в симфони большинство фичей тоже переняты из других фреймворков, других языков. И это при том, что это обеспечивало активное сообщество. Главное, чтобы инвестиции не измении вектор в худшую сторону!
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. Да, я очень старался тогда сделать максимально удобно для всех и чтобы это было лучше чем у остальных российских авиакомпаний, но из всех хотелок удалось реализовать очень маленькую часть, остальное упиралось в оборудование(((
Осталось родить синтаксический сахар в духе Ruby, Python, Haskell, Erlang и транслировать сразу в opcode кеш.
Приверженцам этих языков останется хаить php только на тему производительности)
Я не знаю где вы тут разглядели такого рода процесс)))
В этом комменте написал, что все должно занимать 3 команды + написание кода.
По большому счету мое предложение — попытка сделать инструмент для системного использования, вы же зацепились за конкретный пример для статьи, набросали быстро свою реализацию в одну строчку и с вами сложно спорить о ее простоте))
Вы в целом о форматировании, а я подумал речь о конкретном примере.
Да было бы более удобно, если бы вывод формировался посредством некого OutputBuilder-а.
Стоит подумать над этим…
Может кому-то сэкономит время =)
P.S. Кстати композер тоже на базе симфонических компонентов)
Мне больше JSON симпатизирует)
С Zend 2 на мой взгляд очень затягивают. Развитие Symfony 2 субъективно динамичнее и активнее из-за того, что активнее сообщество…
Чувствую Zend, Laravel, Yii будут курить. Сложно будет гнаться…
В Self-checkin, который через веб, особых требований к виду не предъявляет, т.к. подразумевается, что конечные пользователи печатают на любом доступном печатающем устройстве и как правило после регистрации получают стандартный PDF документ. У нас он генерировался посредством XSLT, поэтому можно было сверстать как душе угодно. Но здесь мы уперлись в другую проблему (по крайней мере на тот момент, когда self-checkin только внедрялся, чем я как раз и занимался))), человеческий фактор! Банально все агенты на посадке, на тот момент привыкли к уже стандартному формату посадочных талонов и распечатки А4, где основная информация расположена в других местах вводила их в ступор. Это ладно если в крупных городах еще можно было людей переучить, то в каком-нибудь Мухосранске, вас просто могли на борт не пустить с такой бумашкой и отправить в WC, воспользоваться ей))) Поэтому было принято решение в верхней части, так называемой маршрутной квитанции разместить стандартный посадочный талон, а ниже уже информацию авиакомпании и рекламу (аналогично как в вашем примере от EasyJet)
P.S. По поводу рекламы на посадочных талонах, хочу прокомментировать, что это позволяет авиакомпаниям компенсировать не малые затраты на закупку термобумаги и термо бланков для посадочных, которые используются только для одного полета и по сути являются постоянной статьей расходов.
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. Да, я очень старался тогда сделать максимально удобно для всех и чтобы это было лучше чем у остальных российских авиакомпаний, но из всех хотелок удалось реализовать очень маленькую часть, остальное упиралось в оборудование(((
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. Да, я очень старался тогда сделать максимально удобно для всех и чтобы это было лучше чем у остальных российских авиакомпаний, но из всех хотелок удалось реализовать очень маленькую часть, остальное упиралось в оборудование(((
Конфиги в виде многомерного массива подбешивают, ну есть же yaml/xml, не удобно ведь такие конфиги использовать…
P.S. Я для большей части веб проектов использую PHP, если вас чем то обидело…
Приверженцам этих языков останется хаить php только на тему производительности)
В этом комменте написал, что все должно занимать 3 команды + написание кода.
По большому счету мое предложение — попытка сделать инструмент для системного использования, вы же зацепились за конкретный пример для статьи, набросали быстро свою реализацию в одну строчку и с вами сложно спорить о ее простоте))
портитьсяпортитсяСпасибо!
Да было бы более удобно, если бы вывод формировался посредством некого OutputBuilder-а.
Стоит подумать над этим…
Этот код чисто для примера, но по вашему совету немного скорректировал.