• Три ошибки iOS-разработчика, которые могут дорого стоить


       
      Создание iOS-приложения – непростая задача. Разработчикам хочется как можно быстрее завершить этот процесс и наконец запуститься в AppStore. Но на этом все не заканчивается: впереди у создателей долгие годы исправления ошибок, улучшения функций и совместной работы с другими разработчиками. Мы бы хотели немного облегчить им жизнь и для этого решили разобрать три вещи, которые нужно избегать при iOS-разработке (спасибо Envato Tuts+ за информацию).
      Читать дальше →
    • Введение в Beautiful Capi, инструмент создания С++ оберток для С++ библиотек

      Beautiful Capi — это инструмент облегчающий создание динамических библиотек на языке С++ с внешним интерфейсом на языке Си. Данный инструмент генерирует также С++ обертки для этого Си интерфейса. Beautiful Capi написан на языке Python 3.


      Основная головная боль разработчиков библиотек на С++ в отсутствии единого стандарта ABI. Различные компиляторы имеют разный ABI, соглашения о именовании, схемах перехвата исключений и т.д. Поэтому программистам на С++ приходится каждый раз брать исходники библиотеки и собирать ее при помощи нужного компилятора.


      Это хорошо, если библиотека популярная, и для нее добрый дядя уже выложил бинарные файлы для большинства компиляторов С++. Опять таки, для большинства компиляторов. Компиляторов С++ достаточно много, и, если учитывать разные версии одного и того же компилятора, имеющими несовместимый ABI, то вероятность того, что уже собранная библиотека вам не подойдет — достаточно высока. Плюс, добавим к этому различные настройки компиляторов, влияющие на двоичную совместимость.

      Читать дальше →
    • Совмещение труда в разработке программного обеспечения

      • Tutorial
      Думаю, многим хабролюдям довелось побывать в роли человека-оркестра в таких самобытных конторках, где и программу разработать, самому же к ней инструкцию написать, установить у всех на ПК и далее активно принимать участие в разборе ситуаций «я тут весь день потратила, а оно куда-то всё пропало», меняя между делом картриджи и вытаскивая бумагу в (из) принтерах(-ов).



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

      Где же золотая середина, баланс базара и матрицы? Навряд ли в обозримом будущем появится однозначный универсальный ответ на этот вопрос. Но есть принципы планирования и совершенствования совмещения труда на отдельно взятом производстве (организации), которые и представлены в данной статье с упором на сферу разработки программного обеспечения.

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

      После прочтения прошу всех пройти опрос.
      Читать дальше →
    • Удобство пользователей в решениях виртуальной реальности — советы VRMonkey

      • Перевод
      Уже много лет понятие «виртуальная реальность» обсуждается в средствах массовой информации, в этой области действительно появляются новые решения. Теперь у вас появилась возможность использовать новую платформу разработки, но готовы ли вы к этому?
      Ниже приводятся советы, которым имеет смысл последовать, чтобы разрабатываемые решения виртуальной реальности не вызывали неприятия у пользователей. Также описываются проверенные решения наиболее передовых разработчиков в этой области.


      Читать дальше →
    • Асинхронные режимы фреймворка gRPC и принципы их работы в С++

      Однажды мы с нашей командой решили попробовать gRPC для своих задач. После некоторых обсуждений, пришли к выводу, что будем использовать асинхронные клиент и сервер. Однако, под рукой оказался рабочий пример из документации только для одного режима. Примеры остальных режимов взаимодействия, основные принципы работы асинхронных операций, принципы работы асинхронного сервера и клиента в gRPC и многое другое под катом.
      Читать дальше →
    • Краткий курс машинного обучения или как создать нейронную сеть для решения скоринг задачи

      • Tutorial
      image

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

      Вопросы, которые разобраны в статье:

      • Как собрать и подготовить данные для построения модели?
      • Что такое нейронная сеть и как она устроена?
      • Как написать свою нейронную сеть с нуля?
      • Как правильно обучить нейронную сеть на имеющихся данных?
      • Как интерпретировать модель и ее результаты?
      • Как корректно оценить качество модели?
      Поехали!
    • Реклама помогает поддерживать и развивать наши сервисы

      Подробнее
      Реклама
    • VDI как искусство

        Наш путь к инфраструктуре виртуальных рабочих столов от эксперимента и до продукта творческой деятельности инженеров. Мы подошли к проекту с энтузиазмом, благодаря чему получили удовольствие от процесса внедрения и эстетическое наслаждение результатом. Хотите «дорожную карту»? Добро пожаловать под кат.


        Читать дальше →
      • Как интегрироваться с решениями Cisco по безопасности? Обзор двух десятков API, доступных всем

          Сегодня в России очень модной стала тема SOC и SIEM. Все их строят и пишут. Вы знали, что в России уже около десятка собственных систем мониторинга событий безопасности (SIEM)? Эту цифру перевалило и число коммерческих SOCов, предлагающих свои услуги заказчикам, которые попадут под требования 187-ФЗ о безопасности критической информационной инфраструктуры и вынуждены будут оперативно отдавать данные об инцидентах в ГосСОПКУ. Но какую бы цель не преследовали создатели SIEM и SOC, и на каком бы уровне зрелости они не находились, они все равно сталкиваются с базовой задачей — сбора событий безопасности и журналов регистрации от разрозненных средств защиты информации.

          Согласно данным компании Canalys (а она единственная кто продолжает оценивать российский рынок решений по ИБ), лидером отечественного рынка продолжает оставаться компания Cisco. Поэтому вполне разумно предположить, что одной из первых задач, которая должна стоять перед разработчиками SIEM/SOC, — это интеграция с решениями нашей компании. Но вокруг такой интеграции бытует множество мифов и заблуждений, которые можно описать диалогом, который у меня недавно случился с одним из отечественных производителей SIEM:

          — А почему вы не интегрируетесь с решениями Cisco?
          — Так у вас уже все проприетарное?
          — Нет, это не так!
          — Да? А мне говорили, что у вас закрытые API и доступ к ним стоит денег.
          — Нет, и это не так!

          image
          Читать дальше →
        • Области сокрытия кода и рефакторинг

            Одним из главных аспектов при разработке программного обеспечения вообще и web-приложений в частности я считаю способность программного обеспечения быть изменяемым — адаптируемым к изменениям окружающего мира. Это не значит, что разработчик должен заранее предусмотреть будущие изменения среды обитания своего кода, это значит, что код должен переносить множество циклов рефакторинга, оставаясь при этом работоспособным как можно дольше. А для этого нужно, чтобы последствия изменений, вносимых в код, были либо обозримы, либо предсказуемы. Под катом я суммировал свое понимание областей сокрытия кода, сформировавшееся в результате тесных, практически интимных, отношений с Magento 2 (платформой для построения интернет-магазинов). Изложенное ниже относится во-первых, к языку PHP, во-вторых — к web-приложениям, в-третьих — ко всему остальному.

            Читать дальше →
          • Фейковые приложения для торговли криптовалютами из Google Play попались на краже данных

              Пользователи популярной криптовалютной биржи Poloniex стали целью новой мошеннической кампании в Google Play. Под видом легитимного софта биржи в магазине распространялись два приложения для кражи данных. Фейки позволяют перехватывать логины и пароли от учетной записи в Poloniex, а также от аккаунта в Gmail.



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

              Читать дальше →
            Самое читаемое