function removeElement(nums, val) {
let k = 0;
for (let i = 0; i < nums.length; i++) {
if (nums[i] !== val) {
nums[k] = nums[i];
k++;
}
}
nums.length = k;
return k;
}
У випадку мовних моделей B означає мільярд, тобто 11B це модель яка містить 11 мільярдів зв'язків (в реальності там трохи складніше). І так, чим більше в моделі параметрів тим більше треба пам'яті щоб запустити модель.
Модель це кінцевий файл який отримали в результаті тренування на великій кількості даних та GPU. В ній містяться дані які "запам'ятала" нейронна мережа (зв’язки між словами та фразами) і на основі цих даних може генерувати відповіді на питання. Це не зовсім те що потрібно для пошуку по сайту, та і для навчання на своїх даних треба багато потужних GPU.
В e-ink дисплеях швидкість оновлення екрана доволі низька. В моїй читалці, якій декілька років, сторінка оновлюється доволі повільно що помітно навіть візуально. Відтворювати на ній відео нормально не вийде, буде десь 1 кадр на секунду, а можливо й менше.
Хоча в сучасніших екранах з цим здається краще, але все одно не дуже швидко. Також часте оновлення екрану погіршить енергоефективність.
Знайдіть індекс елемента масиву, який потрібно видалити, за допомогою indexOf, а потім видаліть цей індекс за допомогою splice.
const array = [2, 5, 9];
console.log(array);
const index = array.indexOf(5);
if (index > -1) { // only splice array when item is found
array.splice(index, 1); // 2nd parameter means remove one item only
}
// array = [2, 9]
console.log(array);
Другим параметром splice є кількість елементів, які потрібно видалити. Зауважте, що splice модифікує масив на місці та повертає новий масив, що містить елементи, які було видалено.
Схоже така поведінка відбувається через те що URL для ajax запитів такий самий як і для запитів без ajax (сервер визначає по заголовкам яку саме сторінку віддавати). Якщо для ajax запитів використовувати інший URL, то такої проблеми не виникає.
Змінив код наступним чином:
function ajaxLinkLoad(event, target) {
var url = target.getAttribute('href');
// Додав в URL параметр ajax
axios.get(url, {params: {ajax: 1}}).then(function (response) {
document.getElmentById('content').innerHTML = response.data;
// А в історію записується звичайний URL без параметра ajax
window.history.pushState(null, null, url);
});
event.preventDefault();
}
У Laravel v10.20 з'явився новий метод createOrFirst(), запропонований Тоні Мессіасом (Tony Messias), який може дещо заплутати, оскільки в Laravel вже був firstOrCreate(). У чому ж полягає різниця?
createOrFirst()
Новий метод createOrFirst() призначений для кращої продуктивності в висококонкурентних середовищах та допомагає зменшити конфлікти, але вимагає наявності унікального індекса в базі даних.
За допомогою createOrFirst ми інвертуємо цей процес і розраховуємо на те, що таблиці мають унікальний індекс. Спочатку ми намагаємося створити запис, і якщо ми отримуємо від бази даних виключення, і встановлюємо, що це порушення унікального індекса, ми намагаємося замість цього знайти відповідний запис. Таким чином, конкурентні процеси можуть розраховувати на характеристики ACID бази даних і більше не турбуватися про цю конфліктну ситуацію.
firstOrCreate()
firstOrCreate був оригінальним методом, і ось як він зараз визначений в документації:
Метод firstOrCreate намагатиметься знайти запис в базі даних за допомогою вказаних пар колонка/значення. Якщо модель не вдасться знайти в базі даних, буде вставлено запис з атрибутами, отриманими в результаті злиття першого аргументу масиву з необов'язковим другим аргументом масиву
Що ще круто в цьому новому методі, так це те, що тепер оригінальний метод firstOrCreate використовує новий метод createOrFirst під капотом. Отже, це відбувається наступним чином:
спроба знайти;
якщо не знайдено, спроба створення;
якщо відбувається порушення унікальності, спроба іншого пошуку через конфліктну ситуацію.
Що використовувати?
Я б сказав, що для більшості програм, оригінальний firstOrCreate підійде, і ви захочете використовувати createOrFirst тільки тоді, коли будете працювати в висококонкурентному середовищі з великими обсягами трафіку.
Я б рекомендував вибирати серед найпопулярніших дистрибутивів: Ubuntu, Mint, Fedora, Manjaro.
Вибирайте яка графічна оболонка вам більше подобається (KDE, Gnome, Mate, Cinnamon, Unity, Pantheon, Xfce) і далі вибирайте з топових дистрибутивів які йдуть з цією оболонкою
Ось функція яка має вирішити задачу:
Там можна перший місяць користуватися безкоштовно, принаймні раніше така опція була.
У випадку мовних моделей B означає мільярд, тобто 11B це модель яка містить 11 мільярдів зв'язків (в реальності там трохи складніше). І так, чим більше в моделі параметрів тим більше треба пам'яті щоб запустити модель.
Модель це кінцевий файл який отримали в результаті тренування на великій кількості даних та GPU. В ній містяться дані які "запам'ятала" нейронна мережа (зв’язки між словами та фразами) і на основі цих даних може генерувати відповіді на питання. Це не зовсім те що потрібно для пошуку по сайту, та і для навчання на своїх даних треба багато потужних GPU.
Ось приклад розмови GPT між собою
Для цього потрібно:
<leader>fg
<C-q>
для перенесення знайдених файлів до списку quickfixcdo
для заміни, приклад команди:cdo s/old_text/new_text/g
, абоgc
якщо треба підтверджувати кожну заміну.:wa
На скільки я знаю, зараз однією з найкращих відкритих мовних моделей є Mistral
Локально багато мовних моделей можна запустити за допомогою проєку Ollama
Також можу порекомендувати веб інтерфейс Open WebUI через який можна скачувати і запускати різні мовні моделі.
Я знаю ukraine.com.ua, але я там тримаю тільки українські домени.
В e-ink дисплеях швидкість оновлення екрана доволі низька. В моїй читалці, якій декілька років, сторінка оновлюється доволі повільно що помітно навіть візуально. Відтворювати на ній відео нормально не вийде, буде десь 1 кадр на секунду, а можливо й менше.
Хоча в сучасніших екранах з цим здається краще, але все одно не дуже швидко. Також часте оновлення екрану погіршить енергоефективність.
Знайшов рішення цієї проблеми на Reddit
Для цього достатньо сильно подути в отвори біля колеса, це має вирішити проблему.
Якщо проблема програмна, то варто перевірити
/var/log/syslog
таjournalctl
, там має бути видно що останнє запускалося.Якщо проблема апаратна, то ядро може падати в Kernel panic, для перевірки необхідно підключити монітор і можливо буде зрозуміла причина.
Прибрав
expo-router/babel
з файлуbabel.config.js
і все працює.Знайдіть індекс елемента масиву, який потрібно видалити, за допомогою
indexOf
, а потім видаліть цей індекс за допомогоюsplice
.Другим параметром
splice
є кількість елементів, які потрібно видалити. Зауважте, щоsplice
модифікує масив на місці та повертає новий масив, що містить елементи, які було видалено.Обмеження при створенні статті наступні:
[]{}#%^&()=\|/"~
) та emoji.Як на мене це і буде оптимальне рішення для даної задачі.
Спочатку обходимо список коментарів і розділяємо їх на 2 групи:
rootComments
) у яких немаєto_comment_id
і з яких почнеться деревоchildComments
) на коментарі де ключto_comment_id
, а значення - це список коментарів зі вказанимto_comment_id
А далі рекурсивно рендеримо дерево коментарів починаючи з кореневих коментарів:
Html віджет коментаря:
Схоже така поведінка відбувається через те що URL для ajax запитів такий самий як і для запитів без ajax (сервер визначає по заголовкам яку саме сторінку віддавати). Якщо для ajax запитів використовувати інший URL, то такої проблеми не виникає.
Змінив код наступним чином:
У Laravel v10.20 з'явився новий метод
createOrFirst()
, запропонований Тоні Мессіасом (Tony Messias), який може дещо заплутати, оскільки в Laravel вже бувfirstOrCreate()
. У чому ж полягає різниця?createOrFirst()
Новий метод
createOrFirst()
призначений для кращої продуктивності в висококонкурентних середовищах та допомагає зменшити конфлікти, але вимагає наявності унікального індекса в базі даних.За допомогою
createOrFirst
ми інвертуємо цей процес і розраховуємо на те, що таблиці мають унікальний індекс. Спочатку ми намагаємося створити запис, і якщо ми отримуємо від бази даних виключення, і встановлюємо, що це порушення унікального індекса, ми намагаємося замість цього знайти відповідний запис. Таким чином, конкурентні процеси можуть розраховувати на характеристики ACID бази даних і більше не турбуватися про цю конфліктну ситуацію.firstOrCreate()
firstOrCreate
був оригінальним методом, і ось як він зараз визначений в документації:Метод
firstOrCreate
намагатиметься знайти запис в базі даних за допомогою вказаних пар колонка/значення. Якщо модель не вдасться знайти в базі даних, буде вставлено запис з атрибутами, отриманими в результаті злиття першого аргументу масиву з необов'язковим другим аргументом масивуЩо ще круто в цьому новому методі, так це те, що тепер оригінальний метод
firstOrCreate
використовує новий методcreateOrFirst
під капотом. Отже, це відбувається наступним чином:Що використовувати?
Я б сказав, що для більшості програм, оригінальний
firstOrCreate
підійде, і ви захочете використовуватиcreateOrFirst
тільки тоді, коли будете працювати в висококонкурентному середовищі з великими обсягами трафіку.В редакторі EasyMDE курсором являється елемент
<div>
з класом.CodeMirror-cursor
. Тому необхідно змінити колір уborder-left
цього елементуЯ б рекомендував вибирати серед найпопулярніших дистрибутивів: Ubuntu, Mint, Fedora, Manjaro. Вибирайте яка графічна оболонка вам більше подобається (KDE, Gnome, Mate, Cinnamon, Unity, Pantheon, Xfce) і далі вибирайте з топових дистрибутивів які йдуть з цією оболонкою
Кожна HTML сторінка починається з тега
<html>
і закінчується закриваючим тегом</html>
Перед тегом
<html>
також необхідно вказати тип документа наступним тегом<!DOCTYPE html>
Приклад веб сторнки
Для сворення маркованого списку використовується тег
<ul>
Приклад маркованого списку
Результат
Для сворення нумерованого списку використовується тег
<ol>
Приклад нумерованого списку
Результат
Тому що вчора вийшла версія
importlib-metadata
v5.0.0, яка видаляє застарілі endpoint'и.Ви можете вказати
importlib-metadata<5.0
у вашому файліsetup.py
, для того, щоб він не встановлював останню версію.Або якщо ви використовуєте файл requirements.txt, ви також можете встановити
importlib-metadata
нижче версії 5.0, наприкладimportlib-metadata==4.13.0
Докладніше можете почитати тут: https://importlib-metadata.readthedocs.io/en/latest/history.html
Для стоврення абзацу використовується тег
<p>
Приклад використання
Результат:
Абзац 1
Абзац 2
Підписуйтесь на щотижневу розсилку
Отримуйте найкращі статті тижня на поштуПідписуйтесь на щотижневу розсилку