Как стать автором
Обновить
Контур
Делаем сервисы для бизнеса
Сначала показывать

Xamarin и Xamarin.Forms – кактус в шоколаде. Часть 2

Время на прочтение7 мин
Количество просмотров14K
Совсем недавно мы опубликовали статью про особенности и проблемы популярного мобильного фреймворка Xamarin. Сегодня же мы продолжим рассказ и сосредоточимся на нюансах библиотеки Xamarin.Forms. Под катом вас ждёт история о том, какие грабли поджидают решившего сделать кроссплатформенный UI.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии11

Xamarin и Xamarin.Forms – кактус в шоколаде. Часть 1

Время на прочтение9 мин
Количество просмотров22K
Мы в Контур.Эльбе обожаем мобильные приложения. У нас уже был опыт написания приложения под iOS, а также разработки и дальнейшей поддержки приложения под Android. В этом году мы вновь выпустили версию под iOS, но на этот раз на базе Xamarin и Xamarin.Forms, и нам не терпится поделиться опытом. Пока что мы успели рассмотреть разработку только под iOS, но впечатлений уже море, да и про Android пару слов однозначно скажем.
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии29

QCTF Starter: компьютерная безопасность на четверых или как мы сделали турнир для новичков в 19 городах одновременно

Время на прочтение5 мин
Количество просмотров9.4K
UPD: ссылка на онлайн-турнир online.qctf.ru

CTF-соревнования знакомы многим, ещё больше людей о них хотя бы раз слышали. Про них тут хорошо написано. Чтобы участвовать в серьёзных CTF-турнирах нужна неслабая подготовка, но мало кто знает, как и где её получить. Мы решили исправить это, а именно — провести массовые соревнования по компьютерной безопасности для новичков. И назвали их QCTF Starter. Возможно, для участников это станет первой ступенькой на пути к профессиональным CTF-турнирам.

QCTF Starter прошёл вчера на площадках по всей стране, а с понедельника (10:00 по МСК) мы запустим онлайн-версию по мотивам соревнования для тех, кто не смог присоединиться к нам в оффлайне. Ссылка появится на сайте прямо перед стартом тура. Мы обязательно напомним вам о начале игры, если вы оставите тут свои координаты. На онлайн-зеркало приглашаем всех желающих.

В этом году нам удалось сделать почти невозможное: собрать 208 команд в 19 городах на 22 площадках. Одна даже находилась за пределами России, в Минске. Но мы неумолимы и надеемся, что в следующем году площадок станет ещё больше.

Благодаря энтузиастам, согласившимся взять на себя организацию соревнований в своих городах, мы смогли набрать такое большое количество команд (QCTF Starter стал самым большим очным CTF-соревнованием, когда-либо проводившимся в России). Как нам это удалось и что получилось в итоге, читайте под катом.

image
(Фото сделано участником соревнования QCTF Starter в Екатеринбурге)
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии3

Долгая дорога в App Store, или как потратить 43 дня на премодерацию приложения

Время на прочтение14 мин
Количество просмотров25K
В прошлом году мы рассказывали про разработку приложения Контур.Эльба под Android (причем неоднократно). Реализовав в нем все задуманное, мы принялись за разработку версии под iOS, которая недавно появилась в App Store. Пост про разработку с использованием Xamarin.Forms будет позже, а пока сосредоточимся на, казалось бы, банальном вопросе: выкладывание приложения в App Store и общение с модераторами.

Начнём с выводов, которые мы получили в процессе общения с модераторами Apple:

  • следует внимательно перечитывать App Store Review Guidelines: рекомендации меняются, и то что вчера было разрешено, сегодня могут уже запретить;
  • модераторы Apple не всегда внимательно изучают приложение и могут пропустить контент внутри;
  • нужно внимательно читать ответы модераторов;
  • решение после проверки может не соответствовать правилам App Store. Пример в тексте ниже: требование подключения in app purchase для приложения без поддержки платных фич;
  • в непонятных ситуациях лучше сразу написать апелляцию, чтобы не тратить неделю на ожидание ответа. Если ответ не устраивает или непонятен – новые апелляции;
  • модерация может занять много времени: минимум 8 дней, из которых 7 дней – ожидание в очереди на проверку.

