Pull to refresh
12
0
Сергей Ирюпин @biblelamp

Software engineer

Send message

FORTRAN — первый язык высокого уровня

Level of difficultyEasy
Reading time11 min
Views5.6K

Возможно, это был первый в мире язык высокого уровня, но Майк Бедфорд обнаруживает, что FORTRAN жив и процветает по сей день.

Когда FORTRAN только зарождался, языков высокого уровня практически не существовало, и уж тем более не было таких, которые получили бы широкую известность. Сейчас, когда такие языки стали практически универсальными, необходимо помнить, что языки высокого уровня были созданы для того, чтобы облегчить работу программиста. Раньше код писался на "родных" инструкциях компьютера, которые определялись его аппаратной частью. С помощью языка высокого уровня стало возможным использовать инструкции, приближенные к человеческим. Кроме того, программы можно было переносить с одного компьютера на другой, хотя при разработке FORTRAN это не учитывалось, поскольку язык изначально создавался специально для компьютера IBM 704.

Читать далее
Total votes 17: ↑16 and ↓1+15
Comments24

Возвращаем RSS к жизни

Reading time6 min
Views31K

RSS-агрегатор NetNewsWire

Мы уже обсуждали, насколько важен и удобен RSS для профессиональной работы с источниками в интернете. Это единственный способ собрать огромный массив данных с тысяч сайтов, соцсетей, блогов, твиттер-аккаунтов, торрент-трекеров и др.

Вся информация накапливается в личном агрегаторе, доступна в удобное время, в том числе офлайн. Никогда ничего не теряется. Это особенно актуально сейчас, в условиях информационной блокады, периодических отключений интернета и угрозы полного шатдауна.
Читать дальше →
Total votes 77: ↑76 and ↓1+75
Comments73

Собираем и запускаем Linux-0.01 в Minix 1.5, (почти) как это делал Линус Торвальдс

Level of difficultyHard
Reading time28 min
Views10K

Я люблю старые программы, мне нравится их изучать и смотреть, как они развивались и во что сейчас превратились, или умерли, так и не дожив до сегодняшнего дня. Ещё мне нравится смотреть разные YouTube-каналы, посвящённые ретро-тематике, на которых рассказывают об истории программ, игр, игровых приставок или старых компьютеров. Хочу сказать всем этим людям «спасибо» за то, что сохраняете частичку истории технологий. И, вдохновившись их трудами, мне захотелось попробовать самому прикоснутся к истории, собрав и запустив что-то относительно старое, но до сих пор живущее и развивающееся. Мой выбор пал на первую версию Linux, а именно версию 0.01.

Те, кто знаком с ранними днями создания Linux, знают, что Линус Торвальдс писал её для компьютеров на основе 386-х процессоров в пропатченной версия Minix 1.5.10. И не смотря на то, что linux-0.01 собирали не раз, в том числе и на современных версиях компилятора, мне хотелось побыть хоть немного в шкуре самого Линуса и самому собрать ядро в родной для этой ОС среде. А именно на максимально близком, хоть и виртуальном аппаратном обеспечении, в настоящей Minix 1.5.10 (точнее, Minix-386) с древней версией GCC 1.37.1

17 сентября ядру Linux исполнится 32 года. Это прекрасный повод вспомнить, как всё начиналось…

Читать далее
Total votes 73: ↑72 and ↓1+71
Comments20

Что такое Spring Framework? От внедрения зависимостей до Web MVC

Reading time41 min
Views472K


Вы можете использовать это руководство для различных целей:


  • Чтобы понять, что такое Spring Framework
  • Как работают ее основные фичи: такие как внедрение зависимостей или Web MVC
  • Это также исчерпывающий FAQ (Перечень часто задаваемых вопросов)

Примечание: Статья ~ 9000 слов, вероятно, не стоит читать ее на мобильном устройстве. Добавьте ее в закладки и вернитесь позже. И даже на компьютере ешь читай этого слона по одному кусочку за раз :-)


Содержание


  • Введение
  • Основы внедрения зависимостей
  • Контейнер Spring IOC / Dependency Injection
  • Spring AOP (Аспектно-ориентированное программирование) и прокси
  • Управление ресурсами Spring
  • Spring Web MVC
  • Дополнительные модули Spring Framework
  • Spring Framework: часто задаваемые вопросы
  • Заключение
Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments14

