Вы когда ни будь хотели сделать что-то сами, Вас посещали крутые идеи, но Ваших знаний было недостаточно что бы их воплотить в жизнь?
Предлагаю попробовать интерактивный проект: погодная станция (метеостанция) своими руками. Пока стационарная, но позже будет походная, чтобы можно было взять её с собой на отдых и заранее знать, что скоро будет дождь или ураган.
Что бы не начинать проект с нуля, в качестве фундамента я реализовал три начальные функции:
Моя лента
Новости
Аппаратный DIY аудиомикшер
Меня это задолбало - управлять громкостью, если источников звука больше одного, особенно больно, когда это надо сделать быстро, за пару секунд. Если играете в динамичные игры с дискордом, да ещё и музыку фоном включаете, думаю вы прекрасно знаете эти неудобства. И вот, в один прекрасный день я наткнулся на deej...
История возникновения и развития Python
Python отпраздновал своё 33-летие в 2024 году. За это время он успел вырасти из пет-проекта в один из самых популярных языков программирования в мире. Однако, если вы не интересовались историей его возникновения и развития, возможно стоит начать сейчас.
Учёные открыли способ «выращивания» транзисторов субнанометрового размера
Исследовательская группа под руководством директора Центра квантовых тел Ван-дер-Ваальса Института фундаментальных наук (IBS) Джо Мун Хо реализовала новый метод эпитаксиального выращивания металлических одномерных материалов с шириной менее 1 нм. Группа применила этот процесс для разработки новой структуры для двумерных полупроводниковых логических схем. Примечательно, что они использовали одномерные металлы в качестве электрода затвора ультраминиатюрного транзистора.
Интегрированные устройства на основе двумерных (2D) полупроводников, которые демонстрируют превосходные свойства даже при предельной толщине материала вплоть до атомного масштаба, являются одним из основных направлений фундаментальных и прикладных исследований во всём мире. Однако реализация таких ультраминиатюрных транзисторных устройств, способных управлять движением электронов в пределах нескольких нанометров, не говоря уже о разработке процесса производства этих интегральных схем, сопряжена со значительными техническими трудностями.
Истории
Опыты в домашней лаборатории: Эмулируем arm64 OpenWRT роутер в Proxmox VE
В моей домашней лаборатории основная платформа виртуализации - Proxmox VE. Так как это все же дом, к интернету она подключена вместе со всеми остальными устройствами через обычный роутер с прошивкой OpenWRT.
В большинстве экспериментов я практикую подход "если что-то пойдет не так... разберемся, а потом просто перезапустим терраформ". В ходе очередного такого эксперимента мне понадобилось перенастроить пару вещей глубоко внутри OpenWRT роутера, и внезапно пришло понимание, что домашний роутер совсем не эфемерный ресурс. На вопрос: «Если я окирпичу роутер, то смогу ли я его оживить без отвертки, паяльника и, самое главное, без доступа в интернет?» ответ был «¯\_(ツ)_/¯
».
Раз такое дело, сначала нужно потренироваться на кошках, а значит, нам понадобится эмулятор маршрутизатора OpenWRT. Причем arm64 версия, так как пакетная база между arm и x86 может существенно отличаться. На просторах интернета я не встретил инструкции, которая бы заработала сразу и была бы легко автоматизируема. Надеюсь, данный гайд заработает у вас "из коробки", а сэкономленное время пойдет на эксперименты.
Всемирная организация интеллектуальной собственности (ВОИС) выпустила отчет о патентном ландшафте в генеративном ИИ 2024
Tencent, Ping An Insurance Group и Baidu владеют наибольшим количеством патентов GenAI. С 2017 года Китай ежегодно публикует больше патентов в этой области, чем все остальные страны вместе взятые. VAE и LLM являются второй и третьей по величине моделями с точки зрения патентов, с примерно 1800 и 1300 новыми патентными семействами соответственно в период с 2014 по 2023 год. Это лишь основные краткие выдержки отчета. Под катом о том, что еще интересного можно из него подчерпнуть.
Если вам интересны новости про генеративный ИИ, LLM, мультиагентов, я рассказываю об этом в своем Телеграм канале https://t.me/generative_ai_ru
Изучение случайности в JavaScript
В моем посте о создании утилиты цветовой палитры в Alpine.js случайность играла большую роль: каждый образец генерировался как композиция случайно выбранных значений Hue (0..360)
, Saturation (0..100)
и Lightness (0..100)
. Когда я создавал эту демонстрацию, я наткнулся на Web Crypto API. Обычно при генерации случайных значений я использую метод Math.random()
, но в документации MDN упоминается, что Crypto.getRandomValues()
более безопасен. В итоге я решил попробовать Crypto
(с фоллбэком на модуль Math
по мере необходимости). Но это заставило меня задуматься, действительно ли "более безопасный" означает "более случайный" для моего варианта использования.
Учёные объяснили, почему одни кошки дерут мебель агрессивнее других
Ах, кошки. Мы любим наших пушистых владык, несмотря на то, что они иногда отрыгивают шерсть и склонны царапать мебель, чтобы поточить когти. Последнее — вполне естественное поведение кошки, но слишком агрессивное царапанье обычно воспринимается как поведенческая проблема. Ветеринары не одобряют такие крайние меры, как удаление когтей или даже эвтаназию таких "проблемных" кошек. Однако существуют альтернативные научно обоснованные стратегии, позволяющие уменьшить или перенаправить поведение, связанное с царапаньем, утверждают авторы новой работы, опубликованной в журнале Frontiers in Veterinary Science.
Стейкинг и рестейкинг
На заре зарождения криптовалют их основой был майнинг - процесс бессмысленного перебора ноликов и единичек, который тем не менее обеспечивает безопасность сети и поддерживает консенсус, гарантируя, что все участники согласны с состоянием блокчейна и последовательностью транзакций.
Firebase VS self-hosted
Многие стартапы начинают с Firebase, затем из нежелания платить гуглу уходят на свои сервера — об этом и пойдёт речь
С нюансами про стэк технологий, в частности выбор языка программирования, и оценим усилия на побег от Firebase и Vercel. Разберём на примере моего пет-проекта — Github
Драйвер Ethernet для xv6
Xv6 - учебная ОС - рассказывает об идеях, что лежат в основе операционных систем.
Научим xv6 работать в сети, познакомимся со стандартом виртуальных устройств VirtIO, деревом устройств DeviceTree, технологией Ethernet, сетевыми протоколами, возведем сетевой мост между виртуальными машинами.
Google теперь платит $250 тыс. за уязвимости нулевого дня Kernel-based Virtual Machine (KVM)
Google запустила новую программу kvmCTF по вознаграждению за уязвимости нулевого дня в Kernel-based Virtual Machine (KVM). Максимальное вознаграждение в её рамках составляет $250 тысяч.
Google активно использует KVM в сервисе Google Cloud и в платформах Android и ChromeOS (так, CrosVM основан на KVM). Чтобы получить вознаграждение, исследователю необходимо будет продемонстрировать взлом в контролируемой среде. В отличие от других программ вознаграждения за уязвимости, kvmCTF фокусируется на атаках с гостевой на хостовую систему и не вознаграждает уязвимости QEMU или хостовые уязвимости KVM.
Ближайшие события
Всё что нужно знать про области видимости в Python
Область видимости — это часть прораммы, в которой можно обращаться к определённой переменной или функции. В Python области видимости определяют, где и как можно использовать переменные.
Понимание областей видимости помогает избежать очень серьезных проблем. Например, случайное переопределение глобальных переменных внутри функций или использование переменных до их объявления могут привести к трудноуловимым багам.
Для определения последовательности, в которой Python ищет значение переменной, используется правило LEGB. Это правило представляет собой порядок поиска переменных в следующих областях видимости: Local (локальная), Enclosing (вложенная), Global (глобальная) и Built-in (встроенная).
Мы создали свой инструмент для доставки сборок Android-приложений
В условиях блокировки официального сервиса Firebase App Distribution в России, перед нашим отделом мобильной разработки встала задача создать собственный инструмент для доставки сборок Android-приложений тестировщикам.
Да, мы могли бы пользоваться Firebase App Distribution с помощью VPN, но это не очень удобно. VPN-сервисы ненадежны, потому что подвержены блокировкам. К тому же создание собственного решения позволяет добавлять новые функции и адаптировать инструмент под конкретные нужды команды.
На многих проектах огромное количество времени уходило на то, чтобы достать сборку из GitLab или собрать ее вручную и отправить тестировщику. Также это сильно отвлекает от работы над задачами. Решением стала разработка инструмента, который будет принимать, хранить и раздавать файлы сборок.
Для его реализации выбрали фреймворк Ktor. Благодаря этому любой разработчик, знакомый с Kotlin, сможет быстро разобраться в кодовой базе, поддерживать инструмент и интегрировать его с различными проектами. А в качестве интерфейса решили выбрать Telegram. Наши рабочие чаты чаще всего находятся именно там. Кроме того, Telegram Bot API предоставляет много возможностей, хоть и имеет некоторые ограничения.
Делимся исходным кодом этого инструмента. А подробная инструкция по работе с ним — в отдельной статье.
Аутсорсинг программирования в страну под названием ИИ
В этой заметке я хочу поделиться собственным опытом использования ИИ-инструментов в моих программных проектах, а также своими соображениями о реальности полной передачи программирования в руки ИИ и тем самым - исчезновения профессии программиста.
На первый взгляд - такие ожидания не беспочвенны. В самом деле: ведь качество ответов на запросы общего характера между ChatGPT 2 и ChatGPT 3.5 выросло с примерно 20% до примерно 80% только за счёт увеличения объёма обучающих данных и наращивания мощности используемых серверов. Может, скормить системе все программные проекты с открытым кодом, прикупить графических карт и можно будет всех или большинство программистов заменить на ИИ? Другими словами, программировать в аутсорсинге в стране под названием ИИ?
Почему в России сложно делать глобальные IT-продукты
IT-сектор отличается гипермасштабируемостью. Вам достаточно написать софт, отладить маркетинг, и вы можете продавать свой продукт по всему миру, не думая о логистике, хранении и производстве. Это приводит к тому, что часто победитель получает все. На рынке есть место только для одной компании. А побочный эффект - что зарплаты разработчиков часто превышают зарплаты во многих других отраслях, ведь за победу в глобальном лидерстве можно и нужно хорошо платить. Но насколько просто, и возможно ли вовсе, построить глобального IT-лидера, находясь в России?
Даже переформулирую вопрос. Почему подавляющее большинство успешных технологических компаний создаются всего в одном месте - Силиконовой долине? Ведь в других местах люди не менее талантливы и трудолюбивы чем там.
Лично для себя я выделил следующие причины.
«МЦСТ» раскрыла исходные коды компонентов Linux, системных библиотек и ПО для платформы «Эльбрус»
3 июля 2024 года АО «МЦСТ» (Московский Центр Спарк (SPARС) Технологии) — разработчик процессоров на архитектуре «Эльбрус» и операционной системы «Эльбрус Линукс») запустил процесс раскрытия исходных кодов компонентов ядра Linux, системных библиотек, патчей совместимости для ПО с открытым исходным кодом и дополнительных инструментов разработчиков для платформы «Эльбрус» в рамках открытия доступа к порталу «Разработка на платформе "Эльбрус"».
Go: Раскрытие потенциала скорости
Я всегда борюсь за скорость. Началось это все с того, как я прочитал книгу “Грокаем алгоритмы” и меня заинтересовало измерение скорости выполнения. Потом, решая задачи на LeetCode я расстраивался, если алгоритм получался медленным. Недавно мне пришла идея написать пост на эту тему, а во время написания изучить этот вопрос получше. Я прочитал не мало статьей, большинство из которых - англоязычные.Так что вот советы по увеличению скорости Вашего приложения на Golang :
1. Выделять ёмкость для среза с помощью make
При создании среза выделяйте ёмкость с помощью make, так Вы избавитесь от перераспределений
2. При возвращении указателя, объявлять его при создании переменной
func (r Ruleset) Match(path string) (*Rule, error) {
for i := len(r) - 1; i >= 0; i-- {
rule := r[i] //так НЕ надо
rule := &r[i] //так надо
match, err := rule.Match(path)
if match || err != nil {
return &rule, err //так НЕ надо
return rule, err //так надо
}
}
return nil, nil
}
3. Используйте for-loop
Вместо for i, v := range values
, используйте for i := 0; i < len(values); i++
. Вот бенчмарки:
BenchmarkForRange-4 443161 2371 ns/op
BenchmarkForLoop-4 1863501 641.7 ns/op
For-loop в несколько раз быстрее for-range
4. Пишите бенчмарки
Пишите бенчмарки для вашего приложения, так Вы поймете, в каком месте оно работает медленнее всего. Источник для того, чтобы научиться писать бенчмарки: https://dave.cheney.net/2013/06/30/how-to-write-benchmarks-in-go и др.
Samsung представила свой QLC SSD на 61,44 Тбайт
Компания Samsung представила корпоративной публике свой собственный SSD. У новинки нет громкого имени, только, новый SSD называется просто BM1743, что указывает на наследственность предыдущей модели — BM1733. Предварительный анонс в блоге компании состоялся еще в начале июня.
Тогда были оглашены основные технологии на которых базируется новинка (v7 QLC V-NAND technology), а так же то, что BM1743 является прямым продолжением SSD под индексом BM1733a.