Как стать автором
Обновить

Моя лента

Тип публикации
Порог рейтинга
Уровень сложности
Предупреждение
Войдите или зарегистрируйтесь, чтобы настроить фильтры
Статья

Проект: погодная станция (метеостанция) своими руками. Часть первая

Время на прочтение2 мин
Количество просмотров36

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

Читать далее
Рейтинг0
Комментарии0

Новости

Статья

Аппаратный DIY аудиомикшер

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров154

Меня это задолбало - управлять громкостью, если источников звука больше одного, особенно больно, когда это надо сделать быстро, за пару секунд. Если играете в динамичные игры с дискордом, да ещё и музыку фоном включаете, думаю вы прекрасно знаете эти неудобства. И вот, в один прекрасный день я наткнулся на deej...

Читать далее
Всего голосов 5: ↑5 и ↓0+8
Комментарии1
Статья

История возникновения и развития Python

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров164

Python отпраздновал своё 33-летие в 2024 году. За это время он успел вырасти из пет-проекта в один из самых популярных языков программирования в мире. Однако, если вы не интересовались историей его возникновения и развития, возможно стоит начать сейчас.

Читать далее
Всего голосов 1: ↑0 и ↓1-1
Комментарии0
Новость

Учёные открыли способ «выращивания» транзисторов субнанометрового размера

Время на прочтение3 мин
Количество просмотров304

Исследовательская группа под руководством директора Центра квантовых тел Ван-дер-Ваальса Института фундаментальных наук (IBS) Джо Мун Хо реализовала новый метод эпитаксиального выращивания металлических одномерных материалов с шириной менее 1 нм. Группа применила этот процесс для разработки новой структуры для двумерных полупроводниковых логических схем. Примечательно, что они использовали одномерные металлы в качестве электрода затвора ультраминиатюрного транзистора.

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

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Истории

Статья

Опыты в домашней лаборатории: Эмулируем arm64 OpenWRT роутер в Proxmox VE

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров143

В моей домашней лаборатории основная платформа виртуализации - Proxmox VE. Так как это все же дом, к интернету она подключена вместе со всеми остальными устройствами через обычный роутер с прошивкой OpenWRT.  

В большинстве экспериментов я практикую подход "если что-то пойдет не так... разберемся, а потом просто перезапустим терраформ". В ходе очередного такого эксперимента мне понадобилось перенастроить пару вещей глубоко внутри OpenWRT роутера, и внезапно пришло понимание, что домашний роутер совсем не эфемерный ресурс. На вопрос: «Если я окирпичу роутер, то смогу ли я его оживить без отвертки, паяльника и, самое главное, без доступа в интернет?» ответ был «¯\_(ツ)_/¯».  

Раз такое дело, сначала нужно потренироваться на кошках, а значит, нам понадобится эмулятор маршрутизатора OpenWRT. Причем arm64 версия, так как пакетная база между arm и x86 может существенно отличаться. На просторах интернета я не встретил инструкции, которая бы заработала сразу и была бы легко автоматизируема. Надеюсь, данный гайд заработает у вас "из коробки", а сэкономленное время пойдет на эксперименты.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии1
Новость

Всемирная организация интеллектуальной собственности (ВОИС) выпустила отчет о патентном ландшафте в генеративном ИИ 2024

Время на прочтение6 мин
Количество просмотров155

Tencent, Ping An Insurance Group и Baidu владеют наибольшим количеством патентов GenAI. С 2017 года Китай ежегодно публикует больше патентов в этой области, чем все остальные страны вместе взятые.  VAE и LLM являются второй и третьей по величине моделями с точки зрения патентов, с примерно 1800 и 1300 новыми патентными семействами соответственно в период с 2014 по 2023 год.  Это лишь основные краткие выдержки отчета. Под катом о том, что еще интересного можно из него подчерпнуть.

Если вам интересны новости про генеративный ИИ, LLM, мультиагентов, я рассказываю об этом в своем Телеграм канале https://t.me/generative_ai_ru

Читать далее
Всего голосов 1: ↑0 и ↓1-1
Комментарии0
Статья

Изучение случайности в JavaScript

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров351