Javascript: базовые вопросы и понятия для самых маленьких

Level of difficultyEasy
Reading time15 min
Views47K

Javascript ― язык весьма оригинальный. Его можно любить, ненавидеть и даже бояться, но равнодушным он вас вряд ли оставит. Не знать или не понимать, с чем ты работаешь ― самая частая ошибка, допускаемая современными фронтенд‑разработчиками. Вам бы понравилось, если бы дантист, к которому вы пришли, не понимал, какой он инструмент использует и какие у него особенности работы? Очевидно, что нет. И рано или поздно, если вы действительно хотите стать профессионалами, вы разберётесь во всём, но как сделать так, чтоб это случилось раньше?

В этой статье в блоге ЛАНИТ хотелось бы показать, что о сложных вещах можно и нужно говорить просто.

Читать далее
Total votes 117: ↑116 and ↓1+115
Comments43

Нужен бесплатный SSL-сертификат? Легко

Reading time3 min
Views141K

Если вам нужен SSL-сертификат, но вы не являетесь специалистом в веб-технологиях, то эта заметка для вас. Описан простой способ выпуска базового SSL-сертификата Let’s Encrypt в ручном режиме, на локальном компьютере с Windows, с помощью приложения Certbot. Этот способ позволяет получить файлы SSL-сертификата в папку на своём локальном компьютере, после чего можно установить сертификат на свой хостинг.

Потребность в SSL-сертификатах возникла у меня в связи с тем, что срок старых истёк, а создать новые оказалось невозможным из-за возникших ограничений на доменные зоны RU и РФ. Если у вас такая же проблема или вам просто надоело искать веб-сервис для выпуска SSL-сертификатов, то эта заметка вам поможет.

Поскольку я пока не знаю наилучшего пути, то ниже просто опишу ту последовательность действий, которую сам выполнил и которая позволила мне создать SSL-сертификаты для десяти своих доменов (в том числе в зонах RU и РФ), а значит и вам этот способ может помочь.

Читать далее
Total votes 45: ↑29 and ↓16+13
Comments87

Задачки по программированию на BASIC для ZX Spectrum

Reading time2 min
Views14K
Недавно я участвовал в нескольких соревнованиях, которые проводились в Facebook-группе, посвящённой BASIC-программированию для ZX Spectrum. Там попадаются задачки разной сложности, но большинство из них можно решить, минут за 30 написав соответствующий код. Если вы хотите проверить или улучшить свои навыки программирования на BASIC — вам, возможно, будет интересно взглянуть на эти задачки.


Читать дальше →
Total votes 84: ↑82 and ↓2+80
Comments19

Шпаргалка по шаблонам проектирования

Reading time2 min
Views1.4M

Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

Под катом — много картинок.

Читать дальше →
Total votes 192: ↑179 and ↓13+166
Comments66

Три ключевых принципа ПО, которые вы должны понимать

Reading time13 min
Views224K

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

Все, что касается любви, применимо и к коду. Новых законов в коде нет. Если вы четко понимаете основные идеи разработки, вы способны максимально быстро адаптироваться к новым подходам. В этой статье я расскажу вам о трех основных принципах, которые, наряду с другими, позволяют регулировать сложность разработки. Я поделюсь своим видением вопроса, которое, надеюсь, поможет вам в повседневной работе.
Читать дальше →
Total votes 142: ↑128 and ↓14+114
Comments56

Принципы для разработки: KISS, DRY, YAGNI, BDUF, SOLID, APO и бритва Оккама

Reading time8 min
Views239K
image

Хорошему программисту необходимо уметь совмещать свои навыки со здравым смыслом. Все дело в прагматизме и навыке выбора лучшего решения для вашей проблемы. Когда вы сталкиваетесь с проблемой при разработке ПО, вы можете воспользоваться базовыми принципами, которые помогут в выборе самого правильного подхода.

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

Последовательное применение этих принципов упростит ваш переход от миддла к сеньору. Вы можете обнаружить, что некоторые (вероятно) вы применяете интуитивно.

Принципов много. Мы остановимся на семи самых важных. Их использование поможет вам в развитии и позволит стать лучшим программистом.

