Архив за 27 мая 2016 - 3

Сегмент мобильной разработки регулярно предлагает участникам рынка новый инструментарий. О том, стоит ли использовать такую новую для программирования под iOS концепцию, как дженерики, а заодно о том, пора ли переходить на Swift, мы поговорили с Максимом Соколовым, специалистом по мобильной разработке компании Avito.

Пора ли переходить на Swift? - 1

— Расскажите, пожалуйста, в двух словах о себе и своем опыте работы со Swift.

— На текущий момент я работаю в компании Avito разработчиком мобильных приложений для iOS. В мобильной разработке я около 5 лет, а до нее занимался различными направлениями, в частности, веб-сайтами, бэкэндом и desktop-приложениями.
Swift мы начали использовать в Avito больше полугода назад, когда вышла вторая версия языка, накопилась обратная связь от сообщества разработчиков. Ранее в работе мы использовали Objective-C, но теперь весь новый код пишем на Swift.

— Некоторые разработчики отзываются о Swift, как о весьма «сыром» языке, не подходящим пока для крупных проектов. Можете ли вы подтвердить или опровергнуть это мнение?

— У Swift, безусловно, есть недостатки, в частности, связанные со средой разработки. Xcode время от времени падает, отключается подсветка синтаксиса или компилятор отказывается компилировать код. Упомянутые недостатки нельзя назвать причиной отказа от разработки больших проектов на Swift. Сталкиваясь с проблемами — мы находили решение. И мы уже отправили в продакшн достаточно объемный проект, написанный на этом языке.
Читать полностью »

Слепота Microsoft. Предупреждающие знаки для Google и Apple

В одной из фундаментальных книг по этой теме «Организационная культура и лидерство» Эдгар Шейн пишет:

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

В терминологии Шейна вещи вроде столов для настольного тенниса и холодильников с пивом — это два (маленьких) примера артефактов – видимых качеств организации. Их легко заметить, но их значение обычно не поддаётся расшифровке и уникально для конкретной группы (другими словами, простое копирование фишек Google не работает).
Читать полностью »

Новый кандидат в релизы САПР Qucs-0.0.19S-RC6 - 1

Qucs — это кроссплатформенный (Linux, Windows, MacOS-X) симулятор электронных схем с открытым кодом. О нём рассказывают мои предыдущие статьи на Хабре:

  • Qucs — open-source САПР для моделирования электронных схем habrahabr.ru/post/248005
  • Новости проекта Qucs: подготовка к релизу 0.0.19 habrahabr.ru/post/259193
  • Новости проекта Qucs: доступен кандидат в релизы с поддержкой моделирования схем в SPICE habrahabr.ru/post/263555

В настоящее время готовятся к релизу параллельно две версии Qucs:

  • Qucs — сборки с обычным набором функций. Используется только движок моделирования Qucsator
  • QucsS — сборка с возможностью использования SPICE (поддерживаеются движки Ngspice, XYCE, SpiceOpus) как движка моделирования по умолчанию. Данные сборки содержат букву «S» после номера версии. Для инженеров наибольший интерес представляет Ngspice

Пока очередной релиз Qucs вновь отложен на неопределённый срок, вышел кандидат в релизы Qucs-0.0.19S-RC6 с поддержкой SPICE. Этот релиз-кандидат значительно отличается от всех предыдущих. Скачать пакеты для двух платформ (Windows и Linux) можно здесь: github.com/ra3xdh/qucs/releases/tag/0.0.19S-rc6

Под катом будет рассказано о нововведения в данном релиз-кандидате.

Читать полностью »

Введение

В этой статье я расскажу, как профилировать и оптимизировать приложения на языке Go с использованием встроенных и общих инструментов, доступных в ОС Linux.

Что такое профайлинг и оптимизация? Если ваша программа работает недостаточно быстро, использует слишком много памяти, неоптимально использует процессор, вы хотите понять, в чем дело, и исправить — это и есть профайлинг и оптимизация.

Я привел такое определение, чтобы сразу отсечь вопросы некорректной работы приложения. В этой статье мы не будем говорить о проблемах мультитредового программирования, о дата-рейсах (англ. data race), о поиске ошибок (англ. debugging). Для всего этого в Go есть свои утилиты и подходы, но оставим эту тему на будущее.

Профилирование и оптимизация программ на Go - 1

Читать полностью »

Продолжаем разбираться в иммунитете бактерий CRISPR/Cas через сравнение с антивирусом, подробнее рассматриваем механизмы распознавания и нейтрализации вирусов.

CRISPR-Cas как сигнатурный антивирус. Часть 2 - 1

Читать полностью »

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

DevOps — новый уровень взаимодействия групп разработки и эксплуатации - 1


Читать полностью »

Представитель «Яндекса» заявил «Коммерсанту», что компания не создаёт бета-версию Яндекс.Браузера, где применяются российские алгоритмы шифрования, согласованные с Минкомсвязью и ФСБ. Подобные разработки ранее изданию описал глава рабочей подгруппы «Интернет + суверенитет» при администрации президента Илья Массух.

Читать полностью »

Не так давно Google купили Firebase и теперь на странице с описанием GCM нас встречает радостная новость о том, что пора бы мигрировать на Firebase.

...GCM users are strongly recommended to upgrade to FCM, in order to benefit from new FCM features today and in the future.

В этой статье мы разберем тестовый проект и рассмотрим один подводный камень связанный с иконкой уведомления.

Нам понадобится:

  • Android Studio
  • Код демо-проекта с github
  • 20 минут свободного времени

Читать полностью »

Жертва ограбления увидела обидчика в блоке Facebook «вы можете их знать». Преступника поймали, отнятое жертве вернули

Опасного преступника поймали благодаря Facebook - 1
Омар Фамуйад явно не рад тому, что его поймали

Социальные сети могут быть опасными или просто вредными. Но могут и выручать в трудную минуту. Функция Facebook «Люди, которых вы можете знать» помогла полиции Бирмингема поймать грабителя. Сама функция представляет собой «раздел на Facebook, в котором показаны люди, которых вы можете знать. Мы показываем вам людей на основании того, что у вас есть общие друзья, совпадает информация об образовании или месте работы, вы состоите в одних сообществах, а также на основании контактов, импортированных с помощью функции поиска друзей, и многих других факторов».

Омар Фамуйад (Omar Famuyide), 21-летний грабитель из Бирмингема, получил уже свои 17 лет тюрьмы за ограбления и воровство. Одна из жертв Омара увидела преступника в упомянутом выше блоке всего спустя пару дней после ограбления. Злоумышленник угнал машину на глазах у владельца.
Читать полностью »

Представляю вам вольный перевод статьи "Tweaking Eloquent relations – how to get hasMany relation count efficiently?" с сайта softonsofa.com.

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

Что ж, позвольте мне рассказать вам что мы можем с этим сделать.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js