Pull to refresh
33
0
Огромный Боевой Человекоподобный Робот @Tanner

Python-программист

Send message

Раскол в сообществе разработчиков nMigen (Amaranth)

Reading time5 min
Views2.8K

Я надеюсь, эта статья будет интересна разработчикам электроники, поскольку речь всё-таки пойдёт об инструментах RTL-синтеза. Ещё больше я надеюсь заинтересовать организаторов и активных участников различных сообществ свободных программ и "железа".

Для раздела новостей статья явно запоздала, так что мне остаётся только добавить побольше подробностей и субъективных комментариев. Но для начала я кратко обозначу, что было что и кто был кто в сообществе nMigen на начало декабря 2021 г.

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments2

Евангелисты вместо бухгалтеров

Reading time5 min
Views12K

Я пишу в основном из желания поучаствовать в дискуссии, развернувшейся вокруг статьи «Доказательное программирование». Форма статьи была выбрана автором иронично-саркастическая, «первоапрельская», а вопросы затронуты, как мне кажется, очень даже серьёзные и важные, требующие долгого и обстоятельного комментария. С другой стороны, @wetnose «всё сказал», и вторгаться в его личное пространство после этого я не хочу. Поэтому − отдельная статья.

И всё-таки почему программисты постоянно создают новые языки программирования? Почему они так много внимания уделяют выбору языка? Существуют ли объективные критерии превосходства одного языка над другим?

Читать далее
Total votes 14: ↑10 and ↓4+6
Comments12

Настройка сети на Minix 2

Reading time4 min
Views4.3K

Эта статья будет если не последней в нашем импровизированном цикле, то во всяком случае у меня не скоро накопится материал на следующую. Речь пойдёт сначала об IP-сети на 286 под Minix, её настройке и тех возможностях, которые у нас с ней откроются. А потом я порассуждаю немного о перспективах использования систем, подобных той, которую мы построили, в современном мире.

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments5

Установка Minix 2 на PC AT-совместимый компьютер с процессором 80286

Reading time6 min
Views6K

В своей предыдущей статье я рассказывал о том, как собирал компьютер для экспериментов с 16-битным защищённым режимом Intel. Там же я анонсировал следующую статью, в которой пообещал установить на этот компьютер ОС, «которая раскроет потенциал 286 процессора наиболее полно», не называя эту ОС.

Интрига продержалась недолго − @tormozedison угадал эту ОС с первой попытки, так что я имею полное право вынести её название в заголовок.

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

Читать далее
Total votes 21: ↑21 and ↓0+21
Comments2

Сборка PC AT-совместимого компьютера с процессором 80286

Reading time6 min
Views14K

Преамбула

В детстве у меня не было велосипеда…

Нет, не совсем так. В детстве я вволю наигрался кустарными «Спектрумами», в школе застал КУВТ (MSX-2), а в ВУЗе − ДВК (почти что легендарная PDP-11). Благодаря этому я не терял времени даром. И когда у меня появилась возможность обзавестись собственным серьёзным компьютером, я был уже тёртым калачом. Я был в курсе событий в мире IT. Я знал, что Intel и 32 бита победили. С трудом преодолев ограничения бюджета (голодные 90-е, студенческие подработки плюс займы у родни), я зашёл в мир PC с козыря − 386SX.

Козырь, конечно, был мелковат: «четвёрки» тогда разлетались, как горячие пирожки, на горизонте маячил Pentium, а с другого краю Эппл спешно менял 68000 на PowerPC. Тем не менее, новым операционным системам, средам разработки и даже играм всё чаще требовались пресловутые 32 бита, и IA-32 + 4 мегабайта стали для меня своего рода пропуском в клуб, пусть и не VIP. Я научился клепать базы данных на Delphi, настраивать сеть на NetWare и FreeBSD, открыл для себя Интернет… В общем, я был рад тому, что не взял тогда «с рук», за полцены, изрядно подержанную «двойку».

Однако сейчас, спустя почти 30 лет, меня заела то ли ностальгия, то ли любопытство, а может, это называется «гештальт»? Или я чего-то не договариваю… В общем, под занавес 2020 года я присоединился к ретро-компьютинговому сообществу, собрав свой первый велосипед двести восемьдесят шестой.

Дисклеймер

В статье я использовал несколько фотографий отвратительного качества собственного авторства. Что поделать, чукча − не фотограф, а в интернете подходящих изображений зачастую просто нет. Так что заранее прошу прощения за неудобства.

