Я несколько раз перечитал описанные шаги, но никак не могу понять, как всё это можно выполнить за обозначенные в названии статьи 15 минут? Что из описанного было сгенерировано, а что было изменено? Да и «полноценным компонентом» полученный результат не назвать.
На мой взгляд, не хватает видео с демонстрацией того, как за 15 минут создавался этот компонент.
Не знал. Тогда в статье должно было быть не Skyeng, а Skypro (который от Skyeng, sky.pro/isa). Из статьи же я решил, что речь идёт про обучение английскому языку. Всё-таки Skyeng (https://skyeng.ru/) это в первую очередь преподавание английского языка.
Насколько я понимаю, речь идёт об обучении английскому языку. Т.е. студент здесь тот, кто изучает английский язык. Изучать английский язык может не только студент вуза без опыта, но и разработчик с большим стажем. В этом случае з/п вполне может быть и 200 тыс. руб.
Я не на конкретное предложение в комментарии указываю, а на строку 1674 в файле ConcurrentHashMap.java. У вас на скриншоте именно на этой строке происходит блокировка, приведён код метода, но без нумерации строк. А в исходниках, которые есть в интернете, на этой строке нет исполняемой инструкции.
Я лишь указываю на то, что было бы не плохо предоставить чуть больше информации о причине блокировки. Например, указать, что блокировка осуществляется на конкретной строке.
Поиск в гугле выдаёт информацию о данной проблеме JDK-8161372 и она должна была быть исправлена в Java 9. Какую версию вы использовали для тестирования?
В документации для JUnit 5 уже с начала марта рекомендуется использовать Surefire версии 2.21.0, а не 2.19.1. Обновите, пожалуйста, информацию в статье.
В первом случае речь идёт о доминантном варианте, во втором — о рецессивном. Одно является противоположностью другого. Я не вижу здесь подставы. Где она?
Если отправка сообщения об опечатке будет очень простой, то это может привести к «заспамливанию» личного ящика автора. Так что дубликаты опечаток желательно как-то учитывать и обрабатывать. И если опечатка находится в конце статьи, то к тому моменту, как пользователь найдёт её, она может уже перестать быть актуальной.
Intel Core i5-4690 CPU @ 3.50GHz
gcc version 5.2.1
g++ -std=c++11 BranchFreeTimeout.cpp
sign: 2.45 vs 2.69
abs: 2.44 vs 4.92
mini: 4.06 vs 11.19
maxi: 3.86 vs 11.04
minu: 4.15 vs 11.08
maxu: 4.07 vs 11.10
2147483646
Один раз словили этот sha1 mismatch на сервере репозитория. Ни кто не мог сделать fetch. Запросил поломанные файлы у разработчика, скопировал поверх повреждённых, после чего всё заработало. Но времени, конечно, на это я потратил не мало.
Несколько месяцев назад передо мной стояла задача формирования реестров операций в формате xlsx. На первой итерации была использована библиотека PHPExcel, но после проверки полученного решения на прогнозируемых объёмах (120 тыс. операций) от использования PHPExcel пришлось отказаться.
Библиотеку PHPExcel можно использовать лишь для небольших шаблонов. При значительном увеличении количества строк начинает проседать производительность (время заполнения шаблона начинает измеряться минутами) и памяти начинает резко не хватать (уже на 10 тыс. операций мы получили превышение 128 Мб).
Согласно требованиям к разрабатываемому ПО в реестре могло быть около 100-200 тыс. операций, поэтому пришлось реализовывать свой шаблонизатор под конкретные задачи с минимальным потреблением памяти. Полученное решение тестировани на 1 млн. операций. Потребление памяти не зависит от количества строк (строки сразу пишутся в файл), производительность существенно выше (если правильно помню, тофайл на 1 млн. строк формировался за пару минут).
Поэтому если будете реализовывать свой генератор xlsx-файлов и хотите избежать проблем с памятью и производительностью, то лучше отказаться от хранения всех данных в памяти при заполнении шаблона и, как следствие, не использовать XSLT.
0,125 мс это 0,000125 с, т.е. это 1/8000 секунды.
В сети уже есть видео с прототипом раздвижного экрана.
На мой взгляд, не хватает видео с демонстрацией того, как за 15 минут создавался этот компонент.
Я лишь указываю на то, что было бы не плохо предоставить чуть больше информации о причине блокировки. Например, указать, что блокировка осуществляется на конкретной строке.
ConcurrentHashMap.java
на строке 1674? В исходниках там комментарий.Ну и хотелось бы точную версию Java, например:
После регистрации книгу можно будет почитать без посещения библиотеки.
В первом случае речь идёт о доминантном варианте, во втором — о рецессивном. Одно является противоположностью другого. Я не вижу здесь подставы. Где она?
Библиотеку PHPExcel можно использовать лишь для небольших шаблонов. При значительном увеличении количества строк начинает проседать производительность (время заполнения шаблона начинает измеряться минутами) и памяти начинает резко не хватать (уже на 10 тыс. операций мы получили превышение 128 Мб).
Согласно требованиям к разрабатываемому ПО в реестре могло быть около 100-200 тыс. операций, поэтому пришлось реализовывать свой шаблонизатор под конкретные задачи с минимальным потреблением памяти. Полученное решение тестировани на 1 млн. операций. Потребление памяти не зависит от количества строк (строки сразу пишутся в файл), производительность существенно выше (если правильно помню, тофайл на 1 млн. строк формировался за пару минут).
Поэтому если будете реализовывать свой генератор xlsx-файлов и хотите избежать проблем с памятью и производительностью, то лучше отказаться от хранения всех данных в памяти при заполнении шаблона и, как следствие, не использовать XSLT.
25 requests ❘ 274 KB transferred ❘ 1.36 s (load: 639 ms, DOMContentLoaded: 465 ms)