Как стать автором
Обновить
33
0
Огромный Боевой Человекоподобный Робот @Tanner

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

Отправить сообщение

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

Время на прочтение5 мин
Количество просмотров2.8K

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

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

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии2

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

Время на прочтение5 мин
Количество просмотров12K

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

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

Читать далее
Всего голосов 14: ↑10 и ↓4+6
Комментарии12

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

Время на прочтение4 мин
Количество просмотров4.3K

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

Читать далее
Всего голосов 16: ↑16 и ↓0+16
Комментарии5

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

Время на прочтение6 мин
Количество просмотров6K

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

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

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

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии2

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

Время на прочтение6 мин
Количество просмотров14K

Преамбула

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

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

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

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

Дисклеймер

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

Читать далее
Всего голосов 52: ↑51 и ↓1+50
Комментарии39

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

Время на прочтение4 мин
Количество просмотров53K


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

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

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

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

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

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

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

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

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

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

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

Читать дальше →
Всего голосов 54: ↑27 и ↓270
Комментарии142

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

Время на прочтение12 мин
Количество просмотров15K

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


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


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


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


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

Читать дальше →
Всего голосов 34: ↑25 и ↓9+16
Комментарии28

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

Время на прочтение10 мин
Количество просмотров17K
От переводчика

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


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


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


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


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

Читать дальше →
Всего голосов 52: ↑37 и ↓15+22
Комментарии22

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

Время на прочтение6 мин
Количество просмотров64K

Вступление


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

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

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

Время на прочтение6 мин
Количество просмотров15K

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


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

Читать дальше →
Всего голосов 44: ↑43 и ↓1+42
Комментарии130

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

Время на прочтение4 мин
Количество просмотров11K

Преамбула


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

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


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

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

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

Время на прочтение9 мин
Количество просмотров17K

Предисловие


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

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

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

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

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

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

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

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

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

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

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность