Программирование {BookFlow}
16.2K subscribers
1.58K photos
468 videos
145 files
2.1K links
Мы публикуем лекции и книги по программированию, видеоуроки, доклады с IT конференций, новости технологий.

Группа в https://vk.com/bookflow.

По всем вопросам @evgenycarter

РКН https://clck.ru/3KoAbH
Download Telegram
Лямбда-выражения

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

Подписывайтесь на канал 👉@coddy_academy

#c_sharp
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Memory Game

Смысл игры в том, чтобы найти пары одинаковых карточек. Логика сделана на JS.

Посмотреть пример в онлайн редакторе.

Подписывайтесь на канал 👉@coddy_academy

#javascript
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Как создать впечатляющий профиль на GitHub README

Мы рассмотрим следующее:

что такое README профиля GitHub
как создать README профиля GitHub
добавление социальных значков, навыков и описаний о себе
добавление статистики GitHub
создание рабочего процесса GitHub для извлечения последних опубликованных блогов

https://www.sitepoint.com/github-profile-readme/
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Supabase – это альтернатива Firebase с открытым исходным кодом. https://supabase.com/

Это сочетание инструментов с открытым исходным кодом, которая создаёт функционал Firebase, используя инструменты Enterprise уровня с открытым исходным кодом.

Supabase не является точной копией Firebase. Цель - предоставить разработчикам опыт работы с Firebase, используя инструменты с открытым исходным кодом.
1
👋 Мы — команда айтишников. В текущих условиях компания не может работать как работала, и мы решили переехать всей командой.

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

👨‍💻 А вообще, мы HR-IT-чувачки (то есть без лишней скромности профи в сфере трудоустройства) и сейчас готовим новый проект: будем помогать айтишникам организовать переезд и устроиться на работу в валюте. И ещё сверху грант будем давать💰

👉 Что для этого нужно? Пока что — присоединиться к каналу RelocationDev и следить за новостями😉 Скоро обо всём расскажем — в мельчайших подробностях.
💩11👎6👍3
Трюки в C#, которые облегчат вам жизнь

Держите статью про полезные вещи в C#, которые помогут начинающим. Сохраняйте и пользуйтесь:

— Инициализаторы объектов, массивов и коллекций. Поля объектов можно заполнять сразу при инициализации самого объекта: Employee emp = new Employee {Name="John Smith", StartDate=DateTime.Now()};

— Оператор объединения со значением null. ?? — оператор, который возвращает левый операнд, если тот не null, иначе он вернёт правый операнд: var result = someValue ?? defaultValue; В одной строке может быть несколько таких операторов.

— Интерполированные строки. В строки можно удобно вставлять значения переменных без конкатенации: var someString = $"Some data: {someVariable}, some more data: {someOtherVariable}";

— Оператор безопасной навигации. Если какой-либо из операндов будет null, то возвращаемое значение тоже будет null: var currentAge = customer?.profile?.age;

— Ключевое слово yield. Используется в итераторах. С его помощью можно возвращать промежуточное значение, то есть не выходя из метода. Пример есть в статье.
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Шутер в духе Quake на HTML5 и JavaScript, который весит 13 КБ

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

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

Подробнее
🔥8👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Освойте бэкенд-разработку на Java за 10 месяцев!
Профессия для тех, кто настроен серьезно: https://bit.ly/3wgbndZ

Научим:
✔️Писать код на Java
✔️Использовать фреймворки Javalin, Spring
✔️Применять принципы ООП
✔️Работать с базами данным, SQL
✔️Настраивать окружение: IDEA, Gradle/Maven, JDK
✔️Пользоваться командной строкой и Git

Поможем:
✔️Наработать практику — вы сделаете 5 проектов на GitHub
✔️Грамотно оформить резюме
✔️Подготовиться к собеседованиям

А еще порекомендуем в хорошие компании и познакомим с сообществом из 26 тысяч айтишников. Присоединяйтесь!
Forwarded from Python академия
Принципы программирования.

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

KISS
Keep It Stupid Simple - придерживайся простоты. Хороший пример этому - побитовые операции и регулярки. Это не означает, что их нельзя использовать. Но не надо использовать их там, где это не нужно. Чем проще написан код, тем легче его поддерживать вам и вашим коллегам.

DRY
Don’t Repeat Yourself - не повторяйся. Не следует дублировать код. Вместо копирования нужно создать функцию. В будущем это упростит отладку и изменение кода. Особенно в больших программах.

YAGNI
You Aren’t Gonna Need It - тебе это не понадобится. Неправильно создавать места только для будущего расширения кода. Неизвестно точно, какой именно понадобится функционал и возможно код будет мешать новому (речь не идет о заглушках на заказанный функционал).

