Как стать автором
Обновить
Сначала показывать

Запускаем нативную конфигурацию Linux как виртуальную машину при помощи HyperV

Время на прочтение5 мин
Количество просмотров6.4K
Несколько дней назад я собрал первоклассную рабочую станцию, чтобы возиться с хобби-проектами и играть. Купил себе наилучший и новейший процессор (Ryzen 3900x — 12 ядер, 24 потока), производство AMD, а также 32 ГБ ОЗУ – как говорится, «компромиссы – не для нас». Собрал ПК, оказалось, он просто летает. Сконфигурировал систему так, чтобы в ней можно было одновременно работать с Windows и Linux (PopOS), пользуясь двойной загрузкой. От прошлой сборки у меня сохранился твердотельный диск (SSD), на котором был установлен и сконфигурирован дистрибутив Linux. Там я настроил поисковые роботы для Twitter, а также установил и приспособил для работы другие сервисы. Linux я использовал для задач, где требуется продуктивность, а под Windows в основном играл – впрочем, так и принято.

Некоторое время спустя я осознал, что у такой конфигурации есть явный недостаток. Пока я играл, мои поисковые роботы и прочие сервисы, в сущности, оставались выключены. Чтобы это исправить, я изменил порядок загрузки так, чтобы по умолчанию загружалась именно ОС Linux. Но даже в таком случае я не был готов смиряться с такой нагрузкой, которую испытывал процессор – фактически, он был вынужден тянуть обе эти ОС одновременно, хотя и более чем справлялся с этим. Если бы мне удалось как-то виртуализовать уже установленный у меня образ Linux, то процессор бы смог обслуживать обе ОС, даже не напрягаясь. Я к тому же ленив и обнаружил, что переключаться с одной действующей ОС на другую, фактически, деактивируя при этом первую – очень сложно, в особенности, если делать это часто. Мне хотелось просто снизить издержки.
Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Комментарии31

Книга «Linux для сетевых инженеров»

Время на прочтение20 мин
Количество просмотров28K
image Привет, Хаброжители!

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

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

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

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

Поскольку внимание здесь сосредоточено на Linux, вы обнаружите, что бюджет как для развертывания обсуждаемых служб, так и для их защиты выражается скорее в вашем энтузиазме и времени для изучения новых интересных вещей, чем в долларах и центах!
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии9

Книга «Здесь должен быть текст. Профессиональный UX-райтинг»

Время на прочтение18 мин
Количество просмотров2.6K
image Привет, Хаброжители!

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

Для кого предназначена эта книга?
Для технических или UX-писателей1. Если вы пишете текст, который видят и с которым взаимодействуют пользователи, эта книга поможет вам применить к этому процессу дизайн-методики. Называете ли вы себя UX-райтером, дизайнером, специалистом по контент-стратегии или еще как-нибудь, эта книга сделает вас более эффективным.
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии1

Осваиваем модуляризацию: Руководство для начинающих по организации сложных программных систем

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

⚡ Tl;dr


  • Модуляризация — это метод разделения сложных систем на более мелкие удобоваримые части для лучшего управления и восприятия.
  • Она повышает эффективность, надежность и ремонтопригодность программных проектов за счет организации кода в модули.
  • Она снижает когнитивную нагрузку на разработчиков за счет уменьшения объема информации, которую им приходится обрабатывать за один раз, что облегчает понимание сложных систем и предотвращает их «выгорание».
  • Модули при разработке программного обеспечения можно рассматривать как строительные кубики, наподобие деталей «Лего».
  • Каждый модуль имеет уникальный набор общедоступных интерфейсов, структур данных или сообщений, которые служат контрактами для других разработчиков.
  • При работе с модулями важно относиться к ним как к «черным ящикам» и взаимодействовать с ними только через определенные общедоступные интерфейсы, чтобы избежать сильного связывания и повысить модульность системы.
  • Сборки используются для группировки кода в .NET, поскольку они обеспечивают более высокий уровень инкапсуляции (использование внутреннего доступа). Это позволяет разработчикам контролировать уровень доступа другого кода к членам типа и помогает защитить детали реализации типа или элемента.
  • Чтобы сделать реализацию прозрачной для тестирования, можно использовать атрибут в файле csproj и указать имя сборки тестового проекта.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии3

