← All posts tagged программирование

akastargazer
программирование Почитал тут про диалектический предел zen.yandex.ru

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

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

akastargazer
программирование дао очевидное противоречие. С одной стороны, чёткий формальный исполнитель, который не может работать неопределённо. А с другой стороны, туман предметной области, который кое-как еле-еле очерчивается.

Поэтому написанный софт — ложь.
akastargazer
программирование facepalm майнстрим "В C# также предусмотрен оператор foreach. Этот оператор обеспечивает простой и понятный способ итерации по элементам массива или любой перечислимой коллекции."

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

В принципе, это всё, что вам надо знать про форыч.
akastargazer
программирование ИТ говно шейдеры Кусок кода из шейдера:
float dist_a = distance(_Pos_a.xyz, i.vPos.xyz);
fixed4 mask_a = saturate(lerp(fixed4(1.0, 1.0 ,1.0, 1.0), fixed4(0.0, 0.0 ,0.0, 1.0), dist_a _Pos_a.w ) _Pos_a.w);
fixed4 subMask_a = saturate(lerp(fixed4(0.0, 0.0 ,0.0, 1.0), fixed4(0.5, 0.5 ,0.5, 1.0), _Pos_a.w * 0.5)) ;
и такого ещё двадцать строк — переменная объявляется в каждой строке и используется в последующей операции.

Но это фигня, вот эти вызовы saturate и пр., где-то документированы. Среда Монодевелоп предлагает поиск по документации, если встать на ключевое слово и нажать Ctrl+' но этот способ не работает для saturate.

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

Короче, всем оберон-терапию, срочно.
akastargazer
программирование "Как известно в C# точка с запятой завершает однострочный оператор"

ОДНОСТРОЧНЫЙ

Они там век не перепутали? На дворе XXI ващет. Эпоха однострочных операторов закончилась в начале 90-х, а то и раньше. Некоторые, конечно, тащили и тащат традицию сквозь десятилетия.
akastargazer
программирование ИТ Захотелось с утра себе немного физического движка. Качнул сырцы bulletphysics.org и начал думать, шо делать.

Сначала качал cmake, minGW, запустил cmake — получил тучу сообщений о недостающих программах, проблевался
Простота инструкции по сборке bullet с лихвой возмещается гребанутостью инструментов под винду.

Скачал вижуалстудию, запустил сборку. Жду. Эверест, бл. Вот почему люди полюбили питон...

Итог: 9 errors, 19 warnings. Что они все означают — хер его знает. Неудача. Майнстрим хохочет надо мною — я со своим простым обероном тут ни к селу ни к городу.
akastargazer
программирование Когда непонятны контракты, есть неплохой способ двигаться вперёд. Две итерации:
1) Делаем грязный прототип, которым нащупываем невидимые сначала особенности предметной области.
2) По созданному прототипу выясняем контракты и делаем рефакторинг кода.
Ловим профит.
akastargazer
ИТ вирт оберон Система Оберон была написана за три года двумя частично занятыми людьми:

"Мы начали разработку системы в конце 1985 года, а программирование — в начале 1986 года на нашей рабочей станции Lilith и ее языке Модула-2. Сначала был создан кросс-компилятор, а за ним — модули внутреннего ядра вместе с необходимыми средствами тестирования и загрузки. Одновременно шла разработка системы отображения и текстовой системы без возможности их тестирования, конечно.

Мы поняли, насколько отсутствие отладчика и, более того, компилятора может
способствовать тщательному программированию. (Это действительно так, в чем
убедился один из нас, когда примерно в то же самое время и примерно в тех же условиях писал компиляторы языка С. — Прим. перев.)

Затем последовал перевод компилятора на язык Оберон. Это было сделано
стремительно, потому что оригинал был написан с намерением последующего
перевода. После его проверки на целевом компьютере Ceres вместе со средствами
редактирования текста пуповина Lilith могла быть отрезана. Система Оберон, по
крайней мере, ее черновая версия, стала реальной. Это случилось примерно в середине 1987 года; после этого было опубликовано ее описание.

Завершение системы заняло еще год, ушедший на объединение рабочих станций в сеть для передачи файлов, на средства централизованной печати и на инструменты поддержки. Наша цель — завершить систему в три года — была достигнута. В середине 1988 года система была представлена более широкому сообществу пользователей, и можно было начать работу над приложениями. Была разработана почтовая служба, добавлена графическая система и продолжены различные работы по общим системам подготовки документов. Средство отображения было расширено так, чтобы работать с любым экраном, включая цветной.

Одновременно на основе опыта использования системы совершенствовались отдельные ее части. С 1989 года в наших вводных курсах программирования язык
Модула-2 был заменен языком Оберон."

Никлаус Вирт, Юрг Гуткнехт. "Разработка операционной системы и компилятора. Проект Оберон"

akastargazer
программирование Питон Вот, говорят, что Питон простой язык. И вот даже в Блендере есть питоновая консоль. Открыл я её и даже смог добраться до какого-то объекта сцены scene.sequence_editor.sequences_all, а дальше — хз чо. Чо с ним делать-то?
Как хотя бы посмотреть на его интерфейс? Питон же интерпретируемый и не надо мне рассказывать про интроспекцию, ведь в простом языке такие простые вещи должны делаться просто. Так как?
akastargazer
программирование Когда в наше время обсуждение ООП натыкается на вещи типа Go, вызывает изумление отсутствие ключевого слова object: habrahabr.ru

Майнстрим дополз до очередной вехи, обозначенной Обероном, с чем вас и поздравляю.
akastargazer
программирование компьютер Дейкстра По словам Дейкстры, понятие "инженерия ПО" является никчемной аналогией.

Также Дейкстра считал, что термин "поддержка ПО" лишь добавляет путаницы.

А ещё Дейкстра писал, что связь между надёжностью ПО и затратами на его создание является мнимой. Другими словами, если бизнес пытается снизить издержки за счёт использования бесплатных фреймворков и бесплатных компонентов, то это говорит лишь об одном — не смогли побороть сложность. А может, и не пытались — ведь сложность отлично продаётся.
beroal.in.ua
akastargazer
программирование Самодокументированность кода во-многом является фикцией. Потому что если вы написали А, Б, В, и не написали Г, то из написанного неясно, намеренно ли пропущена Г или по ошибке. Чтобы это понять, надо анализировать контекст, а это работа серьёзная, гораздо серьёзнее, чем если бы вы просто прочитали комментарий к этому участку.