1. YAGNI

You Aren’t Gonna Need It / Вам это не понадобится

Этот принцип прост и очевиден, но ему далеко не все следуют. Если пишете код, то будьте уверены, что он вам понадобится. Не пишите код, если думаете, что он пригодится позже.

Этот принцип применим при рефакторинге. Если вы занимаетесь рефакторингом метода, класса или файла, не бойтесь удалять лишние методы. Даже если раньше они были полезны – теперь они не нужны.

Может наступить день, когда они снова понадобятся – тогда вы сможете воспользоваться git-репозиторием, чтобы воскресить их из мертвых.
Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments9

20 игр, чтобы научить ребёнка программированию

Reading time5 min
Views301K
Привет Хабр! Меня зовут Оксана Селендеева. Я считаю, что лучше начинать программировать с юного возраста — 4-5 лет, потому что кодинг активно развивает у детей когнитивные функции мозга, и это впоследствии помогает им отлично усваивать точные науки. А попробовать себя в программированию можно через обучающие игры. Мы с преподавателями школы программирования для детей CODDY составили такую подборку.

Для дошкольников


Box Island — мобильная 3D-игра, которая обучает основам кодирования через увлекательное приключение. Игроки путешествуют по острову Box и помогают персонажу собирать звезды, разбросанные по пустыне. Через игровой квест дети изучают основы алгоритмов, последовательностей, циклов и условных выражений, а ещё игра развивает алгоритмическое мышление и распознавание образов.
Total votes 59: ↑53 and ↓6+47
Comments91

Истории Геннадия Зеленко и Сергея Попова — популяризаторов технологий в СССР

Reading time13 min
Views15K
В восьмидесятых журнал «Радио» опубликовал цикл статей, посвящённых тому, как продвинутый радиолюбитель мог бы собрать микрокомпьютер в домашних условиях. Так в тысячах семей впервые появились компьютеры. Это стало важной вехой в истории компьютеризации СССР и в формировании сообщества людей, интересующихся технологиями.



Недавно в гостях у Музея Яндекса побывали соавторы этого цикла статей и создатели компьютеров «Микро-80», «Радио-86РК» и «Микроша» — Геннадий Вадимович Зеленко и Сергей Николаевич Попов SNPopov. Мы записали для Хабра истории, которые они рассказали. В конце поста можно посмотреть видео встречи.
Total votes 61: ↑61 and ↓0+61
Comments53

Экономическая стратегия или 4200 байт за 10 лет

Reading time4 min
Views26K
Мой предыдущий пост "Как сделать 3D шутер на JavaScript за пару дней" показал, что тема разработки браузерных игр весьма интересна и по этому я решил очередные выходные посвятить еще одной моей задумке.

На этот раз выходные выпали на новогодние праздники и времени свободного было несколько больше чем обычно, по этому и повествовать я буду не спеша и начну с небольшой истории.
Читать дальше →
Total votes 59: ↑53 and ↓6+47
Comments38

Использование Liquibase для управления структурой БД в Spring Boot приложении. Часть 2

Reading time7 min
Views37K
В предыдущей части мы разобрались с основными возможностями Liquibase и написали базовый пример Spring boot приложения, который использует Liquibase для инициализации БД. Полный код базового приложения можно увидеть тут на GitHub. В этой статье мы поговорим про liquibase-maven-plugin и те дополнительные возможности, которые он нам дает для версионирования структуры БД. Начнем с того, как автоматически создавать скрипты при помощи функции сравнения.

Предположим, что нам понадобилось внести какие-либо изменения в структуру нашей БД. Например, мы хотим, чтобы email не мог быть null. Безусловно, для такого маленького изменения можно было бы подкорректировать код и скрипты вручную, но как быть если изменений будет больше? В этом случае к нам на помощь придет встроенная в Liquibase возможность сравнения БД. Интересной её особенностью является то, что сравнивать можно не только две базы данных, но и базу данных с набором JPA сущностей в нашем приложении. Именно так мы сейчас и поступим!
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments12

Использование Liquibase для управления структурой БД в Spring Boot приложении. Часть 1