В моем посте о создании утилиты цветовой палитры в Alpine.js случайность играла большую роль: каждый образец генерировался как композиция случайно выбранных значений Hue (0..360), Saturation (0..100) и Lightness (0..100). Когда я создавал эту демонстрацию, я наткнулся на Web Crypto API. Обычно при генерации случайных значений я использую метод Math.random(), но в документации MDN упоминается, что Crypto.getRandomValues() более безопасен. В итоге я решил попробовать Crypto (с фоллбэком на модуль Math по мере необходимости). Но это заставило меня задуматься, действительно ли "более безопасный" означает "более случайный" для моего варианта использования.

В чем разница
Всего голосов 2: ↑2 и ↓0+2
Комментарии2
Статья

Учёные объяснили, почему одни кошки дерут мебель агрессивнее других

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров570

Ах, кошки. Мы любим наших пушистых владык, несмотря на то, что они иногда отрыгивают шерсть и склонны царапать мебель, чтобы поточить когти. Последнее — вполне естественное поведение кошки, но слишком агрессивное царапанье обычно воспринимается как поведенческая проблема. Ветеринары не одобряют такие крайние меры, как удаление когтей или даже эвтаназию таких "проблемных" кошек. Однако существуют альтернативные научно обоснованные стратегии, позволяющие уменьшить или перенаправить поведение, связанное с царапаньем, утверждают авторы новой работы, опубликованной в журнале Frontiers in Veterinary Science.

Читать далее
Всего голосов 5: ↑2 и ↓30
Комментарии4
Статья

Стейкинг и рестейкинг

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров246

На заре зарождения криптовалют их основой был майнинг - процесс бессмысленного перебора ноликов и единичек, который тем не менее обеспечивает безопасность сети и поддерживает консенсус, гарантируя, что все участники согласны с состоянием блокчейна и последовательностью транзакций.

Читать далее
Всего голосов 3: ↑0 и ↓3-3
Комментарии0
Статья

Firebase VS self-hosted

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров744

Многие стартапы начинают с Firebase, затем из нежелания платить гуглу уходят на свои сервера — об этом и пойдёт речь

С нюансами про стэк технологий, в частности выбор языка программирования, и оценим усилия на побег от Firebase и Vercel. Разберём на примере моего пет-проекта — Github

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии1
Статья

Драйвер Ethernet для xv6

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров454

Xv6 - учебная ОС - рассказывает об идеях, что лежат в основе операционных систем.

Научим xv6 работать в сети, познакомимся со стандартом виртуальных устройств VirtIO, деревом устройств DeviceTree, технологией Ethernet, сетевыми протоколами, возведем сетевой мост между виртуальными машинами.

Читать далее
Всего голосов 3: ↑3 и ↓0+4
Комментарии0
Новость

Google теперь платит $250 тыс. за уязвимости нулевого дня Kernel-based Virtual Machine (KVM)

Время на прочтение2 мин
Количество просмотров777

Google запустила новую программу kvmCTF по вознаграждению за уязвимости нулевого дня в Kernel-based Virtual Machine (KVM). Максимальное вознаграждение в её рамках составляет $250 тысяч.

Google активно использует KVM в сервисе Google Cloud и в платформах Android и ChromeOS (так, CrosVM основан на KVM). Чтобы получить вознаграждение, исследователю необходимо будет продемонстрировать взлом в контролируемой среде. В отличие от других программ вознаграждения за уязвимости, kvmCTF фокусируется на атаках с гостевой на хостовую систему и не вознаграждает уязвимости QEMU или хостовые уязвимости KVM.

Читать далее
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Ближайшие события

12 – 13 июля
Геймтон DatsDefense
Онлайн
Статья

Всё что нужно знать про области видимости в Python

Время на прочтение6 мин
Количество просмотров745

Область видимости — это часть прораммы, в которой можно обращаться к определённой переменной или функции. В Python области видимости определяют, где и как можно использовать переменные.

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

Для определения последовательности, в которой Python ищет значение переменной, используется правило LEGB. Это правило представляет собой порядок поиска переменных в следующих областях видимости: Local (локальная), Enclosing (вложенная), Global (глобальная) и Built-in (встроенная).

Читать далее
Всего голосов 5: ↑3 и ↓2+2
Комментарии4
Пост

Мы создали свой инструмент для доставки сборок Android-приложений

В условиях блокировки официального сервиса Firebase App Distribution в России, перед нашим отделом мобильной разработки встала задача создать собственный инструмент для доставки сборок Android-приложений тестировщикам.

