Так себе программист
97 subscribers
184 photos
7 videos
1 file
183 links
Меня зовут Александр Троценко. Разработчик, преподаватель, к.т.н. Пишу о программировании и профессии.

10 лет в разработке desktop на C/С++

Контент: https://taplink.cc/atrotsenko
Download Telegram
Каждый разработчик рано или поздно столкнется с выбором лицензии, под которой он откроет свету свое уникальное творчество. И выбрать есть из чего. Давайте вспомним, какая лицензия разрешает делать с кодом практически все, что угодно 👇
Какая из этих лицензий является самой разрешительной?
Anonymous Quiz
7%
Проприетарная лицензия
66%
MIT License
24%
GNU GPL (General Public License)
3%
Apache License 2.0
Пожелание в Новый год

На картинке два спортивных автомобиля. Сверху - драгстер для коротких заездов. Снизу - болид для суточного марафона.

Драгстеру необходимо "выстрелить" на дистанции в четверть мили, уложившись в несколько секунд. Судьба марафонца - двигаться на пределе в течение 24-х часов.

Конструктивные особенности налицо. У драгстера много элементов редуцировано. "Велосипедные" передние колеса, минимальное рулевое управление, нет кузова, нет крыши, нет зеркал, нет дворников, нет фар. Много чего нет. Зачем, когда гонка длится 4 секунды?

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

Можно подумать, что не будет дождя, и убрать дворники; что ночью будет светло как днем, и убрать фары; что соперники не будут атаковать, и убрать зеркала... Только инженеры марафонца так не думают. Болид всегда выйдет на старт 24-х часов во всеоружии. Подготовленным.

И эта аналогия здесь не просто так. Мы плавно подходим к основной мысли.

Знание - это не драгстер для спринта. Это болид для марафона. Марафона длиною в жизнь. Мелочей здесь нет. Работает каждый кирпичик нашего образования.

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

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

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

Увидимся в новом году!
👏9🎉4
#include <iostream>

int main() {
for ( int i = 0; i < 4; ++i )
std::cout <<
( i == 1 ? 0 :
( i == 3 ? 6 : 2 ) );
return 0;
}
Выше дан код C++. Какой вывод будет у программы?
Anonymous Quiz
85%
2026
4%
0620
4%
0026
8%
0260
Имя переменной

Если вам кажется, что вы придумали слишком длинное имя для переменной, то вспомните название этого журнала из 19 века:

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


Исчерпывающе. Умели же люди развлекаться)
😁4
Представляете, я за весь прошлый год не выпустил ни одного теста на оценку. Скукота!
Исправляюсь.

Давайте прикинем, сколько строк кода насчитывают исходники операционной системы MS-DOS v4.0.
В тесте нужно выбрать вариант, который, по-вашему, ближе всего к правде.

Для справки MS-DOS v4.0:
- вышла 1988 году,
- впервые получила графическую оболочку,
- написана на ассемблере и Cи.
Дайте оценку, какое количество строк в MS-DOS v4.0?
Anonymous Quiz
19%
~ 1 100
30%
~ 10 000
33%
~ 300 000
19%
~ 4 000 000
Проектирование UI в гугл-таблицах?

Практикует же кто-то.

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

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

То есть для ограниченного круга задач это вполне себе способ. Особенно когда не хочется или нет времени вникать в специальные инструменты.

Поэтому если вы не знали, что так можно, - теперь знайте)

Я взял на заметку. Для подготовки заданий студентам может сгодится. Когда заданий много, скорость создания макетов решает.
🤔2
Пятничный этимологический тест.

Сомневающиеся с ответом могут найти подсказку на картинке 👇
🔥1
Media is too big
VIEW IN TELEGRAM
Когда фильтры спорят с логикой и здравым смыслом

Перед вами восьмая часть рубрики "Путаница в интерфейсах".

Смотрим как не надо делать фильтры и голосуем, у какой категории кроватей самая низкая цена?

👍 - Дешевые
🔥 - Эконом
😁 - Распродажа

—

А в седьмой части рубрики мы пытались настроить Яндекс.Книги
😁6🔥2👍1🤔1
Вспомнив про MS-DOS, продолжаем изучать открытые проекты в формате викторины.

3D Slicer - это платформа для анализа и визуализации медицинских изображений (МРТ, КТ). Проекту больше 20 лет.
Ключевые особенности:
- позволяет работать с объёмными 3D-данными,
- кроссплатформенный,
- имеет инструменты научной визуализации,
- возможность для ученых (непрограммистов) писать свои алгоритмы.

Из этого описания попробуйте угадать, какой у него стек технологий 👇
🤔4🔥2💩1
Какой стек технологий у проекта 3D Slicer?
Anonymous Quiz
53%
C++, Qt, VTK, Python
7%
C#, WPF, .NET, IronPython
20%
C++, MFC, Boost
20%
Java, Java3D, Swing
No functional changes

Помню, как анализировал баг на одном проекте, и пришлось тогда восстанавливать историю коммитов по git.
В процессе наткнулся на коммит с заголовком "No functional changes".

"В смысле?" - думаю. - "Как это нет функциональных изменений? Что тогда есть?"

Начал выяснять, что же это за изменения такие "никакие". Оказалось, что внутри были простые переименования переменных.

Ну тогда это и надо писать в заголовке! Никаких вопросов бы не возникло.

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

Я искренне считаю, что история коммитов должна читаться как книга. Писать сообщения коммитов - это отдельная работа. Причем сложная, так как далеко не все мы заправские писатели. Но до абсурда вроде "No functional changes" уж точно нельзя доводить.

—

Дополнительно:
- Поиск бага с помощью истории git: метод деления пополам
-
Стратегия с WIP-коммитами для больших правок
💯4🤔2🤯1🙏1
#include <iostream>
#include <string>

std::string getHello() {
return "hello";
}

int main() {
const std::string& str = getHello();
std::cout << str[0];
return 0;
}
😁2
Выше дан код C++. Какой вывод будет у программы?
Anonymous Quiz
13%
hello
47%
h
33%
Никакой. Ошибка компиляции
7%
Никакой. Ошибка выполнения
This media is not supported in your browser
VIEW IN TELEGRAM
Макет пользовательского интерфейса в diagrams.net

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

Только позже я вспомнил, что в diagrams.net тоже можно работать с таблицами. По крайней мере собрать макет труда не составит.

Как это делать, смотрите на видео. Ссылки внизу.

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

📱 Смотреть на YouTube

📱 Смотреть в VKVideo
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🙏2
Airtable идентифицировал мой аккаунт как связанный с Россией и собирается его отключить.

Я не мог позволить им такую наглость и удалился оттуда до блокировки)

Но интересно другое.

Там есть страшная красная кнопка, которая удаляет аккаунт В ОДИН КЛИК.

Раз, и прощайте. Никаких тебе подтверждалок "да - нет" или отмены. Случайно нажал и улетел на домашнюю)

Мода такая что ли в интерфейсах, удалять, не спрашивая?

—

Кто не знает, Airtable - это тулза, которой я пользовался до Notion, которым я пользовался до Obsidian
😁2🤯2🤬2