Про книгу «Современный язык Java»

Обложка "Современный язык Java"В последнее время помимо языка Python (которому, кстати, на днях исполнилось 30 лет) я активно стал использовать Java, поэтому решил углубить свои знания в этом языке и почитать более специализированные книги, которые поподробнее рассказывают об отдельных элементах языка или библиотек. Этот пост будет посвящен одной из таких книг, которую в целом можно охарактеризовать словами «как нам из Java сделать функциональный язык программирования». Речь пойдет о книге трех авторов Рауля-Габриэля Урма, Марио Фуско и Алана Майкрофта «Современный язык Java», в оригинале она называется «Modern Java in Action». Англоязычная версия книги была издана в 2018 году, и на тот момент были актуальные версии Java 8 и 9, а Java 10, который только-только вышел.

Большая часть книги основана на использовании лямбда-выражений (они же анонимные функции), о которых очень подробно рассказывается в первых главах книги. На мой взгляд даже чересчур подробно, так что возникает ощущение, что авторы повторяют одно и то же чуть под разными углами зрения. В Java 8 помимо анонимных функций появилась возможность создавать ссылки на методы классов, о том, как это работает, и как ссылки на методы связаны с лямбда-выражениями и функциональными интерфейсами (интерфейсами, у которых есть только один абстрактный метод) и рассказывается в первых главах на множестве небольших примеров. А для самых любопытных и продвинутых в приложении даже приводится анализ байт-кода, который создается компилятором для создания анонимных функций.

Читать далее…

OutWiker 3.0.0.884 unstable

Всем привет! Продолжаю исправлять в OutWiker разные шероховатости. Сегодня выложил очередную нестабильную версию под номером 3.0.0.884.

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

Читать далее…

OutWiker 3.0.0.882 unstable

OutWiker 3.0.0.882 unstable

И снова здрасьте! Выложил еще одну нестабильную версию OutWiker под номером 3.0.0.882.

Читать далее…

Книга Брайана Кернигана «Время Unix. A History and a Memoir»

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

Пару месяцев назад, просматривая книжные новинки, я обратил внимание на книгу под названием «Время Unix. A History and a Memoir». Одно то, что это книга по истории софтостроения, было бы достаточно, чтобы я ее купил, а тут еще и автор книги — Брайан Керниган. У нас в России он известен как один из авторов учебника по языку Си, написанного в соавторстве с Деннисом Ритчи — автором языка языка Си. Но помимо этого достижения Керниган является одним из программистов, работавших в Bell Labs в том числе и над операционной системой Unix в 1970-х годах. Правда, не над ядром этой операционной системы, но, например, он был соавтором языка AWK, предназначенного для обработки текста (AWK — это сокращение из первых букв фамилий авторов, «K» обозначает «Kernighan»). Разумеется, проигнорировать книгу, в которой рассказывается о легендарной операционной системе от лица непосредственного участника тех событий, я не мог. Кстати, на тему истории Unix-подобных операционных систем я когда-то давно писал пост История UNIX-систем.

Читать далее…

OutWiker 3.0.0.880 unstable

OutWiker 3.0.0.880 unstable

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

В это версии изменения коснулись в основном инсталятора под Windows. Когда-то давно этот инсталятор я сделал на основе движка Inno Setup и больше к нему не возвращался, возможно из-за того, что сам им не пользуюсь, а просто копирую файлы OutWiker из папки сборки. Настало время обновить инсталятор и добавить туда несколько новых возможностей.

Читать далее…

OutWiker 3.0.0.878 unstable

OutWiker 3.0.0.878 unstable

Всем привет.

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

Так что, если увидите какую-то проблему в новой версии, то пишите.

Скачать самую свежую версию можно со страницы https://jenyay.net/Outwiker/Unstable

Предновогодняя нестабильная версия OutWiker 3.0.0.876

Предновогодняя нестабильная версия OutWiker 3.0.0.876

Всем привет и с наступающим Новым годом.

Два месяца назад я писал о том, как идут дела с разработкой OutWiker-а. Тогда я жаловался на то, что переход с версии wxPython 4.0.7 на 4.1 оказался не таким безболезненным как хотелось бы из-за того, что новая версия библиотеки не во всем совместима со старой. Больше всего хлопот доставил текстовый редактор, в котором изменился способ, с помощью которого в тексте выделяются слова с ошибками. Новый способ подчеркивания слов с ошибками на самом деле более простой, но это потребовало существенного изменения в коде. И вот, наконец, удалось исправить проверку орфографии, и после этого я еще повылавливал другие ошибки, которые появились после обновления wxPython.

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

На этом пока все. Надеюсь, что в следующем году я все-таки доведу OutWiker до релиза стабильной версии (до этого я планировал, что выпущу релиз летом 2020 года 🙂 ).

OutWiker в социальных сетях:

Поговорим про дистанционное обучение

Поговорим про дистанционное обучение
На лекции записи преподавателя становятся конспектом студента, минуя сознание обоих.
(с) М. Адлер «Как читать книги»

 

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

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

Чтобы объективно разобраться, что не так с имеющимся у нас дистанционным обучением, откажемся от идеи, что онлайн-обучение — абсолютное зло. Хочется верить, что в конечном счете дистанционное обучение можно сделать эффективным, но только для этого нужно переделывать всю программу курсов. Нельзя вести занятия так же, как в оффлайне только перед веб-камерой. Давайте попробуем порассуждать, что объективно мешает эффективному онлайн-обучению, и что можно придумать, чтобы эти проблемы устранить.

Читать далее…

Книга Дэвида Кушнера «Повелители DOOM»

Всем привет! IDDQD! Когда-то я писал о книге Кровь, пот и пиксели, в которой рассказывается про историю создания некоторых видеоигр, а недавно дочитал еще одну книгу из той же серии. В книге Дэвида Кушнера «Повелители DOOM» очень подробно рассказывается история двух Джонов — Кармака и Ромеро, а также некоторых других разработчиков, которые создали такие игры как Wolfenstein 3D, Doom, Quake и другие может быть чуть менее известные игры.

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

Читать далее…

Пост о том, как идет работа над новой версией OutWiker

Пост о том, как идет работа над новой версией OutWiker

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

Но OutWiker я не совсем забросил, и пока я не выкладываю новую версию, хочу рассказать, как идет работа над ней. Я уже почти смирился с тем, что OutWiker будет в вечной бете. Я не собирался до релиза переводить проект на wxPython 4.1, а хотел по максимуму исправить разные шероховатости в программе и выпустить релиз. Сначала все шло хорошо, но я взялся за исправление одного может быть не очень критичного, но 100%-но повторяемого глюка. Под Linux, если в настройки зайти несколько раз, то программа падала. Эксперименты показали, что проблема в контроле, который отображает веб-страницу с помощью движка WebKit. Если такой контрол находится в диалоге, то после повторного открытия этого диалога программа упадет. Это удалось повторить в простейшем приложении с единственной кнопкой, которая открывает такой диалог. Я уже готов был с этим смириться и написать о проблеме в багтрекер wxPython, но нужно было проверить это на новой версии библиотеки. К сожалению Оказалось, что в wxPython 4.1 этой проблемы нет.

Читать далее…