Выше дан код на C++. Какой вывод будет у программы?
Anonymous Quiz
47%
0
16%
0b000001
16%
0b101111
21%
1
🥴2
Моргнул свет и потух комп.
Пробую включать. Он не реагирует. Перещёлкнул блок питания - включился.
Запускаю веб-сервер Apache - не алё. Контрольная панель что-то там ругается, что апача больше нет.
Слабо верится.
Иду смотреть, может конфиги какие слетели, а там... А там реально нет апача. Ну, в смысле нет бинаря httpd. Удалился.
Уже интереснее. Восстановил бинарь. Запускаю его и узнаю, что куча библиотек-зависимостей тоже не в чате...
Получается, все бинари, которые были загружены апачем в память, теперь удалены с диска.
Вот такая фишечка
👍 👍 👍
Похоже, пятница сегодня у апача. Будьте бдительны 😁
Пробую включать. Он не реагирует. Перещёлкнул блок питания - включился.
Запускаю веб-сервер Apache - не алё. Контрольная панель что-то там ругается, что апача больше нет.
Слабо верится.
Иду смотреть, может конфиги какие слетели, а там... А там реально нет апача. Ну, в смысле нет бинаря httpd. Удалился.
Уже интереснее. Восстановил бинарь. Запускаю его и узнаю, что куча библиотек-зависимостей тоже не в чате...
Получается, все бинари, которые были загружены апачем в память, теперь удалены с диска.
Вот такая фишечка
Похоже, пятница сегодня у апача. Будьте бдительны 😁
Please open Telegram to view this post
VIEW IN TELEGRAM
😢3
Библиотека или фреймворк
🔜 Библиотека - это набор функциональности, решающий определенную задачу.
🔜 Фреймворк - это набор функциональности, определяющий структуру приложения.
То есть понятия похожие, но фреймворк рассматривается в более широком смысле, чем библиотека. Фреймворк навязывает нам определенную структуру приложения, проникая во все его части. Библиотека же предполагает более изолированное использование.
Например, minizip - это библиотека, работающая с архивами, то есть решающая конкретную задачу. А Qt - это уже фреймворк, определяющий все основные элементы приложения: интерфейс, обработка событий, ввод/вывод и др.
#Словарь
То есть понятия похожие, но фреймворк рассматривается в более широком смысле, чем библиотека. Фреймворк навязывает нам определенную структуру приложения, проникая во все его части. Библиотека же предполагает более изолированное использование.
Например, minizip - это библиотека, работающая с архивами, то есть решающая конкретную задачу. А Qt - это уже фреймворк, определяющий все основные элементы приложения: интерфейс, обработка событий, ввод/вывод и др.
#Словарь
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Какой паттерн обеспечивает несколько вариантов алгоритмов, которые легко заменяют друг друга в процессе работы программы?
Anonymous Quiz
6%
Наблюдатель
71%
Стратегия
0%
Одиночка
23%
MVC
🤯1
Продолжая тему проектирования.
Эта картинка - супер-иллюстрация бардака с абстракциями на проекте 😁
Надеюсь, все помнят эту сцену и Гарри Поттера)
Пофантазируем ⤵️
Был проект, где машины ездили, поезда ходили, самолеты летали. Как-то это работало.
Потом в рамках рефакторинга выделили из самолета абстракцию Транспорт и унаследовали от нее Машину, Самолет и Поезд. При этом забыли перенести методы полета в Самолет, оставив их в Транспорте.
Получилось, что теперь Машина умеет летать!
Поезд, кстати, тоже умеет летать, но об этом пока никто не знает. Да никому это и не надо. А вот Уизли докопались и берут от абстракций всё: если есть методы полета, будем их вызывать!
Рон Уизли идет еще дальше и при решении своих задач пробует поставить Машину на Железную дорогу. И ему это удается, так как Железная дорога, оказывается, работает с абстракцией Транспорт 🫢
В итоге в процессе выполнения на проде возникает состояние гонки, и Поезд вступает в конфликт с Машиной.
😨 Все в панике!
Но не понятно из-за чего паника больше: из-за ошибки абстракций или из-за того, что на Поезд подтянулись скины вообще из другого проекта...
Эта картинка - супер-иллюстрация бардака с абстракциями на проекте 😁
Надеюсь, все помнят эту сцену и Гарри Поттера)
Пофантазируем ⤵️
Был проект, где машины ездили, поезда ходили, самолеты летали. Как-то это работало.
Потом в рамках рефакторинга выделили из самолета абстракцию Транспорт и унаследовали от нее Машину, Самолет и Поезд. При этом забыли перенести методы полета в Самолет, оставив их в Транспорте.
Получилось, что теперь Машина умеет летать!
Поезд, кстати, тоже умеет летать, но об этом пока никто не знает. Да никому это и не надо. А вот Уизли докопались и берут от абстракций всё: если есть методы полета, будем их вызывать!
Рон Уизли идет еще дальше и при решении своих задач пробует поставить Машину на Железную дорогу. И ему это удается, так как Железная дорога, оказывается, работает с абстракцией Транспорт 🫢
В итоге в процессе выполнения на проде возникает состояние гонки, и Поезд вступает в конфликт с Машиной.
😨 Все в панике!
Но не понятно из-за чего паника больше: из-за ошибки абстракций или из-за того, что на Поезд подтянулись скины вообще из другого проекта...
😁4😱1
Как начать работать с репозиторием Git на GitHub
В этом видео мы рассмотрим базовые приемы работы с репозиторием git. Мы создадим простой проект из пары файлов, инициализируем на нем репозиторий, научимся делать коммиты и загрузим весь код на GitHub.
📱 YouTube | 📱 ВКонтакте
✍️ Другие способы загрузки кода на GitHub описывал в статье
В этом видео мы рассмотрим базовые приемы работы с репозиторием git. Мы создадим простой проект из пары файлов, инициализируем на нем репозиторий, научимся делать коммиты и загрузим весь код на GitHub.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Скинули вакансию на технического директора с интересным требованием:
Уж простите, но не удержался 😁⤵️
Нам подойдут те управленцы, которые читали книжки по инженерии, а поэтому понимают, что:
- Тестировщики не нужны – разработчики должны сдавать работающий код
Уж простите, но не удержался 😁⤵️
😁3🤡2
Так себе программист
Скинули вакансию на технического директора с интересным требованием: Нам подойдут те управленцы, которые читали книжки по инженерии, а поэтому понимают, что: - Тестировщики не нужны – разработчики должны сдавать работающий код Уж простите, но не удержался…
This media is not supported in your browser
VIEW IN TELEGRAM
😁5🤡2
#include <iostream>
namespace First
{
int var = 1;
}
namespace Second
{
int var = 2;
}
int main()
{
{
using namespace First;
var = 3;
}
std::cout << First::var << Second::var << std::endl;
return 0;
}
Выше дан код на C++. Какой вывод будет у программы?
Anonymous Quiz
30%
12
48%
32
7%
13
15%
Никакой. Ошибка сборки
This media is not supported in your browser
VIEW IN TELEGRAM
😠 Хэй, все знают, что даже у старых жигулей есть душа!
😁4
Так себе программист
😠 Хэй, все знают, что даже у старых жигулей есть душа!
Кстати, про ИИ, нейросети и все такое.
В "Аэлите" Толстого есть эпизод, где прибывшие на Марс люди изучают язык местных с помощью специальной приспособы. Там что-то крутится-вертится, и азбука, фразы и понятия постепенно проникают в сознание.
После "загрузки" знания в голову, им оставалось лишь вздремнуть для закрепления)
Но я что подумал...
Если нам сейчас кажется, что созданные нами нейросети в будущем заменят специалистов, то почему мы не думаем от том, что вместо компьютерных нейросетей, мы будем обучать мозг человека напрямую?
Ну, возьмем и построим все необходимые нейросвязи прямо в мозгу. Врачу - свои, инженеру - свои. Не будем писать учебники, статьи, посты в тележке, а начнём распространять нейросетевые модели обучения. Коммерческие и бесплатные. Специальные и общеобразовательные.
Представьте, грузишь в голову базу и работаешь, копишь опыт. Как скопил что-нибудь интересное, извлекаешь свою нейросеть и выставляешь её на маркетплейс.
Фантастика
#КнижнаяПолка
В "Аэлите" Толстого есть эпизод, где прибывшие на Марс люди изучают язык местных с помощью специальной приспособы. Там что-то крутится-вертится, и азбука, фразы и понятия постепенно проникают в сознание.
Лось чувствовал, – мозг его яснеет, будто поднимается туманная пелена, и новые слова и понятия отпечатлеваются в памяти.
После "загрузки" знания в голову, им оставалось лишь вздремнуть для закрепления)
Но я что подумал...
Если нам сейчас кажется, что созданные нами нейросети в будущем заменят специалистов, то почему мы не думаем от том, что вместо компьютерных нейросетей, мы будем обучать мозг человека напрямую?
Ну, возьмем и построим все необходимые нейросвязи прямо в мозгу. Врачу - свои, инженеру - свои. Не будем писать учебники, статьи, посты в тележке, а начнём распространять нейросетевые модели обучения. Коммерческие и бесплатные. Специальные и общеобразовательные.
Представьте, грузишь в голову базу и работаешь, копишь опыт. Как скопил что-нибудь интересное, извлекаешь свою нейросеть и выставляешь её на маркетплейс.
Фантастика
#КнижнаяПолка
👍2😁2🥴1
Путаница в интерфейсах (часть 5)
Рубрика "Нам пишут" 🤓
Прислали диалог подтверждения отмены записи в одной из МИС (медицинская информационная система).
Если подумать, то диалог вполне логичный. Решение понятно. Но это если подумать.
В моменте же красный цвет для утвердительного действия и зелёный цвет для отрицательного вносят путаницу. Так посмотришь, и уже не уверен, хочешь ли отменять😁
🔜 Как вариант, можно было бы оставить кнопки вообще без цветов.
🔜 Другой вариант - это оставить красный цвет на кнопке "Да, отменить", а зеленый цвет и "галочку" с "крестиком" убрать. Тогда конфликтующих элементов интерфейса станет меньше.
—
Читать Путаница в интерфейсах (часть 4)
Рубрика "Нам пишут" 🤓
Прислали диалог подтверждения отмены записи в одной из МИС (медицинская информационная система).
Если подумать, то диалог вполне логичный. Решение понятно. Но это если подумать.
В моменте же красный цвет для утвердительного действия и зелёный цвет для отрицательного вносят путаницу. Так посмотришь, и уже не уверен, хочешь ли отменять😁
—
Читать Путаница в интерфейсах (часть 4)
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2👍1
#include <iostream>
template<class T>
void func(const std::initializer_list<T>& input)
{
for (const auto& val : input )
std::cout << val << " ";
}
int main()
{
func({1, 2, 3});
return 0;
}
Ну да, шаблоны... Но должны же мы были к ним хоть раз зайти!
Выше дан код на C++. Какой вывод будет у программы?
Anonymous Quiz
14%
0 0 0
55%
1 2 3
14%
val val val
18%
Никакой. Ошибка компиляции.
От "научного тыка" к осознанной отладке в C++
Раньше я не пользовался отладчиком. Вместо этого алгоритм поиска багов был такой:
1. Метод научного тыка - менял какие-то строки и надеялся.
2. Гуглил - иногда везло, но чаще нет.
3. Нагружал код логами -
4. Отправлялся к ментору - последняя надежда.
Хороший алгоритм, кстати. К последнему пункту обязательно срабатывал! Но это было очень долго.
А про отладчик я знал. Но он казался сложным. Думалось, что проще написать 100 логов, чем нажимать на кнопку с жуком 🤨
Но это не могло продолжаться вечно. После жёсткого нагоняя на 4-м пункте я необратимо узнал, что отладчик это:
- видеть состояние программы на каждой строке кода;
- пошагово двигаться по строкам, заходя во все функции;
- анализировать сложные ситуации, которые невозможно залогировать.
С отладчиком часы мучений превратились в минуты отладки. Но, правда, и баги стали позаковыристей 🤭
Если вы все еще логируете, то вот вам мой нагоняй. Смотрим видео, где за 10 минут разберемся в основных аспектах отладчика.
Видео:📱 YouTube | 📱 ВКонтакте
Раньше я не пользовался отладчиком. Вместо этого алгоритм поиска багов был такой:
1. Метод научного тыка - менял какие-то строки и надеялся.
2. Гуглил - иногда везло, но чаще нет.
3. Нагружал код логами -
cout << "Я тут! var = " << var << endl;.4. Отправлялся к ментору - последняя надежда.
Хороший алгоритм, кстати. К последнему пункту обязательно срабатывал! Но это было очень долго.
А про отладчик я знал. Но он казался сложным. Думалось, что проще написать 100 логов, чем нажимать на кнопку с жуком 🤨
Но это не могло продолжаться вечно. После жёсткого нагоняя на 4-м пункте я необратимо узнал, что отладчик это:
- видеть состояние программы на каждой строке кода;
- пошагово двигаться по строкам, заходя во все функции;
- анализировать сложные ситуации, которые невозможно залогировать.
С отладчиком часы мучений превратились в минуты отладки. Но, правда, и баги стали позаковыристей 🤭
Если вы все еще логируете, то вот вам мой нагоняй. Смотрим видео, где за 10 минут разберемся в основных аспектах отладчика.
Видео:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👏1🕊1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2🔥1
#include <iostream>
class MyClass
{
int a_ = 0;
public:
MyClass(int value = 0): a_(value)
{
std::cout << a_;
}
};
int main()
{
MyClass s1();
MyClass s2(10);
return 0;
}
Выше дан код на C++. Какой вывод будет у программы?
Anonymous Quiz
20%
10
64%
010
8%
0010
8%
Никакой. Ошибка компиляции
🤯2
Дефицит внимания: кто виноват
Знаете, что это за спонтанное желание проверять телефон каждые 5 минут?
Это не лень - так работает перегруженный мозг. Об этом ещё в 2010 году в своей книге писал Торкель Клингберг.
Виной всему прогресс. Мы все меньше читаем книги и все больше черпаем информацию из Интернета, где куча отвлекающих факторов. Реклама, соцсети, маркетплейсы, мессенджеры, мемы в конце концов. Всё как бы говорит тебе: "Не надо шевелить мозгами, отвлекись". И мы отвлекаемся. Причем, чем сложнее решаемая нами задача, тем охотнее мозг отлынивает.
Дело в том, что за наш мыслительный процесс отвечает рабочая память. А она вроде оперативки на компьютере: быстрая, но маленькая. Рабочая память может удерживать одновременно до 7 элементов информации. Её очень легко перегрузить, и эффективность мышления снизится. Поэтому сущая мелочь, одно уведомление в мессенджере, может выбить нас из мыслительного процесса.
За собой я явно заметил проблему дефицита внимания. Я легко отвлекаюсь. И это понятно: работа программиста значительно нагружает когнитивные ресурсы, а мозг ленив по своей природе и будет отвлекаться при любой возможности.
Поэтому, учитывая доводы Клингберга, со временем я выработал для себя следующие правила концентрации:
1. Уменьшаю "шум". Уведомления развлекательного контента у меня отключены по умолчанию - этого не должно быть в поле зрения. Если надо серьезно сосредоточиться, я отключаю вообще все уведомления на 1 час. Через час вернусь и все просмотрю. Так может продолжаться весь день, а может эпизодически. Зависит от решаемых задач.
2. Фиксирую контексты. Для каждого контекста у меня есть свои заметки. Выключаясь из контекста, я фиксирую в заметке, на чем остановился. Потом легче включиться обратно. Под сменой контекста я подразумеваю переключение с задачи на задачу или, например, с рабочего проекта на домашний проект. Здесь мне очень помогает Obsidian (как-нибудь расскажу подробнее).
3. Делаю перерывы. Например, фитнес-браслет предупреждает меня, если не было движения в течение часа. На него и ориентируюсь. Встал, прошёлся, сел обратно.
4. Тренирую память через чтение сложной литературы. Технические тексты, изобилие терминов, не родной язык здорово нагружают "процессор". Но есть минус: такие вещи не очень хочется читать 😁
—
А вы страдаете от дефицита внимания? Делитесь в комментах или в реакциях 😊👇
😁 - да, и мне норм
🔥 - да, борюсь с этим
👍 - у меня нет такой проблемы
📍Клингберг Т - Перегруженный мозг. Информационный поток и пределы рабочей памяти (2010) #КнижнаяПолка
Знаете, что это за спонтанное желание проверять телефон каждые 5 минут?
Это не лень - так работает перегруженный мозг. Об этом ещё в 2010 году в своей книге писал Торкель Клингберг.
Виной всему прогресс. Мы все меньше читаем книги и все больше черпаем информацию из Интернета, где куча отвлекающих факторов. Реклама, соцсети, маркетплейсы, мессенджеры, мемы в конце концов. Всё как бы говорит тебе: "Не надо шевелить мозгами, отвлекись". И мы отвлекаемся. Причем, чем сложнее решаемая нами задача, тем охотнее мозг отлынивает.
Дело в том, что за наш мыслительный процесс отвечает рабочая память. А она вроде оперативки на компьютере: быстрая, но маленькая. Рабочая память может удерживать одновременно до 7 элементов информации. Её очень легко перегрузить, и эффективность мышления снизится. Поэтому сущая мелочь, одно уведомление в мессенджере, может выбить нас из мыслительного процесса.
За собой я явно заметил проблему дефицита внимания. Я легко отвлекаюсь. И это понятно: работа программиста значительно нагружает когнитивные ресурсы, а мозг ленив по своей природе и будет отвлекаться при любой возможности.
Поэтому, учитывая доводы Клингберга, со временем я выработал для себя следующие правила концентрации:
1. Уменьшаю "шум". Уведомления развлекательного контента у меня отключены по умолчанию - этого не должно быть в поле зрения. Если надо серьезно сосредоточиться, я отключаю вообще все уведомления на 1 час. Через час вернусь и все просмотрю. Так может продолжаться весь день, а может эпизодически. Зависит от решаемых задач.
2. Фиксирую контексты. Для каждого контекста у меня есть свои заметки. Выключаясь из контекста, я фиксирую в заметке, на чем остановился. Потом легче включиться обратно. Под сменой контекста я подразумеваю переключение с задачи на задачу или, например, с рабочего проекта на домашний проект. Здесь мне очень помогает Obsidian (как-нибудь расскажу подробнее).
3. Делаю перерывы. Например, фитнес-браслет предупреждает меня, если не было движения в течение часа. На него и ориентируюсь. Встал, прошёлся, сел обратно.
4. Тренирую память через чтение сложной литературы. Технические тексты, изобилие терминов, не родной язык здорово нагружают "процессор". Но есть минус: такие вещи не очень хочется читать 😁
—
А вы страдаете от дефицита внимания? Делитесь в комментах или в реакциях 😊👇
😁 - да, и мне норм
🔥 - да, борюсь с этим
👍 - у меня нет такой проблемы
📍Клингберг Т - Перегруженный мозг. Информационный поток и пределы рабочей памяти (2010) #КнижнаяПолка
🔥11😁6👍2