Представляем лог общения с модераторами с неожиданными поворотами, расследованиями, тотальным непониманием, но со счастливым завершением сюжетной арки.
Читать дальше →
Всего голосов 22: ↑18 и ↓4+14
Комментарии19

Заказчики из-за границы: как сделать всё легально

Время на прочтение5 мин
Количество просмотров80K


Из-за падающего курса рубля многие фрилансеры уже давно работают на зарубежных клиентов. Среди них не все желают сотрудничать с обычными физлицами: крупные заказчики требуют оформлять контракт и оплачивать работы в иностранной валюте. Чтобы охватить новый рынок, придётся зарегистрироваться как предприниматель и соблюдать серьезное валютное законодательство. Обо всех этих правилах мы постарались рассказать понятными словами.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии15

Зачем давать гранты преподавателям, когда нужны разработчики

Время на прочтение4 мин
Количество просмотров4.5K
ИТ-компании часто тратят деньги на развитие сегмента и вкладываются в будущих сотрудников. На это много причин: говорят об обязательствах лидеров отрасли, развитии местного профессионального сообщества, социальной ответственности и бла-бла-бла. На деле всё прозаичнее: хочешь хорошего специалиста — воспитай сам. Не быстро, зато надежно. Мы — такая социально-ориентированная компания с земными интересами. Будущих программистов и разработчиков у нас помогают готовить Образовательные программы. Как все устроено и чем именно занимается отдел, рассказывать не буду — это тема отдельного поста. Поделюсь опытом работы над одним из проектов направления — грантовой программой для преподавателей.
image
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии2

Быстрая и удобная генерация IL

Время на прочтение14 мин
Количество просмотров21K
Я много раз сталкивался с задачей динамической генерации кода (например, при написании эффективного сериализатора или компилятора DSL). Это можно делать разными способами, какой из них лучший – дискуссия для отдельной статьи. По ряду причин я предпочитаю Reflection.Emit и CIL (Common Intermediate Language) и расскажу, с какими проблемами пришлось столкнуться на этом пути, а также об их решении: умной обертке над ILGeneratorGroboIL из библиотеки Graceful Emit.

Хочу отметить при этом, что иногда встречаются ситуации, когда у нас нет большого выбора: например, при написании сериализатора необходимо иметь доступ к приватным полям, и приходится использовать IL. Кстати, известный сериализатор protobuf-net содержит несколько сотен IL-инструкций.

Если вы ни разу не сталкивались с использованием IL-кода, то статья может показаться сложной для понимания, поскольку содержит много примеров кода с использованием IL. Для получения базовых знаний рекомендую прочитать статью Introduction to IL Assembly Language.
Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии22

Почему я не преподаю SOLID и «принцип устранения зависимостей»

Время на прочтение5 мин
Количество просмотров65K

Статья 1. Почему я не преподаю SOLID


Если вы разговариваете с кем-то, кому небезразлично качество кода, уже достаточно скоро в разговоре всплывёт SOLID — аббревиатура, помогающая разработчикам запомнить пять важных принципов объектно-ориентированного программирования:

SOLID полезен. Его разработали знатоки в нашей области. Он помогает людям рассуждать о дизайне. Помогает создавать системы, устойчивые к изменениям.

Раньше SOLID был краеугольным камнем моего набора средств проектирования. Я делал все возможное, чтобы сделать мой код как можно более SOLID. Я учил других поступать так же.

Сегодня SOLID остается для меня важным, но я больше не пытаюсь сделать мой код SOLID. Я редко упоминаю его, когда говорю про дизайн. И тем более я не учу пользоваться им разработчиков, которым хочется почерпнуть хорошие дизайнерские методы проектирования. Он больше не находится у меня под рукой в моем «ящике для инструментов». Он лежит в пыльной коробке на чердаке. Я храню его, потому что он важен, но редко им пользуюсь.
Читать дальше →
Всего голосов 57: ↑47 и ↓10+37
Комментарии101

QR-код Шредингера: когда монохромный рисунок «оживет»?

Время на прочтение3 мин
Количество просмотров4.2K
QR-код очень интересный предмет: даже если он есть, его как бы нет… Он имеет непростую историю распространения в нашей стране. С одной стороны, несколько лет назад черно-белые значки активно начали расползаться по всевозможным поверхностям – от упаковок до зданий, ими обзавелись даже особо прогрессивные музеи, чтобы привлечь молодую аудиторию и добавить долю интерактива в приобщение к прекрасному.

