Останні коментарі

  1. Перше місце, куди я дивлюсь при виникненні специфічної проблеми яку необхідно вирішити -- це Packagist, де хтось, її, можливо, вже вирішив.

    Ніколи не відвідую Packagist хіба що коли мені треба оновити API для пакунків. Хіба там є баг трекер? Packagist - це просто резольвер для Composer. Весь двіж на GitHub чи іншому сховищі, на який Packagist лінкує пакунок.

  2. Напишу простіше:

    1. composer init
    2. git commit -m 'init composer package'
    3. git push

    Система сумісності новачкам не треба, стандартно composer init запропонує актуальну версію PSR на момент створення проекту.

    Що б я дійсно порадив то це ознайомитись з основами https://semver.org/lang/uk/

  3. При всій повазі до філософії Ruby, за 15 років так і не знайшов вагомі причини написати хоча б одну програму на продакшн. Можливо через власну інертність бо все життя працював з PHP і мені простіше читати логіку цією мовою - тому пишу нею навіть там де вона не в профілі (ось як наприклад сервери для різних протоколів).

    PHP в принципі хоч і з затримкою але рухається в правильному векторі, особливо після релізу вісімки. Думаю в перспективі може стати однією з основних мов для розробки десктоп застосунків. По типу того, як це сталось із JavaScript / Node.js

    Ну і додам, що PHP має C-like синтаксис, тому володіючи цією мовою буде трохи простіше перестрибнути в цю сферу після пісочниці у веб проектах.

  4. Зараз поправлю. Занадто довгий title, не вдалося зберегти.

    PDOException: SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'title' at row 1
    
  5. Щось не додається лінк в новій темі, завісло з повідомленням "Отримуємо дані по URL"

  6. Ну мінуси цього варіанту я описав, в мене кожен "перший" клієнт на ньому та іноді стає питання переїзду через інертність підтримки і пасування на їхні доки замість допомоги в конкретному питанні.

    Я вважаю що мають обслуговувати реальні люди а не якісь кол-центри, що не можуть осилити кількість нубів яких вони набрали собі в клієнтську базу, ігноруючи технічні питання.

  7. В принципі ми і рухаємося в цьому напрямку, в соціальних мережах ботів вже не мало.

  8. Схоже що скоро боти будуть самі з собою розмовляти а ми так мовчки на цей спіч дивитись зі сторони)

  9. Замість youtube-dl зараз актуально використовувати yt-dlp

    також є реалізація графічного інтерфейсу

  10. Дуже корисно. Дякую!

  11. Як частний SEO-спеціаліст, я добре знаю важливість глибокої оптимізації веб-сайтів на платформі WordPress. На моєму сайті, який я вказав вище, я активно користуюся рядом плагінів для підвищення продуктивності та SEO. Цікаво, які плагіни Ви вважає найбільш ефективними для оптимізації WordPress? Можливо, ви знаєте про деякі менш відомі, але потужні інструменти?

  12. Чудово, дуже сподобалось)

  13. як ставлю проксю, вже лiнк в таймаут летить, ip корректний компа, перегуглил, хз що це(

  14. Зараз там якийсь дивний текст на сторінці. Можливо сайт зламали чи ддосять.

  15. Пише Forbidden

  16. Все таки не витримав і вирішив спробувати на практиці - роблю браузер для Gemini бо не можу вичавити з разрабів існуючих такі речі як кастомний DNS резольвер та кешування історії в локальні файли.

    Так як в мене вже є ліба на PHP, вирішив не писати його на Rust, як було задумано (можливо перепишу пізніше але мені поки все подобається)

    1. Фреймворк працює стабільно, іноді відсутні деякі методи, але розробник їх додає після репортів. Компілив з репозиторіїв все без проблем на Debian 12.
    2. З багатопоточністю так, може дається в знаки відсутність досвіду, але я наприклад не можу оновити трей після завантаження сторінки, бо перший сетер переписується другим. Треба якісь костилі або петлі фреймів.
    3. Після HTML робота з GTK це трешак. Проблема не в ООП, а в тому що новачку важко второпати документацію, в мережі мало прикладів, які є - ті застарілі для двійки, доводиться читати всіма мовами зокрема C і Python.

    В цілому до ліби питань немає, давно хотів створити програму для GTK бо саме у цьому середовищі більш звична обробка подій, робота з текстом і тд.

    Сам браузер поки сирий але вже може частково відкривати сторінки Gemtext, реалізована обробка розмітки; закладена робота з табами, реалізовані кнопки історії. Ось застряг з елементарною задачею додати кнопку "закрити" в таб GtkNotebook. Не знаю може глюк з PHP-GTK бо все перепробував

  17. Я сам не знаю який сенс залазити в обгортку cpp, з іншого боку, таке явище як node.js говорить саме за себе.

    Дивно що цей проект навіть живий, власне додав собі в закладки, може спробую, але маючи досвід років може 15 в PHP, мені все одно не просто второпати в суть роботи, бо для програм GTK, QT тощо треба знати саме специфіку фреймворку а не мови на якій написане їх API.

  18. Не знаю на скільки в цьому є сенс. В PHP немає нормальної багатопотоковісті, а для подібних програм потрібен як мінімум окремий потік для керування інтерфейсом.

  19. Домен codeguida.com зараз у мене. Я відновив статті які там були з archive.org, вони зараз також доступні по старим адресам. Якщо там були ваші статті я можу їх перенести на ваш акаунт.

  20. Ей, випадково перейшов з свого твітера, це ж моя стаття, а не Codeguida як і ось ця https://devzone.org.ua/post/bazova-konfihuratsiia-vim-dlia-frontend-rozrobky

  21. Можна ще через extended search - те само є в доках і до мантікори. Це щоб не робити багаторівневі перевірки в коді. Методом suggest ще не користувався, так що дякую Вам!

  22. Ще раз вдячна за відповідь, вирішилось все досить простіше (як Ви й писали раніше, мантікора дивує рішеннями з коробки), тобто в першу чергу (пріоритетом), роблю пошук по прямому входженню пошукового ключа, якщо к-сть документів 0, тоді 2-га ітерація йде по повнотекстовому пошуку, якщо і там 0-вий результат, тоді вже через suggest, якщо є значення (docs) тоді вже вибірка ключа і повнотекстовий пошук по ньому, як на мене, оптимальна покроковість для отримання результату, якраз suggest і вирішує автокоррекцію помилок та транслітерацію алгоритм пошуку

  23. $search->match('@name біііг')

    Тут я взагалі не знаю, як рушій має визначити термін, хіба що ви якось налаштуєте суфікси окремо, або інтегруєте корекцію орфографії до вводу.

    ",su" -> "біг"

    Це не транслітерація, а швидше питання по конкретній розкладці клавіатури (не у всіх ці літери на вказаних клавішах), це до слова.

    Якщо у вас нестандартний ввід і немає бажання розбиратись зі словниками / keymap, то я б радив обробляти корекцію на рівні php. Сюди ж не забудьте про екранування спец. символів - це у вашому випадку може також збивати з толку.

    Підключитись до сервера можна командою mysql -P9306 -h0 але спочатку встановіть MySQL клієнт для запитів SQL (не плутати з сервером).

    Питання краще задавати напряму на GitHub Issues або Discussions (посилання вище), якщо проблеми з перекладом то через Google translator, або тут в розділ Q&A. Бо як мінімум можна виділити 3 питання на 3 окремі треди, таке в коментах не вирішується

  24. Дякую за відповідь, зокрема задача по транслітерації знайшла новий оберт, щодо "extended search", чи не напишете кілька рядків", бо я через PHP клієнт працюю, не чистими query відправляю запити. Щодо обробника помилок, то малось на увазі, якщо по прикладу з попереднім повідомленнням, якщо вводити "біііг", щоб знаходило той же ж "біг", тобто коррекція, морфологію підключала як саундекс так і метафон, попередньо стіми enru ну і відповідно lemmatize_uk_all, і всерівно, пошук по типу:

    $search->match('@name біііг')
    

    результатом видає 0

    p.s. також не до кінця розумію, як грамотно прописати mantocore.conf, оскільки на сервері немає MYSQL, тільки сам мантікор крутиться на 9308, то ж дані передаю безпосередньо через PHP, створюючи індекси, але щось не розумію по секціям, зокрема common, чи можу там якось універсально вказати базу по лемматизатору, морфології, синонімам, charset_table, тощо. якщо є якісь приклади, буду вдячною, бо по документації вже 2-й тиждень розбираюсь і ніяк не докручу, зокрема з транслітерацією, оскільки ",su" -> "біг", так і не ловить ні зі словника словоформ ні з exceptions, а при перегляді call keywords, видно, що нормалізація не бачить переклади, можливо порядок підключення модулів по ключу:

    'morphology' => 'soundex,metaphone,lemmatize_ru_all,stem_enru,lemmatize_uk_all'
    

    грає роль і тому не опрацьовує ?

  25. З усіх старих URL також були створені редіректи на нові.

    Також є автоматичні редіректи з не існуючих сторінок. Наприклад якщо взяти URL: https://devzone.org.ua/java-python (такої сторінки немає) але буде редірект на найбільш релевантну сторінку.

  26. Так, наче краще. Ще не вглядався толком але та ліба що радив - по декільком факторам пройшла поставлені в моїх проектах вимоги, тут не знаю якими стандартами воно керується, це треба код дивитись

    А пошук не просяде? Бо я думав для нових записів застосувати просто..

    Ну або 301 редірект додати..

  27. як реалізувати транслітерацію, щоб це окремими полями у індексі не робити [1]

    я користуюсь сторонньою бібліотекою дані транслітерую на етапі вводу, додаю в умову extended search. взагалі, може варто зробити це словником, але то довго, тому так.

    чи є якийсь генератор для словників, де б вхідним массивом надати дані, а генератор би опрацював вхідні закінчення для словоформ [2]

    хороше питання, поки не було такої потреби (зокрема для української мови) але поділюсь як буде практичний досвід!

    обробник помилок [3]

    яких саме помилок? шляхи внутрішніх журналів вказані в налаштуваннях searchd

    програмні помилки - стандартними методами обраної мови / бібліотеки відповідно

  28. Перевірив стандартний метод Str::slug, там є додатковий параметр language з яким генерується кращий slug. Тому залишаюся на стандартному методі.

    Повторно згенерував URL для всіх записів. Тепер, наче, виглядає краще.

  29. Дивний якийсь метод, якщо він стандартний для Laravel. Утім ніколи не працював з ним пишу на Symfony в основному.

    Подивіться, у будь якому разі, саме цю лібу обрав для себе, може є й кращі. Бо поточна нагадує почерк якогось геймера типу balab0n41k :D

  30. Я зараз використовую стандартний метод Str::slug який надається в Laravel.

    Але якщо запропонована бібліотека буде генерувати кращі посилання то я перейду на неї.

  31. Доброго часу, хороша оглядова стаття, також сподобався мантікор з пропрацьованими з коробки рішеннями, зокрема лемматизатор для укр. мови. хотілось би також технічні статті почитати по роботі з цим рушієм, оскільки мало є україновомних тьюторіалів, а те що англомовне, досить складно описане, зокрема, цікавить:

    1. як реалізувати транслітерацію, щоб це окремими полями у індексі не робити [1]
    2. чи є якийсь генератор для словників, де б вхідним массивом надати дані, а генератор би опрацював вхідні закінчення для словоформ [2]
    3. обробник помилок [3]

    прикладом є рядок: "дивовижна дистанція марафону передбачає біг та пробіжку на велику дистанцію усіх учасників забігу по всьому континенту ,su gj lbcnfywszv" [1] щоб корректно знайшло всі документи, де фігурує ",su" (на транслітерації корень слова "біг") [2] розумію, що є словник exceptions, але руками туди багатотисячні збіги вносити теж не корректно, по типу: "біганина, забіг, пробіжка, вибігати... тощо" [3] якщо введено по типу "бііг", "перебіжка" (корректне слово пробіжка), тощо.

  32. Якось не дуже розумію формулу транслітерації URI для заголовків на сайті, сумніваюсь що вона сприяє SEO.

    В своїх проектах користуюсь цією бібліотекою - доволі якісне рішення, до того ж нещодавно відбувся новий реліз.

  33. Швидко ви :)

    Не забудьте забекапити /etc/yggdrasil/yggdrasil.conf - там ваш приватний ключ на базі якого видано цю адресу.

    Щодо TRUSTED_HOSTS - спробуйте вказати діапазон [0200::/7] для Yggdrasil або всі IPv6 адреси [::]. Тут є приклади проксі для Nginx

    Якщо поставили Yggdrasil на комп'ютер, то переконайтесь що у вас працює фаєрвол, бо можна буде на тестовий веб сервер зайти (та інші сервіси, що стандартно працюють на 0.0.0.0), так як будь яка адреса в локальній мережі вважається виділеним IP.

  34. Саму мережу здається налаштував, адреса сайту [203:a396:bba7:a6e6:85e1:446a:faec:7ced]

    Ще треба розібратися з фреймворком щоб він пропускав запити з цієї мережі. Я використовую Laravel і там для цього необхідно налаштувати TRUSTED_HOSTS.

  35. Ну це по суті інтерфейс, подібно VPN, після встановлення згенерується адреса IPv6 з якої можна заходити на 80/443 порти. Для Yggdrasil не треба 443 бо трафік там вже зашифрований.

    Короче із сайтом нічого робити не треба, якщо у вас статичні лінки на ньому то просто додати кейс proxy_pass в nginx. Можна окремо прикрутити DNS Alfis.

    На сайті є матеріал - пишіть туди або задавайте їх в Q&A - думаю так буде зручніше.

  36. Не розбирався що це за мережа, але якщо не складно то можу налаштувати.

    Воно буде працювати якщо на одному сервері запущено декілька вебсайтів?

  37. Не маєте наміру опублікувати сайт в мережі Yggdrasil?

    Там не вистачає україномовного контенту, а робити проксі мені не дуже хочеться, коли є контакт з адміністратором.

    Щоб розмістити сайт в мережі, потрібен тільки VPS. Можу допомогти.

  38. Коли мій шлях в опенсорсі почався - того й не усвідомлював.

    Сам термін дізнався вже згодом з опису проектів якими користувався :) Здається це був перший сайт на Joomla, потім Linux ну і пішло-поїхало.

    Контрибуції не рахував, але так спочатку прикольно. Так чи інакше, ви ж вклад робите в еко-систему, без якої один проект по собі нічого не вартує.

  39. Ну я спочатку просто посилання з тегами додав, але трішки доповнив потім бо зовсім пусто було (не підтягнуло мікророзмітку мабуть)

    Гаразд, тоді буду публікувати якщо відкопаю щось цікаве ще.

    Дякую!

  40. Цей розділ якраз для цього і задуманий, поділитися цікавим матеріалом або написати замітку для обговорення яка не підходить ні до статей, ні до QnA.

    На сайті також є автоматичний класифікатор спаму, який перевіряє всі нові матеріали від користувачів. Він не завжди коректно визначає спам, в даному випадку він і спрацював. Подібні матеріали на сайті не відображаються (крім прямого посилання) поки модератор їх не затвердить.

  41. Спробував додати нову тему про тайлінговий менеджер але її не видно на сайті https://devzone.org.ua/topic/fluorite-window-manager

    Може не правильно зрозумів як і для чого цей розділ? Або просто кеш не оновився..

  42. Так вже давно таке є, навіть по тіні з супутників ботана можна виявити

  43. Як розробник з 15 річним досвідом перечитав і нічого не зрозумів :)

    Ось на цьому сайті в Q&A згенеровані відповіді ШІ, серед них шукаю відповіді реальних людей з досвідом а не ходячу енциклопедію.

  44. Ні, для цього вебсайту GitHub-у немає.

    Так, я в основному займаюся вебом і адмініструванням Linux.

  45. У вас є проект на GitHub?

    Може якось зробимо дзеркало для Gemini чи ви суто на веб орієнтуєтесь

    Думаю той файл дампу можна розпарсити і на базі Manticore зробити індекс сторінок в Gemtext

  46. ну якби воно все так вирішувалось то було б класно

    на практиці схожі помилки тягнуть купу залежностей а їх розробники не особливо переймаються версійністю

    є наприклад така штука як Семантичне Версіонування, але фактично проекти її не дотримуються і виходить розсинхрон. доводиться прямо все руками фіксити якщо ліба закинута більше року

    якщо це щось екзотичне, то вже маю звичку ставити з composer require some/lib:main-dev - як довбатись то вже відправити PR

  47. Щось не зрозумів: яким чином відбувається підміна - через шкідливі залежності в пакетних менеджерах?

    І до чого тут мова до встановлення чого попало звідки попало. Вибачайте але ні про що - зайшов почитати за посиланням - там взагалі якась риба на сайті.

  48. Так працює, дякую!

    Цікавий глюк був, вперше зіткнувся з таким і думав що це в мене щось з системою