SLAP
Single Level of Abstraction Principle - принцип единого уровня абстракций. Код должен оставаться поддерживаемым, особенно функции. Если функция не помещается на экран, то ее следует разбить на несколько других функций.
«Функции должны выполнять только одно действие, но выполнять его хорошо» (Роберт Мартин). В частности напоминает принцип DRY, но сильно отличается, код не обязательно должен повторяться. Но должен быть разбит на логические блоки, для большего удобства

Подписывайтесь на канал 👉@pythonofff
👍9
Год последовательного Leetcod-инга каждый день
В конце концов, неважно, насколько вы умны, глупы или удачливы, если вы достаточно последовательны, вы сможете обогнать всех людей, которых вы считаете более талантливыми или умными.

Rus https://apptractor.ru/info/articles/god-posledovatelnogo-leetcod-inga-kazhdyy-den.html

Eng https://medium.com/@aryannayakk/one-year-of-consistent-leetcoding-everyday-5d070d1c590a
👍9
Какие типы Java могут имплементировать интерфейсы?

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

В основном существуют 5 типов Java, которые могут реализовывать интерфейсы:

1. Обычный класс
2. Абстрактный класс
3. Вложенный класс
4. Enum
5. Динамический прокси

Подписывайтесь на канал 👉@coddy_academy

#java
👍1
Методы строк С++

s.size()
- возвращает длину строки

s.empty() - возвращает 1, если строка пуста, 0 - если непуста.

s.push_back(c) - добавляет в конец строки символ c, вызывается с одним параметром типа char.

s.append(n, c) - добавляет в конец строки n одинаковых символов, равных с. n имеет целочисленный тип, c - char.

s.append(t) - добавляет в конец строки S содержимое строки t. t может быть объектом класса string или C-строкой.

s.append(t, pos, count) - добавляет в конец строки S символы строки t начиная с символа с индексом pos количеством count.

s.clear() - очищает строчку, строка становится пустой.

#cpp
👍8💩1
Машинное обучение. Начало | Основы машинного обучения

#1. Что такое машинное обучение? Обучающая выборка и признаковое пространство
#2. Постановка задачи машинного обучения
#3. Линейная модель. Понятие переобучения
#4. Способы оценивания степени переобучения моделей
#5. Уравнение гиперплоскости в задачах бинарной классификации
#6. Решение простой задачи бинарной классификации
#7. Функции потерь в задачах линейной бинарной классификации
#8. Стохастический градиентный спуск SGD и алгоритм SAG
#9. Пример использования SGD при бинарной классификации образов
#10. Оптимизаторы градиентных алгоритмов: RMSProp, AdaDelta, Adam, Nadam
#11. L2-регуляризатор. Математическое обоснование и пример работы

@bookflow

#machinelearning
🔥4👍2🤮1
👩‍⚖️⚖️ Какие права есть у программистов на код и как правильно их защищать

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

Подробнее
👍2🤯1
Файловые системы \ FS \ sfdisk \ e2label \ mkfs \

ext3 - Наиболее распространенная файловая система Linux,
предоставляющая возможность журналирования с целью
сохранения данных и возможность быстро перезагружать
систему после некорректного завершения ее работы
ext2 - Файловая система, предшествующая ext3,
не поддерживающая функцию журналирования
iso9660 - появилась из файловой системы High Sierra (была стандартом для компакт-дисков)
и может содержать расширения Rock Ridge для обеспечения возможности
использования длинных имен файлов и других функций (полномочия доступа
к файлу, права собственности и ссылки)
jffs2 - Журналируемая файловая система для флэш-носителей, созданная для
эффективной работы с USB-накопителями
jfs - Файловая система, используемая на IBM в OS/2 Warp и настроенная на работу
с большими файловыми системами и средами с высокой производительностью
msdos - Может использоваться для монтирования файловых систем на устаревшие
носители MS-DOS, например старые дискеты
ntfs - Может быть полезна, когда есть необходимость передавать файлы
в файловые системы Windows (с двойной загрузкой или на сменных носителях)
reiserfs - Журналируемая файловая система, иногда используемая по умолчанию на SUSE,
Slackware и других операционных системах Linux
squashfs - Запакованная файловая система, предназначенная только для чтения
данных и используемая на многих Live CD Linux
swap - Используется на разделах подкачки для временного хранения данных,
когда оперативная память временно недоступна
ufs - Популярная файловая система операционных систем Solaris
и SunOS от корпорации Sun Microsystems
vfat - Расширенная файловая система FAT (VFAT), которая полезна,
если файловым системам нужно обмениваться файлами
с более старыми системами Windows (с двойной загрузкой или на сменных носителях)
xfs - Журналируемая файловая система для среды с высокой производительностью,
размер которой может расширяться до многих терабайт данных,
а скорость передачи данных в которой исчисляется гигабайтами в секунду