Мы на своем проекте ощутили, насколько непопулярен «удобный» значок даже у молодого поколения. О том, как мы собственным опытом подтвердили гипотезу, что это скорее украшение и хороший тон, чем полезное дополнение, читайте под катом.

image
Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии2

Несерьезный пост

Время на прочтение1 мин
Количество просмотров4.1K
1 апреля не только день шуток и смеха, но еще и день рождения нашей справочно-правовой системы для бухгалтера "Норматив". Однажды мы решили собрать коллекцию странных законов со всего мира и поместить их в рубрику «Юмор в законе», которую может видеть каждый пользователь нашего веб-сервиса. Набралось больше 200 законов. Топ-10 необычных, по нашему мнению, норм публикуем сегодня для вас. Пусть в нашей жизни будет больше позитивных эмоций и поменьше невыполнимых законов:
Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии2

«Шуба-дуба в лифте» идет в народ или как за 1 000 руб. снять видео и за 3 дня собрать 50 000 просмотров

Время на прочтение2 мин
Количество просмотров4.5K
Невозможно угадать, станет ли видеоролик вирусным. Это решает случай и удачное стечение обстоятельств. Так что основной нашей задачей было «заразить» хорошим настроением прекрасную половину компании, а уж потом – «распространиться» в интернете. Получилось и то, и другое. Этим опытом мы хотим с вами поделиться.

Позитив + сюрприз + естественные эмоции. Именно такова формула хорошего поздравительного ролика, на наш взгляд. Несколько мозговых штурмов и вот, накануне 8 марта, один из пассажирских лифтов в нашем офисном здании превращается в камерный концертный зал. Ничего не подозревающая женщина заходит утром в лифт, а там… Впрочем, смотрите сами!


Читать дальше →
Всего голосов 17: ↑13 и ↓4+9
Комментарии3

Как рассказать школьникам о разработчиках?

Время на прочтение1 мин
Количество просмотров4.6K
IT-компании, и мы в том числе, запускают и развивают образовательные проекты для студентов вузов — будущих разработчиков и прочих it-шников. Этим уже никого не удивишь.

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

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

Опустим подробности обсуждений и подготовки — сейчас готов аниматик. Это такой недомультик, который уже можно смотреть и предлагать правки.

Всем любопытствующим — добро пожаловать под кат.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии5

Поющий лифт

Время на прочтение1 мин
Количество просмотров6.9K
Мы не нашли на «Мегамозге» специальной рубрики для поздравлений. Наш пост необычный. С одной стороны, он поздравительный, с другой – про вирусные ролики и интернет-маркетинг.

Буквально два дня назад мы организовали необычное поздравление для сотрудниц нашего офиса и сняли все это скрытыми камерами:


Читать дальше →
Всего голосов 26: ↑21 и ↓5+16
Комментарии5

Шоу накрутчиков голосов в интернете. Третий сезон

Время на прочтение3 мин
Количество просмотров12K

Вот уже три года подряд наша компания, СКБ Контур, проводит для владельцев малого и среднего бизнеса конкурс с соответствующим названием «Я Бизнесмен». Основной этап конкурса проходит, само собой, в интернете. Из года в год его правила слегка корректируются, но в целом неизменны и достаточно просты: необходимо иметь официально зарегистрированный бизнес, снять о нем короткий видеоролик, выложить на странице конкурса и набрать максимум голосов.

Чтобы поставить «лайк» за тот или иной ролик, нужно оставить в форме голосования номер своего мобильного телефона. На него придет СМС с уникальным кодом, с помощью которого можно оставить один голос. С одного номера за время конкурса можно отправить только пять СМС-сообщений.

Сумма призов в основных номинациях конкурса довольно внушительна. Наверное, поэтому непременно находятся участники, готовые ради победы использовать не совсем честные способы для получения голосов. Несмотря на все наши предупреждения, накрутчиков становится больше, а их методы – более технологичными и изящными.
За три года мы смогли составить рейтинг самых популярных методов получения голосов (честных и нечестных). Надеемся, кому-то наша статья поможет сделать конкурсы с голосованием более прозрачными, ну а накрутчикам – определенные выводы.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии8

