Как стать автором
Обновить
72.42
Skillfactory
Онлайн-школа IT-профессий
Сначала показывать

Пишем на Go как в Google. Лучшие практики — часть первая

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

Рекомендации по стилю для проектов Google с открытым исходным кодом


Лучшие практики Go


Этот документ — часть документации по стилю Go в Google. Он не является ни нормативным, ни каноничным, это дополнение к «Руководству по стилю». Подробности смотрите в Обзоре.


О документе


Здесь приведены рекомендации по лучшим практикам применения требований «Руководства по стилю» для Go. Это руководство охватывает общие и распространенные случаи, но не может применяться к каждому частному случаю. Обсуждение альтернатив, по возможности, включено в текст руководства вместе с указаниями о том, когда они применимы, а когда — нет.


Полная документация руководства по стилю описывается в обзоре.

Читать дальше →
Всего голосов 11: ↑7 и ↓4 +3
Комментарии 8

Как выжать 1,5 терафлопса производительности для 32-битных чисел с плавающей точкой на одном процессоре M1

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

Если вы занимаетесь обучением крупных современных нейросетей, эта статья будет вам не совсем в тему, ведь у A100 скорость в сто раз выше (156 терафлопсов).


Так что же интересного в этих полутора терафлопсах?


  • работа на одном ядре MacBook Air 2020 года с питанием от батареи;
  • выполнение с задержкой ~0,5 наносекунды на инструкцию.

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

Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Комментарии 11

msgspec: быстрый и экономичный парсинг JSON на Python

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

В библиотеке msgspec много функций, например кодирование, поддержка MessagePack (альтернативный формат, который быстрее JSON) и другие. Если вы регулярно парсите файлы JSON, и у вас проблемы с производительностью или памятью, или просто нужны встроенные схемы, то попробуйте msgspec.


Ниже рассказываем о библиотеке подробнее. Итак, чтобы обработать большой файл JSON на Python без сбоев и аварийного завершения, нужно:


  1. Убедиться, что используется не слишком много памяти.
  2. Спарсить файл как можно быстрее.
  3. В идеале также заранее убедиться, что данные валидны и имеют правильную структуру.

Конечно, можно объединить решения с несколькими библиотеками. А можно — всего с одной. Схемы, быстрый парсинг и хитрые приемы для уменьшения потребления памяти — все это новая библиотека msgspec.

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

Доказано наукой: 7 способов быть продуктивнее

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

В 17 лет я работал и учился около 20 часов в сутки: ходил в школу, домашние задания делал на переменах, а по ночам руководил некоммерческой организацией. Тогда это дало мне возможность получить много маркетинговых кампаний, работать с лучшими организациями и начать успешную карьеру. Став старше, я понял, что много работать — это не всегда единственно правильный путь к успеху.


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

Читать дальше →
Всего голосов 21: ↑13 и ↓8 +5
Комментарии 21

Фракталы, рекурсия и Python

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

Фракталы — это бесконечные сложные узоры, которые самоподобны в разных масштабах. Например, ствол дерева расщепляется на ветки. Те распадаются на еще более мелкие ветви и так далее. Программная генерация фракталов превратит простые формы в сложные узоры. Я покажу, как построить впечатляющие фракталы при помощи Python простой геометрии и знания программирования.

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

Такая она, жизнь в Кремниевой долине

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

Всего три года, и можно наконец-то накопить на ту 3-комнатную квартиру

Ты встаёшь в 6:30, приняв накануне снотворное, чтобы заснуть. Пятница. Вчерашний вечер в Розвуде был очень насыщенным: нужно было съездить в Мадеру и посмотреть, есть ли хоть доля правды в давних слухах о Кремниевой долине. Ты разочарован, но по крайней мере увидел в баре нескольких управляющих крупными венчурными фирмами. Они заметили тебя? Удалось установить с ними зрительный контакт? Стоп. Ты напоминаешь себе: они никакие не знаменитости и известны лишь в радиусе 15 миль среди читателей TechCrunch.

Текст на выходной
Всего голосов 24: ↑10 и ↓14 -4
Комментарии 10

Как работает нативная поддержка категорий в XGBoost

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

