Далучайцеся да нашага Тэлеграм-канала

Bel-Geek - гэта адкрытая пляцоўка для публікацыі артыкулаў розных аўтараў на беларускай мове на свабодныя тэмы.

Перад тым як прыступіць да стварэння ўласнага артыкула, трэба аўтарызавацца. Калі ў вас няма акаунта, то трэба зарэгістравацца на сайце па спасылцы: https://bel-geek.com/register.

Далей трэба націснуць на тры кропкі ў шапцы сайта, каб з'явілася меню. Выбраць пункт "Стварыць артыкул", і перайсці на старонку рэдактара, ці скарыстацца спасылкай: https://bel-geek.com/editor/add

Пры стварэнні артыкула абавязкова трэба дадаць назву артыкула, імя аўтара ды тэгі ў адпаведныя палі формы, пажадана дадаць апісанне.

Напрыклад:

Як бачна на малюнку, з правага боку будзе панэль, на якой знаходзіцца прадагляд артыкула. З левага боку - рэдактар.

Важна!

Захоўвайце час ад часу свае артыкулы з дапамогай кнопкі "Захаваць" (працуем над аўтазахаваннем), каб выпадкова не згубіць напісанае. Таксама можна захаваць напісанае і адкласці работу з артыкулам на іншы дзень.

Калі вы ўжо вядзеце блогі ў іншых сацыяльных сетках, то дадавайце спасылкі на іх у сваіх артыкулах, каб чытачы маглі знайсці больш цікавай ім інфармацыі.

Калі артыкул будзе гатовы, трэба перавесці перамыкач над рэдактарам тэксту "Паказваць усім" у актыўнае становішча і націснуць кнопку "Захаваць".

PS. Калі вы ствараеце пераклад - то абавязкова пакідайце спасылкі на арыгінал.


Карысныя спасылкі, якімі можна карыстацца падчас напісання артыкулаў:

Мноства слоўнікаў: https://slounik.org/

Правапіс слоў у розных склонах і ліках: https://starnik.by/

Артыкул
LoveJS, 2023-08-06

Згенераваны малюнак

Вітанкі, спадарства! Сёння мы з вамі паспрабуем стварыць уласны інструмент для генерацыі малюнкаў пры дапамозе ШІ-мадэлі FLUX. І крыху крынжу на прыканцы Мадэль - black-forest-labs/FLUX.1-dev

Рэгістрацыя на Hugging Face і стварэнне токена

Для таго каб мадэль была для нас дасяжнай, неабходна мець акаунт на Hugging Face (Рэгіструемся).

Далей пераходзім да пункту Access Tokens

ствараем токен

Ціснем кнопку Create token кнопка

І выбіраем наступныя чэкбоксы:

чэкбоксы

У выніку атрымаем ключ для доступу да мадэляў. Ён будзе выглядаць неяк так : hf_JaHyiMViSsScVvsvedjdjrwrXLqziMBdZSklpFg. Захавайце яго,бо калі згубіце - то прыйдзецца генераваць новы.

Запускаем скрыпт.

Наступным крокам будзе непасрэдна запуск нашай мадэлі. Запусціць наш код мы можам лакальна на нашым камп'ютары ці праз Google Collab. Ніжэй разгледзім абодва падыходы.

Для запуску на ўласным камп'ютары неабходна каб быў усталяваны Python ды pip. Як іх усталёўваць мы разглядаць сення не будзем.

Далей ствараем файл скрыпту flux.py. І запісваем у яго наступны код:

import os
from diffusers import FluxPipeline 
import torch
from datetime import datetime

# Ваш токен Hugging Face
os.environ["HF_TOKEN"] = "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"

pipe = FluxPipeline.from_pretrained("black-forest-labs/FLUX.1-dev", torch_dtype=torch.bfloat16)
pipe.enable_sequential_cpu_offload()  # Уключыць паслядоўную выгрузку на CPU
pipe.vae.enable_slicing()  
pipe.vae.enable_tiling()  

prompt = "Knights are marching in formation with swords and shields, dressed in various dark armors with closed helmets, in winter. Two soldiers are mounted on horses. They wear white cloaks with red crosses. They are returning to a nearby castle as snow falls. The atmosphere is gloomy, with ravens circling in the sky."
print(f"Prompt: {len(prompt)} characters")  # Друк даўжыні запыту

out = pipe(
    prompt=prompt,  # Запыт
    height=512,  # Вышыня выявы
    width=512*2,  # Шырыня выявы
    guidance_scale=3.5,  # Павялічыць, каб зрабіць кіраванне больш прыкметным
    num_inference_steps=30,  # Колькасць крокаў інферэнцыі
    max_sequence_length=512,  # Максімальная даўжыня запыту
    generator=torch.Generator(device='cuda').manual_seed(0),  # Генератар з фіксаваным seed для паўтаральнасці
).images[0]

# Генерацыя унікальнага імя файла з часовым штампам
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
output_filename = f"knights_white_horses_{timestamp}.png"

out.save(output_filename)  # Захаваць выяву
print(f"Image saved as {output_filename}")  # Друк імя захаванага файла

Дапісваем захаваны раней ключ з Hugging Face. Дадаем неабходны нам промпт з тэкстам, дэталева апісваючым што неабходна намаляваць.

Усталёўваем неабходную нам шырыню праз параметры height ды weight.

Вызначаем колькасць апрацовак малюнкаў праз num_inference_steps (чым больш тым лепш, але вельмі шмат - будзе вельмі доўга апрацоўвацца, таму можна браць 15-30. па змаўчанню - 50). Меньш - якасць выяў будзе дрэннай.

Параметр guidance_scale задае наколькі мадэль будзе "свавольнічаць":

  1. guidance_scale=3.5: Мадэль будзе арыентавацца на ваш запыт, але з некаторымі крэатыўнымі адхіленнямі.
  2. guidance_scale=7.5: Вынік будзе больш дакладна адпавядаць апісанню.
  3. guidance_scale=15.0: Мадэль можа "перашчыраваць" і стварыць менш натуральны вынік. Далей адчыняем камандную страку і выклікаем каманду
pip install diffusers torch

Пасля таго як неабходныя нам пакеты будуць спампаваныя - запускаем наш скрыпт камандай python flux.py.

Пры выкананні скрыпту пачнецца спампоўванне мадэлі (толькі першы раз), затым вы пабачыце лодэры якія пакажуць прагрэс стварэння выявы.
Увесь гэты працэс можа заняць першы раз шмат часу. Наступныя разы будзе значна хутчэй. Але ўсе ж улічвайце што стварэнне робіцца праз працэссар а не праз GPU таму час усе адно будзе вялікі.

Запуск праз Google Collab.

Пераходзім на сайт Google Collab У вакне выбіраем Github і дадаем спасылку на ўжо створаны notebook файл - генерацыя_выяў.ipynb

https://github.com/bel-frontend/notebooks/blob/main/%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D1%8B%D1%8F_%D0%B2%D1%8B%D1%8F%D1%9E.ipynb

І націскаем на назву файла. У блакноце проста націскаем паслядоўна націскаем на кнопкі выканання коду.

Трэба адзначыць што праз Google Collab спатрэбіцца значна больш часу на генерацыю выявы. Але гэта ўсе так жа бязплатна і проста цікава.

Пасля таго як скрыпты адпрацуюць - у дрэве файлаў вы знойдзеце згенераваны малюнак, вы яго можаце спампаваць і "насалоджвацца" вынікам.

Вынікі

Давайце проста паглядзім на гэтыя шыкоўныя выявы:

Самыя крынжовыя з іх (Увага на коней):

-Хуткую выклікалі?

-Так! Для вунь тых вунь двух, што задам наперад на конях едуць

Крынж

-А чаму ў нас шлемы як у фрыцаў у першую сусветную?

-Ты мо яшчэ спытай у якім напрамку мы едзем!?

Крынж

-Хлопцы, глядзіця у мяне не конь а Аднарог!

-Ён у цябе і Аднавух і Аднавок! І ўвогуле што ты бачаш з вядром на галаве? Крынж

Але былі і прыгожыя:

Дзякуй усім хто дачытаў да канца. Спадзяюся Што артыкул быў для вас цікавы ды пазнавальны. Вельмі ўсім удзячны хто дачытаў да канца.

ЗЫ:

Спадарства, Запрашаем вас таксама ствараць цікавыя артыкулы, дзяліцца сваім досведам, пашыраць беларускамоўную прастору.

Flux
ШІ
Выявы
Admin, 2024-11-16

Парадак выпадковы, могуць быць як важныя, так і зусім не. Як цікавыя, так і банальныя. Калі не забуду, буду рабіць такое кожны дзень нараджэння.

За 28 год я зразумеў наступнае:

1) Не рабіць негатыўных дапушчэнняў, калі можна правесці танны эксперымент

Ужо шмат разоў у жыцці і працы я сутыкаўся з тым, што маё дапушчэнне наконт таго, што нешта не спрацуе аказвалася памылковым. Тое, што не нешта не працавала раней, не азначае, што яно не працуе цяпер. Рэчы змяняюцца. Калі можна правесці танны эксперымент, то лепей яго правесці.

2) Кнігі — адна з найлепшых крыніц ведаў

Сам фармат кнігі прымушае аўтара скласці веды і назірання ў прыдатную для чытача форму. З кнігай няма адчування ўпушчанай выгады, бо веды з яе звычайна актуальны дзесяцігоддзямі, у адрозненні ад артыкулаў і відэа ў інтэрнэце. Карацей — кнігі топ.

3) Мая памяць жахлівая

Я пастаянна забываю штосьці зрабіць, напрыклад, гэты тэкст я пішу перад працай, хаця яшчэ тыдзень таму я хацеў пачаць, каб не рабіць усё ў апошні момант. Карацей, трэба больш сур’ёзна весці каляндар і ставіць нагадванні на ўсё важнае.

4) Вучыць мовы не так складана

Зімой 2022 я не ведаў польскай мовы зусім, а цяпер я спакойна магу прачытаць кнігу па-польску ці паглядзець фільм. Гэты пры тым, што я не прыкладаў нейкіх наднамаганняў, каб яе вывучыць.

5) Дарагія рэчы ўсё адно не ідэальныя

Нават купляючы самую дарагую прыладу ў класе немагчыма атрымаць нешта ідэальная, гэта ўсё адно кампраміс. Колькі б не было грошай, усё адно прыйдзецца мірыцца з недасканаласцю рэчаў.

6) LLM пакуль не настолькі разумныя

