ToCode
Open in Telegram
××פ×× ×§×¦×Ø×× ×××Ŗ×× ×Ŗ×× ×××Ŗ ×× ×× ×¤×Ø×§
Show more1 419
Subscribers
No data24 hours
+17 days
-430 days
Posts Archive
1 419
××¢×× ×××× ×¢× ××¢×Ŗ×× š
https://notes.zachmanson.com/copilot-edited-an-ad-into-my-pr/
1 419
š ××× ××¤×Ŗ× ××Ŗ ×ר×××§× ×××?
× 2011 ×'×ר×× ×××§× ×©× ×× ×©××××©× ×× ×××××Ŗ ×××Ŗ×××Ŗ ×§×× JavaScript ×××××× ××××× ××¢××××Ŗ ×× ×ש ×פ××Ŗ××, ××¢××××Ŗ ש×פ×× ×××××× ××פר××¢× ××שת×ש××.
×¢× ×××Ŗ× ××× ××××©× ××ר××××Ŗ ××¢××× ×¤××Ŗ×× ××× ×××Ŗ× ×©× ××פ×× ×××ר××¢××. ××××©× ×× ×× ×× × ×××ר×× "×§××" ×"××ר××¢" ××××ר×× "×ש×שת×ש ×××ׄ ×¢× ×פת×ר X ×Ŗ×¢×©× Y", ×× "×ש××¢××ר ×¢××ר ××¢× ×¤×Ø×× X תר×ׄ ××Ŗ ××§×× Z". ×××¢×× ×××Ŗ× ×©××× ×©××× ××תר ××ר××¢×× ××§××¢× ×§×× ×©××פ×× ××× ××× ×§×©× ××××× ×× ××××Ŗ ×§××Ø× ××ער××Ŗ. ×× ×פשר ××× ×××”×Ŗ×× ×¢× ×× ×§××¢ ×§×× ×©×¢××©× ×ש×× ×× ×¤×Ø× ×××××× ×× ××× ×¢×ש×, ××× ×× ×©×Ø×××× ×¢× ×××”× ××× ×Ŗ×צ×× ×©× ×Ø×¦×£ ××ר××¢××, ××××ר רצף ×§××¢× ×§×× ××××. ××× × ××× ××× ×§×©× ×××××× ××Ŗ ×× ×צ×ר×פ×× ××פשר××× ×©× ××ר××¢×× ××× ××ער×××Ŗ ××ר××××Ŗ ×¤×”×¤×”× × ×צ×××.
×'×ר×× ×××§× ×צ××¢ ××©× ××Ŗ ××Ŗ ××××× ×××פר×× ××Ŗ ××¢×××× ××©× × ×©××××: ×§×× ×©×××¤× ×××ר××¢ ×××× ×Ø×§ ××©× ××Ŗ ××× × × ×Ŗ×× ×× ×××ר××, ×××Ŗ××× ×©×××¦× ××שת×ש×× ×××× ×¤×× ×§×¦×× ×©× ×××Ŗ× ××× × × ×Ŗ×× ××. ש×× ×× ×××©× ×× ××××× ××Ŗ ר×××§× ××××Ŗ× ××ר ש×× ×©× ×¤×Ø×××××רקה ×פ××Ŗ×× ×¦× ××§×× ×ש×× ×× ×××©× ××× ×תעש×××.
ש×× ×× ××××©× ×©× ×Ø×××§× ×× ×צר ××××××Ŗ ××ש××Ŗ, ×× ×צר ×”××× ××× ×רקצ×× ××ש××, ×× ××××ר APIs ××ש×× ×פ××פ×ר×× - ×× ××”× ××× ××× ×©×× ×× ×©× ××××¤× ×× ×פת××× ×××Ŗ××× ×§×× JavaScript ××Ŗ×× ×פ×פ×. ×××× ×××Ŗ ×× ×פשר ×××××× ××Ŗ ×¢××× ×פר×× ××× × ×××× ××× ×Ø×××§× ××× ×××ר ×©× ×¤×Ø×××××רקה ××××”×”× ×§××פ×× × ×××Ŗ ×©× ××× ×××Ŗ×.
××× ×'×ר×× ××× ×××× ×ש×× ×× ××§××©× ××× ××× ×××”×Ŗ×× ×¢× ××§××? ××× AI ××× ×××× ×ש×× ×× ××§××©× ×©× ×'×ר×× ××××צ×× ×Ø×××§×? ×ר×ר ש××. ××× ×××”×Ŗ×× ×¢× ××§×× ×× ×פשר ×ר×××Ŗ ××Ŗ ××××, ××× ××¢× × AI ×× ×××××× ×××Ŗ××× ××Ŗ ×× ×©×× ×× × ×צפ×× ×©×××Ŗ××. ××× ××Ŗ ר×××§× ××£ ××× ×× ×¦×¤×.
ר×××§× ××× ×× ×§×¤×צת ××Ø× ××××× ××××”××ר×× ×©× ×¤××Ŗ×× ×Ŗ××× ×, ×××פ×. ×× ×©×¤×Ŗ ×Ŗ×× ××Ŗ, ×× ×¤×Ø×××××רק, ×× ×¤××Ŗ×× ×©××©× × ××Ŗ ××××¤× ×©×× × ××× ×××Ŗ××× ×§×× ××Ŗ××× ××××Ŗ× ×Ŗ×××ר. ××× ×פשר ×××××× ×××Ŗ×××ר ×©× ×¤×Ø× ×× ××Ŗ× ×× ××”×Ŗ×× ×¢× ××§××? ××× ×פשר ××תעצ×× ×¢× ×××× × ×××× ××××ר×× ×©× C++ ××× ×××”×Ŗ×× ×¢× ××§××? ×× ×Ø×§ ××××× ××”×Ŗ××× ×¢× ××§××, ×× ×××Ŗ×× ××Ŗ ×ר×××§× ×××?
×× × ×××©× ×©×ש ×¤× 3 תש××××Ŗ ×פשר×××Ŗ:
1. ×× ×××× ×Ø×××§× ×××. ×× × ××× ×פה××§× ×××”×Ŗ×× ×¢× ×§×× ×××ש××× ××ש××× ×¢× ××××× ×× ×××××× ×× ××× ××פת.
2. × ××× ××× × ××××××Ŗ××Ŗ ×××× ××תר × LLM-×× ×××× ×Ŗ×צ×× ××Ŗ ×××ר ××× ×©× ×©×¤××Ŗ ×Ŗ×× ××Ŗ.
3. × ×Ŗ×¢×רר ×× ××× ×©××× ××× ×××××× ×ש ××××××Ŗ. ש×צ×רת ×××”×רת ××Ŗ××× ×××× ×××××× ×¢××××Ŗ ××× ×××§ ×ש×× ×××¢×××× ×©×× × ×××× ×××××× ××× ×Ø××”××, ×'×ר×× ×××§×, ×××Ø× ×××, ××Ø× ×× ×××× ×××× ×”××£ ×פת××× ××¤× ×× × - ×× ×× ×× × × ×Ø×××× ××ש××× ×צ×רת××Ŗ ×¢× ×§××.
1 419
š ×§×××× ×¢× AI ××©× × ××Ŗ ×”×ר ××¢×××× (××× ×××§ ×××§×ש×)
×××”×¤×Ŗ× × langlets ×פשר××Ŗ ×ש××ר ××××× ×××צר ××××× ×××©× ×תר××× ×××”× ×©× ×Ŗ×Ø××× ×××××× ×©×©×רת×. ××ש×× × ×××ר ×××”×¤×Ŗ× ×× × ××Ŗ×××× ×©×××§×©×Ŗ× ××§××× ××××”××£.
×× ×¢× AI ××× ×××¢××× ×× ×¤×צ'ר ש××××× ×× ××¢× ××××××Ŗ - ×× ×××”××” ×× ×Ŗ×× ×× ××× ×××××× ×××ש×××Ŗ ××ש××Ø× ××× ××§×× ×¦× ×שרת ××× ×תר×× ×××Ŗ×. ×ש××× ×¢× ×§××× ××Ŗ×¢×××Ŗ× ×¢× ×××§ ××××××××Ŗ ×××× ××× ××Ŗ× ×Ŗ××× ××Ŗ ××”××רת ××× ×××××××Ŗ ××ר××Ŗ ×× ××§××©×Ŗ× ×××× ×Ŗ×©×××Ŗ ×× ×× ×Ŗ×Ŗ× ××§××× ×ר×ׄ ×××. ××× ×”×¤×§ ש××Ŗ×צ×× ××× ×¤×צ'ר ×¢××× ××ר×× ××תר ××ר ××× ×©××××Ŗ× ×××Ŗ× ×××Ŗ× ××× (×פ××× ×©×× × ×××ר ××× ××Ŗ ××ער××Ŗ ×××××¢ ×××××§ ×××× ×§×× ××× ×¦×Ø×× ×××Ŗ××).
×××Ø× ×©×¢××Ø×Ŗ× ×¢× ××§×× ×Ø×××Ŗ× ×©×§××× ×צר ×§××ׄ ×¦× ×©×Ø×Ŗ ××ש ×××פ×× ××××Ŗ× ×©××¢××Ø× ×××Ø× ××ש×××. ×× ××§××ׄ ×××ש:
https://github.com/ynonp/langlets-rails/blob/main/app/controllers/review_lessons_controller.rb
××× ××§××ׄ ×××§××Ø× ×©×××¤× ××שת×ש×× ×©×¤×©×× ×Ŗ×Ø××× ××Ŗ ×ש××¢×ר:
https://github.com/ynonp/langlets-rails/blob/main/app/controllers/lessons_controller.rb
××§× ×ר×××Ŗ ש×ש ×××× ×§×× ×ש××Ŗ×£ ××× ×©× × ××§×צ×× ××××.
×¢×ש×× ×ר×ר ×× ××× ×§××× ×¢×©× ××Ŗ ××. ×ש ×××× ×§×× ×ש××Ŗ×£ ××× ×× ×× 100% ××Ŗ×××, פ××Ŗ×× ×פ×צ'ר ×××ש ×××Ŗ×××Ŗ ××§×× ××§××× ×××Ŗ× ×¢×××× ×ש××ר ××ר×× ×§××××× ××× ×× × ××××¢×× ×©×”××× × ×§×××× ×¢×ש×× ××× ××× ×× ×ש××ר ×§×× ×§×××. ×××××× ××× ××ר×× ××Ŗ ×§×× ×¦× ×שרת, ×××× ×××§ ×××§×× ×©× ×©× × ××§×צ×× ×¦×Ø×× ×××××Ŗ ×ש××Ŗ×£ ××××× ×××§ ×××¤×Ø× ××× ××××× ×Ŗ×× ××Ŗ××Ŗ ××צר××Ŗ קש×, ש×ער××Ŗ ×××ר××Ŗ ×¢× ××ער××Ŗ ×× ×××ש ×× ×××× ×××©×Ŗ× ××Ŗ ××¢×Ŗ×× ×צ××Ø× ××רת ××× ×©× × ××§×צ×× ××× ×¦×Ø×× ×××× ×××©×Ŗ× ××Ŗ ×××. ××¢××× ×©××¤× × AI ××¢××¤×Ŗ× ×××××× ××Ŗ ×××××××Ŗ ×××× ×ר×ש ××× ×××Ŗ×× ××× ×©×¤×××Ŗ ×§××.
×××× ×¢× AI ×”×ר ××¢×××× ××©×Ŗ× ×, ××× ×××§ ×××§×ש×. ×ש ×× ×§×× ×¢××× ×× AI ××ר ××××× ×ש×××× ×©××× ××××× ××××ש ×פ×× ×©× ×× ×× ×× ×× ××××. ×¢×ש×× ×× × ×¦×Ø×× ××§××Ŗ ×ער××Ŗ שע××××Ŗ ××× ×§××Ŗ ×××Ŗ× - ××× ×¢×××× ×©××¢××× ×××××× ×עש××Ŗ. ××× ××§×Ø× ×פשר ××××¢×ר ××§××× ×× ××¦×¢× ×××. ×× × ××× ×©××××Ŗ ×× ×××Ŗ:
1. ×Ŗ×ר ×× ×¢××©× ×§××ׄ ×
2. ×Ŗ×ר ×× ×¢××©× ×§××ׄ ×
3. ××”×ר ××× ×× ××Ŗ×××××× ×©×××צע×× ×פ×× ×§×¦×× X ××§××ׄ × ×××§××ׄ ×, ××××× ××× ×ש×תפ×× ××©× × ××§×צ××?
4. ×”×ר ×××ש ××Ŗ ××§×× ×©× ×¤×× ×§×¦×× X ××¤×¦× ×××Ŗ× ×פ×× ×§×¦×××Ŗ ×§×× ××Ŗ ××תר ××× ×©× ××× ×ר×××Ŗ ×× ×תפק×× ×©× ×× ×××§
×פרה×××Ŗ ×©× ×¢×××× ×¢× ×§××× ×”××¤×Ø× ×× ×©×פת××× ×¦×Ø×××× ××שק××¢ ××תר ××× × Code Review ××× ××××× ×©×§××× ×× ×¢×©× ×©×××××Ŗ. ×× × ×××©× ×©× ××× ××תר ××××× ×©×פת××× ×¦×Ø×××× ××שק××¢ ××תר ××× ××× ×× ××§×× ××ר×פק××ר ×××Ø× ×©×ש ×ער××Ŗ ×¢××××Ŗ ××× ×שפר ××Ŗ ××¦× ××§×× ×קר××Ŗ ×פ×צ'ר ×××.
1 419
š ××ש ×פ×××Ŗ×× InterpreterPoolExecutor
×××××× concurrent.futures ×§××× ×פ×××Ŗ×× ×¢×× ×××Ø×”× 3.2 ××××× ××שק ×××× ×××צ××¢ פע××××Ŗ ×××§×××. ×× × ××××× ×§×¦×Ø× ×©×”×פרת ×הפר×× ×Ø×ש×× ××× ×צ××Ø× ××§×××××Ŗ ×××צע××Ŗ Executor, ×Ŗ×××× ×¢× ×Ŗ×××××× ×× ××××ר ××× ×¢× ×Ŗ×××××× ×××××:
from concurrent.futures import ProcessPoolExecutor, ThreadPoolExecutor, InterpreterPoolExecutor
import math
import time
def is_prime(n: int):
for i in range(2, math.floor(math.sqrt(n)) + 1):
if n % i == 0:
return False
return True
if __name__ == "__main__":
t0 = time.time()
with ThreadPoolExecutor(max_workers=4) as p:
print(sum(p.map(is_prime, range(1_000_000))))
t1 = time.time()
with ProcessPoolExecutor(max_workers=4) as p:
print(sum(p.map(is_prime, range(1_000_000))))
t2 = time.time()
print(f"Thread count took {t1-t0}")
print(f"Process count took {t2 - t1}")
××Ŗ×צ×× ×צפ×× ××× ××ש×× ×ר×× ××תר ×××ר ×××צע××Ŗ threads ×××× ×©××”×× ×ר×× ×ר×× ××תר ×××ר ××× ×צ×רת threads ×ר×× ××תר ××××Ø× ××צ×רת Processes. ××× ×ש×××ש × threads ×ש ×©× × ×הר×× ××Ŗ:
1. ××× ×פר×× ××× ××××××§××× - ××××ר ×§×× ××× threads ×××× ××שת ×××¢××× ×××××§××× ×××××××××.
2. ×רה×××Ŗ ר×××Ŗ ×©× ×¤×××Ŗ×× ××××¢××Ŗ ×¢× Global Interpreter Lock ×× ×©×××ר ש×× ×¤×¢××× ×©× ×¤×××Ŗ×× ××Ŗ×× × thread צר××× ×× ×¢×× ××Ŗ ×××Ŗ× ×× ×¢×× ×××××××.
××Ø×”× 3.14 ×©× ×¤×××Ŗ×× ×××”××¤× ×¤×Ŗ×Ø×× ××× ××× ×©× ×§×Ø× InterpreterPoolExecutor. ××צע ×× ×ר×ׄ ×× ×ש××× ××פרש פ×××Ŗ×× ×¢×¦××× ×©×Ø×„ × thread × ×¤×Ø×, ××××ר ×××§×× ××פע×× fork ××××צר ×Ŗ×××× ×ער××Ŗ ×פע×× ×××©× ××פרש ×××ש ×× ×ר×צ×× ××Ŗ ××פרש ××××Ŗ× ×Ŗ××××. ××Ŗ×צ×× ××× ×פר×× ×××× ××× ××©×Ŗ× ×× ×× ××× ×פרש ×ש ××Ŗ ×××©×Ŗ× ×× ×××××××××× ×©××, ×פר×× ×× ×¢××××Ŗ ×× ××× ×פרש ×ש ××Ŗ × GIL ש×× ××¢×××× ×Ø××¦× ××תר ××××Ø× ×× ×× ×× × ×Ø×¦×× × threads ×××§×× × processes. ××× ××תר ×××ר? ×× ×× ×©××§× ×הפ×ר ×הפר×× ×Ø×ש×× ××× ×צ×× ×¢× ×××§:
Thread count took 6.0312182903289795
Process count took 80.60068678855896
Interpreter count took 24.76494789123535
×”× ××× ××××× × ×× ××, ××××ר ×× ThreadPoolExecutor פ×תר ××× ××Ŗ ×××¢×× ×××× ××¢×××Ŗ ×”×× ×ר×× ×× ×××©× ×××××¢ ××××××× ×Ŗ×ש××× ××שת×ש ×× ××× ××× ×××ר ×××ש××××, ××× ×× ×¢×××Ŗ× ×¢× ProcessPoolExecutor ×××× ×©××× ×ש××Ø× × InterpreterPoolExecutor ×××§×× ××Ŗ ×××Ŗ× ××Ŗ× ××××Ŗ ×××צ××¢×× ××××× ××תר.1 419
š ×××¢××Ŗ ×©× ×פת××× ×©×¢××ר×× ××× ×©×¤××Ŗ
××× ××× ××××Ŗ ×××§× ××¢××ר ×פ×××Ŗ×× × Java? ×פ×××Ŗ×× ×ר×××? ××× ××××× × ×××××” ××¤×Ŗ× ×¢× × ×”××× × Rust ××¢××××Ŗ Java ×× ×××פ×?
× ×Ŗ××× ××××× ××××× - ××× ××× ×××§× ××× ×©×× ×, פר×××××רק×× ×©×× ×× ×× ×××× ××רת ××××××× ××שפ××¢ ×¢× ××× ××××××, ×ש פ×צ'ר×× ××××××× ×שפ××Ŗ ××”×××××Ŗ ×©×§×©× ××××× ×× ××Ŗ× ×××× ××©×¤× ××רת (××× × ×××× ×××ר×× ×©× ×Ø××”×). ×× × ×Ø××¦× ×××Ŗ××§× ××× ××פת××× ×©× ×©×ר×× ××××Ŗ× ×¢××× ×××××× ××¤×Ŗ× Django שע××ר × Rails ×× ×פת××Ŗ Rails שע××רת × Laravel. ××קר×× ×××× ×××××Ø× ××××× ××××× ××× ×שפ×.
×××× ×¢× × AI ×××× ×§× ××ר×ׄ תר××× ×”×××××× ×, ××××ר ××Ŗ×ר × AI ×× ×©×× × ×¦×Ø×× ××©×¤× ×©×× × ×××ר × Rails ×××× ×פ××× ×¢× ×××××Ŗ ×§×× ×Ø×××× ×××Ŗ ×××××× ×× ××× ××Ŗ ××Ŗ ×× × Django. ×× ×× ××©× × ×× ××©×¤× ××× ×Ø××× ×× ×¤×××Ŗ××, ×× ×©×ש×× ×©×××× ×¢×× × ×Ŗ××, ××ש×× ××××¢ ×××”××” ×× ×Ŗ×× ××, ××ר×ׄ ×Ŗ×××× ×רקע ×× ×ש××× ×××××× ×××Ø× ×¤×¢×××Ŗ ×שת×ש.
××× ×××Ŗ× ×Ŗ×Ø××× ×”×××××× × ××× ×××¢××Ŗ ××× ××××× ×©× ×פת××× ×©×¢××ר×× ××× ×©×¤××Ŗ. ××ר××©× ×©×× "×× ×××××× ×××××" ××פשר ×××××Ŗ פר××××§×××××× ××ר××Ŗ ×× × ×ש×××£ ×××× × ××× ××××ר××Ŗ ×¢× ××©×¤× ××××©× ××× ×××Ŗ×ר ××Ŗ × AI. ×צ××Ø× ××××Ŗ ×× ×× × ××§×××× ×¤×Ŗ×Ø×× ××Ŗ ××”××”××× ××פ××× ×× ××××× ×©×ש ××¢××. ××תר ×ר××¢, ×××× ×ש×××ש ×× ×Ø×× ×תר××× ×”×××××× × ×× × ××”×Ŗ×××× ×¢× AI ××פ××× ×× ×¦××ר×× × ××”××× ××©×¤× ×××ש×.
×פתר×× ×× × ×××©× ××× ×× ××××Ø× ×ש×× ×× ×©×××Ŗ ××¢×××× ××× ×ש×× ×× × ×§×××Ŗ ××××. ×××¢×ר ××× ×©×¤××Ŗ ×× ×× × ×× × ×©×ר×× ××××Ŗ× ×Ø××Ŗ ××××× ××Ŗ ש×××× ×. ×× ××ש ××”×ר ××××× ××××Ŗ× ××¤×Ŗ× ×¤×××Ŗ×× ××¢××× ××¢×ש×× ×× × ××¤×Ŗ× ×Ø××× ××Ŗ×××. ×××¤×Ŗ× ×× × ×¢×××× ×××× ×××××, ×××ר ××Ŗ ×¢××× ××Ŗ××× ××§××× ×××ר ××ש ××ר. ×××¤×Ŗ× ×Ø××× ×× × ×× ×××ר ××Ŗ ×××§××”××”×× ×הפ××§ ×××, ×× × ×× ×××× ××Ŗ × Best Practices ×©× ××©×¤× ×× ×©× ×פר×××××רקה ×ש×× ××, ×× × ×× ×××ר ××Ŗ ××Ŗ×× ×××Ŗ ×××Ŗ ××§×Ø× ×קצ×.
×¢×××× ×× ×§×Ø××Ŗ× ×”×¤×Ø××, ×¢×××× ×× ×Ø×××Ŗ× ×רצ×××Ŗ, ×¢×××× ×× × ××”××Ŗ× ×©××××Ŗ ש×× ××Ŗ, ×¢×××× ×× ×§×Ø××Ŗ× ×הפ××§ ×§×× ×©× ××ר×× ××¢×××× ×× ×××××Ŗ× ×הפ××§ ××¢×××Ŗ ×××ר××Ŗ. ××Ŗ×ר ××¤×Ŗ× ××©×¤× ××××©× ×ש ×× ×××× ×× ××××× ××× × ×Ø×§ ×ר×××× ×× ×שק××¢ ××× ×××§××× ××¢×××× ×ש××פת.
×××¢××Ŗ ×©× ×פת××× ×©×¢××ר×× ××× ×©×¤××Ŗ ××× ×××Ŗ× ××¢××Ŗ ש×ש×××Ø× ×פת××× ××× ×× ××× ×× ××©×¤× ×××Ŗ - ×××××Ø× ×××××Ŗ ××תר פר××××§×××××× ××קצ××¢×××, ××”××× ××ר ××× ×××”×××××Ŗ, ×××צר ××Ø×”× ×××Ŗ ×©× ×§×× ×¢××× ×××§×× ×××Ŗ××× ××× 5 ×רה×××Ŗ ×××××ר ××Ŗ ×××Ŗ×××× ×××תר ×××§×Ø× ×הפצ××¤× ×©××. ××××× ××¢××ר ××× ×©×¤××Ŗ ×× ×× ××××× ××צ×××× ××©×¤× ××××Ŗ.
1 419
š תר××× vue.js - ×× ×©××ר ××§××פ×× × ××
××Ŗ ×××× ××× ×צ××Ŗ× ×××§×Ø× ××§×× ××××Ŗ× ×©×שת×ש ×××Ø×”× ××©× × ×©× ×הפר×× ××××ר ×××× ××§× ×× ×××× ×©×¢×Ŗ××× ×××××× ×ש××Ŗ× ×©××× ×צ×××§ ×× ×¤××”×. צר×× ××××× ×××שר ש×××Ŗ×ר ××× ××××× ×©×ש ××¢×× ××§××פ×× × ×× ××צ×× ××Ŗ ש×עצ×× × ××¢× × ××Ŗ×× ×§××פ×× × ×× ××צ×× ××Ŗ ×××Ŗ× ××§×××× ×¤× ×Ø×§ ××Ŗ ××¦×¢× ×××ר×× ×©× ×××Ŗ×ר.
×××× ××? ×× × ×§×× ×§××פ×× × ××Ŗ vue.js ש××××Ø× ××צ×× ×§×× ×¦×××¢ ××× ××Ŗ×¢×××Ŗ ×פר××ר ××©×¤× ×©×× × ××¢××ר ×× ××Ŗ××× ×ר××¦× ××××× ×××××××:
import { ref, h, computed, defineComponent, Plugin, watch } from 'vue'
import hljs from 'highlight.js/lib/core'
import { escapeHtml } from './lib/utils'
const component = defineComponent({
props: {
code: {
type: String,
required: true,
},
language: {
type: String,
default: '',
},
autodetect: {
type: Boolean,
default: true,
},
ignoreIllegals: {
type: Boolean,
default: true,
},
},
setup(props) {
const language = ref(props.language)
watch(() => props.language, (newLanguage) => {
language.value = newLanguage
})
const autodetect = computed(() => props.autodetect || !language.value)
const cannotDetectLanguage = computed(() => !autodetect.value && !hljs.getLanguage(language.value))
const className = computed((): string => {
if (cannotDetectLanguage.value) {
return ''
} else {
return `hljs ${language.value}`
}
})
const highlightedCode = computed((): string => {
// No idea what language to use, return raw code
if (cannotDetectLanguage.value) {
console.warn(`The language "${language.value}" you specified could not be found.`)
return escapeHtml(props.code)
}
if (autodetect.value) {
const result = hljs.highlightAuto(props.code)
language.value = result.language ?? ''
return result.value
} else {
const result = hljs.highlight(props.code, {
language: language.value,
ignoreIllegals: props.ignoreIllegals,
})
return result.value
}
})
return {
className,
highlightedCode,
}
},
render() {
return h('pre', {}, [
h('code', {
class: this.className,
innerHTML: this.highlightedCode,
}),
])
},
})
const plugin: Plugin & { component: typeof component } = {
install(app) {
app.component('highlightjs', component)
},
component,
}
export default plugin
ר×××× ××Ŗ ×××¢××? ×תש××× ×ש××Ø× 30:
const autodetect = computed(() => props.autodetect || !language.value)
××§×× ××××ר ××צע ××××× ××××××× ××××Ŗ×¢×× ×××פ××× ××©×¤× ×× ×× ××¢××Ø× × ×©×¤× (××××× ×) ×× ×× ×××פ××× autodetect ××¢× ×¢×Ø× ×××Ŗ. ××××§ ××©× × ××× ×××× ×××××Ŗ ×”××ר ××××× ×××Ŗ ×××Ŗ× ×ר×רת ××××× ×××פ××× ××:
autodetect: {
type: Boolean,
default: true,
},
××××ר ×× ×× × ×× ××¢××ר ×¢×Ø× false ×צ××Ø× ×פ×רשת ××××Ŗ× autodetect ×ר×רת ××××× ×©×× ××× ×××××Ŗ ××× ××Ŗ ××©×¤× ××××Ŗ×¢×× ××¢×Ø× × language ש××¢×רת×.
××”××× ×©×× × × ×Ŗ×§×¢×Ŗ× ×¢× ××”×פ×ר ××× ××תר ××× ××× ××× ××£ ××Ŗ××¢×× ×©× ×הפר×× ×©×צ×× ××Ŗ ×××××× ××××:
<div id="app">
<!-- bind to a data property named `code` -->
<highlightjs autodetect :code="code" />
<!-- or literal code works as well -->
<highlightjs language='javascript' code="var x = 5;" />
</div>
ש××××× ×¢××××Ŗ רק ×××× ×© highlightjs ×צ××× ×××××Ŗ ××××××××Ŗ ×××××§ ××Ŗ ×××Ŗ× ×©×¤×Ŗ javascript ש××××רת × language.
×¢×ש×× ×Ŗ×©××× - ××× ×× ×××× ×§××× ××× ×צ×××Ŗ ש×××¢ ×××”××ר ×××××§ ××Ŗ ×××× ×××? × ×, ×ש ×§××× ××× ×××× ×צ××× ××צ××¢ ×××× ×Ø×¢××× ××Ŗ ××§×ר××× ××× × ××× ××. ××”×Ŗ×ר ש×× ××× ×× ××©× ×©×Ŗ××¢×× ×××× ××××¢××Ŗ ×××××× ×××××× ×קר××Ŗ ×הפר×××Ŗ ××צ×× ×××Ŗ.1 419
š ×× ×©×× × ×¤××¢ ××ר×××
×ר××× ×”×רק ××Ŗ ×פר×××§××× ×©××× ××× ×××××§ ש××× ××¢×××Ŗ ×××××. ××××× ×©××× ××××× ×× ×××Ø× ×××× ××¤×Ŗ× ×פ×רצ×× ××××ר×× × ×××× × ×©×¤×רצ×× ×צ×××× ××ש×× ××Ŗ ×פת×××Ŗ ××××©× ×©× ×ר××× ×××¤×Ø×”× ×ש×× ×רה×××Ŗ ××××פ××Ŗ. ×פר××× ×××:
https://github.com/aquasecurity/trivy/security/advisories/GHSA-69fq-xp46-6x23
×× ×©××¢× ××× ××”×פ×ר ××× ×× ×× ×©× ×¤××¢ ××× ×× ×©×× × ×¤××¢. ××Ŗ×× ×××××× ×× ×× × ×××××× ×©×× × ×¤××¢× ×× ×©×שת××©× × trivy images referenced by digest - ××× ×× ×× ×××ר? ×××× ×רה×××Ŗ × digest ××× ××”×× ××Ŗ?
×××ר ×××××××Ŗ ×©× ×ר××× ×××× ××Ŗ רש×××Ŗ ×××××'×× ×©×× ×¤×Ø×”×× ×¢× ×Ŗ××××Ŗ ××× canary, latest, 0.69.3 ××Ŗ××××Ŗ ×ר××××Ŗ ××תר ש××Ŗ×××××Ŗ × sha256 ×××
sha256:b39e145284f15252b2135abe0e24509d7ad2459d28c18f014e478c6ca0aee533.
×ש×× ×× × ×ר×צ×× docker run aquasec/trivy ×× ×× × ×ר×צ×× ××Ŗ ×××Ø×”× ×©×ש ×¢××× ××Ŗ ××Ŗ× latest. ××× × ×Ø×ׄ docker run aquasec/trivy:canary × ×Ø×ׄ ××Ŗ ×××Ø×”× ×××Ŗ××××Ŗ canary. ×××× ×©××× ××× ×Ŗ× ×× × ×¤×¢××:
docker run ghcr.io/aquasecurity/trivy:sha256-bcc376de8d77cfe086a917230e818dc9f8528e3c852f7b1aff648949b6258d1c
× ×Ø×ׄ ××Ŗ ×××Ø×”× ×¢× ××Ŗ× ××ר××.
××Ŗ××× ××ר×××× ×©××Ŗ××××× × sha256 × ×§×Ø××× digest. ×××××× ×××©× ×××Ŗ× ××××××××Ŗ ××Ŗ×× ×Ŗ××× ×××××× ××× × ××Ŗ× ××צ×ר ×××Ŗ× ×צ××Ø× ×××××. ×× ×©×ר ××Ŗ××××Ŗ × ××¢×× ×××××Ŗ "××××§××Ŗ", ××××ר ××××× ×××ש×× ×©×פשר ××××××§ ×¢× ××Ø×”× ××× ××××× ×××Ø×”× ××רת. ×× ××××× × ×ש××ש××× ×¢× ×Ŗ× ××× latest - ×× ×¤×¢× ×©×ש ×× × ××Ø×”× ×¢××× ××Ŗ ×××©× ×× ×× × ×××××× ××Ŗ latest ×××Ø×”× ×××ש×.
×× ×ר×ר ש××Ŗ×קפ×× ×©×שת××× ×¢× ×¤×Ø×× ×××××××Ŗ ×©× ×ר××× ×צ×××× ××§×××Ŗ ××¤×Ø×”× ×רה×××Ŗ ×××× ×××Ŗ ×©× ××ער××Ŗ ××××××£ ×Ŗ××××Ŗ ××× latest, canary ××× v0.69.4. ×פ××× ×©×רה×××Ŗ ×××× ××ר ××× ×§×××××Ŗ, ×× ×× ×©×¦×Ø×× ×× ×××××£ ×¢×××× ××Ŗ××× ××× ××× ××ר××” ××Ŗ ××”××××. ××¦× ×©× × ×× ××©× × ×× ××¢×©× ××Ŗ×קפ×× ×× ×× ×צ×××× ××××× ××Ŗ ×”×××× × × digest ×× ×ש××× ×× ×¦×Ø×× ××צ×ר ××Ø×”× ×××× ××Ŗ שת××× × ×××Ŗ× ××Ŗ ×××Ŗ× ×Ŗ×צ××Ŗ sha256 ××× ××ר ×”×פ×ר ×ר×× ××תר ×××Ŗ×ר.
××§×××? ×× ×ש×× ××××, רק ×¢×× ××× ×¢× ××ר××§ ××× ×××××Ŗ ××××¢ ×× ××××Ŗ ש×××ש. ×× × ××××¢ ש××××××הפ×ר×, ×××ר×××× ××פ××× ×צ'×× ×Ŗ××× × ×§×× ××Ŗ ×××Ø×”× ××§×× ××¢××××, ××× ×× ×Ŗ×©××× ×©×פר×××§×©× ×ר×× ×× ×©×× ×× ×שת×ש×× ××רה×××Ŗ ××§×××¢××Ŗ ×©× ××Ŗ×××××Ŗ ש×××, ×××××§ ×ש××× ××××× ×¢ ××××× ×Ø×ש ××××.1 419
š ××¤× × ×××ש ×× ×¢××
××× ×Ŗ×§×××Ŗ שת××§× ×Ŗ× ×××§××××Ŗ ××Ŗ×§××¤× ×××ר×× ×, ×××× ××§×××ר×××Ŗ "×× ×¢×× ××¤× × ×××ש ×××× ×× × ××¢× ×"-
1. ש×× ×× ×Ŗ×©×Ŗ××Ŗ ××¦× ×”×¤×§ Third Party ××Ø× ××§×× ×ר××× ×©×× × ××פה××§ ××¢××× ××רש ×¢×××× ×Ŗ××× × ×××¦× ×©×× × ××× ×××Ŗ××× ××× ×× ×× ×××ש.
2. ×××”×§ ××××× ×©× ××ר ×× ×××§×× ××Ø× ××שת×ש×××Ŗ ××ר××¢×× ×צערת ש××”××¤× ×ער××Ŗ ×פה××§× ×××××.
3. ×¤× ×Ŗ××§×£ ×Ŗ×¢××× ×××Ŗ××× ×¢×¦×××Ŗ ש×××¤×§× ×××§×ר ××©× ×Ŗ×××. ×× ×× ×©× ×Ŗ××× ×¢××ר××Ŗ ××”××£, ×× ×©×פ×× ××Ŗ ×× ××§×××”×ר.
4. ×'×× ×”×× ×ר×× ××× ××”××”× × ×Ŗ×× ×× ×©"×× × ×××× ×©××× ×©×" פש×× × ×¢××. ××”×× ×ר×× ×פה××§ ×××××× ×××× ××ר ש××× ××רפ×××§× ×¢× ×©××ש×× ××× ×¦×Ø×× ××× ×× ××××××§×” ש××¦× ×¢× × ×Ŗ×× ×× ×× × ××× ××.
×¢×ש×× ×ש ×”×פ×ר ××××× ×”××× ×× ××××× ×Ŗ××£ ×××××× ×תפ××” ××Ŗ ×× ××§××××Ŗ ××¢×××× ×©× ××× ××”× ×Ŗ××× × ××× ×©× ×¤×Ø×××§× ×©×× ×××× ×× ×Ø×§ ×××Ŗ×× ×¤×Ø××פ××× ×× ××××. ××× ××× ××ר××¢×Ŗ ×××ר××¢×× ×רש××× × AI ××Ŗ××× ×××××Ŗ ×××¢×× ×Ø×§ ×××Ø× ×©××× ×Ŗ× ×× ××§×ר ××Ŗ×§××. ××× ××× ××××ר××¢×× ××£ ×××× ×××××××× ×××××××× ×××× ×× ××× ××”××× ×××צר ×Ŗ××× ××Ŗ פע××× ××× ×××ר×× ××Ŗ ××”×××× ××××©× ××Ŗ ×Ŗ×§×× ××× ××¤×¢× ×××× ×× ×שפר ××Ŗ ××× × ××Ŗ×××× ×©×× × ×ש×× ×§×ר×.
צ'×× ×'×פ××× ××××× ×עש××Ŗ ××××Ŗ ×ש××××Ŗ ×××××Ŗ ××Ŗ×”××× ×©××× ×× ×××Ŗ× ××צ××¢ ×× ×××Ŗ××עׄ ×¢× ××ש DevOps. ×× ×Ŗ×”××ר ×× ×©××Ŗ× × DevOps. ×× ×ש ×ש×× ×©×פער ××× ××× ××”× ×Ŗ××× × ××”××× × ×§×××× ×××× ×××Ŗ× × ××× ×©××× ××”× ×Ŗ××× × ×× ×××××× ×ש×× ××§××.
× .×. ××ר×× ×©× ×©×ר×× ×¤×Ŗ××× ×× ×Ŗ×××× ×©× ××¢×× ××ער××Ŗ. ×× ×× × ×©××Ø× ×¤×Ŗ××× ×× ×Ŗ××× ××× ×©××ר ××× ×¢×ש×× ×Ø×§ ש×× × ×× ××× ×× ××× ×¤×צ×ׄ. "××× ××§×× ××× ××ש×ר" ××× ×¢×××× ×ש××× ××× ×ש××× ××פת××× ×¢× ×× ×§×× ×©×× ×× × ×××Ŗ×××.
1 419
#!/bin/bash
# npm-search.sh - Search npm for packages
# Usage: ./scripts/npm-search.sh <search-terms>
if [ $# -eq 0 ]; then
echo "Usage: $0 <search-terms>"
echo "Example: $0 date format manipulate"
echo " $0 csv parse stream"
exit 1
fi
SEARCH_QUERY="$*"
echo "š Searching npm for: $SEARCH_QUERY"
echo "----------------------------------------"
npm search "$SEARCH_QUERY"
××× ×××. ×¢×ש×× ×ש×× × ××קש ××§××× ×§×× ×××ש פ×צ'ר ×פר×××§× ××× ××× ××פש ×§××× × npm search ×× ×§××××Ŗ ××××× ××× ×××¦× ××××× ×Ø×××× ×××Ŗ ××× ×שת×ש ××.
×”× ××× ××”×§×× ××ר×× ××©× × ××§×צ××:
ynonp@ynons-MacBook-Air ~/.claude/skills/npm-search (main?) $ tree
.
āāā scripts
ā āāā npm-search.sh
āāā SKILL.md
2 directories, 2 files
ש×פ×ר ××¢×××Ŗ MCP? ×××××:
1. ×§× ××תר ×××Ŗ××× - ×× ×××§×”××× ××ש××× ××§××ׄ markdown ××”××ר ×××§×× ××Ŗ×××ר ×©× tool-××. הקר×פ××× ×××××× ×××××Ŗ× ××× ×©×¤× ××פ××× ×פשר ×ש×× ×הפר שפ××Ŗ.
2. ×××”× ××§×× ××××× ××§×× ××§×”× - ×××§×”××× × ××¢× ×× ××¤× ×ר××©× ××צ××Ø× ××× ×××Ŗ, ×××××× ××Ŗ× ×××××× ×××¢×× ×××Ŗ× ×× ×צ××Ø× ××××× ×××צע××Ŗ פק×××Ŗ / ××©× ××”×§×× ×××§×Ø× ×©×× × /npm-search.
×פשר ××צ×× ×¢×× ×××××××Ŗ ××”×§×××× ×ר××¤× ×©× ×× ×ר×פ××§ ×××:
https://github.com/anthropics/skills
×× ××××ר ××”×§×××× ×©× ×§×××§×”:
https://github.com/openai/skills/tree/main/skills/.curated
××× ××××× ×Ŗ ר×× ×Ø×× ××ר×× ×× ×× ×§×פ××××× ××× opencode ×קר×× ×”×§××× ××××Ŗ× ×Ŗ××§×××Ŗ ~/.claude/skills. ×§×××§×” ××פש ×××Ŗ× × ~/.codex/skills.1 419
š × MCP × Skills
×ר××¢ ××צ××Ŗ פר××××§×× MCP ××× ××Ŗ×¤×©× ××ש ×ש×× ×§×צ××. ×× ××צר, ×× ×צר×, ×× API ×ר××ש ש××× ×××× ××פ×ׄ MCP ××× ×©××× AI ××××× ×××Ŗ××ר ××××Ŗ× ×××צר. ×× ×ש ×× × MCP ×©× ×'××Ø× ××¢××Ø×Ŗ× ××××× ×××× ×קר×× ×××§×××, × MCP ×©× ×¤×××× ××¢××Ø×Ŗ× ××××× ×××× ×קר×× ××Ŗ ××¢×צ×××× ××× MCP ×©× ×¤×××ר××× ×××Ŗ× ×פשר ×ש××× ××פ××¤× ××¢×× ××× ×”××£ ×פשר××××Ŗ. MCP ××× ××”× ××× ×××”×£ "××××", ××××ר ×××”×£ ×©× ×¤×§××××Ŗ ש××××× ×××× ××פע××. ××× ×¤×§××× ×ש ×Ŗ×××ר ×ש×× ×××Ø× ×פע×× ×ש××. ×××××××Ŗ ×פק××××Ŗ ש××××¢××Ŗ × MCP ×××× "×§×Ø× ×§××ׄ ×ר××¤× ××××", "ש××¤× ××Ŗ ×ר××¤× ××ר×××§", "××¤×¢× ×פ××¤× ××××ש ×××Ŗ×××Ŗ ××”××××Ŗ", "×××ר רש××× ×©× ××××××§××× ×פר××× ××”×××".
×הר×× ××× ×©× MCP ××× ×©×ר×× ×× ×©×× ××Ŗ×§×× × ×××Ŗ× ××× ××¢× ×× ×©×× ××Ŗ×× ×××Ŗ×. ×× ××× ××תר ×”×פ×ר תר×××Ŗ× ××שר ××××× ××× ××××××Ŗ ×× ××××Ŗ ש×× ××”××× ×××Ŗ×× ×©×Ø×Ŗ× MCP ××× ×× ××× ××צ×. ×הר×× ×©× × ×©× MCP ××× ×©×× MCP ש×× × ××Ŗ×§×× "×Ŗ×פה ××§××" ××××× ××§×× ××§×”× ×©× ××××× ×××× ××Ŗ××××Ŗ ×× ×©××× ×××× × ×¦×Ø×××× ××××ר ××××× ×©×Ø×Ŗ× MCP ×× ×× × ××”××××× ××שת×ש ×ש××× ××.
×× ×× ×× ××××¤× ×©×¦××ר ×Ŗ×××¦× ××¢××ר ×פת×ר ××¢×× ×××× × ×§×Ø× Skills. ×× ×××× × MCP, × Skill ××× ×××××ר×. ××××× ××§×× ×Ŗ×××ר ×××× ×©× × Skill ×××××× ××× ×× ×××¢×× ×××Ŗ× ×× ××, ××××ר ××¢×× ×Ŗ × Skill ××× ×פע××Ŗ ××× ×©××××× ××××. ×××× × ××”×£ × MCP ××× ×© Skill ××× ×ר×× ××תר ×××¤×©× - ×× × ×××Ŗ× ××Ŗ ××Ŗ×××ר ××§××¦× Markdown ×××Ŗ ××§×× ××§××¦× ×”×§×Ø××¤× ××××× ×¤×ר×× ×©×× × ×××ר. ××Ŗ×צ×× ××× ×©×ר×× ××תר ×§× ×××Ŗ×× Skill ××× ×קר×× ××Ŗ ××§×× ×©××.
×××××? ×××. ×××× × ××Ŗ× ××××× ×©×× × ××פצ×× ××פש × npm ××××××Ŗ ×ר×××. × Skill ××ר×× ××”× ××× ××§××ׄ ××ר×××Ŗ ××הקר××¤× ××פ×ש ×××Ŗ× ×× × ×©× ××Ŗ××§××× ×¢× ×©× ××××× ××Ŗ××§×××Ŗ ××××Ŗ.
× ×¤×Ŗ× ×Ŗ××§×× ××ש×
~/.claude/skills:
mkdir -p ~/.claude/skills/npm-search
××Ŗ×× ××Ŗ××§××× ×× × ××צר ×§××ׄ ××©× SKILL.md ×¢× ××Ŗ××× ×××:
---
name: npm-search
description: Use this skill whenever implementing a feature or adding functionality to a JavaScript/TypeScript/Node.js project. Before writing custom code, always run npm search to find existing libraries that can solve the problem. This prevents reinventing the wheel and leverages the npm ecosystem.
---
# NPM Search Guide
## Overview
Before implementing any feature in a JavaScript/TypeScript/Node.js project, search npm for existing libraries that can solve the problem. This ensures you leverage the ecosystem rather than reinventing the wheel.
## When to Search npm
Use npm search before implementing:
- Data processing or transformation utilities
- HTTP clients or API helpers
- Date/time manipulation
- Validation libraries
- Authentication/authorization
- File handling (CSV, JSON, XML, PDF, etc.)
- Database connectors
- Testing utilities
- UI components (for frontend projects)
- Any common utility or pattern
## Running npm Search
Use the provided script to search for packages:
```bash
./scripts/npm-search.sh <search-term>
Or run directly:
npm search <search-term>
š Example Searches
# Looking for a date library
./scripts/npm-search.sh date format manipulate
# Looking for a validation library
./scripts/npm-search.sh schema validation zod joi
# Looking for an HTTP client
./scripts/npm-search.sh http client axios fetch
# Looking for a CSV parser
./scripts/npm-search.sh csv parse stream
ā Evaluating Packages
When reviewing search results, consider:
1. Downloads: Higher weekly downloads indicate community trust
2. Version: Recent versions suggest active maintenance
3. Description: Clear descriptions indicate well-documented packages
4. Dependencies: Fewer dependencies mean smaller bundle size
ā Installation
Once you've identified a suitable package:
npm install <package-name>
# or
pnpm add <package-name>
# or
yarn add <package-name>
ā Implementation
After installation, read the package's README or documentation before using it. Look for:
⦠Basic usage examples
⦠Configuration options
⦠Common patterns and best practices
× ×©×× ×× ×©×Ø×§ ××××§ ××¢×××× ×©× ×××רק×××× × ××¢× ××ר×רת ×××× ××§××× ×§××. רק ×× ××××× ××××× ×××¢×× ××Ŗ ××”×§×× ××× ××§×Ø× ××Ŗ ××§××ׄ ××××. ××”××× ×× × ××צר הקר××¤× ××©× `scripts/npm-search.sh` ××Ŗ×× ×××Ŗ× ×Ŗ××§××× ×¢× ××Ŗ××× ×××: ```language-sh
1 419
š ××¢×××¢×× ×הפר×××Ŗ ×§×× ×¤×Ŗ××
הפר×××Ŗ ×§×× ×¤×Ŗ×× ×Ŗ××× ×××× ××¢×× ×§×Ø×© קפ××¦× ×××ר ×פ××Ŗ××. צר×× ×Ŗ×××Ŗ ××××Ø× ××¤× ×¢× ××פ×ש ×××××Ø× ×ר×××? ×ש ×§××פ×× × ×× ×××. צר×× ×××ר×× ×§×צ×× ××××× ××Ø× × ×¢× ××פצ×× ×××××××Ŗ ×××פ×× ×× ×”××× ××Ŗ ×××ר××? ×ש הפר×× ×××.
×× × ×¢×××× ×שת×ש ×הפר×××Ŗ ×§×× ×¤×Ŗ××, ××× ×ר×× ×¤×××Ŗ. ××× ×©××תר ×§×× × ××Ŗ× ×¢× ××× ×”××× × ×§×××× ××”××× ×שת×ש ×הפר×××Ŗ ש××× "×××ר" ×× "××¢×××£", ×××§××× ××פה ××Ŗ ×ר××××× ×©××× ×× ×××ר. ש×××ש ×הפר×××Ŗ ×§×× ×¤×Ŗ×× ×פר×××§× ×××ר שה××× ××§×××× ×¦×Ø×× ×××Ŗ××ׄ ××תר ×ש××× ××× ××Ŗ ××Ŗ ×פ×צ'ר ××× ×× ××Ŗ×§× ×××. ××× ×©×הפר×× ×¤×××Ŗ ××Ŗ××¢××Ŗ ×× ×¤×פ××ר××Ŗ ××”××× ×××× ××תר ×§×©× ××¢××× ×××Ŗ× ××× ×©×× ×× ××ר×ש ××¢××”× ×©× ×Ŗ××¢×× ×Ø×××× ×× ××Ŗ×× ×××× ××§×× ××§×”×.
×× ×פה×× × ×¤×? ×× × ×× ××××. ש×××Ŗ× ××Ŗ ××××× ××× ××Ŗ ×× ×ש××§ תר××× ×¦××××× ××××ר×. ×× ××× ×× ××Ŗ× ×Ø×צ×× ×× ×”××Ŗ. ×××¢× ××× ×©× ×× ×©××Ŗ צ×××ר ×××××Ø× ××××× ×¦××ר ××× ×××צע××Ŗ SVG. ××¢××× ×××©× ×¦××ר צ×××ר ××××Ø× × SVG ××× ××¢×× ×× ×××פצ×× ×××ר×× ×. ×§××× ××××Ŗ× ××פש הפר×××Ŗ ×§×× ×¤×Ŗ×× ××××§×Ø× ××ר××¢ ×צ××ר ××Ŗ ×× × HTML × CSS. ××”××× ×צר ×§××פ×× × ×× ×©× ××××Ø× ×©× ×Ø×××Ŗ ××ש ×××× ××¢××××Ŗ ×¢××ר ××ש××§ ×× ×¤×××Ŗ ××× × react-fretboard ×× react-guitar, ×¢× ×§×× ×¦××ר ××¤× × SVG. ×פשר ×ר×××Ŗ ××Ŗ ××§×× ×©×× ×××:
https://github.com/ynonp/fret-play-learn/blob/main/src/components/GuitarFretboard.tsx
××ש××§ ×××תר ×ש××¢××Ŗ× ×פר××× ×הפר×××Ŗ ×§×× ×¤×Ŗ×× ××× ×ש××× "×× ××Ŗ×××§ ××Ŗ ××?". ×× ××× ××× ×× ××¢× ×× ×ש××¢××Ŗ. ××¦× ××× ×ש××¢××× ××©×Ŗ× × ×××Ŗ××××Ŗ ××¢×××Ŗ ××××× × ×× ×©×ש ×× ×©×× ××ר×× ×©××Ŗ×××§×× ××Ŗ הפר×××Ŗ ××§×× ×פת×× ×××××× ×¢××× ×××¢××× ××Ø×”× ×××©× ××××× ××תר. ××¦× ×©× × ×ר×× ××ש×ר×××× ×הפר×××Ŗ ×§×× ×¤×Ŗ×× ×× ×Ŗ×הפת ×©× ×¤×צ'ר×× ×©×× × ×× ×¦×Ø×× ××××¦× ×©×× × ××××× ××× ×¢× ××Ŗ××××Ŗ ×××שק ×©× ××Ø×”× ×××©× ×©×××× ×× ××קשת×.
××× ×Ŗ××× ×××××Ŗ ××§××פ×× × ×× ×©× ×××××Ø× ××××× ×××Ŗ× ×©×××× × ×× ×ש××”××× ××× × ××פה ××Ŗ ×ר××× ××××××§ ש×× × ×¦×Ø××. ×× ×××× ××קפ×× ××קש ×××”××× ×שצר×× ×©×ש×× ×× ×ש×ש ×§××פ×× × ×× ×ש×××ש ×××ר ×××× × ×××Ŗ× ××¦× ××Ŗ×ר ×§××פ×× × ×× × ×¤×Ø××Ŗ. ×פ××Ŗ×××× ××ש×× ××××¦× ×Ŗ×× ×× ××× ×ר×× ××Ŗ ×× ×××. ××Ŗ××§×× × ××××× ×ר×× ××תר ×§×©× ×× ×ש×× ××.
Available now! Telegram Research 2025 ā the year's key insights 
