Pull to refresh
-25
Karma
0
Rating

Интересуюсь природой вещей

  • Followers 1
  • Following 1
  • Posts
  • Comments

«Минутка литературы»: классика и свежее чтиво для сисадминов — обсуждаем несколько настольных справочников

VAS Experts corporate blog System administration *

Расскажем о пяти книгах, которые могут стать хорошим дополнением библиотеки системного администратора или полезным техническим руководством.

Материалы подойдут как опытным, так и начинающим специалистам.

Читать далее
Total votes 6: ↑6 and ↓0 +6
Views 3K
Comments 1

Как ИИ вдохновил меня поднять свой уровень в шахматы

Algorithms *Artificial Intelligence Brain Logic games
Sandbox

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

Читать далее
Total votes 11: ↑8 and ↓3 +5
Views 5.6K
Comments 3

15 игр, которые прокачивают логику, алгоритмы, ассемблер и силу земли

Timeweb Cloud corporate blog Programming *Algorithms *Popular science Games and game consoles


Есть «Super Mario», признанная классика видео игр. Есть «Doom», который запускают на чайниках и тестах на беременность. Есть супер-популярные по статистике twitch.tv игры («League of Legends», «GTA V», «Fortnite», «Apex Legends») которые стримят пятая часть всех стриммеров.

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

Под катом подборка классных игр про алгоритмы за последние 10 лет. Если что-то упустила — буду рада дополнениям.

Еще я создала канал в Telegram: GameDEVils, буду делиться там клевыми материалами (про геймдизайн, разработку и историю игр).
Читать дальше →
Total votes 88: ↑83 and ↓5 +78
Views 38K
Comments 92

Изобретем велосипед снова или построим график комбинаций бинарных переменных

R *Data visualization

Про пакет ComplexUpset в R.

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

Читать далее
Total votes 11: ↑11 and ↓0 +11
Views 819
Comments 0

Linux-смартфоны, на которые стоит обратить внимание в 2022 году

Selectel corporate blog Gadgets Smartphones

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

Сейчас ассортимент мобильных устройств очень большой, причем чаще всего говорят о девайсах от известных производителей. Но есть и не особо распространенные модели, на которые стоит обратить внимание, особенно IT-специалисту. О них сегодня и поговорим, правда, не о всех, а только тех, что работают на базе Linux. Кстати, часть моделей — не просто с Linux на борту, но еще и с физической клавиатурой.
Читать дальше →
Total votes 75: ↑71 and ↓4 +67
Views 30K
Comments 75

Как будут выглядеть процессоры после 2025 года

FirstVDS corporate blog High performance *Manufacture and development of electronics *Computer hardware CPU


Сколько хоронили закон Мура, а он продолжает работать. Даже сейчас, на фоне острого дефицита микросхем.

Планы Intel, AMD, Apple и производителей ARM следующего поколения говорят, что мы на пороге небольшой технологической революции. Транзисторы с круговым затвором, техпроцесс 2 нм, 3D-компоновка, квантовые технологии — вот планы производства микросхем на ближайшие годы. Впрочем, обо всём по порядку.
Читать дальше →
Total votes 61: ↑60 and ↓1 +59
Views 35K
Comments 61

Нарастающий итог в SQL с разрывами в данных

SQL *
Tutorial

Ранее мы рассмотрели способы расчёта нарастающего (накопительного) итога в SQL. Самый распространённый вопрос - как посчитать тоже самое, но на данных с разрывами? После написания исходной статьи мне его задавали неоднократно – так что есть смысл написать об этом отдельно.

Читать далее
Total votes 10: ↑10 and ↓0 +10
Views 5.2K
Comments 9

Распознаем простые фигуры по массиву точек

Abnormal programming *Java *Algorithms *

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

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

Читать далее
Total votes 23: ↑23 and ↓0 +23
Views 3.2K
Comments 15

Дефицит цветов в современных фильмах

Working with video *

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

Read more
Total votes 160: ↑147 and ↓13 +134
Views 48K
Comments 228

Как я научился не волноваться и полюбил управление состояниями Flutter. MVI и Clean Code в комплекте

Development for Android *Flutter *
Tutorial

Цель статьи — показать, как сделать ваш проект на Flutter более понятным для усовершенствования и удобным в сопровождении. Текст может быть полезным как для тех, кто только начинает изучать Flutter, так и более продвинутых пользователей, так как здесь мы рассмотрим актуальные подходы к разработке.

Если вы читали мою прошлую статью, или позапрошлую, то, наверное, уже знаете что я nerd vulgaris увлекаюсь программированием всякого. В комментариях к одной из прошлых статей было высказана идея провести параллель между приложением на Flutter и нативным приложения для Android на Kotlin c использованием view model, live data, view binding и найти аналоги привычным по Kotlin языковым средствам.