Мая вера ў рэвалюцыю штучнага інтэлекту паменшацца з кожным днём актыўнай працы з ChatGPT і іншымі LLM. Так, у параўнанні з тым, што мы мелі раней — гэта ўражвае. Але пакуль не цягне на рэвалюцыю, сістэмы павінны стаць разоў у сто разумней, каб хаця б наблізіцца да чалавека. Але гэта ўсё адно добры інструмент для некаторых задач.

7) Часова = вельмі доўга

Мая часовая праца, каб замацавацца ў Польшчы трывае ўжо больш за 2 гады, я кожны дзень пакутую, прасвет ужо блізка, але ўсё ніяк не прыйдзе. Тое самае з часовымі прыладамі і іншым.

8) Некаторыя працэсы павольныя, і гэта трэба прыняць

Кар’ера не робіцца за два гады, у большасці крутых спецыялістаў стаж 10+ гадоў. Атрыманне віду на жыхарства ў Польшчы таксама займае час. Вучэнне моў займае час. Трэба ўмець разлічваць хаця б на пяць гадоў, бо не ўсё можна паспець зрабіць за месяц ці год.

9) Пасудамыйка гэта скарб скарбаў

Я навучыўся атрымліваць нейкую медытатыўную асалоду ад мыцця посуду пад падкасцік, але пасудамыйка гэта ўсё адно скарб. Бо з ёй замест мыцця посуду можна было б слухаць падкаст пад шпацыр ці заняткі спортам.

10) Другая змена — кайф

Калі не пашчасціла працаваць на добрай працы, на якую ходзіш з энтузіязмам, то другая змена — гэта ўратаванне. Я перанёс пачатак працы на 12:00, і ў першыя чатыры-пяць месяцаў я стаў супермэнам, з раніцы я паспяваў чытаць, пісаць допісы, гуляць у шахматы і гэтак далей. Цяпер я ўжо не такі актыўны з раніцы, але позні пачатак працы дапамагае падтрымліваць маё ментальнае здароўе, інакш я бы канчаткова звар’яцеў.

11) Варшава — прыемны горад

З Варшавай, у адрозненні ад Таліну, не здарылася любові з першага погляду. Але з часам пачынаеш атрымліваць асалоду ад таго, наколькі яна зялёная, вялікая, шматгранная і добра спалучаная з іншымі гарадамі.

12) Не запісаная думка = згубленая думка

Лепей запісваць усе свае думкі, мабыць 90% з іх не прыдатныя, але дзеля 10% каштоўных мае сэнс запісваць усё. Таму добра наладзіць нейкі шорткат на тэлефоне для хуткага запісу думак, нават галасавым.

13) Добра паменшыць паток інфармацыі

Я адпісаўся ад большасці Тэлеграм-каналаў, вялікую частку дадаў у архіў, цяпер я нарэшце магу прачытаць усе паведамлення. Па выніку я атрымліваю больш інфармацыі, а не менш.

14) У крытычныя моманты мозг вельмі крэатыўны

Я прыдумаў сам для сябе чэленджы, але з маёй памяццю я частка пра іх забываю, ўспамінаю у дзень дэдлайну ці нават пасля, і гэта прымушае мозг шукаць крэатыўнае выйсце. І як бы не было дзіўна, яно заўсёды знаходзіцца. Абсалютна не раю практыкаваць такое на працы, бо гэта велічэзны стрэс, а якасць усё адно не найлепшая, але цікава мець такія веды.

15) Кліпавы кантэнт — жах

Я думаў, што ў мяне ёсць імунітэт на кліпавы кантэнт, бо я разумею, як гэта працуе, але не. Я таксама як і ўсе марную пэўны час за праглядам кароткіх вертыкальных відэа. Адзінае маё апраўданне — яны па-ангельску, таму я падтрымліваю ўзровень мовы. Калі сур’ёзна, то я планую пазбавіцца гэтай залежнасці, і зраблю гэта.

16) Можна знайсці свой падыход да рэгулярнасці

Мне складана рабіць нешта штодзень, нават посціць BeReal кожны дзень не атрымліваецца, ёсць пропускі па два-тры дні. У апках для вывучэння моў вытрымаць стрык больш за 100 дзён вельмі складана. Але я нармальна даю рады з штотыднёвымі допісамі ў сваім Тэлеграм-канале. І гэта дае плён, раней я пісаў па натхненню, а цяпер не прывязаны да яго. Новы тыдзень — новы пост.

17) Правільныя танныя рэчы могуць рабіць жыццё лепей

Напрыклад, не так даўно купілі манетніцу, і гэта неверагодна зручная прылада, якая арганізуе ўсе гэтыя манеты ў зручным кластары па наміналах, што зрабіла закупы зручнейшымі. Ці замест папкі з металёвымі кольцамі мы набылі два пластыкавых арганайзера, якія аказаліся зручнейшымі, бо цяпер не трэба расціскаць нейкі механізм, каб дастаць дакумент — проста дастаеш.

18) Ліст жаданых рэчаў — добрая тэма

Я склаў ліст рэчаў, якія мне падабаюцца ў Notion, жонка папрасіла доступ да гэтай старонкі, і па выніку я атрымаў найлепшыя падарункі на Дзень нараджэння ў сваім жыцці. Адначасова збярогся момант сюрпрызу, але разам з тым, я атрымаў тое, што сапраўды хацеў.

19) Беларусы жывуць не толькі ў Беларусі

І я не пра міграцыю, а пра аўтахтонаў, якія стагоддзі жывуць, напрыклад, на Падляшшу. Вельмі цікава слухаць іх мову, бо яны зусім не маюць уплыву расейскай мовы, таму ніколі не зблытаюць „табе“ і „цябе“, але пры гэтым спакойна ўстаўляюць польскія словы ў сваю гаворку.

20) Каб выказвацца, пажадана мець экспертызу

Канапных экспертаў у кожнай галіне свету не бракуе, але гэта не азначае, што трэба далучацца да іх шэрагаў. Прачытаць хаця бы артыкул на Вікіпедыі, а лепей 2-3 кнігі перад тым, як дзяліцца са светам сваёй экспертнай думкай — вельмі карысна.

21) Непасрэдны досвед складана замяніць

Падчас вандровак падмячаеш такія драбніцы, якія складана заўважыць вывучаючы нешта праз інтэрнэт. Можна шмат чытаць пра нейкую кухню, але пакуль не з’ясі нейкую страву, ты не будзеш мець досведу. Тое самае з працай, ці нават жыццём. Бясконцае вывучэнне не заменіць досведу, але яно ўсё адно карысна.

22) Адукацыя патрэбна каб быць адукаваным

Быць адукаваным — гэта ўжо каштоўнасць. Не трэба прыдумляць наступныя крокі, накшталт: «мне трэба мець адукацыю, каб...»

23) Немагчымае можна спрасціць да выканальнага

Не ўсе на свеце, але большасць здавалася б немагчымых ці вельмі складаных рэчаў можна спрасціць да выканальных. Напісаць кнігу — складана ці амаль не магчыма, пісаць главу ў два тыдні і публікаваць у сацмедыя — выглядае цалкам рэальна. І так можна раскласці шмат што.

24) Трэба ўкладацца ў будучыню

За што будучы ты будзе ўдзячны цяперашняму табе, тое і трэба рабіць. Як мінімум некалькі гадзін у дзень.

25) Жыць момантам — добры псіхалагічны трук

Я падслухаў гэта ў украінскіх вайсковых, калі яны маюць час сон перад аперацыяй, яны проста спяць, і не думаюць за шмат пра тое, што адбудзецца праз кароткі час. Дадаткова сябе накручваць перад чымсьці, што можа станецца, а можа не — не карысна. Наказ могуць адмяніць, планы могуць змяніцца, а нават калі не, канцэнтрацыя на моманце дапамагае не вар’яцець.

26) Людзі — гэта важна

Хоць я даволі лёгка перажываю адсутнасць блізкіх людзей побач, але гэта толькі таму, што самы блізкі чалавек побач кожны дзень, і я магу раздзяліць з ёй усё на свеце. Частка блізкіх побач віртуальна, і гэта таксама дапамагае. Быць зусім аднаму было б неверагодна складана.

27) Жыццё — гэта РПГ

У мяне быў неверагодны жыццёвы досвед, калі маё жыццё выглядала як кіно, але ўсё абарвалася нават не дасягнуўшы кульмінацыі. Большасць фільмаў-біяграфій выразаюць палову, ці нават змяняюць факты, каб было больш цікава. Але параўнанне жыцця з РПГ даволі слушнае. Набор квэстаў, частка з якіх аўтаматычна-генерыраваныя, каб проста павялічыць час праходжання. Ну, агульна даволі падобна.

28) Удзячнасць — добрая рыса

Добра умець сказаць дзякуй бацькам, блізкім, сябрам, родным, і ўсім, хто неяк табе дапамог. На жаль, прамаўляць сваю ўдзячнасць не вельмі прынята, для гэтага трэба шукаць нейкі повад. Але раю знаходзіць такія повады, ці пераступаць праз нялоўкасць, і казаць «дзякуй» проста ў выпадковы момант.

Да сустрэчы ў наступным годзе

дзень
нараджэня
Aleś Karoza, 2024-08-06

Асноўнымі крыніцамі інфармацыі аб тых далёкіх часах для гісторыкаў выступаюць розныя летапісы і паданні, як уласныя, так і летапісы суседзяў, падцвержваючыя ці адмаўляючыя падзеі розных гадоў. Але на жаль, праз цемру стагоддзяў не дайшлі да нас летапісы Полацкі, Мінскі, Друцкі і Віцебскі. Усе з аднаго рэгіёна. У той жа час захаваліся летапісы кіеўскія, ноўгарадскія, цвярскія і маскоўскія. Але ж войнаў і пажараў у суседзяў было не меньш. Няма адказаў, чаму так атрымалася. Згінулі тыя летапісы падчас бясконцых войнаў, знішчаныя захопнікамі ў вогнішчах, ці былі скрадзеныя і схаваныя на доўгія гады, як Крыж Еўфрасінні? Хацелася б спадзявацца на апошняе, бо тады ёсць шанец, што ўсё ж хоць нешта захавалася, і вернецца калі-небудзь дадому. Навошта было хаваць летапісы, спытаецеся вы? Няма іншага адказу, акрамя таго, што яны занадта супярэчылі вядомым. Напрыклад, у вядомых на сёння летапісных сборах няма ніводнага слова пра Еўфрасінню Полацкую, нягледзячы на яе вядомасць ад Ноўгарада да Кастанцінопаля.