Книга «100 ошибок Go и как их избежать»

Время на прочтение10 мин
Количество просмотров7.4K
image Привет, Хаброжители!

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

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

Для опытных Go-разработчиков, хорошо знакомых с синтаксисом языка.
Для кого эта книга
Эта книга предназначена для разработчиков, уже знакомых с языком Go. В ней не рассматриваются его основные понятия — синтаксис или ключевые слова. Предполагается, что вы уже занимались реальным проектом на Go. Но прежде чем углубляться в большинство конкретных тем, удостоверимся, что некоторые базовые вещи понимаются ясно и четко.
Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии13

Книга «Дизайн-мышление для роста бизнеса: проектирование и масштабирование бизнес-моделей и экосистем»

Время на прочтение1 мин
Количество просмотров1.7K
Привет, Хаброжители!

Книга содержит принципиально новый подход к проектированию и масштабированию бизнес-моделей и экосистем. Михаэль Леврик описывает комплексную процедурную модель для проектирования, развития и внедрения бизнес-экосистем. А также рассказывает о наиболее важных методах проектирования и инструментах, которые понадобятся, чтобы сделать вашу экосистему успешной.
image Приведены детализированные кейсы и примеры компаний, построивших успешные экосистемы. Представлен образ мышления, способствующий росту бизнеса, даны практические упражнения для лучшего понимания идей автора и их осуществления в реальности.

Издание идеально подходит для основателя компании, менеджера и руководителя в различных областях бизнеса. Оно также будет органично смотреться в библиотеке любого менеджера по продукту, начальника отдела или специалиста некоммерческой организации, которые хотят лучше понимать, как реализовать новые и инновационные идеи, способствующие росту и успеху компании.
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии1

Книга «Грокаем функциональное программирование»

Время на прочтение2 мин
Количество просмотров21K
image Привет, Хаброжители!

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

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

Вы начнете с решения простых и маленьких задач, иллюстрирующих базовые понятия, такие как чистые функции и неизменяемые данные, научитесь писать код, лишенный типичных ошибок, обусловленных наличием сложного распределенного состояния, разберетесь с подходами к реализации ввода-вывода, параллельного выполнения и потоковой передачи данных. К концу книги вы будете создавать ясный функциональный код, который легко читается, тестируется и сопровождается.
Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии14

Принципы работы интегрированных сред разработки

Время на прочтение7 мин
Количество просмотров3.3K
Вот некоторые принципы работы IDE (интегрированных сред разработки), которые, на мой взгляд, нужно зафиксировать:

Принцип минимальной навигации


Навигация в IDE раздражает. В тексте, конечно, можно выучить все причудливые навигационные сокращения типа C-a M-< M-f и так далее, но всё равно требуется немало набирать на клавиатуре. А если речь идет о навигации в файловой системе, то требуется еще больше ввода и поиска.

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

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

Вы должны стремиться к тому, чтобы пользователи при наборе кода мыслили линейно. Вспомните, как современный траекторию набора текста, подобно тому, как современный ЦП-ориентированный код избегает ветвлений и переходов.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

Идиоматическая обработка ошибок в Rust

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

Вы забудете о необработанных исключениях, если научитесь обращаться с ошибками, как это принято в Rust


Обработка ошибок – важнейшая часть любого языка программирования, а в Rust предлагается для этого уникальный мощный подход. Rust, в отличие от многих других языков программирования, не предлагает исключений, а предоставляет перечисление Result. У разработчика нет иного выхода, кроме как обрабатывать все ошибки согласованно и предсказуемо. Поэтому ошибки становится проще идентифицировать и диагностировать.