sfdisk - программа для работы с таблицей разделов жесткого диска
sfdisk -d /dev/sda > sda-table - Выполняет резервное копирование таблицы разбиения в файл
sfdisk /dev/sda < sda-table - Восстанавливает таблицу разбиения из файла
sfdisk -d /dev/sda | sfdisk /dev/sdb - Копирует таблицу разбиения с одного диска на другой

fdisk - программа для работы с таблицей разделов жесткого диска (устарела)

e2label /dev/sda2 - посмотреть метку второго раздела
e2label /dev/sda2 my_lable_name - назначить метку my_lable_name второму разделу

findfs LABEL=my_lable_name - ищем раздел по метке
(например в /etc/fstab монтирование по метке)

mkfs -t ext3 /dev/sdb1 - Создает файловую систему ext3 на разделе sba1
mkfs -t ext3 -v -c /dev/sdb1 - Расширенная команда, выполняющая также
поиск поврежденных блоков
mkfs.ext3 -с /dev/sdb1 - Создает файловую систему ext3 на разделе sba1
mkfs.ext3 -с -L mypartition /dev/sdb1 - Создает файловую систему ext3 на разделе sba1
и добавляет разделу метку

dd if=/dev/scd0 of=name_file.iso bs=2048 - извлекаем образ iso с cd/dvd

dd if=/dev/zero of=my_disk count=2048000 - Создаем заполненный нулями файл объемом 1 Гбайт
du -sh my_disk - Проверяем размер виртуальной файловой системы
mkfs -t ext3 my_disk - Создаем файловую систему на mydisk
mkdir /mnt/image - создаем пустой каталог
mount -o loop my_disk /mnt/image - монтируем my_disk в пустой каталог
cd /mnt/image - переходим в каталог /mnt/image
mkdir test - создаем каталог test
cp /etc/hosts - копируем /etc/hosts в текущий каталог
cd .. - переходим на уровень выше (выходим из текущего каталога)
umount /mnt/image - отмонтмровать /mnt/image
👍3🔥3👎1🤔1
В этом руководстве мы рассмотрим теорию и практическую реализацию блочной сортировки в Python.

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

Подробнее
👍5
Nano Stagedмаленький (40КБ) NodeJS инструмент для запуска команд только для файлов, которые попадут в текущий коммит.

Это полезно, когда у вас большой проект и проверка его кода занимает много времени. Настройте pre-commit-хук, чтобы автоматически запускать его перед коммитом. Он найдет проиндексированные файлы и только для них запустит ваши скрипты.

Инструмент работает только c NodeJS!
Не можете продлить нужный сервис, оплатить хостинг или получить деньги из-за рубежа?

Ребята из rk.finaxe.ru тоже столкнулись с данной проблемой и запустили сервис, в котором граждане РФ могут оформить онлайн карту Visa или Mastercard в банке Казахстана.

Для чего это нужно:
— Оплата любых зарубежных сервисов и покупок
— Получение денег из-за рубежа
— Использование в путешествиях

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

Оформить заявку
и ознакомиться с FAQ можно в боте:
https://t.me/Robokazakh_bot
В этой статье вы узнаете, как в Python считывать и записывать файлы MS Word.

Существует несколько библиотек, которые можно использовать для чтения и записи в Python файлов MS Word. Мы будем использовать модуль python-docx .

Подробнее
👍6
Wolfenstein 3D / Blake Stone (1992/3)

Разработчик: id Software
Издатель: Apogee Software
Платформа: DOS

На основе предыдущего движка Catacomb был сделан серьёзный апгрейд на VGA-графику. И играть стало интереснее. Как в большинстве случаев с компанией id, исходники сравнительно легко читать, хотя ключевые части написаны на 16-битном ассемблере (в Doom уже такого не встретишь).

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

У Fabien можно найти инструкцию по компиляции исходников на современных инструментах.

Blake Stone, ответвление от Apogee на том же движке, вышло в 1993 году, за неделю до Doom. Можно представить, почему оно кануло в лету.

Исходники: github.com/id-Software/wolf3d
🔥4👍1
Самое мучительное в поиске работы — ожидание ответа и бесконечные этапы отбора. В Почтатехе считают, что всё должно быть проще, и приглашают всех джавистов на One day offer 9 апреля.

Никаких географических ограничений: ждут участников со всех уголков страны и уже готовы предложить конкурентные условия и амбициозные задачи в продуктах Почты России. Если ты спец с опытом в Java-разработке от трёх лет, смело откликайся до 3 апреля включительно: https://clck.ru/dngAQ
👍3