Читать далее
Total votes 52: ↑51 and ↓1+50
Comments39

Подлинная сущность ящеролюдей

Reading time4 min
Views53K


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

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

Каким образом люди придумывают и поддерживают самые противоречивые и сумасшедшие верования, имея под рукой все возможности для их опровержения? Эта тема давно привлекает мой исследовательский интерес. Хотя бы по той причине, что наиболее упёртые и заразные виды таких верований, вроде марксизма или деструктивных религиозных культов, овладевая толпами, начинают угрожать самой моей жизни.

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

И действительно, размышления о людях-ящерах, как мне кажется, помогли мне получить новые представления о психологии веры и о том, что на самом деле означает заговор ящеролюдей.
Читать дальше →
Total votes 105: ↑78 and ↓27+51
Comments378

Лучший язык программирования для начинающих

Reading time4 min
Views36K
Мне всегда были интересны разные идеи об обучении программированию. Возможно, это потому, что я остаюсь вечным студентом в этой области. Но сегодня я ознакомился с одной неожиданной для меня идеей − начинать обучение с Java. И я не смог промолчать.

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

Опять же на мой дилетантский взгляд, несложно проверить, отвечает ли язык программирования этому требованию. Достаточно открыть раздел “Hello World” на Rosetta Code.

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

Дополнено по заявкам радиослушателей. Brainfuck, PHP, C, Julia.

Читать дальше →
Total votes 54: ↑27 and ↓270
Comments142

Python как предельный случай C++. Часть 2/2

Reading time12 min
Views15K

Продолжение. Начало в «Python как предельный случай C++. Часть 1/2».


Переменные и типы данных


Теперь, когда мы окончательно разобрались с математикой, давайте определимся, что в нашем языке должны означать переменные.


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


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

Читать дальше →
Total votes 34: ↑25 and ↓9+16
Comments28

Python как предельный случай C++. Часть 1/2

Reading time10 min
Views17K
От переводчика

Брендон Роудс − весьма скромный человек, представляющий себя в твиттере как «Python-программиста, возвращающего долг сообществу в форме докладов или эссе». Число этих «докладов и эссе» впечатляет, равно как и число свободных проектов, контрибьютором которых Брендон являлся или является. А ещё Брэндон опубликовал две книги и пишет третью.


Я очень часто встречаю в комментариях на Хабре принципиальное непонимание или неприятие динамических языков, динамической типизации, обобщённого программирования и других парадигм. Я публикую этот авторизованный (сокращённый) перевод (стенограмму) одного из докладов Брендона в надежде, что он поможет программистам, существующим в парадигмах статических языков, лучше понять динамические языки, в частности, Python.


Как у нас принято, прошу сообщать в личку о допущенных мной ошибках и опечатках.


Что означает словосочетание «предельный случай» в названии моего доклада? Предельный случай возникает, когда вы перебираете последовательность опций, пока не дойдёте до крайнего значения. Например, n-сторонний многоугольник. Если n=3, то это треугольник, n=4 − четырёхугольник, n=5 − пятиугольник, и т. д. По мере приближения n к бесконечности стороны становятся всё меньше и всё многочисленнее, и очертание многоугольника становится похоже на окружность. Таким образом, окружность является предельным случаем для правильных многоугольников. Вот что происходит, когда некая идея доводится до предела.


Я хочу поговорить о Python как о предельном случае для C++. Если вы возьмёте все хорошие идеи из C++ и очистите их, доведя до логического завершения, я уверен, в результате вы придёте к Python так же естественно, как серия многоугольников приходит к окружности.

Читать дальше →
Total votes 52: ↑37 and ↓15+22
Comments22

Монады за 15 минут

Reading time6 min
Views64K

Вступление


На конференции YOW! 2013 один из разработчиков языка Haskell, проф. Филип Вадлер, показал, как монады позволяют чистым функциональным языкам осуществлять императивные по сути операции, такие, как ввод-вывод и обработку исключений. Неудивительно, что интерес аудитории к этой теме породил взрывной рост публикаций о монадах в Интернет. К сожалению, бо́льшая часть этих публикаций использует примеры, написанные на функциональных языках, подразумевая, что о монадах хотят узнать новички в функциональном программировании. Но монады не специфичны для Haskell или функциональных языков, и вполне могут быть проиллюстрированы примерами на императивных языках программирования. Это и является целью данного руководства.