А можа іх ніколі не было? Дакладна былі. Полацкая бібліятэка пачала збірацца з 10 стагоддзя. Пры манастырах існавалі скрыпторыі (месцы для перапісвання кніг). На пачатак вайны з Маскоўскім княствам вядома пра мінімум 3 вялікія бібліятэкі - у Сафіі, Спасаўскім і Барысаглебскім манастырах з тысячамі кніг у кожнай. Сюды трэба таксама дадаць кнігі, якія захоўваліся пры кожным храме і выкарыстоўваліся пры службах. Захавалася паведамленне тых часоў Рэйнагальда Гейдэнштейна - асабістага сакратара Стэфана Баторыі, якое датуецца жніўнем 1579 года ("Запіскі аб Маскоўскай вайне") "У вачах адукаваных людзей амаль не меньшую каштоўнасць, чым уся астатняя здабыча, мела знойдзеная там бібліятэка. Апрача летапісаў, у ёй было многа твораў грэцкіх айцоў царквы ..." То бок, летапісы існавалі. Шмат кніг кніг было адразу спалена, частка перавезеная ў Масковію. Бібліятэка Маскоўскага княства налічвала да вайны каля паўтысячы кніг.

Навошта я гэта распавядаю? Таму што сёння шэраг гісторыкаў, у тым ліку і нашых, мяркуюць, што Полацкае княства існавала, хоць і побач з Кіевам і Наўгарадам, але асобна. Іх доказы маюць рацыю, але ж гэта асобная вялізная тэма. А сёння я толькі закрану адзін з фактаў, які ўскосна сведчыць аб самастойнасці Полацка. Зноў хацелася б падкрэсліць, што мала захавалася звестак пра падзеі тых часоў, ды і самі летапісы не пісаліся з мэтай дакладнага занатавання тых падзей, хутчэй каб праслаўляць подзьвігі сваёй дзяржавы і выбітных асоб. Таму побач з большасцю напісанага можна паставіць пытальнік. Пачынаем!

Равалод і Рагнеда

Першы вядомы князь Полацкага княства - Рагвалод, пра якога вядома, што ён прыйшоў з-за мора і меў надзел у Полацку. Быў ці то прадстаўніком мясцовай дынастыі, ці то паходзіў з вікінгаў. У Рагвалода была жонка, дачка Рагнеда і 2 сыны. Шлюб з дачкой Рагвалода азначаў хаўрус і падтрымку Полацкага княства, таму да Рагнеды, якая дасягнула ўзросту нявесты ў 12 год, адначасова (ці амаль адначасова) пасваталіся два браты. Спачатку Яраполк, князь кіеўскі. А потым і брат яго, наўгарадскі князь Уладзімір. Уладзімір быў сынам князя Святаслава і сынам рабыні Малушы, і ўнукам княгіні Вольгі. Той самай, якая помсціла драўлянам за забітага мужа князя Ігара, які другі раз пайшоў збіраць з драўлянаў даніну ды не вярнуўся. Люта і вытанчана адпомсціла Вольга драўлянам за мужа. А шалёны бабкін характар перадаўся ўнуку, які не саступаў бабцы ў вынаходніцтве і бязлітаснасці.

Равалод і Рагнеда

Злева - сваты Улідзіміра. Справа - Рагвалод і Рагнеда

Перавагу Рагнеда (ці сам Рагвалод, бо Рагнедзе на той час было толькі 12 год) аддала Яраполку, князю кіеўскаму, а Уладзіміру была дасланая адмова "Не хачу рабыніча разуці." У той час існаваў звычай, што маладая жонка павінна здымаць абутак з ног мужа ў першую шлюбную ноч. І пагардлівы напамін, што Уладзімір - сын рабыні, раз'юшыў апошняга. Назбіраў Уладзімір вялізнае войска і рушыў на Полацк. Недзе пад Полацкам сустрэла войска Уладзіміра спехам скліканая дружына Рагвалода, але была разбітая. Рагвалод вярнуўся ў Полацк. Уладзімір сілай узяў Рагнеду за жонку, перад гэтым згвалціўшы яе на вачах родных (тут супярэчлівы факт), а потым забіўшы на яе вачах усю яе сямью. Рагвалодаў род па мужчынскай лініі абарваўся. Пазней Уладзімір забіў Яраполка і стаў кіеўскім князем.

Захоп Полацка князем Уладзімірам

Захоп Полацка Уладзімірам

А Рагнеда атрымала імя Гарыслава і стала другой з шасці жонак Уладзіміра (акрамя жонак меў яшчэ каля 800 наложніц), які на той час быў паганцам. Жыла Рагнеда ў вёсцы пад Кіевам, якую пазней назавуць нібыта па імені Рагнедавай дачкі Прадславіна. Зрэдку муж наведваўся да яе. Аднойчы, у адзін з такіх візітаў Уладзімір заснуў, і Рагнеда наважылася адпомсціць. Але ж у апошняе імгненне Уладзімір прачнуўся і перахапіў руку Рагнеды з мячом. Рагнеду чакала пакаранне смерцю. Невядома, што там дакладна адбылося, але з пакоі аказаўся малы сын Ізяслаў (гадоў 6-7), які заступіўся за маці, таксама з мячом у руцэ. Тады, параіўшыся з баярамі, Уладзімір вырашае адправіць Рагнеду разам з сынам далей ад Кіева. Так Рагнеда апынулася ў маленькім драўляным крывіцка-дрыгавіцкім памежным Заслаўі (Ізяслаўлі). І вось тут незразумелы факт. Ізяслаў лічыцца старэйшым сынам Уладзіміра і Рагнеды, то бок ён - першы спадкаемец кіеўскага пасаду. Чаму Ранеда, меўшая некалькі дзяцей ад Уладзіміра, была высланая толькі з малым Ізяславам? Таму што ён заступіўся за маці ці таму, што быў сынам не Уладзіміра? Існуе версія, што да трагічных падзей у Полацку Рагнеда ўжо была некаторы час замужам за Яраполкам(?) і мела ад яго сына. А бацькоўства Уладзіміра дапісалі пазней, каб мець законныя пасяганні на полацкую зямлю.

Замах на забойства Уладзіміра

Спроба забойства Уладзіміра

Але ж як бы там не было, але ад адзінага сына Рагнеды узнавілася полацкая княжая дынастыя Рагвалодавічаў. Цікава, што доўгія стагоддзі пасля пазбягалі полацкія князі называць сваіх сыноў імем Уладзімір.

Ізяслаў бароніць Раннеду

Ізяслаў бароніць Рагнеду

Уладзімір жа надумаў абвянчацца з грэцкай прынцэсай Ганнай. Але для гэтага яму трэба было распусціць свой гарэм, адмовіцца ад 6 жонак і прыняць хрысціянства. Складаней за усіх было пытанне з Рагнедай, бо яна была княскага роду. Летапісы сведчаць, што Уладзімір прапанаваў ёй пабрацца шлюбам з адным са сваіх баяраў, але Рагнеда адмовілася, а замест гэтага вырашыла прыняць пострыг у манастыр.

Тут не вядомая дакладна храналогія тых падзей. Ці то спачатку была спроба помсты і выгнанне, а потым прапанова шлюбу з баярынам, ці то спачатку Уладзімір вырашыў ажаніцца з грэцкай царэўнай, а пасля гэтага - замах. Але я хачу звярнуць вашую увагу на іншы цікавы факт - пострыг у манахіні.

Ва ўсіх дзяржавах Еўропы ўслед за палітычным самавызначэннем ішло афіцыйнае прызнанне хрысціянства і наданне яму статуса дзяржаўнай рэлігіі.

10 век вядомы як час хуткага распаўсюджвання хрысціянства ў Скандынавіі. Данія, Нарвегі, Швецыя, утварыўшы першыя дзяржавы, следам за франкамі, Брытанскімі каралеўствамі, Цэнтральнай Еўропай, прымаюць дзяржаўнай рэлігіей хрысціянства. У "Саге аб хрышчэнні" 12-13 стагоддзяў распавядаецца пра Торвальда-вандроўніка, які прымаў значны удзел у хрышчэнні Ісландыі. Адтуль ён выправіўся ў паломніцтва у Ерусалім, дзе быў у вялікай пашане ў імператара і патрыярха. Вяртаўся Торвальд у Скандынавію праз Кіеў і Полацк, дзе заснаваў манастыр і храм Іаана-Хрысціцеля. Торвальд памёр, не дабраўшыся да радзімы і быў пахаронены каля гэтага манастыра. Гэтая сага - першы ўзгад хрысціян на Полацкай зямлі. Калі Полацкае княства было незалежным, і Рагалод ці то быў скандзінавам, ці то некаторы час знаходзіўся ў тых землях, то тады становіцца зразумела, чаму Торвальд змог заснаваць манастыр у Полацку.

Бліжэйшыя "аналагічныя" храмы можна знайсці ў Ерусаліме (5 ст.) і Керчы (8 -9 ст.), што супадае са шляхам Торвальда ад Ерусаліма да Полацка. Другія аналагічныя па назве цэрквы з'явіліся значна пазней, прыблізна ў 18-19 стагоддзях.

Манастыр і храм Іаана Хрысціцеля ў Полацку сапраўды існаваў, бо аб ім узгадваюць граматы 14 стагоддзя як аб "Манастыры Іаана Прадцечы на Востраве". На жаль, дакладнае месца знаходжання таго манастыра невядомае, бо меркаванае месцазнаходжанне сёння шчыльна забудаванае сучаснымі будынкамі і правесці раскопкі пакуль што немагчыма.

Існаванне хрысціянскага манастыра ў 10 стагоддзі ў Полацку сведчыць аб тым, што у Полацкую зямлю хрысціянства прыйшло раней за Кіеў.

Прыняць сан, не прайшоўшы паслушэнства, а тым больш без глыбокай веры ў Хрыста, немагчыма. Таму можна зрабіць вывад, што на момант прыняцця сана Рагнеда доўгі час была шчыра веруючай хрысціянкай. Гэта быў вялікі духоўны подзвіг! У тыя часы не было ва ўсходняй Еўропе жанчын-манашак. Нават для заходняй Еўропы гэта была рэдкая з'ява. Росквіт жаночага манаства пачаўся там толькі з 12 стагоддзя.

Рангеда прыняла пострыг і пражыла ў манастары каля 20 гадоў, а яе сына Ізяслава абралі на княскі пасад у Полацку ва ўзросце 11 гадоў.