Поскольку в Rust не предусмотрены исключения, любая функция обязана возвращать либо значение, либо "панику". Когда функция паникует, процесс сразу же завершается и предоставляет вызывающей стороне конкретную обратную связь. Чисто технически можно отлавливать случаи паники в Rust при помощи catch_unwind, но постоянно так делать не рекомендуется. Вместо этого в Rust предлагается перечисление Result; пользуясь им, разработчик вынужден обрабатывать все ошибки сам.

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

image
Читать дальше →
Всего голосов 23: ↑20 и ↓3+17
Комментарии6

Некоторые советы, которые я почерпнул из книги «100 ошибок в Go»

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

Недавно я закончил читать книгу Тейвы Харсаньи "100 ошибок и как их избежать", и вместо того, чтобы писать рецензию (всем, кто работает с Go, стоит ее прочитать), я решил поделиться четырьмя ошибками, которые показались мне интересными и о которых я раньше не знал.
Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии11

Книга «Golang для профи: Создаем профессиональные утилиты, параллельные серверы и сервисы, 3-е изд.»

Время на прочтение12 мин
Количество просмотров10K
image Привет, Хаброжители!

Язык Go — это простой и понятный язык для создания высокопроизводительных систем будущего. Используйте Go в реальных производственных системах. В новое издание включены такие темы, как создание серверов и клиентов RESTful, знакомство с дженериками Go и разработка серверов и клиентов gRPC.

Третье издание «Golang для профи» исследует практические возможности Go и описывает такие продвинутые темы, как параллелизм и работа сборщика мусора Go, использование Go с Docker, разработка мощных утилит командной строки, обработка данных в формате JSON (JavaScript Object Notation) и взаимодействие с базами данных. Кроме того, книга дает дополнительные сведения о работе внутренних механизмов Go, знание которых позволит оптимизировать код на Go и использовать типы и структуры данных новыми и необычными способами.

Также охватываются некоторые нюансы и идиомы языка Go, предлагаются упражнения и приводятся ссылки на ресурсы для закрепления полученных знаний.

Станьте опытным программистом на Go, создавая системы и внедряя передовые методы программирования на Go в свои проекты!
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии10

Книга «Игровой баланс. Точная наука геймдизайна»

Время на прочтение20 мин
Количество просмотров8.3K
image Привет, Хаброжители!

В сфере игрового дизайна балансировка является чем-то вроде черной магии.

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

Это требует одновременного использования математики, психологии, а иногда и знаний из других областей, например экономики и теории игр.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии2

Как отправлять пользовательский интерфейс по API

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

Есть приём, позволяющий совершенно по-новому представить работу с пользовательскими интерфейсами (UI). Можно передавать UI на клиент через различные API – так получаются серверно-управляемые пользовательские интерфейсы. Такой метод позволяет выйти на новый уровень гибкости и динамичности, трансформирует традиционные парадигмы разработки UI.

Серверно-управляемые UI существуют совсем не только в теории. Их внедряют некоторые крупнейшие игроки технологической индустрии. В качестве примеров можно привести Lyft и Airbnb. Они активно используют серверно-управляемые UI, чтобы выдавать миллионам пользователей во всём мире динамический контент и быстро предоставлять обновления.

Но что же собой представляют серверно-управляемые UI? Как они работают и почему приобретают такую важность в современной разработке на JavaScript? В данном посте мы постараемся ответить на эти вопросы и углублённо рассмотреть серверно-управляемые UI, их достоинства, а также как можно реализовать такой интерфейс в вашем собственном проекте.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии11

Книга «Математика в машинном обучении»

Время на прочтение10 мин
Количество просмотров10K
image Привет, Хаброжители!

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

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

Тем, кто только начинает изучать математику, такой подход поможет развить интуицию и получить практический опыт в применении математических знаний, а для читателей с базовым математическим образованием книга послужит отправной точкой для более продвинутого знакомства с машинным обучением.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии4

Книга «Карьера Software Engineering Manager. Эффективное управление командой разработчиков ПО»

Время на прочтение10 мин
Количество просмотров2.9K
image Привет, Хаброжители!