Чем это руководство отличается от остальных? Мы попытаемся не более чем за 15 минут «открыть» монады, используя лишь интуицию и несколько элементарных примеров кода на Python. Мы поэтому не станем теоретизировать и углубляться в философию, рассуждая о буррито, космических скафандрах, письменных столах и эндофункторах.
Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments13

Рассуждение о священных войнах, а также мольба о мире

Reading time6 min
Views15K

Вступление переводчика


Я вполглаза слежу за зреющим конфликтом в сообществе Linux. Материалов об этом везде публикуется довольно много, началось всё с этого, в текущем состоянии отражено, например, здесь, а за первоисточником можно обращаться сюда. Среди всего обилия информации меня заинтересовало письмо Эрика С. Рэймонда, которое он озаглавил иронично-пафосно: “On holy wars, and a plea for peace”. Это письмо отличается взвешенным тоном и интересно само по себе, а не только в контексте конфликта. Перевод следует.

Читать дальше →
Total votes 44: ↑43 and ↓1+42
Comments130

Собственный модуль settings

Reading time4 min
Views11K

Преамбула


Этот модуль родился в результате переосмысления (или недопонимания) мной вот этого пространного документа: Splitting up the settings file, размещённого на официальном сайте Django.

Постановка задачи


При старте веб-приложения на Django (как посредством запуска отладочного сервера, так и в качестве WSGI-приложения) фреймворк первым делом выполняет модуль, задающий начальные настройки проекта. Источник кода задаётся переменной окружения DJANGO_SETTINGS_MODULE. При создании Django-проекта стандартным способом, например:
$ django-admin startproject myproject
создаётся и модуль настроек. Это файл ‘myproject/myproject/settings.py’. Изменяя и дополняя его, программист настраивает проект, добавляет в него собственные и сторонние компоненты и т. д.

В простых проектах, разрабатываемых одним бэкенд-программистом, бывает вполне разумно ограничиться таким модулем настроек. Однако по мере роста проекта возникают следующие
проблемы...
Total votes 15: ↑12 and ↓3+9
Comments22

Мысли о развёртывании веб-приложений на тестовом сервере

Reading time9 min
Views17K

Предисловие


Нижеследующий текст − результат практического опыта и самообразовательных порывов человека, не имеющего систематического образования ни в одной из областей, о которых он (то есть я) берётся рассуждать. Поэтому заумные рассуждения здесь будут перемежаться банальностями. Бейте меня за первые и игнорируйте вторые. Для кого-то и они могут стать откровением.

Я постараюсь описать идеальные варианты настройки тестового веб-севера, хотя понимаю, какой бардак на них обычно творится. Буду ориентироваться на ситуацию, когда деплоить приходится часто, то есть на сервере живёт проект в стадии активной разработки либо несколько проектов на разных стадиях. Проектами занимаются разные разработчики или команды, поэтому проекты нужно изолировать друг от друга. Но сервер внутренний, поэтому такая степень изоляции и автоматизации процессов администрирования, как на серверах под сдачу в аренду, не нужна.

Основной упор я буду делать на применение разных версий Python в качестве языка поддерживаемых веб-приложений. Хотя многие вещи наверняка будут справедливы и для других языков, например, Ruby или Perl.
Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments27

Novell прекратила поддержку Netware

Reading time1 min
Views844
7 марта 2010 года Novell прекратила общую поддержку для NetWare. Важным является то, что прекращение поддержки — это ещё не конец жизненного цикла продукта. Тем не менее, это означает, что NetWare — немолодой продукт, готовый пройти заключительные стадии своего существования.

NetWare — замечательный продукт, игравший неоценимую роль в деятельности организаций всех видов в течение 25 лет. Мы гордимся этим продуктом и его критической ролью в истории компьютерных технологий. Но теперь пора сделать следующий шаг…

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

Отвечая на потребности рынка, мы перенесли все сервисы NetWare, от которых может зависеть Ваш бизнес, на Linux-платформу. Это открывает Вам много новых возможностей без необходимости осваивать новую платформу.

Чтобы сделать этот важный переход ещё проще, Novell открывает годичную кампанию под названием «Move IT!» для лояльных пользователей NetWare.

Я начинал работу системного администратора ещё тогда, когда серверы с «Нетварью» были типичными «рабочими лошадками» в госучреждениях и бизнесе, хотя более перспективными уже считались Windows 4 Server и FreeBSD 2.x.x. Зацепил краем глаза заметку в чьём-то блоге, прошёл по ссылке — и вот он, дух времени!
Total votes 11: ↑11 and ↓0+11
Comments6

Information

Rating
Does not participate
Date of birth
Registered
Activity