У артыкуле ёсць цытаты і звесткі з кнігі вядомага гісторыка і археолага Сяргея Тараса "Еўфрасіння - Офрасіння - Афрасіння Полацкая. Яе час, яе крыж.", звесткі з Вікіпедыі і інш.

history
Ragneda
Polotsk
BiełaruskiBajan, 2024-09-28

Прывітанне сябры.


Сення для вас пакрокавы агляд зменаў у JS згодна са стандартамі ECMAScript (ES), пачынаючы з ES6 (2015) і далей, з кароткім апісаннем і прыкладамі кода для кожнай функцыі:

2015 (ES6 / ECMAScript 2015)

Let і Const

Апісанне: Пераменныя з блочным узроўнем бачнасці. let дазваляе перапрызначэнне пераменнай, у той час як const робіць пераменныю нязменнай.

Прыклад:

let count = 10;
const name = "Alice";

Стрэлачныя функцыі (Arrow Functions)

Апісанне: Карацейшы сінтаксіс і няма oласных this, constructor, args.

Прыклад:

const add = (a, b) => a + b;

Шаблонныя літэралы (Template Literals)

Апісанне: Пашыраныя літэралы для ўстаўкі значэнняў у радкі і шматрадковыя радкі з выкарыстаннем зваротных апострафаў.

Прыклад:

const greeting = `Hello, ${name}!`;

Класы (Classes)

Апісанне: Сінтаксіс class для стварэння канструктарных функцый і наследавання.

Прыклад:

class Person {
  constructor(name) {
    this.name = name;
  }
  greet() {
    return `Hello, ${this.name}`;
  }
}

Модулі (Modules)

Апісанне: Падтрымка модуляў з выкарыстаннем ключавых слоў import і export.

Прыклад:

// module.js
export const name = "Alice";

// main.js
import { name } from './module.js';

Дэструктурызацыя (Destructuring Assignment)

Апісанне: Выняцце значэнняў з масіваў або ўласцівасцяў аб'ектаў у пераменныя.

Прыклад

:const [x, y] = [1, 2];
const { name, age } = { name: "Alice", age: 25 };

Параметры па змаўчанні (Default Parameters)

Апісанне: Параметры функцый могуць мець значэнні па змаўчанні.

Прыклад:

function greet(name = "Guest") {
  return `Hello, ${name}`;
}

Аператары Spread і Rest

Апісанне: Spread (...) раздзяляе масівы/аб'екты; Rest (...) збірае астатнія элементы.

Прыклад:

const numbers = [1, 2, 3];
const moreNumbers = [...numbers, 4, 5];

function sum(...args) {
  return args.reduce((a, b) => a + b, 0);
}

Промісы (Promises)

Апісанне: Убудаваныя промісы для працы з асінхроннымі аперацыямі.

Прыклад:

const promise = new Promise((resolve, reject) => {
  setTimeout(() => resolve("Success!"), 1000);
});

Генератары (Generators)

Апісанне: Функцыі, якія можна прыпыняць і аднаўляць (function* і yield).

Прыклад:

function* idGenerator() {
  let id = 1;
  while (true) {
    yield id++;
  }
}

Map і Set

Апісанне: Новыя структуры дадзеных для захавання ключ-значэння (Map) і ўнікальных значэнняў (Set).

Прыклад:

const map = new Map();
map.set('key', 'value');

const set = new Set([1, 2, 3, 3]);

Сімвалы (Symbols)

Апісанне: Новы прымітыўны тып дадзеных для стварэння унікальных ідэнтыфікатараў.

Прыклад:

const sym = Symbol('description');

Ітэратары і цыкл For-Of

Апісанне: Ітэратары – аб'екты, якія вызначаюць паслядоўнасць і могуць вяртаць значэнне пры заканчэнні паслядоўнасці. Цыкл for-of для ітэрацыі па ітэруемых аб'ектах.

Прыклад:

const array = [1, 2, 3];
for (const value of array) {
  console.log(value);
}

WeakMap і WeakSet

Апісанне: Падобныя на Map і Set, але са слабымі спасылкамі на ключы/значэнні (дакументацыя).

Прыклад:

const weakMap = new WeakMap();
const obj = {};
weakMap.set(obj, 'value');

Удасканаленні Math, Number, String і Object

Апісанне: Новыя метады, дададзеныя ў Math, Number, String і Object.

Прыклад:

Math.trunc(4.9); // 4
Number.isNaN(NaN); // true

Object.assign({}, {a: 1}, {b: 2}); // {a: 1, b: 2}

2016 (ES7 / ECMAScript 2016)

Аператар узвядзення ў ступень (Exponentiation Operator)

Апісанне: Спрошчаны разлік ступені з **.

Прыклад:

const square = 2 ** 2; // 4

Array.prototype.includes

Апісанне: Правярае, ці ёсць у масіве пэўнае значэнне.

Прыклад:

const array = [1, 2, 3];
array.includes(2); // true

2017 (ES8 / ECMAScript 2017)

Async/Await

Апісанне: Сінтаксічны цукар для працы з промісамі, што робіць асінхронны код прасцейшым для чытання і напісання.

Прыклад:

async function fetchData() {
  const response = await fetch('https://api.example.com/data');
  const data = await response.json();
  return data;
}

Object.entries і Object.values

Апісанне: Метад атрымлівае масіў уласных пералічаных уласцівасцяў аб'екта ў выглядзе пар [ключ, значэнне] і значэнняў.

Прыклад:

const obj = { a: 1, b: 2 };
Object.entries(obj); // [['a', 1], ['b', 2]]
Object.values(obj); // [1, 2]

Дабаўленне радкоў (String Padding)

Апісанне: Метад padStart і padEnd дадае сімвалы да радка да дасягнення пэўнай даўжыні.

Прыклад:

'5'.padStart(2, '0'); // '05'
'5'.padEnd(2, '0'); // '50'

Object.getOwnPropertyDescriptors

Апісанне: Вяртае ўсе ўласныя апісальнікі ўласцівасцяў аб'екта.

Прыклад:

const obj = { prop: 1 };
const descriptors = Object.getOwnPropertyDescriptors(obj);
/*{
  "prop": {
    "value": 1,
    "writable": true,
    "enumerable": true,
    "configurable": true
  }
} */

Завяршаючыя коскі ў спісах параметраў і выкліках функцый (Trailing Commas in Function Parameter Lists and Calls)

Апісанне: Дазваляе выкарыстоўваць завяршаючыя коскі ў параметрах функцый і аргументах.

Прыклад:

function foo(
  param1,
  param2,
) { /*...*/ }

foo(
  'a',
  'b',
);

2018 (ES9 / ECMAScript 2018)

Асінхронныя ітэратары (Async Iteration)

Апісанне: Цыкл for-await-of для ітэрацыі па асінхронных ітэруемых аб'ектах.

Прыклад:

async function process(array) {
  for await (let value of array) {
    console.log(value);
  }
}

Rest/Spread уласцівасцяў (Rest/Spread Properties)

Апісанне: Spread і rest уласцівасцяў для аб'ектаў.

Прыклад:

const obj = { a: 1, b: 2, c: 3 };
const { a, ...rest } = obj; // rest = { b: 2, c: 3 }
const newObj = { ...rest }; // { b: 2, c: 3 }

Promise.finally

Апісанне: Дадае метад .finally() у промісы, які выконвае зваротны выклік пры завяршэнні промісу незалежна ад выніку.

Прыклад:

fetch('/api')
  .then(response => response.json())
  .catch(error => console.error(error))
  .finally(() => console.log('Fetch attempt finished.'));

Паляпшэнні RegExp

Апісанне: Новыя функцыі у рэгулярных выразах.

Прыклад:

const regExp = /(?<=\$)\d+/; // lookbehind assertion
const match = 'Price: $10'.match(regExp); // ['10']

const regExpNamed = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/;
const result = regExpNamed.exec('2020-12-01');
console.log(result.groups.year); // '2020'

2019 (ES10 / ECMAScript 2019)

Array.prototype.flat і Array.prototype.flatMap

Апісанне: flat сплюшчвае ўкладзеныя масівы, flatMap - адлюстроўвае і сплюшчвае вынік.

Прыклад:

const arr = [1, [2, [3]]];
arr.flat(2); // [1, 2, 3]

const arr1 = [1, 2, 1];

const result = arr1.flatMap((num) => (num === 2 ? [2, 2] : 1));

console.log(result);
// Expected output: Array [1, 2, 2, 1]

Object.fromEntries

Апісанне: Канвертуе спіс пар ключ-значэнне ў аб'ект.

Прыклад:

const entries = [['a', 1], ['b', 2]];
const obj = Object.fromEntries(entries); // { a: 1, b: 2 }

String.prototype.trimStart і String.prototype.trimEnd

Апісанне: Прыбірае прабелы з пачатку і канца радка.

Прыклад:

const str = '  hello  ';
str.trimStart(); // 'hello  '
str.trimEnd(); // '  hello'

Неабавязковая пераменная ў блоку catch (Optional Catch Binding)

Апісанне: Дазваляе апусціць пераменную памылкі ў блоку catch.

Прыклад:

try {
  // code
} catch {
  console.error('An error occurred');
}

Symbol.prototype.description

Апісанне: Дазваляе атрымаць апісанне сімвала непасрэдна.

Прыклад:

const sym = Symbol('desc');
console.log(sym.description); // 'desc'

Рэвізія Function.prototype.toString

Апісанне: Метад toString() вяртае дакладныя сімвалы, уключаючы прабелы і каментарыі.

Прыклад:

function /* comment */ foo() {}
console.log(foo.toString()); // 'function /* comment */ foo() {}'

2020 (ES11 / ECMAScript 2020)

Аператар выбару (Optional Chaining (?.))

Апісанне: Бяспечны доступ да глыбока ўкладзеных уласцівасцяў.

Прыклад:

const user = {};
const street = user.address?.street; // undefined

Аператар Nullish Coalescing (??)

Апісанне: Вяртае правы аперанд, калі левы аперанд null або undefined.

Прыклад:

const name = null ?? 'Guest'; // 'Guest'

Дынамічны імпарт (Dynamic import())

Апісанне: Дынамічны імпарт модуляў.

Прыклад:

import('/modules/my-module.js')
  .then(module => {
    // use module
  });

BigInt

Апісанне: Дазваляе прадстаўленне і апрацоўку цэлых лікаў, большых за Number.MAX_SAFE_INTEGER.

Прыклад:

const bigNumber = 123456789012345678901234567890n;

Promise.allSettled

Апісанне: Вяртае проміс, які вырашаецца, калі ўсе перададзеныя промісы альбо вырашаны, альбо адхілены.

Прыклад:

const promises = [Promise.resolve(1), Promise.reject('error')];
Promise.allSettled(promises)
  .then(results => console.log(results));

GlobalThis

Апісанне: Стандартны спосаб доступу да глабальнага this значэння ў розных асяроддзях.

Прыклад:

globalThis.setTimeout(() =>console.log('Hello'), 1000);

String.prototype.matchAll

Апісанне: Вяртае ітэратар усіх супадзенняў у радку з рэгулярным выразам.

Прыклад:

const regex = /t(e)(st(\d?))/g;
const str = 'test1test2';
const matches = [...str.matchAll(regex)];

Экспарт прастораў імёнаў модуля (Module Namespace Exports)

Апісанне: Паляпшэнне падтрымкі апрацоўкі прастораў імёнаў у ES модулях.

Прыклад:

export * as ns from 'module';

2021 (ES12 / ECMAScript 2021)

Аператары лагічнага прызначэння (&&=, ||=, ??=)

Апісанне: Аб'ядноўваюць лагічныя аперацыі з выказваннямі прызначэння.

Прыклад:

let a = 1;
a ||= 2; // a = 1

let b = null;
b ??= 2; // b = 2

Лічбавыя раздзяляльнікі (Numeric Separators)

Апісанне: Падкрэсленні выкарыстоўваюцца як раздзяляльнікі для паляпшэння чытальнасці лікавых літаралаў.

Прыклад:

const largeNumber = 1_000_000; // 1000000

String.prototype.replaceAll

Апісанне: Замяняе ўсе ўхапленні падрадка.

Прыклад:

const str = 'foo foo';
const newStr = str.replaceAll('foo', 'bar'); // 'bar bar'

Promise.any

Апісанне: Вяртае першы вырашаны проміс або масіў з памылкамі, калі ўсе промісы былі адхілены.

Прыклад:

const promises = [Promise.reject(1), Promise.resolve(2)];
Promise.any(promises)
  .then(result => console.log(result)); // 2

WeakRefs

Апісанне: Стварае слабыя спасылкі на аб'екты, каб пазбегнуць прадухілення збору смецця.

Прыклад:

const obj = {};
const weakRef = new WeakRef(obj);

FinalizationRegistry

Апісанне: Рэгіструе зваротны выклік для ачысткі аб'ектаў, якія былі сабраны зборшчыкам смецця.

Прыклад:

const registry = new FinalizationRegistry(heldValue => {
  console.log('Object was garbage collected', heldValue);
});

let obj = {};
registry.register(obj, 'myValue');
obj = null; // obj is now eligible for garbage collection

2022 (ES13 / ECMAScript 2022)

Класыз прыватнымі палямі (Class Fields)

Апісанне: Публічныя і прыватныя метады і метады экземпляра ў класах.

Прыклад:

class MyClass {
  myField = 10; // public field
  #privateField = 20; // private field
  
  getPrivateField() {
    return this.#privateField;
  }
}

Верхняўзроўневае await (Top-Level Await)

Апісанне: Дазваляе выкарыстанне await на верхнім узроўні модуляў.

Прыклад:

const data = await fetch('/api/data').then(res => res.json());
console.log(data);

Індэксы супадзенняў RegExp (RegExp Match Indices)

Апісанне: matchAll вяртае пазіцыі пачатку і канца супадзенняў.

Прыклад:

const regex = /(foo)/g;
const str = 'foo foo';
const matches = [...str.matchAll(regex)];
console.log(matches[0].indices); // [[0, 3], [0, 3]]

2023 (ES14 / ECMAScript 2023)

Метады findLast і findLastIndex для масіваў і TypedArray

Апісанне: Метад для пошуку апошняга элемента і яго індэкса ў масіве або TypedArray.

Прыклад:

const arr = [1, 2, 3, 4];
const lastEven = arr.findLast(n => n % 2 === 0); // 4
const lastEvenIndex = arr.findLastIndex(n => н % 2 === 0); // 3

Сімвалы як ключы для WeakMap

Апісанне: Сімвалы можна выкарыстоўваць у якасці ключоў у WeakMap.

Прыклад:

const sym = Symbol('key');
const wm = new WeakMap();
wm.set(sym, 'value');

Групоўка масіваў (Array Grouping)

Апісанне: Метад groupBy і groupByToMap для групавання элементаў у масівах.

Прыклад:

const array = ['one', 'two', 'three'];
const grouped = array.groupBy(word => word.length);
// { 3: ['one', 'two'], 5: ['three'] }

Граматыка Hashbang

Апісанне: Дазваляе выкарыстанне #! у пачатку скрыптаў для Unix-падобных асяроддзяў.

Прыклад:

#!/usr/bin/env node
console.log('Hello, world!');

Заключэнне

Такім чынам мы разгледзеді важныя абнаўленні ў JS за апошнія некалькі гадоў, і спадзяюся што наша праца будзе для вас карыснай. Хацелася б адзначыць што былі і іншыя змены, але яны не былі настолькі важнымі, таму у гэты спіс не папалі.

ЗЫ : Калі ласка далучайцеся да нашых аўтараў. Давайце пашыраць нашу беларускамоўную прастору разам.

JS
ES6
javascript
Admin, 2024-08-29

Вітанкі, сябры. Сення хачу падзяліцца з вамі невялічкім лайфхакам які можа дапамагчы захаваць вашыя грошы і нервы пры праслухоўванні музыкі ці падкастаў праз ютуб. Адразу папярэджу што дадаткі на Iphone пакуль не падтрымліваюцца. Але абяцалі завезці. Таму на айфонах прыйдзецца глядзець з рэкламай.

Як глядзець і слухаць YouTube на тэлефоне без рэкламы і ў згорнутым выглядзе

YouTube – гэта выдатная платформа для прагляду відэа і слухання музыкі, але рэклама і абмежаванні пры выкарыстанні ў згорнутым выглядзе могуць выклікаць дыскамфорт. Ёсць простае рашэнне гэтай праблемы – выкарыстанне браўзэра Firefox і дадатку uBlock Origin. Давайце разгледзім, як гэта працуе.

  1. Устаноўка Firefox на тэлефон Першым крокам з'яўляецца ўстаноўка браўзэра Firefox на ваш смартфон. Гэта бясплатны браўзэр, даступны ў Google Play Store для Android і App Store для iPhone. Пасля ўстаноўкі ён стане нашым ключом да праслухоўвання YouTube у згорнутым выглядзе.

Плэймаркет

Апстор

  1. Усталяванне дадатку uBlock Origin (Так, ФФ падтрымлівае дадаткі) Firefox дазваляе ўсталёўваць дадаткі, якія пашыраюць яго функцыянальнасць. Адзін з лепшых дадаткаў для блакавання рэкламы – гэта uBlock Origin. Гэты дадатак эфектыўна блакуе рэкламу на розных сайтах, уключаючы YouTube. Каб усталяваць uBlock Origin, зрабіце наступныя крокі:

Адкрыйце Firefox. Перайдзіце ў меню і выберыце "Дадаткі" або "Add-ons". У пошуку ўвядзіце "uBlock Origin". Усталюйце гэты дадатак. Пасля ўстаноўкі uBlock Origin рэклама на YouTube больш не будзе вас турбаваць.

  1. Як праглядаць YouTube у згорнутым выглядзе Адной з асаблівасцяў прагляду YouTube праз Firefox з'яўляецца магчымасць слухаць відэа ў згорнутым выглядзе. Гэта азначае, што вы можаце запусціць відэа на YouTube, а потым звярнуць браўзэр або нават заблакіраваць экран, і аўдыя працягне прайгравацца.

Каб гэта зрабіць:

Адкрыйце YouTube праз Firefox. Запусціце відэа. Выйдзіце на галоўны экран тэлефона або згарніце браўзэр. Відэа будзе працягваць прайгравацца ў фоне, што вельмі зручна для праслухоўвання музыкі ці падкастаў. Калі яно стане на паўзу - то проста адцягніце "шторку" і націсніце плэй як на малюнку:

малюнак

Вы пазнаёміліся з яшчэ адным спосабам выкарыстоўваць YouTube без надакучлівай рэкламы і мець магчымасць слухаць кантэнт, не трымаючы браўзэр ці дадатак адкрытым.

Нажаль блакірванне рэкламы на айфонах пакуль немагчымае - бо ўсе браўзэры для айфонаў зараз заснаваныя на Safari які не падтрымлівае аніякія дадаткі. У хуткім часе абяцалі што гэта зменіцца і тады ўжо будзе магчымасць пашыраць магчымасці нашых браўзэраў і на айфонах.

Youtube
Admin, 2024-08-22

Лацінскі альфабэт зьяўляецца важнай часткай беларускай мовы й амаль незамяняльны ў выпадкох, калі ўвод кірылічнага тэксту немагчымы - у назовах файлаў, пры стварэньні нікаў і г. д. Апроч таго, сёньня даволі вялікая колькасьць беларусаў карыстаецца лацінкаў у штодзённым жыцьці. І калі на тэлефоне з уводам усіх асаблівых літар няма праблем, то фізычная клавятура кампутару патрабуе для гэтага спэцыяльнай лацінскай раскладкі, якой Windows у стандартным пакеты ня мае (дзякуй што хоць кірылічную беларускую дадалі). Таму сёньня раскажу як можна ў пару (ну, насамрэч можа штук у 5) клікаў прыдбаць сабе кастамную раскладку для лацінкі ці любых іншых альфабэтаў.

Артыкул падзелены на дзьве часткі - у першай апісаны працэс усталяваньня маёй лацінскай раскладкі (спасылка на яе ніжэй). Другая частка - больш падробны агляд праграмы й гайд для стварэньня ўласнай раскладкі. Прыемнага чытаньня)

Як паставіць гатовую раскладку

Мая раскладка для лацінкі грунтуецца на стандартнай QWERTY, а ўсе дадатковыя літары дасяжныя па праваму Alt (AltGr):

Я доўга думаў на якія клавішы паставіць дадатковыя літары, ну й урэсьце спыніўся на такім варыянты: літары мяккіх гукаў застаюцца на тым жа месцы (S на адной кнопцы з Ś), а шыпячыя разьмешчаны на тых жа месцах, што і ў кірылічнай раскладцы. Таксама даданая літара ґ, на выпадак калі хтосьці ёй карыстаецца, але асобную раскладку ставіць ня хоча.

