Один из клиентов нашего web-проекта захотел использовать для поиска заказов в системе сканер штрихкодов. Но, к сожалению, полностью отказался от идеи работы с ними в режиме имитации клавиатуры — только эмуляция COM-порта.
Вариантов решения было не особенно много:
отдельное нативное приложение, которое бы отправляло запрос на наш сервер, а сервер бы отдавал команду в браузер
работа с COM портом непосредственно из браузера
К счастью, есть способ решения проблемы вторым путём.
Путь разработчика мобильного приложения часто начинается с выбора: разрабатывать под iOS, Android или Windows? Этот выбор мгновенно уменьшает размер вашей потенциальной аудитории, но разработчики вынуждены принимать подобные решения. Те, кто хочет присутствовать по всех трех магазинах приложений, приходят к необходимости переписывать приложение под каждую платформу.
Visual Studio позволяет поддерживать максимальный охват пользователей, достигая при этом значительного повторного использования кода. С помощью Xamarin C#-разработчики могут поддерживать общую бизнес-логику между iOS, Android и Windows-приложениями. С помощью Apache Cordova веб-разработчики могут достичь максимального повторного использования кода, создавая кросс-платформенные приложения на HTML, CSS и JavaScript.
В этой статьей мы посмотрим в деталях, как вы можете использовать расширение “Multi-Device Hybrid Apps” для Visual Studio, для второго сценария – создания кросс-платформенных приложений с использованием веб-стандартов. Чтобы следовать за статьей:
Хочу поделиться нашим опытом привлечение клиентов для вновь созданной веб-студии. Основанием нашей веб-студии официально можно считать 31 августа 2012 года, именно тогда мне выдали свидетельство о регистрации меня как индивидуального предпринимателя. С этого момента было перепробовано много методов привлечения клиентов в нашу молодую веб-студию. Все будущие сотрудник еще трудились на прежних местах работы и по вечерам делали сайты, а я в свою очередь пытался найти клиентов, совмещая с эникейством нескольких не больших организаций (да и так бывает, менеджер из эникейщика). Разработкой сайтов профессионально никто из нас раньше не занимался и естественно, как и кому продавать сайты тоже не знали. Все делалось путем проб и ошибок. Сначала не было даже программиста, был дизайнер и верстальщик в одном лице (в то время не очень сильный) и я в роли менеджера (тоже откровенно слабый).
Приступим к перечислению что делалось, как работало, а что не приносило результата:
Мы используем как аутсорс, так и свои внутренние ресурсы ИТ-отдела. На одном физическом сервере может быть сервис, за который отвечают внешние сотрудники, и сервис, за который отвечаем мы. И от сезона эти сервисы могут мигрировать внутрь компании или выходить наружу.
Началась история с того, что нам понадобилась централизованная система с фермой терминалов. На тот момент у нас было порядка 10 магазинов, и каждый из них вёл свою базу, данные из которой использовались для составления совокупного отчёта в конце периода или по запросу.
Гибкий график изменил то, как, где и когда мы делаем нашу работу. Что ж, если работа с 9 до 5 перестала быть обязательной — зачем придерживаться строгого графика ежегодного отпуска?
Случалось ли вам наблюдать, как руководитель проекта с самого его начала постоянно занимается пожаротушением, полностью погружен в борьбу с неотложными проблемами, темп поступления которых превышает скорость их решения. Все задачи, которые получает команда проекта, имеют наивысший приоритет и срочность: «Это надо было сделать еще вчера!» Трудовой героизм. Постоянные сверхурочные. Субботники. Авралы. Обучение, анализ, планирование, проектирование, тестирование, рефакторинг – «это все потом!».
Знакомо?
«Хорошо управляемое предприятие — это спокойное место. Зато «фабрика, отличающаяся «кипучей» деятельностью и «трудовым героизмом» работников, который бросается в глаза любому посетителю, является на самом деле плохо управляемой», писал управленческий авторитет Питер Фердинанд Друкер.
Проблема большинства проектов разработки ПО заключается не в том, что люди мало трудятся, а в том, что они делают не ту работу, которую нужно делать. Хороший менеджер должен руководствоваться фундаментальным принципом наименьшего действия и, следовательно, быть ленивым. И у него все получится. Почему?
В этом посте я расскажу о своем опыте преподавания. В частности, опишу, какие ошибки совершил и как исправил. Опишу методы, которые применял для обучения, а так же расскажу о своих планах на текущий учебный год.
Предисловие. О себе и как так получилось
Я работаю в маленькой компании в должности программиста, по факту системным администратором эникея. В начале 2014 года ко мне обратились из техникума, который в далеком прошлом закончил по специальности «Бухгалтер-экономист» и предложили преподавать бухгалтерам предмет «1С: Предприятие». С глазами по 5 копеек рублей от страха я согласился.
Продолжаем цикл публикаций о статических сайтах на базе нашего облачного хранилища (см. предыдущие публикации здесь и здесь). Сегодня мы подробно обсудим вопросы их тонкой настройки и оптимизации.
Главным критерием отличной работы сайта с точки зрения пользователя является, конечно же, скорость загрузки компонентов. Если сайт по тем или иным причинам загружается слишком долго, это неизбежно приводит к потере посетителей, которым надоедает ждать. Чтобы сделать сайт быстрым и удобным, нужно проделать определенную работу по его оптимизации.
Ниже мы дадим ряд рекомендаций, с помощью которых можно увеличить скорость работы статического сайта, размещенного в нашем хранилище.
В 2008 мы с партнёром закончили обучение по специальности «компьютерная инженерия» в университете в Аргентине.
На старших курсах мы проходили стажировку в таких компаниях, как HP, IBM, Intel. Именно тогда мы заметили недостаток в их работе. Мы не могли понять, почему люди без технических знаний говорят программистам, что им делать, и кроме того, проверяют, как именно они это делают.
Поэтому, когда мы делали Project eMT, сравнительный поисковик для Латинской Америки, мы решили работать по-другому: без менеджеров проектов. Через шесть лет у нас в команде было 34 инженера из Чили, Бразилии, Мексики и Колумбии, и мы всё ещё работаем без использования традиционных структур и рабочего графика, а наш ежегодный рост составляет 204%.
Коллеги, у меня для вас есть замечательная новость, мы получили чудесный проект, его несколько лет писали неизвестные нам разработчики, адрес которых мы вряд ли узнаем (чтобы «поделиться обратной связью»), писали очень давно и не известно под чем, и нам предстоит его поддерживать и развивать. Проект сейчас находится на пике своей производительности и мы скоро упремся, любые неаккуратные изменения могут его положить, но мы будем его развивать. Ура!
Согласитесь, странно звучит? Как бред больного на голову программиста. Кто же любит legacy? Это же всегда говнокод (ведь только мы сами пишем идеально), в нем полно багов (а мы сами пишем без ошибок), ужасные решения (ведь только мы сами выбираем подходящую архитектуру), и почти всегда его сложно читать (ведь только мы сами пишем понятно и красиво).
Позволяет получить общую картину: распределение уникальных IP, с которых идут запросы, кол-во запросов с одного IP и т.д.
Самое ценное — что все это работает в режиме реального времени и можно мониторить ситуацию, внося какие-либо изменения в конфигурацию (например просто забанить ТОП 20 самых активных IP через iptables или временно ограничить географию запросов в nginx через GeoIP http://nginx.org/ru/docs/http/ngx_http_geoip_module.html).
Друзья, завтра День программиста! Наверняка у каждого из нас есть знакомый программист. Такой специальный человек, которого все просят починить компьютер, принтер, телефон, «а что, он же программист, значит шарит в компьютерах». Так вот, не забудьте завтра поздравить этих знакомых и важных людей! Но сегодня пятница, поэтому мы решили поздравить всех программистов заранее.
Важность труда программистов для мира IT трудно переоценить. И не только для него. Благодаря им у нас есть компьютеры, смартфоны, планшеты, сайты, соцсети, мессенджеры и даже Хабр. Теперь вот они ещё и очки с часами прокачали. Благодаря программистам, мы сегодня обрели способности полубогов, с точки зрения предков. Современные высокие технологии позволяют нам получить все знания мира, не вставая с дивана. Всего за несколько десятилетий развитие программирования радикально поменяло мир, сделало доступными невиданные, фантастические технологии. Мы теперь можем увидеть на маленьком устройстве каждый уголок планеты, сразу узнать о событиях, происходящих за тысячи километров от нас. И если к возможностям и универсальности компьютеров и мобильных гаджетов все давно привыкли, то нас ещё ожидают невероятные успехи в роботостроении. Глядя на текущие достижения, понимаешь, что пора сдувать пыль с трёх законов робототехники, они нам уже скоро понадобятся.
Ладно, а теперь развлекательная часть. Сегодня мы подготовили для вас небольшой ролик, который особенно оценят программисты, работающие в командах, отделах и прочих департаментах. Не будем описывать, смотрите сами.
Поздравляем вас! Желаем безбажного кода, интересных проектов и успешных релизов! Кстати, наш CEO Дмитрий Гришин тоже когда-то был программистом, начав свою карьеру с должности разработчика ПО, подрабатывая на нескольких работах и учась при этом в Бауманке. Через два года он занял пост технического директора в новой компании Mail.Ru, которая несколько лет спустя выросла в крупнейшую IT-компанию России. В связи с праздником мы попросили наших программистов рассказать о том, почему они выбрали эту профессию, и что станет с программистами через 20 лет. Их рассказы читайте под катом.
Вы можете спросить себя: зачем мне это читать, если я и так пользуюсь сервисом Airbnb? Вы можете спросить себя: кто это такие и зачем мне читать о них? Мы не сможем ответить на второй вопрос — в этой статье нет ни слова о том, что такое Airbnb, зачем и кому он нужен. И здесь не будет FAQ по использованию сервиса. Но мы можем поделиться интересными советами с теми, кто уже пользовался нашими услугами или знает о них достаточно, чтобы быть готовыми ими воспользоваться. Советы у нас от очевидных до завуалированных, но все они в едином стиле направлены на то, чтобы сделать вашу работу эффективной интереснее ваше путешествие в любую из 190 представленных у нас стран.
Появилась необходимость сделать локальную сеть между двумя узлами, удаленными друг от друга на расстоянии 1.15 км. По скольку есть опыт оказания помощи другу и подключения его частного дома к FTTB сети соседней многоэтажки через роутеры производства Mikrotik, было решено на них и реализовать подключение. Выбор пал на RouterBOARD SXT Lite5 (прошу не считать за рекламу, но это лучший выбор за эту цену).
Характеристики и процесс монтажа, в т.ч. видео можно найти на сайте Mikrotik или дилеров по России. Пока что собран тестовый стенд. Параметры стенда- расстояние между точками 1.15 км по Яндекс картам. Одна точка установлена на балконе 8 этажа, вторая в квартире, расположенной так же 8 этаже, установлены на штативы для фото оборудования.
Прежде всего, конечно же, нужно сделать оговорку, что многокамерную съёмку нельзя в принципе сделать только своими руками, так как один человек физически не может одновременно работать сразу с пятью камерами. Так что, как минимум, видеооператороры нам всё-таки понадобятся. А в остальном, всё будет делаться своими руками с использованием подручных средств. И я постараюсь рассказать максимально подробно на конкретном примере о имеющихся нюансах (правда без указания конкретных денежных эквивалентов, так как это будет противоречить моим договорённостям с организатором мероприятия).
В группе предприятий «Х» используют терминальные сервера.
Начался новый сезон и в одном из представительств загрузка cpu начала достигать 100 процентов, что есть плохо, особенно после того, как пользователи начали жаловаться на скорость работы.
Причина возникновения проблемы была не понятна, количество сотрудников не менялось, софт не менялся… Все представительства в одинаковых условиях.
Собрал тестовый стенд и начал искать решение…
Долго перебирал разные настройки сервера и клиентских мест, это отдельная тема.
В творческом поиске сравнил протоколы RDP и RemoteFX, результаты решил опубликовать.
Визитные карточки – такая же привычная часть бизнеса, как и электронная почта или телефон. Многие уже давно предрекают им смерть в связи с «прогрессом» QR-кодов, соцсетей и передачи файлов, но они до сих пор живее всех живых. Мы пока не можем обойтись без бумажных карточек для передачи контактных данных нашим клиентам и партнёрам. QR-коды не стали популярными, так как требовали установки дополнительных приложений, хорошего освещения и были слишком громоздкими для хранения всех нужных данных. В соцсетях зарегистрированы не все и хранить там персональные данные порой непозволительная роскошь. А передача файлов с помощью различных технологий типа AirDrop, Alljoyn или Beam, будем честны, пока недостаточно удобна и широко распространена.
И всё-таки есть способ добавить немного магии в ваши бумажные визитки и быстро передать ваши контактные данные прямо в записную книжку телефона партнёра. Я говорю об NFC.
Собственно, с бумажными визитками понятно, что делать: сканируем и распознаем с помощью ABBYY Business Card Reader и сохраняем в контакты. Но вот для того, чтобы добавить визиткам «айтишность» и некоторый шарм, нужно что-нибудь дополнительное. В этой роли отлично сыграет NFC-метка.
В комментариях к материалу возникло любопытное предложение: сравнить стоимость пользования расходных материалов разных групп печатающей техники. Предложение действительно весьма интересное, а поскольку мы можем дать развернутый (более, чем) ответ, то надеемся, что вся эта информация пригодится и частным пользователям, и корпорациям. В общем, приступим.
Современный мир предоставляет нам удивительную возможность выбрать профессию, на которой не нужно изготавливать одну единственную деталь от рассвета до заката в темных цехах старого кирпичного завода. В наше время успешно реализовать себя, построить бизнес и обрести полную свободу можно там, где вы этого хотите (и где для подобного созданы все условия).
Гибкий график, ведущий к росту производительности, возможность не тратить время на дорогу в офис, собственноручно созданные условия для концентрации над рабочим процессом – всё это делает удалённую работу вожделенной мечтой многих офисных сотрудников.
Удалённая работа таит в себе множество подводных камней (включая отсутствие невербальной коммуникации), но будьте уверены, современные технологии устанавливают новые стандарты, меняют наши представления как о рабочем процессе, так и об отдыхе. Вы можете жить в мире, в котором нет границ, при желании неделями не общаться с живыми людьми, путешествовать и работать одновременно, инвестируя свободное время в творческий рост и самореализацию.
Осталось решить только один вопрос: как нам построить рабочий процесс, чтобы работа не мешала отдыху, а отдых давал силы для ежедневной работы?
Я работаю над фронтендом огромного проекта — поисковой выдачи Яндекса. И у нас, как и у любого другого большого веб-проекта, есть огромное количество css-кода и немаленькая команда, которая с ним взаимодействует.
Когда много людей, используя разные инструменты, пишут и редактируют css, со временем этот css может получиться очень запутанным, неконсистентым и в целом начинает выглядеть плохо. Например, кому-то удобнее писать вендорные префиксы в одном порядке, кому-то — в другом, кто-то ставит кавычки вокруг url, кто-то — нет, а кто-нибудь фикся срочную багу к релизу мог бы, к примеру, написать position: relative в начале блока свойств, незаметив что где-нибудь внизу между color и box-shadow, уже есть position: absolute, и долго гадать, почему у него ничего не работает.
Но несмотря на то, что все пишут код по-разному, у нас в репозитории идеальный порядок: css-код полностью консистентен, и прекрасно выглядит. Весь.