Reading time5 min
Views87K
В этой статье я разберу использование утилиты Liquibase в Spring Boot приложениях для версионирования структуры реляционной БД и миграции этой структуры с одной версии на другую. В первой части разберем базовый пример, а во второй поговорим об использовании liquibase-mave-plugin для отката изменений и автоматической генерации скриптов через сравнение структур БД.

Начнем с того, что создадим простейшее приложение на Spring Boot + JPA (Hibernate). В этом нам поможет Spring Initializr. Из зависимостей выбираем JPA, MySQL и Web. Liquibase тоже можно подключить на этом шаге, но для лучшего понимания мы это сделаем далее вручную.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments40

Heroku + Docker + Spring Boot

Reading time5 min
Views20K
Далее речь пойдет о моем опыте запуска докеризованного Spring Boot приложения на бесплатных виртуальных машинах облачного сервиса Heroku. Одно из главных преимуществ этого провайдера в том, что он дает возможность создавать бесплатные виртуалки с ограничением по часам работы, причем для этого достаточно только регистрации. Даже платежные реквизиты подтверждать не требуется, хотя если их подтвердить можно получить дополнительные бонусы. Подробнее про их прайс можно прочитать здесь. С моей точки зрения их политика по части бесплатных ресурсов почти не имеет аналогов.

И так, после того, как вы создали на Heroku приложение есть несколько способов развернуть в нем ваш код
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments7

Лучшие дистрибутивы Linux для старых компьютеров

Reading time8 min
Views483K
Привет!

Меня зовут Рушан, и я автор Telegram‑канала Нейрон. Не забудьте поделиться с коллегами или просто с теми, кому интересны такие статьи.

Вкратце: пока не бросайте свой старый компьютер — используйте легкий дистрибутив Linux, чтобы возродить его!

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

Лучшие легкие дистрибутивы Linux для старых ноутбуков и десктопов


Я постараюсь упорядочить список в порядке убывания требований к оборудованию. Это означает, что легкому дистрибутиву Linux, занимающему первое место, потребуется минимальное аппаратное обеспечение.

10. Peppermint


image

Peppermint  —  это облачно-ориентированный дистрибутив Linux, не требующий мощного железа для запуска. Он основан на Lubuntu и использует окружение рабочего стола LXDE для более плавной работы.
Читать дальше →
Total votes 75: ↑70 and ↓5+65
Comments177

Garbage Collection наглядно

Reading time10 min
Views284K
В последнее время я работаю с клиентами над вопросами настроек JVM. Смахивает ситуация на то, что далеко не все из разработчиков и администраторов знают о том, как работает garbage collection и о том, как JVM использует память. Поэтому я решил дать вводную в эту тему с наглядным примером. Пост не претендует на то, чтобы покрыть весь объем знаний о garbage collection или настройке JVM (он огромен), ну и, в конце концов, об этом много чего хорошего написано уже в Сети.
Читать дальше →
Total votes 70: ↑68 and ↓2+66
Comments49

HTTP сервер за 15 минут

Reading time2 min
Views199K

Задача


За минимальное время написать HTTP сервер, который после запуска сможет корректно ответить браузеру и отдать простую HTML страничку (минимальное время, чтобы кода было мало, чтобы новичку вникать было проще).
У меня это заняло около 15 минут. Сервер вроде справляется с поставленной задачей.

Суть примера — показать что такое Socket, ServerSocket, InputStream, OutputStream, и Thread.

смотреть исходники
Total votes 163: ↑124 and ↓39+85
Comments77

Выбираем бесплатный сервер в облаке для тестовых целей, домашних проектов и т.д

Reading time7 min
Views356K
Всегда хотелось познакомиться с облачными сервисами, но на моих работах они либо не использовались, либо не в моём отделе. Платить свои деньги не очень хотелось за такое знакомство, да и всё это казалось довольно сложным. Куча разных тарифов, что-то бесплатно, что-то платно. Но на самом деле каждый может разобраться с этим и самое главное легко. Настолько легко, что вы просто обязаны получить свой собственный бесплатный облачный сервер прямо сейчас. Осталось только выбрать какой.

Статья будет полезна тем, кто ещё не пользовался облачными серверами.


Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments110
1

Information

Rating
Does not participate
Location
Ростов-на-Дону, Ростовская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer
Middle