Для таго, каб усталяваць гэтую раскладку сабе, патрэбна сьцягнуць архіў зь яе файламі. Зрабіць гэта можна у маім тг-каналі. Пасьля гэтага распакоўваем архіў:

Запускаем файл setup.exe, і далей сыстэма ўсё зробіць сама. Пры пасьпяховым усталяваньні атрымаем вось такое паведамленьне:

Пасьля гэтага можа спатрэбіцца перазагрузіць ПК, і раскладка будзе дасяжная. Важна: т. я. раскладка ўспрымаецца сыстэмай як дадатковая (да звычайнай кірылічнай), хутчэй за ўсё ня будзе працаваць перамыканьне праз Alt+Shift, але працуюць Ctrl+Shift і Win+Space.

Як зрабіць сваю раскладку:

Для стварэньня ўласных раскладак спатрэбіцца праграма Microsoft Keyboard Layout Creator (MSKLC), сьцягнуць якую можна проста з афіцыйнага сайту Microsoft. Пасьля ўсталяваньня й адкрыцьця ўбачым інтэрфэйс пустой клавятуры. Вядома, можна пачынаць і адсюль, але значна лягчэй мадыфікаваць гатовую раскладку. Загрузіць яе можна праз File -> Load Existing Keyboard:

Пасьля гэтага праз Project -> Properties можна задаць назоў раскладкі й пакету. Тут у радок Name трэба напісаць кароткі назоў толькі стандартнымі лацінскімі сымбалямі, а вось у Description можна ўказаць любы назоў раскладкі (у сьпісе раскладак будзе адлюстраваны менавіта ён). Таксама не забудзьцеся ўказаць мову, да якой будзе прывязаная раскладка:

Урэсьце можна пачаць рэдагаваць раскладку. Для таго, каб дадаць панэль з дадатковымі літарамі (як літары з дыякрытычнымі знакамі ў лацінцы), зь левага боку можна абраць патрэбныя гарачыя клавішы (звычайна гэта AltGr). Дадаваць сымбалі можна проста націскаючы на патрэбныя кнопкі. Можна ўсаўляваць іх проста сюды, але каб потым не запаўняць асобна панэль вялікіх літар я раю націснуць All..., што адкрое акно з усімі сымбалямі на гэтай клавішы. Нас цікавіць ніжняя палова, куды ў адпаведныя радкі ўстаўляем сымбалі для маленькай і вялікай літары (літары можна ўстаўляць проста ў гэты радок, праграма сама падцягне іхні код). Шукаць сымбалі можна праз табліцу сымбаляў Windows ці ў любым зручным месцы.

Важна: Не забудзьцеся ўвамкнуць парамэтар Caps=Shift для гэтай пары сымбаляў, каб раскладка падтрымоўвала функцыю CapsLock.

Пасьля ўнясеньня ўсіх неабходных зьменаў раскладку можна пратэставаць праз Project -> Test Keyboard Layout, і калі ўсё добра сабраць пакет раскладкі Project -> Build DLL and Setup Package:

На гэтым этапе могуць вылезьці паведамленьні што не атрымалася сьцьвярдзіць раскладку ці што для абранай мовы раскладка ўжо ўсталяваная. Іх можна йгнараваць. Пасьля гэтага праграма прапануе перайсьці да тэчкі з файламі (калі што, звычайна яна знаходзіцца ў разьдзеле Дакумэнты). Пераходзім туды, запускаем setup.exe і паўтараем крокі з разьдзелу "Як усталяваць гатовую раскладку". На гэтым усё, вашай новай раскладкай можна карыстацца.

Спадзяюся гэты артыкул быў для вас карысным. Калі так, запрашаю перайсьці ў мой телеграм-каналь Škalar, дзе вас чакаюць пераклады разнастайнага кантэнту, ну й пэрыядычна вось такія тэхнічна-моўныя цікавінкі.

Windows
lacinka
раскладка
Škalar, 2024-07-26

head

Пераклад артыкула TechCrunch ад Kyle Wiggers

Токены - галоўная прычына неэфектыўнасці ШІ

Генератыўныя мадэлі штучнага інтэлекту не апрацоўваюць тэкст так, як гэта робяць людзі. Разуменне іх унутранага "токен"-аснаванага асяроддзя можа дапамагчы растлумачыць некаторыя іх дзіўныя паводзіны і моцныя абмежаванні.

Большасць мадэляў, ад маленькіх тулоў, як Gemma, да вядучай у галіне - GPT-4o ад OpenAI, пабудаваны на архітэктуры, вядомай як трансфарматар. З-за таго, як трансфарматары ўтвараюць асацыяцыі паміж тэкстам і іншымі тыпамі дадзеных, яны не могуць ўводзіць або выводзіць сыры тэкст - прынамсі без вялікай колькасці вылічэнняў.

Такім чынам, з прычын як практычных, так і тэхнічных, сённяшнія мадэлі трансфарматараў працуюць з тэкстам, які разбіты на меншыя, лёгка засваемыя часткі, званыя токенамі, - працэс, вядомы як токенізацыя.

Токены могуць быць словамі, як "fantastic." Або яны могуць быць складамі, як "fan," "tas" і "tic." У залежнасці ад токенізатара - мадэлі, якая ажыццяўляе токенізацыю, яны могуць нават быць асобнымі сімваламі ў словах (напрыклад, "f," "a," "n," "t," "a," "s," "t," "i," "c").

Выкарыстоўваючы гэты метад, трансфарматары могуць прымаць больш інфармацыі (у сэнсавым сэнсе), перш чым яны дасягаюць верхняга ліміту, вядомага як кантэкстнае акно. Але токенізацыя таксама можа ўводзіць пагрэшнасці.

Некаторыя токены маюць дзіўныя прабелы, якія могуць збіць з панталыку трансфарматар. Токенізатар можа закадзіраваць "once upon a time" як "once," "upon," "a," "time," напрыклад, у той час як іншы закадзіруе "once upon a " (які мае наступны прабел) як "once," "upon," "a," " ." У залежнасці ад таго, як мадэль падгатоўлена - з "once upon a" або "once upon a ," - вынікі могуць быць зусім розныя, таму што мадэль не разумее (як чалавек), што значэнне аднолькавае.

Токенізатары таксама па-рознаму ставяцца да рэгістра. "Hello" не абавязкова тое ж самае, што і "HELLO" для мадэлі; "hello" звычайна з'яўляецца адным токенам (у залежнасці ад токенізатара), у той час як "HELLO" можа быць нават трыма ("HE," "LLO"). Вось чаму многія трансфарматары не праходзяць тэст на вялікія літары.

"Складана абмінуць пытанне, што менавіта павінна быць 'словам' для моўнай мадэлі, і нават калі б мы змаглі дамагчыся ідэальнага токеннага слоўніка, мадэлі ўсё роўна працягнулі'разбіваць' існасці на часткі," сказала Шэрыл Фойхт, аспірантка, якая вывучае інтэрпрэтацыю вялікіх моўных мадэляў у Паўночна-Усходнім універсітэце, у інтэрв'ю TechCrunch. "Мае здагадкі, што не існуе такога, як ідэальны токенізатар з-за гэтага роду нявызначанасці."

Гэтая "нявызначанасць" стварае яшчэ больш праблем у мовах, акрамя англійскай.

Многія метады токенізацыі мяркуюць, што прабел у сказе абазначае новае слова. Гэта таму, што яны былі распрацаваны з улікам англійскай мовы. Але не ўсе мовы выкарыстоўваюць прабелы для аддзялення слоў. Кітайская і японская - не выкарыстоўваюць, як і карэйская, тайская або кхмерская.

Даследаванне Оксфардскага ўніверсітэта 2023 года паказала, што з-за адрозненняў у спосабе токенізацыі неангламоўных моў, трансфарматару можа спатрэбіцца ўдвая больш часу на выкананне задачы, сфармуляванай на неанглійскай мове, у параўнанні з той жа задачай, сфармуляванай на англійскай. Тое ж даследаванне - і яшчэ адно - паказала, што карыстальнікі менш "токен-эфектыўных" моў, верагодна, убачаць горшую прадукцыйнасць мадэлі і плацяць больш за выкарыстанне, улічваючы, што многія пастаўшчыкі ШІ бяруць плату за токен.

Токенізатары часта разглядаюць кожны сімвал у лагаграфічных сістэмах пісьма - сістэмах, у якіх друкаваныя сімвалы абазначаюць словы, не звязаныя з вымаўленнем, як кітайская - як асобны токен, што прыводзіць да высокіх лікаў токенаў. Аналагічна, токенізатары, апрацоўваючы аглютынатыўныя мовы - мовы, дзе словы складаюцца з малых значных элементаў, званых марфемамі, як турэцкая - маюць тэндэнцыю ператвараць кожную марфему ў токен, павялічваючы агульную колькасць токенаў. (Эквівалентнае слова для "прывітанне" на тайскай, สวัสดี, складаецца з шасці токенаў.)

У 2023 годзе даследчык Google DeepMind Янні Чжун правяла аналіз, параўноўваючы токенізацыю розных моў і яе наступствы. Выкарыстоўваючы набор дадзеных з паралельнымі тэкстамі, перакладзенымі на 52 мовы, Чжун паказала, што некаторым мовам патрабуецца да 10 разоў больш токенаў, каб перадаць тое ж значэнне на англійскай.

Акрамя моўных няроўнасцей, токенізацыя можа растлумачыць, чаму сучасныя мадэлі дрэнна спраўляюцца з матэматыкай.

Лічбы рэдка токенізуюцца паслядоўна. Таму што яны на самой справе не ведаюць, што такое лічбы, токенізатары могуць разглядаць "380" як адзін токен, але прадстаўляць "381" як пару ("38" і "1") - фактычна разбураючы адносіны паміж лічбамі і вынікамі ў раўнаннях і формулах. У выніку трансфарматары збіваюцца з панталыку; нядаўняя праца паказала, што мадэлі цяжка разумець паўтараючыяся лічбавыя шаблоны і кантэкст, асабліва дадзеныя звязаныя з часам. (Гл.: GPT-4 лічыць, што 7,735 больш за 7,926).

Гэта таксама прычына, чаму мадэлі не вельмі добра рашаюць анаграмы ці пераварачэнне слоў.

image

Такім чынам, токенізацыя відавочна стварае праблемы для генератыўнага штучнага інтэлекту. Ці могуць яны быць вырашаны?

Магчыма.