Читать далее
Total votes 6: ↑6 and ↓0 +6
Views 4.8K
Comments 5

Безопасность для Docker-контейнеров

Флант corporate blog Configuring Linux *Information Security *System administration *DevOps *
Translation
Прим. перев.: Тема безопасности Docker, пожалуй, одна из вечных в современном мире IT. Поэтому без лишних объяснений представляем перевод очередной подборки соответствующих рекомендаций. Если вы уже интересовались этим вопросом, многие из них будут вам знакомы. А саму подборку мы дополнили списком из полезных утилит и несколькими ресурсами для дальнейшего изучения вопроса.



Предлагаю вниманию руководство по обеспечению безопасности Docker'а. Обратная связь приветствуется, так как это скорее сборник отрывков с разных ресурсов, и не все они были подвергнуты доскональной проверке. Рекомендации разделены на три категории:

  1. Необходимые меры внутри операционной системы хоста при работе с Docker'ом;
  2. Инструкции, относящиеся к файлу конфигурации сборки и созданию контейнеров;
  3. Инструменты для безопасности, которые могут интегрироваться со специфическими функциями Docker Enterprise.
Читать дальше →
Total votes 41: ↑39 and ↓2 +37
Views 21K
Comments 7

Сокеты в Python, чат в 50 строк

Python *Studying in IT
Sandbox

На очередной практике по Java, не предвещающей ничего необычного, преподаватель ворвался в аудиторию и с порога заявил: "Сегодня мы с вами познакомимся с сокетами и напишем прототип собственного чата".

"А вечер-то перестаёт быть томным" - подумал я и не ошибся. Чёрт возьми, это какая-то магия, вертелось в моей голове по пути домой. Тут надо отметить, что я не только бедный студент, но ещё и преподаватель в кружке программирования, поэтому после столкновения с такой интересной темой во мне затаилось жгучее желание поделиться ею со своими ребятами.

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

Для начала определимся, что это за зверь такой - Сокет?

Представим себе работу ресторана быстрого питания, пусть будет Burger Queen, так вот работник этого заведения и будет сокетом, то есть программой, которая отвечает за обмен данными(бургерами) между клиентом и заведением. Как сокет узнает кому отдать заветное хрючево(данные)? У него есть чек с номером заказа! Вот и у сокета есть порт к которому он привязан, то есть и в Burger Queen и в сетевых технологиях есть приложение, тот самый сокет, который отвечает за работу с определенным портом, так же как и работник, который отвечает за обработку конкретного номера заказа, ведь и к конкретному компьютеру и к конкретной забегаловке одновременно конектятся разные клиенты, и всем им нужны разные данные.

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

Читать далее
Total votes 15: ↑11 and ↓4 +7
Views 7.5K
Comments 21

Странный мир Python, используемого крупными инвестиционными банками

Python *Version control systems *Product Management *Finance in IT
Translation

Мир больших финансов — это чужая страна; всё в ней происходит иначе

Сегодня мы сквозь замочную скважину взглянем на группу программных систем, о которой общество знает очень мало. Я называю её «банковским Python». Реализации банковского Python, по сути, являются проприетарными форками всей экосистемы Python, которые используются во многих (но не во всех) крупнейших инвестиционных банках. Банковский Python сильно отличается от обычной разновидности Python, которую любят (или ненавидят) большинство людей.

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

Я расскажу о вымышленной, объединившей в себе черты многих, воображаемой системе банковского Python под названием «Минерва». Названия подсистем будут изменены, и хотя я попытаюсь быть точным, некоторые подробности придётся стилизовать; кроме того, мне неизвестны все детали. Возможно, я даже допущу случайную ошибку. Но, надеюсь, общая картина будет правдивой.
Читать дальше →
Total votes 30: ↑28 and ↓2 +26
Views 14K
Comments 5

Работа с текстовыми данными в scikit-learn (перевод документации) — часть 1

Python *Data Mining *Machine learning *
Данная статья представляет перевод главы, обучающей работе с текстовыми данными, из официальной документации scikit-learn.

Цель этой главы — это исследование некоторых из самых важных инструментов в scikit-learn на одной частной задаче: анализ коллекции текстовых документов (новостные статьи) на 20 различных тематик.
В этой главе мы рассмотрим как:
  • загрузить содержимое файла и категории
  • выделить вектора признаков, подходящих для машинного обучения
  • обучить одномерную модель выполнять категоризацию
  • использовать стратегию grid search, чтобы найти наилучшую конфигурацию для извлечения признаков и для классификатора

Читать дальше
Total votes 12: ↑11 and ↓1 +10
Views 48K
Comments 0

Без него не было бы YouTube, Instagram и Uber: пошаговая инструкция о том, как выжать максимум из Python

