Рубрика «Программирование» - 305

Топ-17 плагинов для Android Studio

Существуют сотни плагинов для Android Studio, и их число растёт с каждым днём. Это в основном происходит по двум причинам. Во-первых, Android Studio — это официальная интегрированная среда разработки для создания Android-приложений. Во-вторых — Intellij IDEA, платформа, на которой основана Android Studio, позволяет разрабатывать и легко устанавливать полезные плагины, совместимые с обеими IDE. Какие плагины устанавливаете вы?

Конечно, вы можете программировать в «голой» Android Studio, просто установив необходимые библиотеки и не добавив ни одного плагина. Но зачем? Плагины для Android Studio могут сделать вашу работу более эффективной и увлекательной. Сейчас мы расскажем вам про топ плагинов Android Studio, которые смогут утроить (как минимум) вашу производительность.

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

Предисловие: в университете было получено задание — собрать scrum команду, выбрать проект и работать над ним в течении семестра. Наша команда выбрала разработку веб-приложения (react + flask). В этой статье я постараюсь рассказать, какими тесты должны были быть, и проанализировать, что у нас получилось на бекенде.

Хороший, плохой, злой — тестирование в проекте новичков - 1

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

Сытые философы или конкурентное программирование на .NET - 1

Давайте посмотрим как устроено конкурентное и параллельное программирование в .Net, на примере проблемы обедающих философов. План такой, от синхронизации потоков/процессов, до модели акторов (в следующих частях). Статья может быть полезна для первого знакомства или для того, чтобы освежить свои знания.

Зачем вообще уметь это? Транзисторы достигают своего минимального размера, закон Мура упирается в ограничение скорости света и поэтому рост наблюдается в количестве, транзисторов можно делать больше. При этом количество данных растет, а пользователи ожидают немедленной реакции систем. В такой ситуации "обычное" программирование, когда у нас один выполняющий поток, уже не эффективно. Нужно как-то решать проблему одновременного или конкурентного выполнения. Причем, проблема эта существует на разных уровнях: на уровне потоков, на уровне процессов, на уровне машин в сети (распределенные системы). В .NET есть качественные, проверенные временем, технологии для быстрого и эффективного решения таких задач.

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

Oops, I did it again: отладка распространенных ошибок в JavaScript - 1

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

Об open-source реализациях хэш-функции ГОСТ Р 34.11-2012 и их влиянии на электронную подпись ГОСТ Р 34.10-2012 - 1В свое время реализация отечественных криптографических алгоритмов в библиотеке libgcrypt очень меня вдохновила. Стало возможным задействовать эти алгоритмы и в Kleopatra и в Kmail и в GnuPg в целом, рассматривать библиотеку libgcrypt как алтернативу openssl с ГОСТ-ым engine. И все было замечательно до прошлой пятницы. Читать полностью »

Сравнительное тестирование многопоточных кэшей реализованных на C/C++ и описание как устроен LRU/MRU кэш серии O(n)Cache**RU

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

Из доклада старшего разработчика Сергея Мурылёва можно узнать о многопоточном ассоциативном контейнере для стандартной библиотеки, который разрабатывают в рамках WG21. Сергей рассказал о плюсах и минусах популярных решений этой задачи и о пути, выбранном разработчиками.

— Вы, наверное, уже догадались из названия, что сегодняшний доклад будет о том, как мы в рамках Рабочей группы 21 делали свой контейнер, похожий на std::unordered_map, но для многопоточной среды.Читать полностью »

Друзья, сегодня я хочу рассказать вам про одну идею, которая давно поселилась в моей голове. Она возникла много лет назад и смысл её в том, чтобы сделать сервис, который бы аггрегировал и представлял в удобном виде все коммуникации, происходящие вокруг интересных вам GitHub проектов. Такой сервис будет в первую очень полезен тем, у кого много своих проектов на GitHub, или тем создаёт много пуллов и тикетов в чужих проектах.

Я верю в то, что люди, создающие тикеты и пуллы делают это ради того, чтобы улучшить те opensource проекты, которые им небезразличны. А для этого нужно, чтобы тикеты превращались в пуллы и пуллы своевременно мерджились. Чем быстрее будет происходить этот процесс, тем быстрее будет развиваться OpenSource.

Однако, на GitHub часто бывает, что коммуникация вокруг тикета или пулла затихает и теряется. Происходит это по разным причинам, но как правило — из-за того, что какой-то из участников пропускает email-отбивку о комментарии. Причины могут быть разные, а результат всегда один — тикет теряется и иногда проходят годы, прежде чем про него вспоминают.
Читать полностью »

Если бы хайлоад преподавали в школе, в учебнике по этому предмету была бы такая задача. «У соцсети N есть 2 000 серверов, на которых 150 000 файлов объемом по 900 Мб PHP-кода и стейджинг-кластер на 50 машин. На серверы код деплоится 2 раза в день, на стейджинг-кластере код обновляется раз в несколько минут, а еще дополнительно есть „хотфиксы“ — небольшие наборы файлов, которые выкладываются вне очереди на все или на выделенную часть серверов, не дожидаясь полной выкладки. Вопрос: считаются ли такие условия хайлоадом и как в них деплоить? Напишите не менее 5 вариантов деплоя». Про задачник по хайлоаду можем только мечтать, но уже сейчас мы знаем, что Юрий Насретдинов (youROCK) точно бы решил эту задачу и получил «пятерку».

На простом решении Юрий не остановился, а дополнительно провел доклад, в котором раскрыл тему понятия «деплой кода», рассказал про классические и альтернативные решения масштабного деплоя кода на PHP, проанализировал их производительность и презентовал самописную систему деплоя MDK.
Читать полностью »

Как и предыдущая, эта заметка представляет собой обзор статей и комментариев к ним здесь, на Хабре, сгруппированный по нескольким темам.

Законы робототехники Азимова

Пожалуй, самая смешная, но, как ни странно, до сих пор широко обсуждаемая тема. Собственно, говорить тут просто не о чем: разве кому-то не ясно, что если ИИ хоть немного станет вылезать из пелёнок (и даже раньше — уже сейчас!), на него тут же наложат лапу военные и всякая там «госбезопасность»? И они будут учить ИИ именно эффективно убивать, не заморачиваясь всякой ерундой на тему «псевдоэтики». Разве не ясно, что эти «законы» в принципе не работают и работать не могут, о чём прекрасно знал и сам Азимов? Разве не ясно, что главная угроза со стороны ИИ как раз связана с контролем со стороны человека? И что, мы так и будем верить в сказки, вопрошая: «Дадим ли мы военным роботам лицензию на убийство»? А разве нас кто-то спрашивает? Или: «Крупнейшие ИТ-компании не дадут ИИ вырваться из-под контроля человека». А разве их кто-то спрашивает? Или: «Известные во всём мире разработчики ИИ договорились не создавать умное оружие». Тупое будут создавать? Или: «Эксперт ООН призвал мировое сообщество притормозить создание боевых роботов с искусственным интеллектом». А разве крупные страны, способные создать таких роботов, хоть раз считались с мнением ООН? Так что давайте прекратим обсуждать очевидные глупости — это даже не детский сад, это младшая ясельная группа.

Тест Тьюринга

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


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