Перед вами неожиданно открылась возможность возглавить команду разработчиков ПО? Пора становиться менеджером? Как решить, подходит ли вам такой шаг в карьере? И если да, то чему нужно научиться, чтобы добиться успеха? С чего начать? Как понять, что вы все делаете правильно? Что вообще означает «менеджмент»? Джеймс Стэньер делится секретами, которые необходимо знать, чтобы успешно управлять командой разработчиков.

Смена статуса с «инженер-разработчик» на «руководитель команды» не должна вас пугать — инженеры могут быть менеджерами, причем идеальными.

Отбросьте болтовню и сосредоточьтесь на практических методах и инструментах. Вы станете эффективным лидером команды, на которого будут равняться ваши сотрудники.

Великие менеджеры могут сделать мир лучше. Присоединяйтесь к нам!
Читать дальше →
Всего голосов 6: ↑5 и ↓1+4
Комментарии1

Книга «Python. Лучшие практики и инструменты. 4-е изд.»

Время на прочтение14 мин
Количество просмотров11K
image Привет, Хаброжители!

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

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

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

К концу книги вы освоите разработку эффективного и простого в сопровождении кода на Python.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии0

Эволюционная архитектура – что же это такое

Время на прочтение5 мин
Количество просмотров6.2K
«Архитектура с эволюционным развитием поддерживает управляемые, постепенные и последовательные изменения сразу в нескольких направлениях».

Из книги «Эволюционная архитектура. Поддержка непрерывных изменений»

Были времена, когда вносить любое изменение в программную архитектуру было крайне дорого. Поэтому после того, как архитектура уже определена и построена, её старались не трогать. Но вот наступили времена облачных вычислений – и теперь дороже и рискованнее стало, наоборот, ничего не менять и сохранять стабильность.
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии0

Книга «Изучаем vi и Vim. Не просто редакторы. 8-е изд.»

Время на прочтение14 мин
Количество просмотров12K
image Привет, Хаброжители!

Среди текстовых редакторов, используемых программистами, самыми важными является vi и его вариации. В обновленном издании пользователи Unix и Linux изучат основы редактирования текста как в vi, так и в Vim (vi improved), прежде чем перейти к более продвинутым инструментам в каждой из программ. Авторы Арнольд Роббинс и Элберт Ханна описывают основные новейшие версии Vim.

Если вы программист или компьютерный аналитик, либо работаете с веб- или консольными интерфейсами, Vim упростит решение сложных задач. Вы освоите многооконное редактирование, глобальный поиск/замену и прочие мощные инструменты для программистов, а также научитесь писать интерактивные макросы и сценарии, расширяющие возможности программы.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии30

Книга «Прикладные структуры данных и алгоритмы. Прокачиваем навыки»

Время на прочтение12 мин
Количество просмотров11K
image Привет, Хаброжители!

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

Книга полна реальных прикладных примеров на популярных языках программирования (Python, JavaScript и Ruby), которые помогут освоить структуры данных и алгоритмы и начать применять их в повседневной работе. Вы даже найдете слово, которое может существенно ускорить ваш код. Практикуйте новые навыки, выполняя упражнения и изучая подробные решения, которые приводятся в книге.

Начните использовать эти методы уже сейчас, чтобы сделать свой код более производительным и масштабируемым.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии6

Преимущества функционального программирования на примерах C#

Время на прочтение7 мин
Количество просмотров7K
Функциональное программирование (ФП) — это парадигма, в которой упор делается на использование функций для решения задач, а не на состояние и изменяемые данные. В последние годы ФП завоевало популярность среди разработчиков благодаря многочисленным преимуществам, которые позволяют использовать его для разработки сложных систем. В этой статье мы расскажем о преимуществах функционального программирования и о том, почему вам стоит рассмотреть возможность его использования в вашем следующем проекте.
Читать дальше →
Всего голосов 16: ↑9 и ↓7+2
Комментарии9

Информация

Сайт
piter.com
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия