• ↓
  • ↑
  • ⇑
 
Записи пользователя: CD_Eater (список заголовков)
14:42 

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

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

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

изображение

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

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

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

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

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

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

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

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

21:44 

автоматическая масштабируемость - это круто!

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

А то случится примерно вот это:
полтора землекопа заглянули в мой гитхаб...

изображение

по вертикальной шкале отложено кол-во уникальных посетителей, обратите внимание на разметку шкалы )))

(у зелёного графика - другая шкала измерения, так что полутора землекопов всё же не было, но всё равно забавно)

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

20:37 

маечка для программистов

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

а что если...

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

APL

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

кому-то пришла в голову идея заменить все слова языка программирования (т.е., названия функций, процедур и операторов) для краткости односимвольными строками
возможно, авторы вдохновились языком математических формул, где каждый оператор (+ - * / и т.д.) записывается одним символом, и попробовали расширить эту идею на весь язык программирования
разумеется, на все функции и операторы языка обычных символов ASCII не хватило, и в ход пошла сборная солянка символов из совсем разных алфавитов (символов использовалось больше, чем клавиш на клавиатуре)

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

судите сами: вот пример программы, реализующей известную игру Конуэя "Жизнь"
youtu.be/a9xAKttWgP4

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

@темы: APL, write-only language

15:58 

Весёлые картинки

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

казалось бы, при чём тут хомяки?

CD_Eater
тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
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...
Когда-то это всё началось с одного сайта, предназначенного для взаимопомощи программистов, и до чего оно разрослось! )))
Благими намерениями...

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

18:46 

12 лет назад учёные выяснили, что бабуины способны программировать. Ну и где же они?

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

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

много интересных букв из статьи 2003 года

@темы: Точка зрения, Работа, Java, Basic

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, вставляемая в конце июня или декабря, чтобы наше время зачем-то соответствовало с высокой точностью какому-то "всемирному" неравномерному(!!!) времени, определяемому по положению Земли относительно квазаров.
Надеюсь, вы все прочувствовали важность этого действа для народного хозяйства )))

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

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

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

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

00:21 

д'артаньяны, не сдаваться!

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

оказывается, Joel Spolsky - гей
а поскольку он главный на Stack Overflow, то эмблемку SO перекрасили в цвета радуги
ИЧСХ, тему с поздравлениями американских геев заапвоутили ~490 голосов, задаунвоутили ~130
то есть, образно выражаясь, дартаньяны находятся в плотном окружении пидорасов и им сочувствующих

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

P.S.
появляется посты о том, что жизнь американских геев не должна освещаться на SO
все такие посты и комментарии сразу трутся модераторами ))))
ппц!

@темы: оффтопик, реальная жизнь

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

ru_programming

главная