andrzejn: (Default)
На описание языка Eiffel я набрёл лет двадцать назад, и сразу же влюбился в его принцип Design by Contract. Я вообще люблю, чтобы всё было описано максимально чётко: что куда можно и нельзя передавать, что откуда следует ожидать. И чтобы всё максимально проверялось как можно раньше. И в языки с нестрогой типизацией я так и не поверил. Контракты просто идеально соответствуют моему представлению о прекрасном. (Отсюда следует, что реальный мир почти всегда ужасен). Жаль, что Eiffel так и не захватил весь мир, а больше с тех пор контракты мне нигде не попадались.

Так что когда я два года назад узнал о проекте CodeContracts for .Net, я ухватился за него всеми руками. Это было в точности то, что надо. И оно показало мне уйму сомнительных мест в моём коде. А я-то думал, что пишу аккуратно... (Потом я пробовал пропускать через анализатор исходники нескольких популярных библиотек, и всегда это оказывался ад кромешный из кучи не проверенных разработчиками возможных ситуаций).

Но, блин, проект уже два года как заброшен. В VS.Net 2017 и .Net Core поддержки контрактов нет и не будет. И чем их теперь заменить? Пока что перевожу проекты на R# Code Annotations. Это не то, но хоть что-то...
andrzejn: (Default)
В здешнем здании довольно разветвлённая сеть дверей и коридоров. За дверью может оказаться не комната, а коридор, некоторые двери в нём ведут в другие коридорчики, за некоторыми дверями скрывается тамбур и ещё несколько дверей. Но всё тщательно пронумеровано, на каждой двери висит табличка с полным путём к ней. Например, тут неподалёку есть комната с номером 5.3.3.4.А.
andrzejn: (Default)
В офисе второй день сломан кондиционер. После обеда солнце светит на нашу сторону здания. Обстановка совершенно нерабочая, даже с открытыми окнами.

Нет, этот пост никак не связан с предыдущим.
andrzejn: (South Park)
Языки программирования с ленивыми вычислениями не захватили весь мир только потому, что этот результат им пока ещё ни для чего не понадобился.

Дополз

Thu, Jun. 23rd, 2016 18:05
andrzejn: (Default)
Закрыл задачи, помыл чашку, выбросил бумажки, спрятал в ящик зеркало заднего вида, выключил компьютер. Отпуск. В следующий раз на программистскую работу 12 июля.
andrzejn: (Default)
Зарегистрировался как ФОП (частный предприниматель) смешанного психолого-программистского профиля. Оказалось удобно, что я ещё не ушёл с программистской работы, тут есть бухгалтеры, которые взяли на себя вообще все усилия с оформлением. А там дальше уже разберусь.

Котики

Tue, Mar. 29th, 2016 08:29
andrzejn: (Me)
Кошка, когда гадит на ковёр за креслом, думает: "Тут темно, никто не видит, да и я же потом всё зарою..."

Программист, когда вставляет в код костыль, думает так же.
andrzejn: (Discontented)
Я худо-бедно владею тремя профессиями, плюс ещё на несколько смотрел со стороны, и во всех натыкался на эти грабли. Я начинаю думать, что это глобальный закон. Формулируется он так:

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

Например... )

Можете добавлять примеры из своих областей.

Этому миру недостаёт идеальных посредников, переводчиков и сомелье, которые бы выводили потребителей в точности на нужных им производителей, абсолютно не загружая первых ошибочными рекомендациями, а вторых - избыточной побочной суетой.
andrzejn: (Default)
Вчера вечером весь наш программистский офис остался без интернета (за пять минут до нашего совещания с заказчиком, но это уже другая история). Причём не внезапно, ресурсы постепенно отваливались один за другим у разных людей, скайп и ещё один мессенджер пережили многих, но в итоге умерли и они... Мы безуспешно искали причину, перезагружали роутер и DNS-сервер...

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

Выводы:

1. Не должно технике быть умнее человека.
2. Слава роботам!
andrzejn: (Storytime)
Если нельзя прожить день без мнемонических приемов и цифровой гимнастики тайм-менеджмента, то у вас просто слишком много задач.

Эндрю Смарт. О пользе лени. Инструкция по продуктивному ничегонеделанию
andrzejn: (Default)
Интуитивный дружественный покерфейс.
andrzejn: (Default)
Наш админ завёл сову.
Приучает её к рукам.
В холодильнике уже припасены мыши.
andrzejn: (Default)
За шесть рабочих дней поднял виртуальную машину под OpenSUSE, а на ней - CMS Orchard с сайтом фирмы. При том, что Orchard официально поддерживает только родной .Net Framework под Windows. Чтобы запустить его на Mono под Linux, мне пришлось перечитать всё, что об этом написано на форумах (к счастью, основную работу люди уже провели), пропатчить и пересобрать и Orchard, и Mono, плюс потом самостоятельно поплясать с мелкими фиксами, конфигурированием и доустановкой тем вручную. В процессе один раз угробил систему и переустанавливал её заново.

Выводы:

1. Учитывая, что до этого всё моё знакомство с Linux ограничивалось только шаманством "зайти по SSH на вот этот сервер и передёрнуть вон тот сервис, если багтрекер лёг" - я крут.

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

3. Практически все Open Source решения (ну, насколько моя выборка репрезентативна) явственно отдают непрофессионализмом. Основные фичи работают, а множество мелочей либо глючат, либо отсутствуют. Чтобы понять, как это всё заставить работать, требуется копаться в неочевидных советах и плясать с бубном. Потому что, ясное дело, писать основную функциональность интересно, а вылизывать детали и делать людям удобно - обычно нет. Этим нормальные программисты занимаются только за хорошие деньги.
andrzejn: (Default)
Пока я настойчиво стараюсь уйти из программистов в психотерапевты, многие люди переучиваются в разработчиков или тестеров. Меня иногда спрашивают, на что смотреть и с чего начинать в этом деле (изучать "программирование как иностранный"). Я в некотором затруднении, потому что сам-то я учился этому четверть века назад, и практически всё с тех пор потеряло актуальность.

Думаю, что порекомендовать можно такое:

Что важное я упустил? Или какую из ссылок стоит заменить более подходящим для начинающих изложением? Накидайте ваши предложения в комменты, пожалуйста.

Upd.: Я пополняю список по мере поступления комментов. Стараюсь держать его именно в рамках вводной для начинающих. Например, Structure and Interpretation of Computer Programs - книга великая, но не в самом начале.
andrzejn: (South Park)
Зачинаю новый рабочий проект.
(Ассоциации, синонимы и коннотации по вкусу).
andrzejn: (Default)
В новой психотерапевтической жизни на мне внезапно оказались администрирование двух сайтов, координация расписаний и заполнение документов о проделанной работе... Я определённо забыл отключить какую-то опцию, когда сохранял изменения в жизни!
andrzejn: (Default)
Всякий программный проект, в который вложено от полусотни человеко-лет разработки - это монстр, которого ни один отдельный человек своим ограниченным мозгом полностью осознать не в состоянии.

Если такой проект вдобавок отличается небезупречной архитектурой и отсутствием регулярных рефакторингов (то есть практически любой реальный проект от полусотни человеко-лет), то это Спагетти-Монстр.
andrzejn: (Default)
Прежде, страдая в понедельник от несправедливо закончившихся выходных, я мечтал создать церковь Гарфилда и объявить понедельник выходным днём. Теперь, когда по понедельникам я официально не работаю на первой работе, я должен с печалью признать: это не помогает. Теперь жизнь становится мрачной и несправедливой во вторник.
andrzejn: (Default)
Коллеги купили в комнату увлажнитель воздуха. Он стоит на полочке у входа и выпускает непрерывную струйку пара. Все проходящие мимо каждый раз дёргаются в порыве выключить чайник.

Profile

andrzejn: (Default)
Андрій Новосьолов

October 2017

M T W T F S S
       1
2 3 45 67 8
91011121314 15
16171819202122
23242526272829
3031     

Syndicate

RSS Atom

Style Credit

Expand Cut Tags

No cut tags
Page generated Tue, Oct. 17th, 2017 13:04
Powered by Dreamwidth Studios