Добавлю перевод этого поста из @tech_b0lt_Genona
В продолжение о Stiver (создателе флибусты)
Оставил после себя не просто след, а целую историю.
Все же удивительный был человек.
In Memory of Stiver
https://blog.jetbrains.com/idea/2024/11/in-memory-of-stiver/
В продолжение о Stiver (создателе флибусты)
Оставил после себя не просто след, а целую историю.
Все же удивительный был человек.
20 октября скончался автор Java-декомпилятора Fernflower, Stiver, после долгой борьбы с глиобластомой
. . . .
Двадцать лет назад он заинтересовался внутренними механизмами виртуальной машины Java. Вы можете вспомнить его исследовательские посты в блоге, такие как этот (на русском языке) от 2006 года о том, как настроить иерархию Java-классов с помощью Unsafe, когда Java 1.5 только что вышла. Около 2008 года Stiver увлекся декомпиляцией Java
. . . .
Stiver решил написать свой собственный декомпилятор в качестве побочного проекта. Чтобы преодолеть слабости существующих альтернатив, он выбрал другой подход. После чтения байт-кода он построил контрольный поток в статической форме единого присвоения, что намного лучше выражает семантику программы, абстрагируя конкретную форму байт-кода. В начале этого проекта Stiver знал мало о статическом анализе и проектировании компиляторов и ему пришлось многое узнать, но усилия были того стоили. Результатом стал декомпилятор, который давал намного лучшие результаты, чем все, что было доступно в то время. Он даже мог декомпилировать байт-код, созданный некоторыми обфускаторами, без explicit поддержки
. . . .
Stiver сделал основную разработку сам между 2008 и 2010 годами. Первая публичная версия стала доступна в мае 2009 года в качестве веб-сервиса. Пользователь мог загрузить отдельный файл CLASS или целый файл JAR и получить декомпилированный результат. Декомпилятор быстро завоевал популярность - за первые четыре месяца пользователи декомпилировали более полумиллиона Java-классов. Не было публичной автономной версии, но Stiver отправил ее частным образом нескольким бета-тестерам
. . . .
В 2013 году JetBrains обратился к Stiver с предложением включить Fernflower в IntelliJ IDEA. Частью сделки было открытие исходного кода Fernflower. Все прошло хорошо, и контракт был подписан. 11 июля 2014 года вышла ранний доступ к версии IntelliJ IDEA 14, включавшей декомпилятор впервые. Вы все еще можете увидеть первоначальный импорт исходного кода Fernflower в истории Git IntelliJ IDEA, 4 марта 2014 года
. . . .
Как только Fernflower стал открытым исходным кодом, многие другие инструменты в мире Java использовали его - вы можете найти ряд форков на GitHub. Команда Java в JetBrains постоянно улучшает Fernflower, но это все еще в основном код Stiver
. . . .
Спасибо, Stiver
Мы глубоко опечалены потерей такого блестящего пионера, чья работа и преданность имели такое долгосрочное и глубокое влияние.
In Memory of Stiver
https://blog.jetbrains.com/idea/2024/11/in-memory-of-stiver/
Новость от 15 октября, но я на нее только что наткнулся.
Devjobsscanner провели парсинг более 12миллионов вакансий на разработчиков и составили топ востребованных на рынке языков программирования.
Сбор данных происходил в течение 1.5 года, что позволяет весьма объективно провести оценку.
Для меня было удивительно видеть Cobol в середине. Думал, он рядом с Fortran’ом ковыляет.
Так же очень удивило нахождение PHP между C# и С/С++. В остальном примерно все понятно.
Ну и перевод summary из статьи
Devjobsscanner провели парсинг более 12миллионов вакансий на разработчиков и составили топ востребованных на рынке языков программирования.
Сбор данных происходил в течение 1.5 года, что позволяет весьма объективно провести оценку.
Для меня было удивительно видеть Cobol в середине. Думал, он рядом с Fortran’ом ковыляет.
Так же очень удивило нахождение PHP между C# и С/С++. В остальном примерно все понятно.
Ну и перевод summary из статьи
Очевидно, что JavaScript и TypeScript действительно доминируют на рынке труда для разработчиков. JavaScript и TypeScript составляют в общей сложности 31% предложений о работе, которые явно требуют знания программирования. Это огромный показатель, означающий, что почти каждое третье предложение о работе требует знаний JavaScript или TypeScript.
Python и Java являются вторым и третьим по востребованности языками программирования в 2024 году с большим количеством предложений о работе. Однако стоит отметить растущий разрыв между ними. Хотя в начале 2023 года количество предложений о работе для них было примерно одинаковым, к сентябрю 2024 года у Python стало на 6-7% больше предложений, чем у Java.
C#, PHP, Ruby и Go демонстрируют стабильный спрос на работу, что указывает на то, что каждый из них может быть надежным выбором в качестве языка программирования.
С другой стороны, количество предложений о работе для C/C++ снизилось в 2024 году. Начиная с 10% в начале 2023 года, к сентябрю 2024 года этот показатель упал до примерно 6% — почти вдвое за чуть более года. Это значительное снижение стоит учитывать при выборе языка программирования для поиска работы.
Выложу 2 регулярных выражения, которые я написал специально под своего бота.
Чтобы в будущем не искать их по проектам да и в целом не тратить время на поиск.
Учитывая, как сильно я не люблю регулярные выражения, вряд ли я второй раз буду пытаться с нуля это писать.
Паттерн для IP
Выделяет IP. Достаточна для проверки введенного на корректность
Паттерн доменных имен.
Выделяет доменное имя любого уровня.
Не работает с кириллицей, но в ней и нет нужды пока что.
Чтобы в будущем не искать их по проектам да и в целом не тратить время на поиск.
Учитывая, как сильно я не люблю регулярные выражения, вряд ли я второй раз буду пытаться с нуля это писать.
Паттерн для IP
Выделяет IP. Достаточна для проверки введенного на корректность
^(([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d\\d?|2[0-4]\\d|25[0-5])$
Паттерн доменных имен.
Выделяет доменное имя любого уровня.
Не работает с кириллицей, но в ней и нет нужды пока что.
((?!-)[A-Za-z0-9-]{1,63}(?<!-)\\.)+[A-Za-z]{2,6}
Если хочется пользоваться популярными LLM моделями, вроде GPT-4/4turbo/4o, а так же Claude, Gemeni, но не хочется возиться с регистрацией и регулярным включением VPN, то можно воспользоваться chat.notdiamond.ai
Ну и самое удобное, что можно использовать режим арены, сразу выбирая лучший ответ.
Из плюсов
- Регистрация без проблем. Советую через гугл-учетку
- Большой выбор моделей
- Режим арены, позволяющий использовать одновременно 2 сети
- Возможность грузить фото
- Ведение истории. Диалог всегда можно продолжит
- Возможность установки кастомного промта системы (джейилбрек например)
- Приличное количество запросов в сутки для free аккаунта.
Из минусов
- Иногда запросов не хватает
- Иногда, в режиме арены, тяжелые модели могут не дописать свой ответ
Список доступных моделей на скрине
Ну и самое удобное, что можно использовать режим арены, сразу выбирая лучший ответ.
Из плюсов
- Регистрация без проблем. Советую через гугл-учетку
- Большой выбор моделей
- Режим арены, позволяющий использовать одновременно 2 сети
- Возможность грузить фото
- Ведение истории. Диалог всегда можно продолжит
- Возможность установки кастомного промта системы (джейилбрек например)
- Приличное количество запросов в сутки для free аккаунта.
Из минусов
- Иногда запросов не хватает
- Иногда, в режиме арены, тяжелые модели могут не дописать свой ответ
Список доступных моделей на скрине