Привет, я создатель известного в узких кругах приложения 15 Puzzle для Android.
В статье я расскажу, как я генерирую стартовые позиции для своей игры, а также о том, как я добавлял новые конфигурации головоломки.
Привет, я создатель известного в узких кругах приложения 15 Puzzle для Android.
В статье я расскажу, как я генерирую стартовые позиции для своей игры, а также о том, как я добавлял новые конфигурации головоломки.
Сегодня в рубрике снова Роберт Мартин. Он же — «дядюшка Боб». Мы уже отзывались о нём тепло в материале о другой его книге на Хабре, так как при чтении от страниц буквально веет оптимизмом и заботой о людях и идеалах — в виде чистого кода и не только. Мы планируем перечитать всего его книги. На этот раз взяли с полки «Чистую архитектуру».
Роберт Мартин — инженер и программист. Причем кодит он с 12 лет и с тех пор, когда писать код нужно было ещё на бумаге (это не шутка). Как автор он пишет отличные и понятные книги с чистой и лаконичной структурой: никакой воды, немного личных историй, всё по делу, по содержанию и иногда в табличках. Отнюдь не удивительно, что и с архитектурой программного обеспечения у него тоже всё хорошо.
Я хочу рассказать вам об одном инструменте для работы с соцсетями. Рабочее название его - «менеджер репутаций». Технически он довольно прост, а вот стоящая за ним идея требует пояснений. Не знаю, существуют ли аналогичные программы, мне ничего подобного обнаружить не удалось. Во-всяком случае, концепция ни откуда не заимствовалась, а рождалась постепенно, по мере накопления опыта. Она достаточно непривычна, попробую объяснить ее наглядно.
Вообразите себе — крупного начальника или бизнесмена, и его помощника по информации. Допустим, они приезжают на какой-нибудь международный форум. Вокруг — тысячи людей из разных стран. Некоторых начальник знает в лицо, помнит о них какие-то факты, знает, с кем из них ему желательно встретится, а кого, напротив — лучше избегать.. Но их — тысячи, большинство он видит впервые, некоторых — знает только понаслышке..
А рядом с ним — помощник по информации. И он подает своему боссу незаметный для окружающих знак — вот это полезный человек, с ним стоит пообщаться. А вот это — наоборот, ходячая неприятность, лучше с ним в контакты не вступать. Про некоторых, особенно важных людей, помощник подает знак по собственной инициативе. Про других просто сигнализирует - «есть дополнительная информация». Про третьих — по собственной инициативе вообще внимания не обращает. Но и про первых, и про вторых, и про третьих — по первой просьбе своего шефа готов представить ему справку, краткую или развернутую — кто этот человек, откуда он, в каких действиях он и его организация были замечены и .т.п. Понятно, что такой помощник — это ценный специалист, такой есть далеко не у каждого начальника, не говоря уж о простых смертных...
project.toml
или requirements.txt
? Теперь у вашего языка есть возможность поэтапной типизации с помощью аннотаций типов. Хотите ей воспользоваться? Как вы реализуете конкурентность: с помощью многопоточности, Tokio или std::async
? gofmt
, но и о его стандартной библиотеке и согласованности. В Kotlin вам приходится гадать, что лучше использовать для ошибок: исключения или объекты Result
? В случае же Go вам всё ясно – ищем err
. Да, это многословно, но зато предсказуемо.«Я хочу творить, а не быть следствием чужого творчества. Я хочу принадлежать к тем, кто создает смыслы, а не быть плодом этого смысла».
Представьте себе ситуацию. Скоро истекут сроки подачи документов в колледж. Очередная партия новичков изберет профессию, адепты которой постоянно задаются вопросом: «А нужны ли будут программисты через год... через пять лет... или через десять лет?». И хотя горячие дебаты на этот счет уже улеглись, в воздухе висит немой вопрос: не настанет ли час, когда крупные языковые модели, такие как ChatGPT, заменят нас на поприще написания кода. Неважно, кто ты — абитуриент, зависший в нерешительности перед выбором ВУЗа, или матерый кодер, я предлагаю тебе остановиться и кое-что переосмыслить. А поможет нам в этом деле... кукла Барби.
Новый «Технотекст» стартовал в конце прошлого года. Посмотрев список номинаций, некоторые авторы-инженеры YADRO, которые занимаются разработкой и программированием серверов, СХД, микроэлектроники, не поняли, какую из них выбрать. Раньше же была отдельная «железная» номинация… Куда пропала?
Не долго думая, мы написали организаторам конкурса и спросили, как нам вернуть важную, на наш взгляд, тему в фокус обсуждения хабросообщества. Так и запустили номинацию «Железо: проектирование и технологии производства» — свои тексты на эту тему вы можете отправлять до 15 апреля включительно. А чтобы немного подогреть к ней интерес, собрали «хардверные» призы для лучших текстов. В тексте рассказали больше о призах и условиях участия. Больше о призах и условиях участия читайте под катом.
Пошаговое руководство по созданию масштабируемого, чат-приложения реального времени с использованием серверных технологий... с небольшой помощью от NextAuth.js для входа через GitHub. Кому нужны WebSockets, когда у вас есть Live Queries? Не нам!
Если вы создаете приложения, которые работают с данными в реальном времени, вы, вероятно, используете WebSockets. Они позволяют веб-браузеру и веб-серверу общаться в реальном времени, поддерживая постоянное соединение между ними - данные отправляются клиентам, как только они становятся доступными, а не когда клиент постоянно опрашивает сервер на предмет новых данных.
Но что, если ваше приложение является серверным - работает на инфраструктуре, управляемой облачным провайдером, таким как AWS или GCP?
Для обеспечения высокой эластичности и отказоустойчивости эти среды разработаны так, чтобы быть без состояния и временными по своей природе, что означает, что нет гарантии, что ваш код будет работать на одном и том же физическом сервере от одного запроса к другому - и, следовательно, нет постоянного соединения между клиентом и сервером.
Итак, какое решение для создания приложений в реальном времени на серверных архитектурах? Давайте выясним! Давайте создадим этот чат в реальном времени в стиле Slack/Discord, используя Next.js в качестве нашего JS-фреймворка, Fauna (с использованием GraphQL) в качестве нашей базы данных, и WunderGraph в качестве Backend-for-Frontend (BFF), который обеспечивает связь между ними. Наше приложение также будет использовать вход через GitHub, и мы будем использовать знаменитый NextAuth (теперь Auth.js!) для наших нужд в области аутентификации.
Настал тот момент когда необходимо уходить от всех зарубежных программ удаленного подключения, во всяком случае у нас в компании. Посмотрев отечественные аналоги мы пришли в ужас от стоимости и качества работы ПО. Поразмыслив какой функционал нам необходим для подключения 1-линии к пользователям поняли...
Рассмотрим автоматизацию ключевых задач инженера-проектировщика: оформление проектно-конструкторской документации по СПДС; проектирование КМ, КЖ, КЖИ; разработку ПОС, ПОД и ППР; автоматическую векторизация и оцифровку сканов чертежей.
Как часто вам приходится сталкиваться с конструкцией sizeof(array)/sizeof(array[0]) для определения размера массива? Очень надеюсь, что не часто, ведь на дворе уже 2024 год. В заметке поговорим о недостатках конструкции, откуда она берётся в современном коде и как от неё наконец избавиться.
Данная статья рассматривает ключевые аспекты успешной реализации проектов в области информационных технологий через эффективную постановку задач и определение требований. В статье подробно описывается, как правильно формулировать требования для обеспечения эффективного взаимодействия между аналитиком и разработчиками. Освещены ключевые моменты, аспекты и советы, которые помогут системному аналитику не только поставить задачу правильно, но и достичь желаемого результата.
Привет! Я — Алексей Бондаренко, работаю в команде Платформа Банки.ру. Сегодня хочу рассказать о semantic-release и его практическом применении на примере упрощения разработки и внедрения библиотеки в проект.
В начале февраля 2024 года вышел Go 1.22. Вот, что нового и интересного принёс новый релиз: сделали более безопасное поведение переменных в циклах, добавили функции-итераторы в качестве rangefunc-эксперимента и улучшили шаблоны роутинга. В этой статье я сфокусируюсь на последнем, самом долгожданном, для многих, обновлении — шаблонах http-роутинга.
КНР уже давно реализует программу развития отрасли разработки и производства электроники в стране. Причём достаточно успешно — настолько, что сейчас в ряде государственных учреждений планируется переход с чипов AMD и Intel на китайские процессоры. Кроме того, собираются в Китае замещать и ПО — в большинстве случаев на Linux-дистрибутив UOS. Подробности — под катом.
Изучение человека в настоящее время проводится множеством разных наук известными и новыми методами и весьма интенсивно. В мире осуществляются многомиллиардные исследовательские проекты. Изучаются геном, протеом, транскриптом человека, мозг человека и другие составляющие организма. Люди поняли, что пришло время серьезно взяться за изучение самих себя, своего организма, состоящего из триллионов взаимосвязанных клеток. Сложность организма, обеспечивается, однако, не только наличием большого количества выполняющих разные функции клеток, но также их взаимодействием на уровне межклеточной среды, тканей и даже целых органов.
В рамках проекта Атлас клеток человека (Human Cell Atlas) создан такой атлас и уже используется. Он включил данные, полученные сразу несколькими международными исследовательскими коллективами. Развитие современных технологий секвенирования РНК отдельных клеток (scRNA-seg) показало, что типы клеток человеческого организма очень многообразны, сейчас насчитываются сотни различных типов. В предлагаемой работе приводится характеристика транскриптома, в рамках которого осуществляется картирование клеток, его структура и динамичность.
Транскриптом называют молекулу РНК, образующуюся в результате транскрипции (экспрессии соответствующего гена или участка ДНК). Примерами транскриптов являются: матричные РНК (мРНК). В статье приводится характеристика транскриптома, его структура и динамичность. Методы исследования транскриптов. Кодирующие и некодирующие РНК, их классификация, микро РНК, siРНК, нано-РНК, сборка транскриптов кратко рассматриваются в публикации.
Цель публикации в первую очередь образовательная, познавательная, популяризация науки, а также стремление привлечь в ряды исследователей, в науку приток новых молодых умов, вызвать в таких умах стремление к поиску ответов на возникающие вопросы. Масштабность темы требует ввести разумные ограничения на излагаемый материал после краткого панорамного ее рассмотрения.
Спринт — особый формат мероприятий, который разработчики Nix и NixOS придумали, чтобы собираться вместе и вместе работать на проектами.
Что-то вроде хакатона, но без элемента соревновательности. Следующий спринт, если всё получится, пройдёт в Казани в августе. Здесь начало истории...
Вы когда-нибудь оказывались в ситуации, когда голова была полна идей, но записать их нет возможности? Тогда вы знаете, как бывает сложно быстро и качественно зафиксировать свои мысли. А может вам знакома ситуация, когда собеседник записывает голосовое сообщение на 5 минут с описанием какого-нибудь проекта, и вам приходится переслушивать его снова и снова, чтобы понять все детали. Столкнувшись с этим, я решил сделать Telegram-бота, который может превратить голосовое сообщение в структурированную заметку.
7 апреля 1964 года, шестьдесят лет назад, компания IBM анонсировала семейство компьютеров с архитектурой IBM System/360. Автор книги «От хорошего к великому» Джим Коллинз включил System/360 в тройку лучших бизнес-достижений всех времен, наряду с моделью T Форда и первым реактивным лайнером Boeing 707.
IBM System/360 стала символом целой эпохи в истории информационных технологий. Именно для System/360 изобрели 8-битный байт. Также IBM/360 стала первой 32-разрядной компьютерной системой. В этой статье погрузимся в историю и узнаем, как IBM System/360 совершила технологический прорыв и превратила производство мэйнфреймов в крупномасштабный производственный процесс.
Использование ML в онлайн-шоппинге не ограничивается рекомендациями товаров. Покупать одежду и обувь проще, когда у любого бренда ты знаешь нужный размер, видишь удачное сочетания товаров и легко находишь похожие внешне или по цвету вещи.
В Lamoda Tech мы создаем продукты, которые решают самые разные задачи пользователей и бизнеса. На митапе 28 марта мы рассказали, какие ML-модели работают у нас в проде и как мы строили эту работу.
Делимся с вами видео выступлений и презентациями.
Все мы работаем в разных предметных областях, и бывает усложно уделить время знакомству с BI. Надеюсь, у Вас есть менее получаса на чтение этой статьи и знакомство с примером, а также есть желание провести графический BI анализ на .NET, в таком случае - добро пожаловать.
В этой статье мы создадим .NET приложение для визуализации исторических реальных BI данных компании IBM о стоимости акций на нью-йоркской бирже за последние дни, код примера.
С учетом опыта над зарубежными (MercerInsight) и отечественными (Visiology) BI продуктами, а также над оригинальными BI системами для крупных отечественных IT компаний, у меня, честно говоря, сложилось впечатление, что популярным решением для визуализации и чуть ли не стандартом де-факто являются HighCharts. Безусловно, есть альтернативы (даже условно CrystalReports, DevExpress и т.д.), в этой статье будут использованы именно HighCharts, мы увидим их особенности и преимущества. Также для простоты будет просто обычный JS, но обычно в реальных проектах используются HighCharts в связке с одним из TypeScript фронтендным фреймворком.
Создадим новый MVC .NET проект (например, .NET 8) из .NET CLI и добавим dev HTTPS сертификаты: