Записи пользователя: CD_Eater (список заголовков)
23:54 

Кратко о полиморфизме

CD_Eater
тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
Разговор трёх программистов:
- Если что-то плавает как утка и крякает как утка, я буду называть это уткой.
- А вдруг это крокодил, притворяющийся уткой?
- Полиморфизм как раз и создан для того, чтобы такое стало возможным!

пример ложного полиморфизма

@темы: ООП - в оопу

22:19 

баг, который не смогли пофиксить

CD_Eater
тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно


А что делаете вы, когда наблюдаете в своём коде необъяснимые явления (непонятный баг):

1) рвёте на себе майку и со словами "я - повелитель этого куска говнокода!" погружаетесь в отладку, пока не поймёте в чём причина, даже если это займёт кучу времени, чтобы потом, усталый но довольный, наслаждаться приятным чувством "я могуч, такую трудную багу обезвредил!"

или

2) ищете наиболее простой способ обхода бага (т.е., костыль), и считаете, что ваша работа здесь закончена: всех багов в мире вам не исправить, а главная цель (программа работает) достигнута

Вопрос: Ваша позиция:
1. Я - повелитель кода, и лично разберусь с каждым багом 
9  (56.25%)
2. Костыли экономят моё время, и это главное 
4  (25%)
3. Я ещё не определился 
3  (18.75%)
Всего: 16

@темы: Вопрос, баг

10:20 

когда программисту скучно, а под рукой только Excel

CD_Eater
тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
30.06.2018 в 10:08
Пишет Кошка:

Совершенно бесполезная фигня, но забавная: анимированные американские горки в Экселе:



URL записи

@темы: забавная хрень

11:13 

CD_Eater
тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
что-то тут 3 месяца тишины
так соо и в архив отправить могут )))

вот скажите мне, как объяснить тот факт, что согласно данным статистики пользователей убунты ( https://www.opennet.ru/opennews/art.shtml?num=48833 ), на большинстве систем пользователей Ubuntu Desktop установлен один CPU, и это при том, что одноядерных компьютеров уже почти нет в природе
изображение

вывод получается очень грустным:
большинство юзеров используют убунту не как основную ОС, а как вспомогательную, работающую в виртуалке под виндовым хостом
(по умолчанию, если не менять настройки, виртуальной машине доступно только 1 ядро)

я-то думал, что главный смысл линукса в том, чтобы в качестве основной системы на компьютер вместо дырявой винды поставить надёжную ОС, а винду (для запуска виндовых приложений) использовать в защищённом окружении (внутри виртуалки, например)

@темы: Вопрос, ОС

11:34 

CD_Eater
тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
Проходя мимо аудитории, замдекана услышал, как студентки обсуждали свои циклы, совершенно не стесняясь ни одногруппников, ни открытой двери.
Возмущённый таким поведением, он вошёл в кабинет с вопросом:
"Чем вы тут занимаетесь?!".
"Программируем" - хором ответили девочки.

(с)баша

@темы: день плоских шуток

14:42 

Максимальная ширина текста

CD_Eater
тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
Помню, в глубоком детстве батька с работы приносил чистые перфокарты (без дырок, мы использовали их как обычную бумагу для записей)

Перфокарта выглядит вот так:

изображение

Заметьте, что у неё 80 столбцов.

У компьютеров в текстовом режиме экрана было 80 столбцов для символов (помните старый добрый синий "нортон-командир"?).

И ещё вспомните, что у старых матричных принтеров в обычном режиме печати текстов было... да-да, 80 символов в строке при "портретном" расположении листа А4.

Приятно жить в мире, где действуют стандарты.

Был такой "всемирный заговор" - ширина текста должна быть 80 символов.
Перфокарты использовались для хранения текстов программ (1 перфокарта = 1 строка текста на фортране).
Дисплей - для отображения этих текстов (1 экран = 25 строк текста).
А принтеры - для распечатывания (не помню точно, 65-70 строк там умещалось).
Даже сейчас текст е-мейлов иногда принудительно разбивается на строки по 80 символов (как это бесит!).

Сейчас все средства разработки программ стали гуёвыми, и "стандарт-80" выглядит анахронизмом.
А то, что не гуёвое (vi, какого хуя ты ещё жив?) всё равно легко изменяет кол-во столбцов простым увеличением ширины окна эмулятора консоли.

Собственно, вопрос:
Какое максимальное кол-во символов в строке требует от вас соблюдать стандарт оформления кода, принятый в вашей организации?

И ещё любопытно, рисуете ли вы в вашем редакторе специальную ограничивающую линию, чтобы текст не выехал?
например, в дельфях эта настройка выглядит так:

16:42 

А добавим немного сексизма в программирование!

CD_Eater
тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
Знаете ли вы, что Haskell и Go - это "мужские" языки программирования, а Matlab и R - "женские" ?

узреть полную картину

@темы: ЯП, сексизм

21:19 

минутка поэзии

CD_Eater
тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
Был такой язык - Алгол-68.
Он был переведён на русский язык.
Причём не просто все операторы языка были тупо переведены промптом (как это сделано сейчас в "языке" 1С), но и сам синтаксис конструкций языка соответствовал порядку слов в русском языке.
Это была блестящая академическая разработка, был написан компилятор, но только на практике никто из программистов не захотел пользоваться этим языком из-за его сложности и громоздкости синтаксических конструкций.
Какая жаль...

В архиве академика Ершова (теоретика советского программирования) нашлось вот такое замечательное чтиво, посвящённое Алголу-68

читать дальше

@темы: Алгол-68, юмор, поэзия

22:54 

Программирование для детей и геймеров

CD_Eater
тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
уже несколько лет существуют различные обучалки программирования для детей, где нужно составить алгоритм, собрав его как бы из кубиков.
структуры в коде (циклы, условия, вызовы библиотечных процедур) нарисованы в виде кусочков паззлов, которые можно состыковать друг с другом для получения программы
чтобы примерно представлять, о чём речь, посмотрите пару этих видео (долго смотреть не надо, там скучновато, только уловите суть и сразу назад)

youtu.be/rDyo4p1qLuE
vimeo.com/173953664
developers.google.com/blockly/

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

и ничто не предвещало, как эта вот (весьма полезная) хрень начала расползаться по самым обычным играм
теперь ВСЕМ геймерам придётся программировать! )))
иначе они просто не составят, например, эффектный спелл

вот кусок видео (интересен 30-секундный отрывок, начиная с 1:25)
youtu.be/NN5mQxX-Zd0?t=1m25s

лично меня это радует
*злорадный смешок*

@темы: внезапное программирование

16:12 

как работают программисты

CD_Eater
тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
изображение

@темы: оффтопик

13:44 

Восстание роботов

CD_Eater
тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
Чего там только не спрашивают )))
worldbuilding.stackexchange.com/questions/35243...
Когда-то это всё началось с одного сайта, предназначенного для взаимопомощи программистов, и до чего оно разрослось! )))
Благими намерениями...

@темы: оффтопик

12:30 

Пол типа Boolean

CD_Eater
тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
Допустим, вам заказали разработать некую систему, хранящую личные данные клиентов, и в ТЗ написано, что пол клиента (взятый из паспорта, так что возможны только два варианта) должен кодироваться значением типа Boolean.

Вопрос: Как вы закодируете пол человека значениями True/False?
1. True - это мужской пол 
36  (64.29%)
2. True - это женский пол 
20  (35.71%)
Всего: 56

@темы: Вопрос

15:26 

Мыши плакали, кололись, но продолжали грызть кактус

CD_Eater
тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
Примерно раз в 3 года к нашему времени добавляется високосная секунда - лишняя секунда с номером 60, вставляемая в конце июня или декабря, чтобы наше время зачем-то соответствовало с высокой точностью какому-то "всемирному" неравномерному(!!!) времени, определяемому по положению Земли относительно квазаров.
Надеюсь, вы все прочувствовали важность этого действа для народного хозяйства )))

Мне очень понравилась фраза в википедии
Однако в связи с неудобством, создаваемым коррекцией часов для программистов, Международный союз телекоммуникаций предлагает отказаться от подобной практики
И даже на минуту показалось, что кого-то в этом мире волнуют проблемы программистов! Как мило... Скупая слеза программиста скатилась по физиономии и пропала, запутавшись в бороде.

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

читать дальше

@темы: Точка зрения, времечко

17:52 

как правильно называется этот образец фауны?

CD_Eater
тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
Какая разница существует между этими терминами?

software programmer
software developer
software engineer
code monkey :)

@темы: Вопрос

21:46 

RCA1802

CD_Eater
тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
Чего только не выдумают на белом свете...