STM Labs corporate blog Python *MongoDB *
Языков в мире программирования масса, но корону по праву носит Python. Многие полюбили его за гибкость, лаконичность, бесчисленное количество модулей и поддержку сообщества. Именно этот язык стал основой для самых популярных мировых площадок: YouTube, Instagram, Uber и многих других. Однако, некоторые программисты считают Python языком с ограниченными возможностями и уверены, что он «задохнется» под тяжелой архитектурой highload системы.
Я, технический директор компании STM Labs, Андрей Комягин, за несколько минут смогу переубедить всех скептиков и доказать обратное.


Читать дальше →
Total votes 28: ↑16 and ↓12 +4
Views 9.7K
Comments 45

У Unity всё плохо

Programming *Game development *C# *Unity3D *
Sandbox

На просторах интернета, и в частности хабра, очень трудно встретить статьи с критикой игрового движка Unity. Я решил это исправить, и приготовил вам текст о переходе на DOTS, насилию над C#, знаменитых UI пакетах, MonoBehaviour, универсальности и о многом другом.

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

Читать далее
Total votes 91: ↑83 and ↓8 +75
Views 73K
Comments 168

Linux pipes tips & tricks

Configuring Linux *
Sandbox
Tutorial

Pipe — что это?


Pipe (конвеер) – это однонаправленный канал межпроцессного взаимодействия. Термин был придуман Дугласом Макилроем для командной оболочки Unix и назван по аналогии с трубопроводом. Конвейеры чаще всего используются в shell-скриптах для связи нескольких команд путем перенаправления вывода одной команды (stdout) на вход (stdin) последующей, используя символ конвеера ‘|’:
cmd1 | cmd2 | .... | cmdN

Например:
$ grep -i “error” ./log | wc -l
43

grep выполняет регистронезависимый поиск строки “error” в файле log, но результат поиска не выводится на экран, а перенаправляется на вход (stdin) команды wc, которая в свою очередь выполняет подсчет количества строк.

Логика


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

Размер буфера начиная с ядра версии 2.6.11 составляет 65536 байт (64Кб) и равен странице памяти в более старых ядрах. При попытке чтения из пустого буфера процесс чтения блокируется до появления данных. Аналогично при попытке записи в заполненный буфер процесс записи будет заблокирован до освобождения необходимого места.
Важно, что несмотря на то, что конвейер оперирует файловыми дескрипторами потоков ввода/вывода, все операции выполняются в памяти, без нагрузки на диск.
Вся информация, приведенная ниже, касается оболочки bash-4.2 и ядра 3.10.10.

Простой дебаг


Утилита strace позволяет отследить системные вызовы в процессе выполнения программы:
$ strace -f bash -c ‘/bin/echo foo | grep bar’
....
getpid() = 13726                   <– PID основного процесса
...
pipe([3,  4])                       <– системный вызов для создания конвеера
....
clone(....) = 13727                <– подпроцесс для первой команды конвеера (echo)
...
[pid 13727] execve("/bin/echo",  ["/bin/echo",  "foo"],  [/* 61 vars */] 
.....
[pid 13726] clone(....) = 13728    <– подпроцесс для второй команды (grep) создается так же основным процессом
...
[pid 13728] stat("/home/aikikode/bin/grep",   
...
Видно, что для создания конвеера используется системный вызов pipe(), а также, что оба процесса выполняются параллельно в разных потоках.
Читать дальше →
Total votes 105: ↑97 and ↓8 +89
Views 138K
Comments 36

Книга «Паттерны разработки на Python: TDD, DDD и событийно-ориентированная архитектура»

Издательский дом «Питер» corporate blog Python *Professional literature
image Привет, Хаброжители! Популярность Python продолжает расти, а значит, проекты, созданные на этом языке программирования, становятся все масштабнее и сложнее. Многие разработчики проявляют интерес к высокоуровневым паттернам проектирования, таким как чистая и событийно-управляемая архитектура и паттерны предметно-ориентированного проектирования (DDD). Но их адаптация под Python не всегда очевидна.

Гарри Персиваль и Боб Грегори познакомят вас с проверенными паттернами, чтобы каждый питонист мог управлять сложностью приложений и получать максимальную отдачу от тестов. Теория подкреплена примерами на чистом Python, лишенном синтаксической избыточности Java и C#.

В этой книге:

  • «Инверсия зависимостей» и ее связи с портами и адаптерами (гексагональная/чистая архитектура).
  • Различия между паттернами «Сущность», «Объект-значение» и «Агрегат» в рамках DDD.
  • Паттерны «Репозиторий» и UoW, обеспечивающие постоянство хранения данных.
  • Паттерны «Событие», «Команда» и «Шина сообщений».
  • Разделение ответственности на команды и запросы (CQRS).
  • Событийно-управляемая архитектура и реактивные расширения.
Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Views 7.4K
Comments 10

Information

Rating
4,171-st
Location
Москва, Москва и Московская обл., Россия
Registered
Activity