Да, мы могли бы пользоваться Firebase App Distribution с помощью VPN, но это не очень удобно. VPN-сервисы ненадежны, потому что подвержены блокировкам. К тому же создание собственного решения позволяет добавлять новые функции и адаптировать инструмент под конкретные нужды команды.

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

Для его реализации выбрали фреймворк Ktor. Благодаря этому любой разработчик, знакомый с Kotlin, сможет быстро разобраться в кодовой базе, поддерживать инструмент и интегрировать его с различными проектами. А в качестве интерфейса решили выбрать Telegram. Наши рабочие чаты чаще всего находятся именно там. Кроме того, Telegram Bot API предоставляет много возможностей, хоть и имеет некоторые ограничения.

Делимся исходным кодом этого инструмента. А подробная инструкция по работе с ним — в отдельной статье.

Теги:
+4
Комментарии0
Статья

Аутсорсинг программирования в страну под названием ИИ

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров1.3K

В этой заметке я хочу поделиться собственным опытом использования ИИ-инструментов в моих программных проектах, а также своими соображениями о реальности полной передачи программирования в руки ИИ и тем самым - исчезновения профессии программиста. 

На первый взгляд - такие ожидания не беспочвенны. В самом деле: ведь качество ответов на запросы общего характера между ChatGPT 2 и ChatGPT 3.5 выросло с примерно 20% до примерно 80% только за счёт увеличения объёма обучающих данных и наращивания мощности используемых серверов. Может, скормить системе все программные проекты с открытым кодом, прикупить графических карт и можно будет всех или большинство программистов заменить на ИИ? Другими словами, программировать в аутсорсинге в стране под названием ИИ?

Читать далее
Всего голосов 12: ↑8 и ↓4+7
Комментарии9
Статья

Почему в России сложно делать глобальные IT-продукты

Время на прочтение4 мин
Количество просмотров1.5K

IT-сектор отличается гипермасштабируемостью. Вам достаточно написать софт, отладить маркетинг, и вы можете продавать свой продукт по всему миру, не думая о логистике, хранении и производстве. Это приводит к тому, что часто победитель получает все. На рынке есть место только для одной компании. А побочный эффект - что зарплаты разработчиков часто превышают зарплаты во многих других отраслях, ведь за победу в глобальном лидерстве можно и нужно хорошо платить. Но насколько просто, и возможно ли вовсе, построить глобального IT-лидера, находясь в России? 

Даже переформулирую вопрос. Почему подавляющее большинство успешных технологических компаний создаются всего в одном месте - Силиконовой долине? Ведь в других местах люди не менее талантливы и трудолюбивы чем там.

Лично для себя я выделил следующие причины.

Читать далее
Всего голосов 9: ↑4 и ↓5+1
Комментарии18
Новость

«МЦСТ» раскрыла исходные коды компонентов Linux, системных библиотек и ПО для платформы «Эльбрус»

Время на прочтение3 мин
Количество просмотров3K

3 июля 2024 года АО «МЦСТ» (Московский Центр Спарк (SPARС) Технологии) — разработчик процессоров на архитектуре «Эльбрус» и операционной системы «Эльбрус Линукс») запустил процесс раскрытия исходных кодов компонентов ядра Linux, системных библиотек, патчей совместимости для ПО с открытым исходным кодом и дополнительных инструментов разработчиков для платформы «Эльбрус» в рамках открытия доступа к порталу «Разработка на платформе "Эльбрус"».

Читать далее
Всего голосов 17: ↑16 и ↓1+18
Комментарии28
Пост

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 и др.

Теги:
0
Комментарии1
Новость

Samsung представила свой QLC SSD на 61,44 Тбайт

Время на прочтение2 мин
Количество просмотров2.6K


Компания Samsung представила корпоративной публике свой собственный SSD. У новинки нет громкого имени, только, новый SSD называется просто BM1743, что указывает на наследственность предыдущей модели — BM1733. Предварительный анонс в блоге компании состоялся еще в начале июня.

Тогда были оглашены основные технологии на которых базируется новинка (v7 QLC V-NAND technology), а так же то, что BM1743 является прямым продолжением SSD под индексом BM1733a.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+6
Комментарии11
1
23 ...