Есть такое чудо без перьев - процессор (микроконтроллер, по-современному) RCA1802
у него нет стандартных команд CALL / RET для вызова подпрограмм, вместо этого есть команда "назначить любой регистр (а их там 16) счётчиком инструкций"
Назначая другой регистр счётчиком инструкций, мы автоматически прыгаем на адрес, содержащийся в нём сейчас, и этот регистр дальше начинает автоматически инкрементироваться, указывая на текущую инструкцию.
Вызов процедуры и возврат производились этой самой инструкцией, так чтобы внешний код (вызывающий процедуру) работал с одним регистром в качестве счётчика инструкций, а внутренний код (тело процедуры) - с другим регистром.
Чтобы вызвать ту же процедуру повторно, её код должен быть зациклен (нам же нужно попасть на его начало).

А как же быть со вложенными вызовами и нормальными (незацикленными) процедурами?
Для этого обычные CALL и RET эмулировались программно.
Т.е, была подпрограмма, эмулирующая CALL, которая вызывалась описанным выше способом (через переключение на её счётчик инструкций), смотрела на следующие 2 байта во внешнем коде, интерпретировала их как адрес нужной процедуры, сохраняла в (программно эмулируемый) стек адрес возврата, переключалась на нужную подпрограмму.
И была подпрограмма, аналогично эмулирующая RET.

Итого по регистрам:
Для подпрограмм CALL и RET резервировались (программно) два регистра, указывающие на их код.
Плюс ещё регистр для эмуляции стека.
Плюс ещё регистр для счётчика инструкций (который работал вне процедур CALL и RET).
Итого накладные расходы в 4 регистра, которыми нельзя пользоваться для других целей (из них 2 - это указатель инструкций и указатель стека, т.е., накладные расходы, неизбежные в любой архитектуре).

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

@темы: архитектура, там, на неведомых дорожках припаян неведомый микроконтроллер

12:13 

(int)NaN

CD_Eater
тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
Как известно, не-x86-ое железо - это миф, придуманный эпплом, чтобы продавать больше маков. )))

Но вдруг у вас сейчас под рукой имеется это самое мифическое не-x86-ое железо с Си-компилятором на нём?
Тогда посчитайте, пожалуйста, что получится, если "скастовать" NaN к целому типу?

#include <stdio.h>

int main()
{
double x = 0.0/0.0; // NaN
printf("%lx\n",(long)x);
return 0;
}


На x86-железе конвертация происходит через x87 FPU (в полном соответствии с Intel-овской спецификацией) и получается MIN_INTEGER (пишет на экране 8000000000000000)
А что происходит на другом железе? Какие значения там могут получиться?

Обратите внимание, что если выражение (long)NaN будет вычисляться в момент компиляции, то ответ может быть численно другой (напр., gcc в таких случаях ставит 0)!
Интересует значение, которое получается именно в рантайме на разном железе.
Возможно, придётся поставить volatile или как-то по-другому отключить оптимизацию.

Также стоит на всякий случай обратить внимание, что (long)NaN это совсем не то же самое что *(long*)(&NaN) - получаются разные численные результаты.
В первом случае действует некоторая нетривиальная логика, не фиксированная стандартом языка Си,
а во втором случае получаем вполне ожидаемое битовое представление плавучки согласно IEEE 754.

Что у вас есть под рукой? Мак, роутер, андроид? Попробуйте.

@темы: C++, NaN, Вопрос, железо

15:15 

CD_Eater
тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
Ах, какая полезная обзорная лекция для Java-программиста, начинающего свою карьеру!

@темы: Java

20:19 

Извращения со стеком

CD_Eater
тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
Господа, поясните пожалуйста, зачем нужна эта красная зона в стеке?
Что этим пытаются выиграть? И выигрывают ли что-нибудь?
Чем это лучше, чем старый добрый способ (sub ESP,nnnn в вызванной функции)?

@темы: Вопрос, Assembler, ABI

21:58 

Во всём виноваты программисты

CD_Eater
тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
А бывает ли ущерб от ошибок программиста ещё больше, чем в этой истории 1991 года (по-русски)?

Тут тоже интересно: http://en.wikipedia.org/wiki/Cluster_%28spacecraft%29

@темы: Рубрика "Истории успеха" из журнала "Баговодство"

00:23 

На чём нынче пишут программисты

CD_Eater
тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно

ru_programming

главная