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

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

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

Open source *Community management *Manufacture and development of electronics *

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

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

Читать далее
Total votes 9: ↑9 and ↓0 +9
Views 2.2K
Comments 2

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

Programming *

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

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

Читать далее
Total votes 14: ↑10 and ↓4 +6
Views 12K
Comments 12

Р. Столлман вернулся в совет директоров FSF

Open source *

Согласно заметке, опубликованной на журналистском портале Techrights, Ричард М. Столлман снова занял место в совете директоров Фонда свободного программного обеспечения (FSF) − организации, которую он создал 35 лет назад и возглавлял до сентября 2019 года.

Читать далее
Total votes 15: ↑14 and ↓1 +13
Views 2.9K
Comments 7

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

Old hardware

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

Читать далее
Total votes 16: ↑16 and ↓0 +16
Views 3.9K
Comments 5

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

Old hardware

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

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

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

Читать далее
Total votes 21: ↑21 and ↓0 +21
Views 5.4K
Comments 2

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

Old hardware

Преамбула

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

Нет, не совсем так. В детстве я вволю наигрался кустарными «Спектрумами», в школе застал КУВТ (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
Views 12K
Comments 37

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

Science fiction Health
Translation


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

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

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

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

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

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

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

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

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

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

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

Читать дальше →
Total votes 54: ↑27 and ↓27 0
Views 34K
Comments 142

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

Python *C++ *
Translation

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


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


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


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


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

Читать дальше →
Total votes 34: ↑25 and ↓9 +16
Views 15K
Comments 28

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

Python *C++ *
Translation
От переводчика

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


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


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


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


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

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

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

Python *Functional Programming *
Translation

Вступление


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

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

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

Open source *
Translation

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


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

Читать дальше →
Total votes 44: ↑43 and ↓1 +42
Views 15K
Comments 130

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

Website development *Python *Django *

Преамбула


Этот модуль родился в результате переосмысления (или недопонимания) мной вот этого пространного документа: 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
Views 10K
Comments 22

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

Website development *Python *
Recovery mode

Предисловие


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

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

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

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

Lumber room
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
Views 739
Comments 6

Information

Rating
3,973-rd
Date of birth
Registered
Activity