Simple container

Время на прочтение18 мин
Количество просмотров11K
Да-да, вы все правильно поняли, это статья об еще одном велосипеде — о моем Dependency Injection (DI) контейнере. За окном уже 2015-ый год, и самых разных контейнеров на любой вкус и цвет полным полно. Зачем может понадобиться еще один?

Во-первых, он может просто образоваться сам собой! Мы в Эльбе довольно долго использовали этот контейнер, и некоторые из описываемых в статье идей (Factory Injection, Generics Inferring, Configurators) изначально были реализованы поверх него через публичное API.

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

В-третьих, DI-контейнер — относительно простая штука. Он очень хорошо поддается разработке в режиме TDD, за счет чего делать его становится весело и приятно.

Эта статья — не введение в DI. На эту тему есть много других прекрасных публикаций, в том числе и на Хабре. Скорее здесь собран набор рецептов приготовления DI так, чтобы получившееся блюдо было вкусным, но не острым. Если у вас DI-контейнер в продакшене или вы написали свой собственный самый лучший контейнер, то здесь отличное место для холиваров о том, чей контейнер круче!
Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии20

И ИТ, и ИП: рассказываем, где небольшому бизнесу взять денег на развитие

Время на прочтение2 мин
Количество просмотров7.8K
У вас есть свой бизнес? Тогда мы хотим, чтобы вы знали: до 27 января 2015 года можно принять участие в конкурсе «Я Бизнесмен» и при помощи собственного мозга и креатива выиграть разные полезные штуки и 300 000 или 200 000. Рублей, а не долларов, но тоже неплохо в свете текущей экономической ситуации.

Почему мы хотим рассказать о конкурсе именно здесь? Как минимум, айтишники – люди с мозгами. Тот, кто смог запустить свой ИТ-стартап и реализовать на практике идею, сможет интересно рассказать о своем бизнесе.
Именно это и требуется – снять о своем деле ролик с помощью любой техники. Главное, уложиться в 3 минуты, а владельцу бизнеса хотя бы раз показаться в кадре.
Читать дальше →
Всего голосов 12: ↑7 и ↓5+2
Комментарии5

Как работать с валютными счетами?

Время на прочтение4 мин
Количество просмотров118K
Скачущий курс рубля никого не оставил равнодушным. Бум валютных операций подвигнул нас пристально рассмотреть все особенности валютного законодательства.

С зарубежными партнерами расчет чаще всего происходит в иностранной валюте. Чтобы оплатить заказ или получить доход от покупателя в валюте необходимо иметь валютный счет.
Читать дальше →
Всего голосов 41: ↑38 и ↓3+35
Комментарии41

Делаем собственную индикацию о входящем звонке

Время на прочтение4 мин
Количество просмотров47K
После последнего поста о нашем Android-приложении у некоторых читателей статьи возник вопрос, как именно показать собственную информационную плашку во время звонка? Ну что же, сегодня мы ответим на этот вопрос.
Пст, хотите немного java-кода?
Всего голосов 35: ↑27 и ↓8+19
Комментарии16

Что делать, если у банка отозвали лицензию?

Время на прочтение5 мин
Количество просмотров108K

В последнее время всё чаще появляются новости о том, что Центробанк отозвал лицензию у какого-нибудь банка. Иногда это происходит внезапно и неожиданно, а бывает, что до этого в интернете уже проскальзывал слух. Когда нужно верить плохим новостям и бежать менять банк и, самое главное, что делать, если вы остались без банка — не будем тянуть с лиричными вступлениями и расскажем прямо сейчас.
Читать, пока еще не поздно
Всего голосов 94: ↑78 и ↓16+62
Комментарии62

Экспортируем комментарии и оценки из Google Play для анализа

Время на прочтение3 мин
Количество просмотров10K
Не все знают, но в Google Play существует вполне легальная возможность выгрузить все комментарии и оценки к своему приложению в отдельный CSV-файл, после чего заняться каким-нибудь анализом, не доступном из гугловской системы. Но делается это с помощью внешней утилиты gsutil, написанной на Python’е. Так что в этом посте будет небольшая инструкция по тому, как это сделать.
Пошаговая инструкция
Всего голосов 14: ↑13 и ↓1+12
Комментарии11

Информация

Сайт
tech.kontur.ru
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия