Рубрика «edisonsoftware» - 14

"Literate programming (грамотное программирование) — отношение к компьютерным программам, как к литературе: компьютерная программа пишется не столько для компьютера, сколько для людей, чтобы люди могли ее прочитать. И поскольку я пишу программы, и в некотором роде учитель. "

image

«Давайте изменим традиционные приоритеты в создании программ: вместо представления о нашей задаче как о создании инструкций «Что делать?» для компьютера сконцентрируемся на объяснении другим людям описаний нашего видения того, что под управлением программы должен делать компьютер.»
Читать полностью »

«Стояли звери около двери. В них стреляли, они умирали.»
— Стругацкие

Пол Грэм продавливает правительство: 95% превосходных мировых программистов остаются не у дел, впустите их - 1

Let the Other 95% of Great Programmers In

Перевод: Катя Шершнева

Американские технологические компании хотят, чтобы правительство упростило процесс иммиграции, потому что они не могут найти достаточно программистов в США. Противники иммиграции, говорят, что вместо того, чтобы позволять иностранцам занимать рабочие места, следует обучать программированию больше американцев. Кто прав?

Технологические компании правы. Противники иммиграции не понимают, что есть большая разница в способностях между компетентными программистами и исключительными, и вы можете обучать людей, чтобы они становились компетентны, но не можете делать их исключительными. Исключительные программисты имеют склонности и интерес к программированию, это не просто результат обучения. [1]

В США живёт меньше 5% населения мира. Выходит, если те качества, которые делают из человека великого программиста, распределяются равномерно, то 95% этих великих программистов рождены за пределами США.

Противникам иммиграции нужно придумать какое-то объяснение, почему технологические компании прилагают такие усилия, чтобы сделать иммиграцию проще. Поэтому они утверждают, что те делают это с целью снизить зарплаты. Но если говорить о стартапах, вы обнаружите, что практически каждый из них крупнее определённого размера проходил через юридические проволочки, чтобы привезти программистов в США, где они платили им столько же, сколько платили бы американцам. Зачем они идут на лишние хлопоты, получая программистов за ту же цену? Единственное объяснение состоит в том, что они говорят правду: вокруг просто недостаточно хороших программистов. [2]
Читать полностью »

Развлекаемся, «распутывая» код на языке Си

Вызов: Прежде чем лезть под кат, скомпилируйте в голове заголовок статьи, что он дает на выходе?

image

Когда я в очередной раз просматривал книгу «Expert C programming», я вдруг наткнулся на раздел «light relief» в международном конкурсе на самый запутанный код на Си (IOCCC). Это соревнование по написанию как можно более нечитабельного кода. То, что такие конкурсы устраиваются для Си, наверное, говорит что-что об этом языке. Мне хотелось увидеть работы участников этого соревнования. Не найдя никакой информации в интернете, я решил поискать их самостоятельно.

IOCCC был придуман Стивеном Борном, когда он решил использовать препроцессор Си и написать Unix shell как бы на языке Си, но больше похожем на язык Algol-68, с его явными окончаниями операторов, например:

if
  ...
fi 

Он добился этого, сделав:

#define IF if(
#define THEN ){
#define ELSE } else {
#define FI ;}

Что позволило ему писать так:

IF *s2++ == 0
THEN return(0);
FI

Читать полностью »

«Вы просите государственных служащих сделать одну вещь, на которую они менее всего способны: пойти на риск. Любой когда-либо работавший на госслужбе знает, что самое важное заключается в принятии не правильных решений, а тех, которые потом можно оправдать, если они окажутся неверными.»

«Как все преступные действия, связь между богатством и властью процветает в условиях тайны. Выставьте напоказ все транзакции, и вы сильно преуспеете в устранении подобных вещей. Регистрируйте все».

image

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

Есть еще вариант сделать бедных богаче без банального отъема средств у богатых. Вы можете помочь бедным стать более продуктивными, например, улучшив доступность образования для них. Вместо того чтобы забирать деньги у инженеров и отдавать их кассирам, вы могли бы помочь кассирам стать инженерами.

Это прекрасная стратегия — сделать бедных богаче. Но как свидетельствуют последние 200 лет, это не сокращает экономическое неравенство, так как богатые тоже станут богаче. Если будет больше инженеров, появится больше возможностей нанимать их и продавать им вещи. Генри Форд не смог бы сколотить состояние на производстве машин в обществе фермеров, ведущих натуральное хозяйство, у него не было бы ни рабочих, ни покупателей.

Спасибо за помощь с переводом Сергею Даньшину и компании Edison (которая делала технический аудит экономической игры и систему централизованного управления видеосъемкой).
Читать полностью »

image

Читать полностью »

Ускорение привыкания (The Acceleration of Addictiveness)

Что объединяет алкоголь, сигареты, героин и крэк? То, что все они являются более концентрированной формой своих предшественников, которые вызывали меньше привыкания. Большинство вещей (если не все), которые мы описываем как вызывающие привыкание, таковыми являются. Самое страшное, что процесс их создания ускоряется.

image

Мы бы не хотели его останавливать. Это тот же процесс, который излечивает от болезней: научно-технический прогресс. Технологические средства прогресса позволяют вещам работать лучше, чем мы хотим. Если какая-то новая техника делает солнечные батареи на х% эффективнее, мы строго убеждены, что эти батареи лучше.

Когда прогресс концентрируется на чем-то, что мы не хотим желать — когда он превращает опиум в героин — нам кажется, что это плохо. Но это тот же самый процесс. [1]

Никто не сомневается в том, что этот процесс ускоряется, а значит, увеличится число вещей, которые превратятся в нечто, что нам не особо понравится. [2]

Насколько я знаю, нет слова, которое бы означало, что что-то нам нравится слишком сильно. Наиболее близким по значению является слово аддиктивный (от англ. addictive – вызывающий привыкание). Его стали довольно часто использовать. И это объяснимо: появилось огромное количество вещей, которые подходят под это определение. На крайнем конце спектра находятся крэк и метамфетамин. С помощью комбинирования сельского хозяйства и инноваций в пищевой промышленности еду преобразовали в нечто гораздо более прибыльное и результат вы можете увидеть в любом американском городе. Шашки и пасьянс были заменены на мир Варкрафта и FarmVille. Телевидение стало гораздо более интересным, но даже, несмотря на это, оно не может конкурировать с Facebook.

Мир стал более аддиктивным, чем 40 лет назад. И если формы технологического прогресса, которые производят эти вещи, не подчинятся иным законам, мир станет еще более зависимым в ближайшие 40 лет.
Читать полностью »

«Любое дело всегда длится дольше, чем ожидается, даже если учесть закон Хофштадтера.»
— закон Хофштадтера

image

Самый просматриваемый ролик на YouTube по теме agile. 744 625 просмотров на момент публикации данной статьи. Легкий стиль изложения, картинки и всего 15 минут — лучшее что я видел. TED отдыхает.
Читать полностью »

Кто-то ради шутки, кто-то чтобы доказать существование или опровергнуть гипотезу, кто-то для разминки мозгов (путешествуя по поверхности бутылки Клейна или в четырехмерном пространстве), но сотни людей создали «эзотерические» языки программирования. Я пролистал около 150 таких языков и больше никогда не смогу быть прежним.

Примеры кода на 39 эзотерических языках программирования - 1

«Argh!», «Oof!», «2-ill», «Nhohnhehr», «Noit o' mnain gelb», «DZZZZ», «Ypsilax», «YABALL», fuckfuck — это заклинания, поэзия только названия… под катом — примеры кода на самых вырвиглазных языках программирования.

Кроличья нора глубока.
Читать полностью »

Социальная Архитектура: стратагемы для успеха open source проектов - 1Питер Хинченс (Pieter Hintjens) — бельгийский разработчик, писатель. Занимал должность CEO и chief software designer для iMatix, компании, производящей free software, такие как библиотека ZeroMQ (библиотека берет на себя часть забот по буферизации данных, обслуживанию очередей, установлению и восстановлению соединений, и прочие вещи), OpenAMQ, Libero, GSL code generator, и веб-сервиса Xitami.

  • Автор более 30 протоколов и распределённых систем.
  • Основатель проекта Edgenet по созданию полностью безопасной, анонимной глобальной P2P-сети.
  • Президент ассоциации Foundation for a Free Information Infrastructure (FFII), которая воевала с патентным правом.
  • CEO сервиса по созданию собственных вики-проектов Wikidot.
  • Он был активистом open standards, и основателем Digital Standards Organization.
  • Питер в 2007 был назван одним из «50 самых влиятельных людей в области Интеллектуальная собственность».

Когда Питер Хинченс узнал, что жить ему осталось несколько лет, он решил подвести итог своим трудам и систематизировать свое наследие. 3 октября 2016 Питер Хинченс решился на эвтаназию.

Один из его предсмертных трудов — книга «Социальная Архитектура», про построение онлайн-сообществ по разработке open source проектов. Хочу представить вам переводы некоторых глав.

Шаблоны для успеха

Это глава с серией шаблонов поведения для достижения успеха в разработке программного обеспечения. Они стремятся включить всё, что отделяет успех от славной трагической неудачи. Они были написаны за один день как “религиозно-маниакальные догматы” руководителем и “всё остальное безумное” — коллегой. Для меня они являются наукой. Но относитесь к Ленивым перфекционистам и другим инструментам так, как вы относитесь к обычным инструментам — заточите их, используйте и выбросите, если подвернется что-то получше.

Читать полностью »

«Я должен был закончить книгу, прежде чем родится мой сын. Теперь ему 40 лет, и я до сих пор не закончил её.»

Дональд Кнут: Как создавалось «Искусство программирования» (33,38,39-97) - 1

На третий год моего пребывания в университете меня попросили провести пару занятий о компьютерах. Группка людей сказала, что в Caltech (Калифорнийском технологическом институте) не учат ничему, что связанно с компьютерами.В это время я консультировал Burroughs. «Так почему бы тебе не провести пару занятий в университете?» — спросили меня. Так я провел занятие всего один раз, и прежде чем закончить университет, они решили нанять меня в качестве доцента, сразу после его окончания учебы.

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

Как зародилась идея книги

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js