XGBoost и другие методы на основе дерева решений, обучающие модели при помощи градиентного подъема, принимают решение через сравнение, тогда как определить оператор сравнения категорий математически — это нетривиальная задача.


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


Если вас интересует градиентный бустинг и его применение к дереву решений, посмотрите мою книгу.

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

Как запустить часть большого ИИ на слабом железе

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

Начало работы с Petals


Этот блокнот познакомит вас с основами Petals — системы логического вывода и точной настройки языковых моделей с сотнями миллиардов параметров без необходимости использования высокопроизводительных GPU. С помощью Petals вы можете объединять вычислительные ресурсы с другими людьми и запускать большие языковые модели с миллиардами параметров, например BLOOM-196B или BLOOMZ того же размера, что и GPT-3.

Читать дальше →
Всего голосов 20: ↑19 и ↓1 +18
Комментарии 3

Как одиночество перестраивает мозг

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

Одиночество меняет мозг таким образом, что это может помешать способности доверять и устанавливать отношения с другими людьми



Научно-исследовательская антарктическая станция «Ноймайер III» расположена на краю безжалостного антарктического шельфового ледника Экстрем. В период зимовки, когда температура может опускаться ниже минус 50 градусов по Цельсию, а ветер может достигать скорости более 100 км/ч, никто не может ни прибыть на станцию, ни покинуть ее. Изоляция станции необходима для метеорологических, атмосферных и геофизических научных экспериментов, проводимых на ней небольшой группой ученых, которые работают там в зимние месяцы и стойко переносят холодное одиночество.

Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 30

Go. О покрытии кода интеграционными тестами и флаге -cover

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

Инструменты покрытия кода помогают понять, какая часть кодовой базы выполняется (или, как еще говорят, покрывается) при выполнении данного набора тестов. Какое-то время Go поддерживал измерение покрытия кода на уровне пакета, введенное в Go 1.2, она включалась флагом команды go test -cover.


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


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


Двоичные файлы интеграционных тестов создаются командой go build, а не go test, поэтому инструментарий Go до сих пор не предоставлял простого способа сбора профиля покрытия этих тестов.


С версии Go 1.20 программы с инструментированием покрытия можно создавать командой go build -cover, а затем, чтобы расширить область покрытия, передавать эти инструментированные двоичные файлы в интеграционный тест.


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

Читать дальше →
Всего голосов 4: ↑1 и ↓3 -2
Комментарии 0

Вот что такое искусственный интеллект по мнению изобретателя байесовских сетей

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

Искусственный интеллект во многом обязан своими достижениями Джуде Перлу. В 1980-х он руководил работами, которые позволили машинам развить способности к вероятностному рассуждению. Сегодня Джуда Перл — один из самых ярых критиков в этой области. В своей последней книге «Почему? Новая наука о причинно-следственной связи» (англ. The Book of Why)? он утверждает, что [настоящему] искусственному интеллекту препятствует неполное понимание того, что на самом деле представляет собой интеллект. За ответами — к старту флагманского курса по Data Science — приглашаем под кат.

Читать дальше →
Всего голосов 15: ↑12 и ↓3 +9
Комментарии 8

Распознавание движений белой тростью с нуля. Часть первая

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


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

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

Отображение графа на Python с networkx

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


Граф — это форма визуализации, позволяющая показывать и анализировать отношения между сущностями. Например, рисунок ниже показывает вклад редакторов Википедии на различных языках энциклопедии в июле 2013 года:



Можно сделать несколько наблюдений:


  • Английский (en) — основной язык, на который переводятся все остальные языки; в то же время многие англоязычные материалы переводятся на другие языки.
  • Китайский (zh) переводится на японский (ja), но не наоборот.
  • И китайский, и японский материалы переведены на английский, и наоборот.

Я же расскажу о том, как для отображения графов использовать пакет networkx.

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

Обратное проектирование дисплея e-ink

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


Этот ценник, но чёрно-белый, без красного цвета