Фойхт адзначае "байт-узроўневыя" мадэлі стану, як MambaByte, якія могуць прымаць значна больш дадзеных, чым трансфарматары, без страты прадукцыйнасці, адмовіўшыся ад токенізацыі цалкам. MambaByte, які працуе непасрэдна з сырымі байтамі, якія прадстаўляюць тэкст і іншыя дадзеныя, канкурыруе з некаторымі мадэлямі трансфарматараў у задачах аналізу мовы, лепш апрацоўваючы "шум" як словы са змешчанымі сімваламі, прабеламі і вялікімі літарамі.

Мадэлі, як MambaByte, знаходзяцца на ранніх стадыях даследаванняў.

"Мабыць, лепш дазволіць мадэлям глядзець на сімвалы непасрэдна без накладання токенізацыі, але зараз гэта проста вылічальна немагчыма для трансфарматараў," сказала Фойхт. "Для мадэляў трансфарматараў у прыватнасці, вылічэнні маштабуюцца квадратычна з даўжынёй паслядоўнасці, таму мы сапраўды хочам выкарыстоўваць кароткія тэкставыя прадстаўленні."

Калі не будзе прарыву ў токенізацыі, здаецца, новыя архітэктуры мадэляў стануць ключавымі.

Дадаткова можаце паглядзець наступныя відэа:

https://www.youtube.com/watch?v=zduSFxRajkE

https://www.youtube.com/watch?v=zjkBMFhNj_g&t=4s

ЗЫ: Нагадваю што вы таксама можаце ствараць класныя артыкулы ці пісаць пераклады.
ШІ
Токены
Admin, 2024-07-07

Раздражают эти крипто-миллионеры из Дуб....Як яны задзяўблі

Прывітанне, сябры!
За апошнія некалькі дзён наш ТГ-канал сутыкнуўся з праблемай спаму чарговай крыпта-памо...кі.

Кожныя паў гадзіны ў чат з каментарамі пачалі прыходзіць паведамленні кшталту:

Раздражают эти крипто-миллионеры из Дубая? Тогда это для тебя... Многие не подозревали, но сейчас криптовалюта снова взлетает, и всего за пару месяцев люди приобретают машины и квартиры. і гэтак далей.

Звычайнае выдаленне ды афармленне скарг на спам не дапамагло - паведамленні з'яўляліся зноў. У выніку за паў гадзіны працы мы стварылі невялікага чат-бота,які вырашыў нашую праблему. Ніжэй я пакрокава распавяду як яго запусціць.

Ствараем бота

Каб стварыць бота - дастаткова перайсці ў афіцыйны бот тэлеграма https://t.me/BotFather - і націснуць кнопку "старт". Затым са спісу каманд выбраць /newbot і ўвесці імя бота. (Павінна скончвацца на _bot). У выніку мы атрымаем спасылку на нашага бота і HTTP API. Усё! Бот створаны. зараз трэба заставіць яго працаваць.

Далучаем бота ў адміны групы

Пераходзім у дадатку тэлеграма да нашай групы (якую будзе кантраляваць бот) і дадаем нашага бота у адміны чата (шукаем па назве бота).

Пішам код бота

Увогуле вы можаце скарыстацца ужо напісаным кодам з нашага рэпазіторыю: https://github.com/bel-frontend/telegram_bot - Рэкамендую. Тут ёсць амаль усе што нам спатрэбіцца.

Ніжэй мы разглядзім код больш падрабязна. Бот будзе напісаны з выкарыстаннем Nodejs 20-й версіі (далей- ноды). (як усталяваць ноду - мы разглядалі раней.)

Пасля устаноўкі ноды выканаем каманду ў тэрмінале

npm init -y

.

Затым усталюем пакет node-telegram-bot-api праз каманду

npm install -S node-telegram-bot-api

і створым файл bot.js.

Затым дададзім у яго наступны код

const TelegramBot = require('node-telegram-bot-api');


const token = process.env.TELEGRAM_BOT_TOKEN;
const bot = new TelegramBot(token, { polling: true });

const TARGET_CHAT_ID = process.env.TARGET_CHAT_ID; // Add your target chat ID in the .env file

bot.on('message', (msg) => {
    const chatId = msg.chat.id;
    const text = msg.text;
    console.log(text, chatId.toString());

    if (chatId.toString() === TARGET_CHAT_ID) {
        // Analyze messages and decide to delete
        if (text && shouldDeleteMessage(text)) {
            console.log('delete')
            bot.deleteMessage(chatId, msg.message_id).catch((error) => {
                console.error('Failed to delete message:', error);
            });
        }
    }
});

function shouldDeleteMessage(text) {
    // Simple example of a condition to delete a message
    // You can implement any analysis logic here
    // тут  можам і ШІ далучыць ці што прасцей, як  я  зрабіў
    const forbiddenWords = ['test', 'крипто','криптовалюта','подписывайтесь на канал'];
    return forbiddenWords.some((word) => text.trim().toLowerCase().includes(word));
}

Затым ствараем файл .env з параметрамі бота

TELEGRAM_BOT_TOKEN=
TARGET_CHAT_ID=

сюды мы пазней запішам атрыманы намі токен і ID групы (яе мы атрымаем далей) . Трымайце гэтыя параметры у сакрэце і нікому іх не давайце.

Атрымліваем ID групы

атрымаць ID групы магчыма некалькімі спосабамі. Я далека не хадзіў і выкарыстаў наш бот для атрымання ID.

У кодзе вы пабачыце наступную строчку

    console.log(text, chatId.toString());

Яна нам і дапаможа даведацца айдзі нашай групы. Далей па пунктах.

  1. Запусцім наш код камандай node --env-file=.env bot.js
  2. Адчыняем наш чат і набіраем якісьці тэкст
  3. Глядзім логі запушчанага коду і бачым нешта падобнае да
test-text -1001092593475

лічбы з рыскай і будуць нашым ID. 4. Капіруем і дадаем у наш файл конфігу. Ужо на гэтым этапе наш бот можа працаваць.

Запускаем лакальна і тэсціруем

Запускаем зноў наш бот камандай

node --env-file=.env bot.js

і набіраем у нашым чаце што-небудзь з ключавымі словамі якія патрэбна выдаліць. Глядзім на вынікі. Бот павінен імгненна выдаляць паведамленні з вызначынамі ў

const forbiddenWords = ['test', 'крипто','криптовалюта','подписывайтесь на канал'];

словамі.

На гэтым этапе наш бот ужо працуе, але мы ж не хочам каб ён працаваў толькі калі наш ПК уключаны. таму нам трэба перанесці яго на сервер. (можна стварыць свой які ляжыць дома дзе пад тэлевізарам, але мы выберым воблачны варыянт) Таму -

Запускаем бота праз AWS (Апцыянальна) з выкарыстаннем нашага рэпазіторыю

Мы ужо разглядалі як запусціць свой уласны сервер, таму адразу пяройдзем да запуску EC2.

Пасля таго як запусцілі наш інстанс, запусцім тэрмінал выбраўшы наш інстанс ды націснуўшы кнопку connect.

connect

У тэрмінале паслядоўна запускаем наступныя каманды

# Update the package list
sudo apt-get update

# Install Docker
sudo apt-get install -y docker.io

# Start and enable Docker
sudo systemctl start docker
sudo systemctl enable docker

# Verify Docker installation
sudo docker --version

# (Optional) Add your user to the Docker group to run Docker commands without sudo
sudo usermod -aG docker $USER
newgrp docker

# Install git
sudo apt install git

Зараз трэба перанесці наш праект на сервер.

git clone  https://github.com/bel-frontend/telegram_bot.git
cd telegram_bot/

Створым тут файл .env камандай

nano .env

і уставім туды дадзеныя з лакальнага файла .env

TELEGRAM_BOT_TOKEN=xxxxxxxxxxxxxx
TARGET_CHAT_ID=-xxxxxxxxxx

націскаем ctrl + x затым y, затым кнопку 'Enter'

І выканаем каманду

sudo chmod 777 ./deploy.sh

і запусцім скрыпт які запусціць наш бот.

./deploy.sh

Пасля паверым працу докера :

docker ps

І пабачым наступнае:

ubuntu@ip-172-31-20-44:~/telegram_bot$ docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                       NAMES
e7295f11173d   telegram_bot   "docker-entrypoint.s…"   21 seconds ago   Up 20 seconds   0.0.0.0:3004->3000/tcp, :::3004->3000/tcp   telegram_bot

што азначае што наш бот працуе.

І пераходзім у наш чат і тэсціруем працу бота.

Вынікі

У выніку мы атрымалі працуючы бот які дапаможа адбіцца ад навалы спаму, якая апошні час апанавала наш невялічкі чат. Вельмі спадзяюся што мой артыкул будзе для вас карысным і дапаможа вам і вашым чатам. Усім вялікі дзякуй што дачыталі нас да канца.

Па усіх пытаннях можаце пісаць нам на пошту ці тут у каментарах.

спам
тэлеграм
Admin, 2024-06-30

Аплата і ўсталяванне

alt_text
Каб пачаць карыстацца месенджарам неабходна здзейсніць разавы плацеж.
iOS / Google Play - 6 $
Пры гэтым для Android вы можаце ўсталяваць праграму праз F-Droid, але для працы праграмы неабходна будзе набыць ліцэнзійны ключ - 5 $
А карыстальнікі iOS могуць падзяліцца праграмай праз сямейны доступ. alt_text

https://shop.threema.ch/en
Акрамя Android і iOS у Threema ёсць кліенты пад macOS, Windows і Linux, іх мы разгледзім пазней.

Стварэнне ўліковага запісу

alt_text

Тут і пачынаюцца перавагі. Для стварэння ўліковага запісу вам не патрэбны нумар тэлефона ці электронная пошта. Дастаткова павадзіць пальцам па экране. У выніку чаго будзе выпадковым спосабам створаны ваш ідэнтыфікатар.

Пасля гэтага вы можаце пачынаць наладжванне свайго ўліковага запісу. Сервер рэзервовых даных, прысваенне псеўданіма, прывязка нумара тэлефона (неабавязкова) і ўключэнне сінхранізацыі з кнігай кантактаў.

alt_text

Даступны функцыянал

Як і большасць сучасных месенджараў Threema падтрымлівае адпраўку звычайных і галасавых паведамленняў, спісы рассылак (Android), розныя тыпы файлаў, апытанні, відэа і аўдыязванкі. Таксама ёсць магчымасць ствараць уласных ботаў і шмат іншага функцыяналу. Больш падрабязна можна даведацца тут: https://threema.ch/en/gateway

alt_text

