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

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

Контент: https://taplink.cc/atrotsenko
Download Telegram
Пятничный этимологический тест.

Сомневающиеся с ответом могут найти подсказку на картинке 👇
🔥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
В 80-х годах Ричард Столлман дал определение свободному программному обеспечению и выделил четыре свободы.

Свобода 0: Свобода запускать программу в любых целях.

Свобода 1: Свобода изучения работы программы и адаптация её к вашим нуждам.

Свобода 2: Свобода распространять копии.

Свобода 3: ... 👇
Прозаседавшиеся

Ещё 100 лет назад Маяковский смеялся над любителями заседать.

Его герои разрывались пополам, лишь бы успеть на все заседания. В прямом смысле слова:
И вижу:
сидят людей половины.
О дьявольщина!
Где же половина другая?


Но для секретаря все выглядит привычно:
Они на двух заседаниях сразу.
В день
заседаний на двадцать
надо поспеть нам.
Поневоле приходится раздвояться.
До пояса здесь,
а остальное
там.


Больше века прошло, а концепция все та же. Только теперь мы называем это созвоном)

—

Заседаете?

😁 - Ага, разрываюсь
👍 - Бывает, без фанатизма
🔥 - Неа
😁6👍4🔥3
Какой паттерн используют, когда кучу параметров метода собирают в один объект?
Anonymous Quiz
15%
Template method
30%
Data transfer object
19%
Singleton
37%
Context object
Скепсис по ИИ: поговорим через 10 лет

Смотрю итоги и прогнозы в журнале "САПР и Графика". В отличие от прошлого года акценты сместились в сторону ИИ-инструментов.

Мнения компаний разделились: от скептицизма до оптимизма.

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

Загибайте пальцы:
- проблемы Oracle,
- убыточность крупнейших ИИ-стартапов,
- финансовые потери OpenAI,
- отсутствие прибыли от внедрения ИИ,
- снижение рыночной доли ChatGPT.

Так еще и обучаются ИИ-шки не на энциклопедиях, а на постах с Реддита!

А слышали недавнюю историю о затонувшей западной подводной лодке? Подлодка успешно прошла ходовые испытания, но не всплыла после первого погружения:
Оказалось, что при проектировании расчеты поручили ИИ, который и посчитал всё, но без учета сотых после запятой… И никто из специалистов не проверил…

Честно говоря, первоисточников я не нашел. Но, допустим.

Все это стоит аргументом к тому, что нам не надо торопиться с внедрением ИИ еще лет десять.

В то же время Китай и США наращивают ИИ-шные инвестиции. Системы будут развиваться. И есть мнение, что "на горизонте 3 - 5 лет разрыв может стать непреодолимым".

Дух неопределенности вокруг внедрения ИИ можно понять. Есть технологии, которые приходили и уходили. Вспомним 3D телевизоры и VR. Но даже эти технологии не исчезли, а только лишь спрыгнули с волны хайпа и устаканились в своих нишах.

На своей заре САПР тоже встречали с сопротивлением. Почти полвека назад первые САПР произвели революцию: теперь за день можно было сделать то, что раньше занимало месяцы. Скептики, видя угрозу своему профессиональному статусу, говорили, что молодые инженеры превращаются в простых операторов, программы становятся "черным ящиком", инженеры не обладают экспертизой разработчиков...
Тогда САПР ломали устои, а сегодня позволяют создавать сложнейшие продукты инженерной мысли. Продукты, недостижимые в прошлом.

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

Упаковывать и структурировать данные и экспертизу можно уже сейчас. Не важно, есть ИИ-пузырь в действительности или нет. Но почему и, главное, чего нам нужно ждать еще 10 лет, мне не понятно.

—

Читать еще:
- Что такое САПР
- Как разрабатывать САПР на C++
👍2🤔2
#include <iostream>

class MyClass {
private:
int secret = 42;
};

int main() {
MyClass obj;
int* ptr = (int*)&obj;
std::cout << *ptr;
return 0;
}
Выше дан код C++. Какой вывод будет у программы?
Anonymous Quiz
14%
0
50%
42
18%
"Мусорный" вывод
18%
Никакой. Ошибка компиляции
👍1
Ошибка компиляции или ошибка времени выполнения

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

Ошибка времени выполнения - это ошибка, которая возникает во время выполнения программы, после успешной компиляции.

Да, в успешно скомпилированной программе все равно могут быть ошибки!

Хотя нет, лучше так:

Да, в успешно скомпилированной программе все равно есть ошибки!

Как-то студент в ответ на мое: "Тут ошибка", сказал: "Не может быть, все скомпилилось". Пошутил, наверное... и невольно запустил монолог про зверинец ошибок времени выполнения. Защита лабораторной была полезной как никогда)

—

Читать еще:
- Синтаксис или семантика
- Исключение или код ошибки

#Словарь
👍3😁1
Нетипичная пятничная задачка. Вспомним математику)

Есть круглая мишень, вписанная в квадратный лист (касается сторон). Стрелок расстреливает мишень, укладывая пули случайно по закону равномерного распределения. Как будет соотносится количество попаданий в круг к общему числу попаданий в квадратный лист мишени?

👇
🤔2🤯2