Одному из членов нашего сообщества удалось приобрести на eBay несколько дисплеев e-ink. Эти дисплеи используют в магазинах, где на них указывается цена товаров, которые можно купить. По сравнению с бумажными ценниками такой дисплей имеет два ключевых преимущества: текст на e-ink дисплеях может обновляться автоматически и может иметь более замысловатую графику. От обычных ЖК-экранов e-ink отличается тем, что энергия расходуется только при изменении содержимого. Это позволяет оснастить ценники батареей небольшой ёмкости и работать без замены батареи несколько лет.

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

CSS сolor-сontrast(): пошаговое руководство

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


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


Функция color-contrast() используется для удобства чтения, придания необходимого контраста между текстом и фоном на веб-странице. Это особенно важно для людей с нарушениями зрения, которым трудно прочитать текст с низким контрастом.

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

Не пытайтесь измерить использование памяти в Pandas

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

Представьте: у вас есть файл с данными, которые вы хотите обработать в Pandas. Хочется быть уверенным, что память не закончится. Как оценить использование памяти с учетом размера файла?


Все эти оценки могут как занижать, так и завышать использование памяти. На самом деле оценивать использование памяти просто не стоит. А если конкретнее, в этой статье я:


  • покажу широкий диапазон использования памяти ещё до обработки, только во время загрузки данных;
  • расскажу о других подходах — измерении и передаче файла по частям.
Читать дальше →
Всего голосов 3: ↑2 и ↓1 +1
Комментарии 0

Ученые телепортируют энергию при помощи квантовой механики

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


Протокол телепортации квантовой энергии предложен в 2008 году и по большей части был проигнорирован. Но сегодня два независимых эксперимента показали, что он работает. 15 лет назад физик-теоретик из Университета Тохоку в Японии Масахиро Хотта предположил, что вакуум можно заставить что-то нам дать.

Читать дальше →
Всего голосов 32: ↑28 и ↓4 +24
Комментарии 45

Исследование винтажной компьютерной техники: 4 бита драконов: игра-лабиринт Dungeons & Dragons от Mattel

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


Когда мои родители продали дом и перебрались на белоснежные просторы Великого севера, они вывезли несколько коробок моего барахла, которое долго пылилось в гараже. Мы сейчас разбираем вещи и роемся в этих коробках на случай, если в не столь далёком будущем нам самим понадобится переехать. В одной из коробок нашлась моя старая компьютерная игра-лабиринт DUNGEONS & DRAGONS™ от Mattel Electronics.


Это большая, «делюксовая» из двух игр D&D от Mattel (у Intellivision, конечно, был свой набор, а у нас был Tandyvision), вторая — DUNGEONS & DRAGONS™ компьютерная игра в жанре фэнтези. Это было портативное устройство с неожиданно привлекательной реинкарнацией игры Hunt the Wumpus, о которой мы поговорим в другой раз. Эта игра больше похожа на настолку, но в ней есть компьютерный антагонист и звуковое сопровождение.

Читать дальше →
Всего голосов 19: ↑17 и ↓2 +15
Комментарии 4

Для обучения компьютерной математике исследователи объединяют подходы искусственного интеллекта

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


«Они будут говорить о единорогах, но забудут, что у них один рог, или расскажут вам историю, а после изменят детали», — рассказывает о больших языковых моделях (LLM — Large Language Model) Джейсон Рут из IBM Research.

Это больше, чем просто ошибки — LLM изо всех сил пытаются распознать свои ошибки, что ограничивает их производительность. Эта проблема не присуща системам искусственного интеллекта. Модели машинного обучения, основанные на методе обучения с подкреплением, позволяют компьютерам учиться на своих ошибках и становиться вундеркиндами в таких играх, как шахматы и го. Хотя эти модели, как правило, более ограничены в своих возможностях, они представляют собой обучение такого рода, которого LLM еще не освоили.

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

Как мы чуть не взломали шифровальщик Phobos с помощью CUDA

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


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


Опишем уязвимость и то, как мы понизили вычислительную сложность и повысили производительность дешифратора, чтобы достичь почти практической реализации. Продолжение — к старту нашего курса «Белый хакер»

Читать дальше →
Всего голосов 20: ↑19 и ↓1 +18
Комментарии 4

Информация

Сайт
www.skillfactory.ru
Дата регистрации
Дата основания
Численность
501–1 000 человек
Местоположение
Россия
Представитель
Skillfactory School