Узроўні верыфікацыі

Threema мае тры ўзроўні верыфікацыі кантакту

  1. Адна кропка - “Ідэнтыфікатар і публічны ключ былі атрыманы з сервера, таму што вы ўпершыню атрымалі паведамленне ад гэтага кантакту або вы дадалі яго ўручную. У вашай адраснай кнізе (па нумары тэлефона ці электроннай пошце) не было знойдзена прыдатнага кантакту, таму вы не можаце быць упэўнены, што гэты чалавек з’яўляецца тым, за каго ён сябе выдае.”
  2. Дзве кропкі - “Ідэнтыфікатар быў супастаўлены з кантактам у вашай адраснай кнізе (па нумары тэлефона ці электроннай пошце). Паколькі сервер правярае нумары тэлефонаў і адрасы электроннай пошты, вы можаце быць упэўнены, што чалавек з’яўляецца тым, за каго сябе выдае.”
  3. Тры кропкі - “Вы ўручную праверылі ідэнтыфікатар і публічны ключ чалавека, адсканіраваў яго QR-код. Калі яго прылада не была ўзламана, вы можаце быць упэўнены, што паведамленні ад гэтага кантакту сапраўды былі напісаны ім.” QR-код неабходна адсканіраваць кожнаму карыстальніку.

alt_text

Захоўванне даных і рэзервовыя копіі

Даныя захоўваюцца з дапамогай Threema Safe.

У рэзервовую копію будуць уключаны:

  • Ваш ідэнтыфікатар Threema (уключаючы публічны і прыватны ключ)
  • Ваш псеўданім
  • Ваша фатаграфія профілю
  • Вашы кантакты (уключаючы ўзровень верыфікацыі)
  • Членства ў вашых групах
  • Вашы спісы рассылак (для Android)

Акрамя таго, рэзервовыя копіі Threema Safe змяшчаюць наступныя налады канфідэнцыяльнасці:

  • Сінхранізацыя кантактаў
  • Блакіраванне невядомых кантактаў
  • Адпраўка апавяшчэнняў аб прачытанні
  • Індыкатар набору тэксту пры адпраўцы
  • Спіс выключэнняў
  • Чорны спіс
  • Рэтрансляцыя званкоў
  • Android: адсутнасць мініяцюр і скрыншотаў
  • Android: запыт клавіятуры інкогніта

Рэзервовыя копіі Threema Safe не ўключаюць чаты, медыяфайлы і фатаграфіі профіляў кантактаў і груп. Каб захаваць чаты, стварыце рэзервовую копію дадзеных або карыстайцеся функцыяй экспарту.

Рэзервовая копія ствараецца кожны дзень. Калі ваша прылада не падключана да сервера Threema на працягу 180 дзён, ваша рэзервовая копія будзе аўтаматычна выдалена з сервера.

Вы можаце наладзіць уласны сервер для рэзервовы копій. Апісанне таго, як гэта зрабіць можна знайсці тут: https://threema.ch/en/faq/threema_safe_webdav

Усе рэзервовыя копіі захоўваюцца на тэрыторыі Швейцарыі ў зашыфраваным выглядзе. https://threema.ch/en/faq/threema_safe

alt_text

Як наладзіць месенджар на бяспечнае выкарыстанне

Далей будуць дадзены рэкамендацыі адносна таго, як наладзіць прыладу так, каб староннія асобы атрымалі мінімум інфармацыі пасля завалодання вашай прыладай.
Як вы маглі прачытаць вышэй, ваша перапіска з іншымі карыстальнікамі не захоўвацца на серверы. Усе даныя перапісак захаваны лакальна і зашыфраваны на вашай прыладзе.

  • Пераходзім у раздзел "Passcode Lock" і спачатку ўсталёўваем PIN-код на праграму (пажадана, каб ён НЕ супадаў з PIN-кодам вашай прылады)
  • Уключаем функцыю "Erase Data". Пасля 10 няправільных спроб уводу пароля ваша інфармацыя будзе знішчана.

alt_text

Версіі для ПК

Для ПК на дадзены момант існуе дзве версіі. Threema і Threema Beta.

Розніца паміж імі будзе наступнай:

Threema - працуе як старыя версіі WhatsApp (неабходна, каб праграма вісела ў фоне на вашым тэлефоне.

Больш падрабязна пра гэта - https://threema.ch/en/faq/web_conn_locked

alt_text

Threema Beta - гэта новая версія. Яна напісана на Electron. Для яе працы дастаткова адсканіраваць QR-код і ўсталяваць пароль на праграму.

А самае галоўнае, што гэтая версія праграмы больш не патрабуе актыўнага падлучэння да тэлефона.

Дадзеная версія мае наступныя недахопы:

  1. На дадзены момант не працуе без мабільнай версіі iOS
  2. Пры выхадзе з мабільнага кліента аўтаматычна адбываецца выхад з настольнага кліента (можна быць адыграць станоўчую ролю ў некаторых сітуацыях).

Адсутнасць функцыяналу, які мы заўважылі ў настольнай версіі праграмы:

  • апытанняў
  • званкоў
  • нельга падзяліцца месцазнаходжаннем

alt_text

Крыху пра пратакол і аўдыт

Калі верыць даследнікам з ETH Zurich, то ў пратаколе Threema было знойдзена некалькі ўразлівасцяў, якія былі выпраўлены шляхам пераходу на новы пратакол. Назвы ў першага пратакола няма. На дадзены момант Threema выкарыстоўвае пратакол пад назвай Ibex, які прайшоў незалежны аўдыт у 2023 годзе.

Больш падрабязна пра гэта - https://threema.ch/en/blog/posts/news-alleged-weaknesses-statement і https://breakingthe3ma.app/
Аўдыт - https://threema.ch/en/faq/code_audit

alt_text

Падтрымка беларускай мовы

На дадзены момант беларуская мова ёсць толькі ў праграме для Android. Пераклад на беларускую мову для астатніх платформ будзе выкананы па меры яго даступнасці для перакладу.

Чаму не?

Telegram

  • Скразное шыфраванне даступна толькі ў "Сакрэтных чатах", якімі амаль ніхто не карыстаецца
  • Незразумелая юрысдыкцыя
  • Рэгістрацыя па нумары
  • Калі верыць журналісту Tokar.ua, частка сервераў тэлеграм размешчана на тэрыторыі РФ, а еўрапейскімі серверамі валодае расійская кампанія (спасылка на трэд - https://social.kyiv.dcomm.net.ua/@nazar/112014522517070364

Signal

  • Рэгістрацыя па нумары
  • Юрысдыкцыя: ЗША
  • Пападае пад дзеянне закона CLOUD Act

WhatsApp

  • Рэгістрацыя па нумары
  • Юрысдыкцыя: ЗША
  • Пападае пад дзеянне закона CLOUD Act
  • Выкарыстоўвае форк пратакола Signal (магчыма прысутнасць бэкдора)

Падрабязнае параўнанне можна паглядзець тут - https://threema.ch/en/messenger-comparison

alt_text

Хто выкарыстоўвае дадзены месенджар (карпаратыўныя кліенты)

Поўны спіс карпаратыўных кліентаў - https://threema.ch/en/work/clients

alt_text

Падвядзём вынік. І ён як заўсёды вельмі выразны і зразумелы. Калі вы хочаце бяспечныя і ананімныя зносіны, то давядзецца ахвяраваць зручнасцю выкарыстання і некаторым функцыяналам. А ў дадзеным выпадку яшчэ і зрабіць разавы плацеж. Выбар толькі за вамі.

alt_text

Бяспека
Threema
Signal
Telegram
Linux па-беларуску, 2024-06-25

Прывітанне, спадарства!

На нашым сайце невялікае абнаўленне - мы дадалі магчымаць атрымліваць навіны на беларускай мове на электронную пошту. Навіны ў асноўным кранаюць тэхнічныя, калянавуковыя, проста цікавыя навіны з найвядомейшых крыніц.

Як падпісацца?

Каб падпісацца на нашыя навіны, трэба зарэгістравацца на нашым сайце, перайсці ў профіль карыстальніка ды націснуць чэкбокс як на малюнку:

https://firebasestorage.googleapis.com/v0/b/bel-frontend.appspot.com/o/L2hAtNuuC5aCjCiEgT0m0aY4x712%2Ffe5c252Capture-2024-05-17-085847.png?alt=media&token=8d5fdefa-f0b3-4d6e-ad2f-4fef7c6e90a0

Як адпісацца?

Пераходзім ў прафайл і здымаем гэты чэкбокс.

Як часта прыходзяць навіны?

Навіны прыходзяць раз на дзень, звычайна раніцай.

Дзе вы бярэця навіны?

  1. Навіны мы атрымліваем з некалькіх крыніц праз RSS. Звычайна ў пісьме мы дадаем спасылку на арыгінальны артыкул. Таму вы заўседы ведаеце першакрыніцу.
  2. Затым мы прапускаем навіны для іх абагульнення праз ШІ. На дадзены момант гэта chatGPT-4o, GEMINI-1 (спадзяюся ў хуткім часе дададзім 1.5)
  3. Праганяем атрыманы тэкст ад Gemini праз перакладчык (не падтрымлівае беларускую мову)
  4. Дасылаем вам.
  5. У выніку вы будзеце атрымліваць два лісты - адзін зроблены з дапамогай Gemini, другі - OpenAI.

Пасля магчыма мы пераробім логіку, але зараз мы параўноўваем мадэлі, таму пакуль два лісты кожны дзень.

Ці можна дадаць ці памяняць крыніцы?

На дадзены момант гэта пакуль не магчыма.
Мы працуем над гэтым.

Колькі гэта каштуе?

Гэтая паслуга на дадзены момант бязплатная. Мы выдаткоўваем свае ўласныя сродкі. Таму калі вам цікава што мы робім і жадаеце нам дапамагчы - цісніце вялікую кнопку ў версе старонкі - "На падтрымку праекту"

Чаму гэта нам патрэбна?

Ці патрэбна гэта вам ці не - вырашаць толькі вам. Але калі вы напрыклад займаецеся стварэннем навін ці проста жадаеце пачытаць што новага на беларускай мове ( часам канешне з памылкамі, але даруйце, як есць) - то думаю гэта добры інструмент для гэтага.

ЗЫ:

Сябры! Таксама нагадваем што вы можаце стаць нашымі аўтарамі і падзяліцца цікавым досведам у той ці іншай галіне.

Вялікі дзякуй, што застаецеся з намі!

news
Admin, 2024-05-13
;