ToCode
Kanalga Telegramโda oโtish
ืืืคืื ืงืฆืจืื ืืืชืื ืชืื ืืืช ืื ืื ืคืจืง
Ko'proq ko'rsatish1 421
Obunachilar
Ma'lumot yo'q24 soatlar
+37 kunlar
-430 kunlar
Postlar arxiv
1 421
ืืืค CSS - ืืคืงื ืฉืืจืืช ืืชืืช ืืืงืกื
ืจืื ืืืื ืืฉืื ื ืฆืจืื ืืฉืื ืงื ื CSS ืืชืืช ืืฉืืจืช ืืงืกื ืื ื ืืฉืชืืฉ ื border ืื ื box shadow ืืืื ืขืืื ืืคืฉืื, ืื ืขืื ืืืืืจ ืืฉืืจื ืืืช, ืืืืืื (ืขื ืืืืืืืื ื):
<div class="border-b border-gray-400">
Hello World
</div>
ืืคืฉืจ ืืคืืื ืืืืกืืฃ ืืื ืฉืืจืืช ืื ืื ืื ื ืืืืขืื ืืืื ืืงืกื ืืชืื ืืืืืง ืืื ืฉืืจื:
<div class="border-b border-gray-400 mb-2">
Line 1
</div>
<div class="border-b border-gray-400 mb-2">
Line 2
</div>
<div class="border-b border-gray-400 mb-2">
Line 3
</div>
ืืื ืืงืืืื ืืคืงื ืืื ืฉื ืืืืจืช ืฉืืจืื ืืงืกื ืขื ืงื ืฉื ืฉืืจื ืืชืืช ืืื ืฉืืจืช ืืงืกื.
ืืกืืคืืจ ืืื ืืกืชืื ืื ืื ื ืื ืืืืข ืืืืืง ืืืคื ืืืชืื ืืช ืืืืืื ืืฉืืจื ืืืฉื. ืื ืืคืฉืจ ืืืฉืชืืฉ ื JavaScript ืืืฉื, ืืื ืืจืืง ืืืชืจ ืงื ืืื ืืืฉืชืืฉ ืืืจืืืืื ื ืืื ืืจื ืืชืืจ ืชืืื ืช ืจืงืข ืืืืชื ืืืืฆืจ ืืช ืืืคืงื ืฉื ืืฉืืจืืช. ืื ืืงืื:
<div class="p-4 w-full max-w-md mx-auto">
<div class="relative">
<div class="absolute inset-0 bg-[size:100%_2rem] bg-[linear-gradient(#999_1px,transparent_1px)] bg-[position:0_-1px]"></div>
<p class="relative leading-8 pt-[1px]">
This text now starts from the first line. It appears as if it's written on the notebook lines, aligning perfectly with each line to create a realistic effect.
</p>
</div>
</div>
ืืืงืื ืืฆืืืจ ืงื ืืชืืช ืืื ืฉืืจื ืื ื ืืืืืจ ืืืื ื ืขื ืืจืืืื ื ืืื ืืจื ืืจืงืข. ืืืจืืืื ื ืืื ืฉืืืจืื ืขื ืฆืืืจ ืืฉืืจืืช ืื line-height (ืฉื ืงืืข ืขื ืืื ืืืืคืืื leading ืฉื ืืืืืืืื ื) ืืืจื ืืืงืกื ืืืชืืื ืืืืื ืืืืื ืฉื ืืฉืืจืืช ืืชืืื ืช ืืจืงืข. ืืฉืืฉ ืืืชืจ ืืงืกื ืืื ืฉืื ืืขืื ืืืืืคื ืืืืืืื ืืืงืกื ืืืืืง ืืื ืืฉืืจืืช.
ืื ืื ืื ื ืฆืจืืืื ืืืฆืื ืืช ืืฉืืจืืช ืื ืืฉืืื ืืงืกื ืคืฉืื ื ืืืืจ ืืืื ืืคืืกืงื ืืืื ืืงืืข ืืื ืฉืืจืืช ืืฆืืืจื, ืืืืืื:
<div class="p-4 w-full mx-auto">
<div class="relative">
<div class="absolute inset-0 bg-[size:100%_2rem] bg-[linear-gradient(#999_1px,transparent_1px)] bg-[position:0_-1px]"></div>
<p class="relative leading-8 pt-[1px] w-full h-32 ">
</p>
</div>
</div>
ื .ื. ืืฉืืื ืืฉืืง ืขื ืืืืืืืืช ืืื ืงื ืืืงืจ ื https://play.tailwindcss.com/ ืืืืืืืง ืฉื ืืช ืงืื ืืืืืืืืื ื ืืื ืืจืืืช ืืช ืืชืืฆืื ืืฆื ืืืื ืฉื ืืืกื.1 421
ืืฉืืชืจืืื ืืืืฉืืชื ืขืืื ื ืืื
ืืืช ืืืจืืื ืืขืืืช ืจืื ืื ืืฉื ืืื ืืืฆืืจ ืืืืืืช ืืืืืืชืืืช. ืืืืื ืคืฉืืื ืืื ืืืืื ืขื ืืืจื ืคืื ืงืฆืื ืื ืงืืืฅ - ืืฉ ืื ืงืื ืฉืขืืื ื 200 ืฉืืจืืช ืืขืืฉืื ืื ื ืจืืฆื ืืืจืื ืืืชื ืืืจืช ืืื ืฉืคืื ืงืฆืืืช ืื ืืืื ืืจืืืืช ืืืชืจ ื 40 ืฉืืจืืช. ืืฉืืื ืืขืฉืืช ืืช ืื ื ืืื ืืืื ืืืื ืืื ืืืชืจ ืขื ืืฉืคื ืืขื ืืจืืื ืงืื, ืืงืืืืชื ืชืจืืื ืืืฉืืชื ืืื ืืืคืฉืจืืช ืืืฉืชืคืจ.
ืืืขืื ืขื ืชืจืืืืื ืืืฉืืชืืื ืืืื ืืื ืฉืื ืืืืืื ืื ืืขืืื ื ืืื ื, ืืืืืืื ืืฉืจืืื ื ืืฉืื ืืืืืง ืืื ืื ื ืืืืืื ืืื ืืฉืื ืืืชื ืืืขืจืืช ืืื ืืืืื ืืช ืืคืฉืจืืช ืฉืขืฉืื ื ืืืื ืคืืชืจืื ืืชืจืืื ืืืืฉืืชื. ืืืืืื:
1. ืืคืฉืจ ืืงืืื ืชืืื ื ืืืื ืืชืืจ ืืงืกื ืืจืื ืืงืืืื base64 ืืืฉืื ืืช ืื ื src ืฉื ืืืื ื img. ืืจืืง ืืื ืืืื ืืขืืืจ ืื ืื ื ืจืืฆื ืืืฆืืจ ืืฃ ื ืืืชื ืฉืืืจืื ืืงืืืฅ ืืื ืืืื, ืืื ืืขืืื ืืืืืชื ืืืืืื ืืคืืงืืืืืช ืืืืช (ืงืืืฅ ืืื ืืืื) ืืกืจืช ืขืจื, ืืจืง ืืืฆืจืช ืืืชืจ ืขืืืก ืื ืงืืืื base64 ืฉื ืชืืื ื ืืื ืืืชืจ ืืจืื ืืงืืืื ืืื ืืจื.
2. ืืคืฉืจ ืืืฉืชืืฉ ืืืกืืก ื ืชืื ืื Postgresql ืืชืืจ ืืกืืก ื ืชืื ืื ืืจืคื ืืืืชืื ืฉืืืืชืืช ืจืงืืจืกืืืืืช ืืฉืืื ืืืืคืืฉ, ืืื ืืืฉ ืชืจืืื ืืืื, ืืื ืืกืืกื ื ืชืื ืื ืืจืคืืื ื ืืชื ืื ืืืฆืืขืื ืืืืื ืืืชืจ ืืจืื ืืืื ืืืื ืขืืืคืื.
ืืืคืืื ืืืืืื ืืจืืฉืื ื ืฉื ืงืืฆืืจ ืงืื, ืืคืขืืื ืืฉ ืขืจื ืืืืชื ืืืืืช ืฉืืจืืช, ืืืืืื ืืฉืืื ืืื ืขื ืงืื ืงืจืื ืืงื ืืืชืจ. ืืื ืืกืจืื ืืช ืืงืื, ืืืืืง ืืฉืชื ืื ืื ืืืืง ืืฆืืจื ืื ืืืืื ืืช ืืคืื ืงืฆืืืช ืจืง ืืฉืืื ืืืฆืืื ืืืื ืชืจืืื ืืืฉืืชื? ืืื ืขื ืืืืืฅ ืืขื ืื ืฉืืฆืืจื ืืงืจืื ืืืชืืืง ืืช ืื.
1 421
@main
def day21part1(): Unit =
val map = parseInput(Source.fromResource("day21.txt"))
val full = bfs(map)
println(full.count { e => e._2 % 2 == 0 && e._2 <= 64 })
ืืืืง ืืฉื ื ืืกืคืจ ืืฆืขืืื ืขืื ื 26501365 ืืื ืืกืฃ ืืืคื ืืคืื ืืืื ืกืืคืืช ืืืืฆืขืืช ืฉืืคืื ืืืคื ืืืืืืื ืืื ืืืืืื ืื, ืืืืืจ ืืฉืืืืืื ืขื ืืกืืฃ ืฉืืืื ืืืคื ืืืืขืื ืื ืงืืื ืืืื ืืช ืืืืชืจ ืืจืืืืข ืืืฉ ืฉืืื ืฉืืคืื ืฉื ืืืคื ืฉืืฉ ืื ื. ืืฆืืืจ ืื ื ืจืื ืืื (ืืื ืืืฉืื ืขื ืืื ืกืืฃ):
.................................
.....###.#......###.#......###.#.
.###.##..#..###.##..#..###.##..#.
..#.#...#....#.#...#....#.#...#..
....#.#........#.#........#.#....
.##...####..##...####..##...####.
.##..#...#..##..#...#..##..#...#.
.......##.........##.........##..
.##.#.####..##.#.####..##.#.####.
.##..##.##..##..##.##..##..##.##.
.................................
.................................
.....###.#......###.#......###.#.
.###.##..#..###.##..#..###.##..#.
..#.#...#....#.#...#....#.#...#..
....#.#........#.#........#.#....
.##...####..##..S####..##...####.
.##..#...#..##..#...#..##..#...#.
.......##.........##.........##..
.##.#.####..##.#.####..##.#.####.
.##..##.##..##..##.##..##..##.##.
.................................
.................................
.....###.#......###.#......###.#.
.###.##..#..###.##..#..###.##..#.
..#.#...#....#.#...#....#.#...#..
....#.#........#.#........#.#....
.##...####..##...####..##...####.
.##..#...#..##..#...#..##..#...#.
.......##.........##.........##..
.##.#.####..##.#.####..##.#.####.
.##..##.##..##..##.##..##..##.##.
.................................
ืืืืชื ืฉืื ืืืชืื ืคื ืืืื ืืจืืง ืืื ืื ืืคืืื ืงืื ืืจืื ืฉืคืืชืจ ืืช ืืืืง ืืฉื ื ืืื ืื ืืฆืืชื ืขืืืื ืคืืชืจืื ืืขื ืืื ืื ืืฉืืจืชื ืืช ืื ืืฆื ืืื ืชืืื. ืื ืืคืืชืจืื ืืช ืฉืื ืจืืืชื ืืจืฉืช ืืื ืืกืืจืืืื ืืื. ืื ืืฉ ืืื ืืืืื ืคืฉืื ืืืขื ืืื ืืืืง ืืฉื ื ืืืืื ืื ืืืืกืืฃ ืคื ืืชืืืืืช ืื ืืืืืจื.1 421
ืคืืชืจืื Advent Of Code 2023 ืืื 21
ืืื 21 ืฉื Advent Of Code ืืฆืื ืืืืช ืืคื ืืืฉ ืืืืื ืืืืง ืืจืืฉืื ืฉืืคืื ืืืื ืจืืฉ ืืืืง ืืฉื ื (ืฉืขืืื ืืืืืชื). ืืืื ื ืจืื ืขื ืื ืืืืืจ ืืืื ืืืืชืจืชื ืขื ืืืืง ืืฉื ื, ืืื ืขื ืืคืืชืจืื ืฉื ืืืืง ืืจืืฉืื ืืฉืคืช ืกืงืืื.
ืื ืฆืจืื ืืืฆืื
ืื ืื ื ืืงืืืื ืืคื ืื ืืืืช S ืืกืื ืช ืืช ื ืงืืืช ืืืชืืื, ืกืืืืืช ืืืืฆืืช ืงืืจ ืื ืงืืื ืืืืฆืืช ืืงืื ืฉืืคืฉืจ ืืืื ืืืื:
...........
.....###.#.
.###.##..#.
..#.#...#..
....#.#....
.##..S####.
.##..#...#.
.......##..
.##.#.####.
.##..##.##.
...........
ืขืืฉืื ื ืืืืื ืืืื ืืฉืืง ืฉืืชืืื ื S ืืืชืงืื ืฆืขื ืืื. ืืฆืขื ืืืื ืืื ืืื ืืืื ืืืื ืื ืืืขืื ืื ืฉืืืื (ืื ืฉื ื ืืืืืื ืื ืืืืจืื ืืกืืืื), ืืืื ืกื ืืื ืืืื ืืืืืข ื-2 ืืฉืืฆืืช. ืื ื ืืชื ืื ืฆืขื ื ืืกืฃ ืืื ืืืื ืืืชืงืื ืืืืฉืืฆืืช ืืื ืืื ืื ืืืืืจ ืืืชืืื. ืืืคื ืืืื ืขืืืื ืืกืื ื ืงืืื ืฉืืคืฉืจ ืืืืืข ืืืื ื-3 ืฆืขืืื:
...........
.....###.#.
.###.##..#.
..#.#O..#..
....#.#....
.##O.O####.
.##.O#...#.
.......##..
.##.#.####.
.##..##.##.
...........
ืื ืืืงืืื ืฆืขื ื ืืกืฃ ืืืื ืืคืืื ืืืชืจ ืืคืฉืจืืืืช:
...........
.....###.#.
.###.##..#.
..#.#.O.#..
...O#O#....
.##.OS####.
.##O.#...#.
....O..##..
.##.#.####.
.##..##.##.
...........
ืืืืจื 6 ืฆืขืืื ืืืืื ืฉืื ื ืืืื ืืืืืข ืืื ืืืช ืืืฉืืฆืืช ืืขืืืื ืืฆืืืจ:
...........
.....###.#.
.###.##.O#.
.O#O#O.O#..
O.O.#.#.O..
.##O.O####.
.##.O#O..#.
.O.O.O.##..
.##.#.####.
.##O.##.##.
...........
ืขืืฉืื ืืืชืืจ - ืืืื ืชื ืืคื ืืืฉืื, ืืืื ื ืืชืื ืชืืื ืืช ืฉืชืกืคืืจ ืืืื ืืฉืืฆืืช ืืืืื ืืืื ืืืืืข ืืืจื 64 ืฆืขืืื.
ืคืืชืจืื ืืกืงืืื
ืืจืขืืื ืืืจืืื ืืคืืชืจืื ืืื ืืืืืช ืื ืืกืคืจ ืืฆืขืืื ืืืื ืืืื ืืืจืืฉ ืืื ืืืืืข ืืื ืืฉืืฆืช ืขื ืืืื. ืืืืืื ืืฉืืื ืืืืืข ืืฉืชื ืืืฉืืฆืืช ืฉืฆืืืืืช ืื ืงืืืช ืืืชืืื ืืจืืฉ ืจืง ืฆืขื ืืื. ืืืจื ืฉื ืกืคืืจ ืืื ืฆืขืืื ืฆืจืื ืืฉืืื ืืืืืข ืืื ืืฉืืฆืช ืืืคื ื ืฉืื ืื ืฉืืืกืคืจ ืฉืื ืื ื ืฆืจืืืื ืืื ืืขืฆื ืืกืืื:
1. ืืกืคืจ ืืืฉืืฆืืช ืฉืฆืจืื 64 ืฆืขืืื ืืฉืืื ืืืืืข ืืืืื.
2. ืืกืคืจ ืืืฉืืฆืืช ืฉืืคืฉืจ ืืืืืข ืืืืื ืืคืืืช ื 64 ืฆืขืืื, ืืื ืขืืืื ืืืกืคืจ ืืืื ืฉื ืฆืขืืื (ืื ืื ืืคืฉืจ ืื ืฆื ืืช ืฉืืจ ืืฆืขืืื ืืื ืืืืช ืืืืจื ืืงืืืื ืืืกืืื ืืืฉืืฆืช).
ืขืืฉืื ื ืืงื ืืช ืื ืืกืงืืื. ืืคืื ืงืฆืื ืืจืืฉืื ื ืืงืืืช ืืคื ืืืืืฆืจืช ืืื ื ืืื ื ื ืชืื ืื:
def parseInput(input: Source): Map[(Int, Int), Double] =
input
.getLines()
.zipWithIndex
.flatMap { (line, lineNumber) =>
line.zipWithIndex.foldLeft(Map[(Int, Int), Char]()) { (acc, item) =>
val (char, column) = item
acc.updated((lineNumber, column), char)
}
}.foldLeft(Map[(Int, Int), Double]()) { (acc, item) =>
val (key, value) = item
acc.updated(key, value match
case '.' => Double.PositiveInfinity
case '#' => Double.NegativeInfinity
case 'S' => 0)
}
ืืื ื ืื ืชืื ืื ืฉืืืจืชื ืืื ืืคื ืื ืืืคืชื ืืื ืงืืืืจืืื ืืืช ืฉื ื ืงืืื ืืืขืจื ืืื ืืื ืฆืขืืื ืฆืจืื ืืฉืืื ืืืืืข ืืืืชื ื ืงืืื. ืื ืื ื ืืืืขืื ืฉืืชืืืืื ื S ืืืื S ืงืืืื 0, ืืงืืจืืช ืืฃ ืคืขื ืื ืืคืฉืจ ืืืื ืืืืืข ืื ื ืชืชื ืืื ืืช ืืขืจื ืืื ืืก ืืื ืกืืฃ ืืื ืงืืืืช ืืคืฉืจ ืืืืืข ืื ืืฉืื ืจืืฉืื ื ืชืชื ืืื ืืช ืืขืจื ืืื ืกืืฃ ืืื ืืืจ ืืืื ื ืืฆื ืืกืืืืื ืงืฆืจืื ืืืชืจ.
ืืคืื ืงืฆืื ืฉืืืฆืืช ืืช ืืืจืืงืื ืืื ืคืฉืื bfs ืขื ืืืคื ืืืฉืจ ืืื ืกืืืื ืจืืฉืืื ืืฆื ืืช ืื ืืืฉืืฆืืช ืฉืืคืฉืจ ืืืืืข ืืืืื ืืืขืืื ืื ืืช ืืขืจื ืฉืืื ืืืคื ืืื ืืืฉืืืื ืืืืืจืฆืื ืืืื ืืฉื ืืืฉืืื ืืฉืืฆืช ืืืจืฉืืื ืฉืฉืืจื ื ืืฆื ืืืืืงืื ืืื ืืคืฉืจ ืืืืืข ืืื ื. ืื ืืงืื:
def bfs(map: Map[(Int, Int), Double]): Map[(Int, Int), Double] =
var open: mutable.Queue[(Int, Int)] = mutable.Queue(map.filter(_._2 == 0).head._1)
var mmap = mutable.Map.from(map)
while(open.nonEmpty) {
val start = open.dequeue()
val steps = mmap(start)
List[(Int, Int)]((start._1 - 1, start._2),
(start._1 + 1, start._2),
(start._1, start._2 - 1),
(start._1, start._2 + 1)
).foreach { neighbor =>
val currentValue = mmap.getOrElse(neighbor, Double.NegativeInfinity)
val newValue = steps + 1
if (!newValue.isInfinity && (newValue < currentValue)) {
mmap.update(neighbor, newValue)
open.enqueue(neighbor)
}
}
}
Map.from(mmap)
ืืื ืืงืื ืืช ืืกืคืจ ืืืฉืืฆืืช ืื ื ืืคืขืื:1 421
ืืืื ืืืืชื ืืืืืืจ ืืงืืฆื pyc
ืืืืจืื ื JFrog ืคืืจืกืื ืืฉืืืข ืคืืกื ืฉืชืคืก ืืืชื ืืืคืชืขื:
https://jfrog.com/blog/leaked-pypi-secret-token-revealed-in-binary-preventing-suppy-chain-attack/
ืืกืืคืืจ ืืคืขื ืืื ืขื ืืชืื ืช ืื ืืชืื ืชืช ืฉืืืืืื ืื ืกืืช ืืฉืื ืืงืื ืืคื ื ืฉืืื ืื ืืฉืื ืืกืืืจ. ืื ืื ืืชืื ืคืื ืงืฆืื ืฉื ืจืืืช ืืขืจื ืื:
def _fetch_github_file(github_repository="owner/repo", ref="main", access_token=None, filename="Dockerfile"):
headers = {
"Accept": "application/vnd.github+json",
"X-GitHub-Api-Version": "2022-11-28",
"Authorization": "Bearer 0d6a9bb..."
}
if access_token is not None:
headers['Authorization'] = f'token {access_token}'
...
ืืืจื ืื ืืคืขืืื ืืช ืืงืื, ืืืืจื ืฉืจืื ืฉืื ืขืื ืชืืงื ื ืืืชื ืืืืงื ืืช ืืืืงื ืืืงืื ืืืืืจ ืฉืื ื ืืช ืืงืื ื:
def _fetch_github_file(github_repository="owner/repo", ref="main", access_token=None, filename="Dockerfile"):
headers = {
"Accept": "application/vnd.github+json",
"X-GitHub-Api-Version": "2022-11-28",
}
if access_token is not None:
headers['Authorization'] = f'token {access_token}'
...
ืืื ืงืืืื, ืืืืคื, ืื ืืื ืืฉืืื ืขื ืืฉืจืื. ืืื ืื, ืืืจืฆืช ืืืืืงื (ืฉื ืืงืื ืขื ืืืืงื) ื ืืฆืจ ืงืืืฅ pyc. ืืงืืืฅ ืืื ืื ื ืืืฃ ื CI ืฉืื ื ืืช ืืืืื' ืืืืงืจ ืืืฉื ื ืื ืก ื Dockerhub ืืืืง ืืืืืื' ืืฆืืืืจื.
ืื ืืืชืืจ ืืื ืืก ืืืชื ืืืงื ืืืืงื ืฉืขืืฉืื ืืืจ ืืื ืืืื ืืื ืืขืืื ืืื ืื ืืืืืจ ืืืฉืืื ืืืืืื ืืขื ืืจืฉืื ืืื ืืืืืจืื ืฉื Python Foundation ืืืืื ืืืืืฃ ืงืื ืืืืืจืื ืฉื PyPI ืืคืืืชืื ืขืฆืื.
ืืฆื ืืืืืื ืืื JFrog ืฆืืื ื ืืืืื ืืช ืืขืืืื ืฉ PyPI ืชืืงื ื ืืช ืืืขืื ืชืื 17 ืืงืืช ืืืื ืืจืืข ืืคื ืืื ืืืื ืฉืืืืข ืื ืืืชื ืคืขืืืืช ืืฉืืื ืขื ืืืงื ืื.1 421
ืืื ืืืชืืื ืืคืชื Miniapp ืืืื ืืืืืจื
ืืืช ืืืืืืืช ืืืืืืืืช ืฉื ืืืืื ืืืืืจื ืืื ืืืคืฉืจืืช "ืืืจืื" ืืืืื ืืืฃ ืืื, ืืืฉืจ ืืฃ ืืืื ืืงืื ืืืื ืืืืข ืืืืืจื ืืื ืืืืฆืจ ืืจืื ืืืื ืืื ืืืื ืืืคืืืงืฆืื. ืคืืจืื ืืื ืขื ืืื ืืืคืก ืืคืฉืจ ืืืฆืื ืืืฃ ืืชืืขืื ืฉื ืืืืจื ืืื:
https://core.telegram.org/bots/webapps.
ืืื ืืืจ ืืฉ ืืื ืืื ืืื ืืฉืืืื ืืงืฆืจื:
1. ืืืฆืจืื ืชืืงืืื ืขื ืืืืฉื ืขืืืจ ืืืื. ืืคืฉืจ ืืื ืืช ืืื ืืค ืืชืืืื ืื ืืฉืืื ืืืืืื ืงืืืฅ html ืคืฉืื. ืืืื ืืืื ืฉืฆืจืื ืื ืงืืืฅ index.html ืืงืืืฅ manifest.json.
ืงืืืฅ ื manifest.json ื ืจืื ืืื:
{
"name": "My Telegram Mini App",
"short_name": "Mini App",
"description": "A brief description of what your Mini App does",
"version": "1.0.0",
"start_url": "/index.html",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#0088cc",
"icons": [
{
"src": "/icon-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/icon-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
]
}
ืืืงืืืฅ index.html ื ืจืื ืืื:
<!DOCTYPE html>
<html>
<head>
<link rel="manifest" href="/manifest.json">
</head>
<body>
<script src="https://telegram.org/js/telegram-web-app.js"></script>
<script>
const webapp = window.Telegram.WebApp;
webapp.ready();
</script>
</body>
</html>
2. ืืชืงืื ืื https://telebit.cloud ืื ngrok ืื ืืื ืืืื ืืื ืืงืื URL ืฆืืืืจื ืืกืจืืืก ืฉืจืฅ ืืฆืืื ืขื ืืืืฉื.
3. ืืคืขืืืื ืืงืืืืช ืฉืจืช ืืื ืืชืืงืืื ืฉืืฆืจื ื, ืื ืื ืืฆืจืชื ืืื ืืค ืืชืืืื ืืคืฉืจ ืืืคืขืื ืืช ืกืงืจืืคื ืืคืืชืื ืฉืื.
4. ืืคืขืืืื ืืช ืืืืื ืืคืืจื ืฉื ืืฉืจืช ืฉืืฆืจืชื. ืืืืืื ืฉืื ืื ื ืืคืขืื:
python -m http.server
ืืื ืืงืื ืฉืจืช ืืื ืกืืื ืืงืืฆืื ืขื ืคืืจื 8000 ืืืื ืื ื ืืคืขืื:
~/telebit http 8000
ืืื ืืืืจ ืืช ืืคืืืชืื ื URL ืืฆืืืืจื ืฉืงืืืืชื ืืืืืื.
5. ืฉืืืืื ืืืืขื ื Botfather ืขื ืืคืงืืื /newapp.
6. ืขืื ืื ืขื ืืืื ืฉืืืืช. ืืฉืืื ืืืืืื ืฉืืฉืืื ืฉื ืืื ื URL ืฉื ื Web App. ืืื ืืกืื ืฉื ืืช ื URL ืฉืงืืืื ื ืืืืืื (ืื ืฉืืืืืจ ืืฉืจืช ืืื ืฉืจืฅ ืืฆืื ื ืขื ืืืืฉื).
7. ืืงืืืื ื botfather ืงืืฉืืจ. ืืืืฆื ืขื ืืงืืฉืืจ ืคืืชืืช ืืช ื miniapp ืฉืืฆืจืชื ืืชืื ืืืืจื. ืขืืฉืื ืืคืฉืจ ืืขืืื ืืช ืืงืื ืืืจืืืช ืืช ืืฉืื ืืืื ืืืืืจื.
8. ืืืจื ืฉืืกืืืืื ืืคืชื ืชืืืื ืืืขืืืช ืืช ืืฃ ืืืื ืืฉืจืช ืืืืชื ืืืขืืื ืืช ืืืชืืืช ืืืืฆืขืืช ืฉืืืืช ืืืืขืช /editapp ื botfather.1 421
ืฉืืื ื ืืืืื ืืืืช ืืื ืฉืืืฉ ืฉืืื ืืืืืจ ืืขื ืคื
ืื ืืฉื ื ืืื ืืชื ืขืืืืื ืืืื ืืืื ื ืขืื ืืื ืืืืช ืืฉืืื ืืช ChatGPT ืืคืงืืื, ืขืืืื ืืฉืืื ืืืืืช ืคืจืืืืงืืืืืื ืืฉ ืืื ืืืจืื ืฉืืืื ืืืขืช ืืขื ืคื. ืืื ืื ืืฉื ื ืื ืืชื ืจืืืืื ืืขืืื ืืืื ืืจืคื ืื ืืฉืืจืช ืืคืงืืื, ืื ืฉืืฉืื ืฉืืืื ืื ืืชื ืขืืืืื ืืชื ืืืืขืื ืืืืืฆืช ืืคืชืืจ ืืืฆืข ืืช ืืคืขืืืืช ืืืืืช ืืื ืืืืืง ืืจืฉืช:
1. ืืืืกืืฃ ืงืืฆืื, ืืขืฉืืช ืงืืืื ืืืืืืฃ ืืช ืืฉืื ืืืื ืืฉืจืช ืืจืืืง.
2. ืืืกืชืื ืืื ื ืจืื ืงืืืฅ ืืงืืืื ืืืจ.
3. ืืขืืืจ ืืื ืขื ืคืื, ืืงืืืืื ืื ืืจืืืงืื.
4. ืืจืืืช ืืช ืจืฉืืืช ืื ืืฉืจืชืื ืืืจืืืงืื ืืืชื ืืคืจืืืงื ืฉืืื ืืกืื ืืจื.
5. ืืจืืืช ืื ืืื ืืงืืืื ืฉืืจื ืืฉืืจื ืืกืืืืช ืืืฆืืจืฃ ืืงืื, ืื ืืืืืง ืืกืืื ืืืืืืง.
6. ืืงืื ืจืฉืืื ืฉื ืฉืืืช ืืงืืฆืื ืฉืืฉืชื ื ืืงืืืื ืืกืืื.
7. ืืืืืง ืขื ืคืื ืืงืืืืื ืื ืืจืืืงืื.
8. ืืคืชืืจ ืงืื ืคืืืงืืื ืืืจื merge ืื cherry-pick ืื rebase ืื ืื ืืืจ ืืืจ ืฉืืืฆืจ ืืืชื.
ืืื ืื ืื ืฉืฆืจืื ืืฉืืื ืืงืื ืืืืืช ืืื ืืจืื ืืืชืจ ืฉืืืคืช. ืืฉืืื ืืืืืช ืืกืืืืื "ืืืืื" ืืื ืืืืกืืืจืื ืฉื ืืคืจืืืงื ืืื ืฉืืืืื ืืื ืืืจืื ืืขืฆืืจืช ืจืฆืฃ ืืืืฉืื ืขื ืืืขืื ืื ืืืืืช ืฉืื ืื ื ืื ืกืื ืืคืชืืจ.
1 421
ืืืืืง ืื ืฉืืืงืฉืช
ืคืขื ืขืื ืืื ืืคืฉืจ ืืืขืื ืขื ืืืืฉื ืฉืืื ืขืืฉื ืืืืืง ืืช ืื ืฉืืืงืฉืช, ืื ืื ืื ืื ืืืืืง ืื ืฉืืชืืืื ืช. ืจืื ืืืื ืฉืคืืช ืชืื ืืช ืื ืฆืคืืืืช ืืืื ืื ืื ื ืืืืขืื ืื ืชืืืืจ ืชืืื ืืช ืืืฉื. ืืืฆื ืืืื ืขื ื AI ืืจืื ืืืชืจ ืืืืื.
ืืืืชื ืืืืื ืงืืื ืืืื ืืืืงืฉืชื:
> create an encrypted messages with deno
ืื ืืงืื ืฉืงืืืืชื - ืืืืงืฉื ืื ืชืฉืชืืฉื ืื ืืงืื ืฉืืื:
import { encode, decode } from "https://deno.land/std/encoding/base64.ts";
import { Aes } from "https://deno.land/x/crypto/aes.ts";
import { Cbc } from "https://deno.land/x/crypto/block_modes.ts";
function encrypt(message: string, key: string): string {
const iv = crypto.getRandomValues(new Uint8Array(16));
const aes = new Aes(key);
const cbc = new Cbc(aes, iv);
const encoder = new TextEncoder();
const encodedMessage = encoder.encode(message);
const encryptedData = cbc.encrypt(encodedMessage);
const combined = new Uint8Array(iv.length + encryptedData.length);
combined.set(iv);
combined.set(encryptedData, iv.length);
return encode(combined);
}
function decrypt(encryptedMessage: string, key: string): string {
const combined = decode(encryptedMessage);
const iv = combined.slice(0, 16);
const encryptedData = combined.slice(16);
const aes = new Aes(key);
const cbc = new Cbc(aes, iv);
const decryptedData = cbc.decrypt(encryptedData);
const decoder = new TextDecoder();
return decoder.decode(decryptedData);
}
// Example usage
const key = "mySecretKey123456"; // 16, 24, or 32 bytes long
const message = "Hello, this is a secret message!";
const encrypted = encrypt(message, key);
console.log("Encrypted:", encrypted);
const decrypted = decrypt(encrypted, key);
console.log("Decrypted:", decrypted);
ืื ืฆืจืื ืืืชืจ ืืื ืืืชืขืืง ืืฉืืื ืืจืืืช ืฉืืืคืชื ืืกืืื ืฉืืืจ ืืชืื ืงืื ืืชืืื ืืช ืืฉืืงืื ืื ืืืชื ืขื ืืชืืื ืืืืฆืคื ืื ืฉืืืคืฉืจ ืืคืืจืฆืื ืขืชืืืืื ืืืฉืชืืฉ ืืชืืื ืืช ืฉืื ืืื ืืคืจืืฅ ืืช ืืืฆืคื ื ืืืืฆืขืืช ืฉืื ืื ืืืืืข ืืืืฆืคื ืืฉืืืืชื ืืืคืขื ื (ืื ืฉืืืื ื Padding Oracle Attack).
ืืกืืคืืจ ืืกืชืื ืืฉืืืงืฉืชื ืืื ื ืืชืืจ ืืืื ืืขืืืช ืืืืื ืืื ืืฆื ืืงืื ืฉืืื ืืชื. ืื ืืื ืืฆื ืืช ืืืขืืืช ืฉืื ื ืืฆืืชื ืืื ืื ืขืื ืืื ืืขืืืช ืคืืืช ืงืจืืืืืช ืืขืจืืื ืื ืืงืฉื ืขืืื ื ืืืชืื ืชืื ืืืชืืงื.
ืื ืืกืืคืืจ ืื ืืืืืื ืืื ืงืฉื ืืงืื ืชืืฆืื ืืืื ื AI ืืฉืื ืื ื ืื ืืืืขืื ืืกืคืืง ืืื ืื ืื ืื ื ืฆืจืืืื ืื ืื ืืืืจืื ืืกืคืืง ืืื ืืช ืขืืื ืืชืืื. ืื ืืขื AI ืืืืขืื ืืชืืฆืืืช ืืืืืช ืืืชืจ ืืื ืฉื ืืชื ืืื ืืืชืจ ืงืื ืืงืกื ืจืืืื ืื, ืืืืืจืืช ืขื ืขืืื ืืชืืื ืืืจืืืช ืืื ืืืืกืืฃ ืืช ืืงืื ืืงืกื ืืจืืืื ืื ืืืงืฉื ืืืืืืช ืืืืืช ืืื ืฉืืคืฉืจ ืืืื ืืืชืื ืืช ืืฉืืื ืืฉืื ืืชืืืืืช.1 421
ืืืจื ืืื ืืื ืื ืืคืกืืง ืืืืืช ืงืฉื?
ืืฉืืืืืื ืืืืื ืืช ืืืฉื ืืฉืืื ืืจืืฉืื ื ืฉืื ืฉืื ืืฉืืื ืชืืื "ืืชื ืื ืืคืกืืง ืืืืืช ืงืฉื", ืืืื ืืชืืืื ืขื "ืืชื ืืืื ืืืจืืืื ืืื ืืกืฃ". ืืื ืฉืืืืช ืืืื ืืฉืืืืช ืืื ืงืฆืช ืืืขืืช, ืืืืื ืฉืื ืฉืืืช ืืช ืืืืฉ ืขื ืืกืืฃ ืืืงืื ืขื ืืืจื ืืขื ืืืจืืช ืจืืืงืืช ืืืงืื ืขื ืืขืืื ืงืจืืืื ืืืชืจ (ืื ืฉืคืืืข ืืืืืืืฆืื). ืื ื ืืื ืฉืืืืช ืฉืืคืฉืจ ืืืขืืืช ืืืงืื-
1. ืืชื ืื ืืชืืื ืืืืืช ืืืฃ?
2. ืืชื ืืชืืื ืืืชืืขืืข ืืื ืื ืืืื ืขื ืฉืืขืืจืื?
3. ืืชื ืืืื ืืื ืืฉืื ืฉืื ืืฆืืชื ืงืืื ืืกืคืจ?
4. ืืชื ืืืื ืืคืืืฉ ืื ืฉืื ืืืฉืื ืฉืื ืืืืืื ืืช ืืืืจ ืืื?
5. ืืชื ืืฆืืื ืืฉืื ืฉืืฃ ืคืขื ืื ืืฆืืืชื ืงืืื?
6. ืืชื ืื ืืจืฆื ืืืคืกืืง?
ืื ื ืืืื ืืช ืืฉืืืืช ืืืื ืื ืื ืคืืชืืืช ืืช ืืืืช ืืืืืืจืืช ืื ื ืฉืืืืื ืืืืื ืืืืช ืืืฉืืช ืื ืงืืื ืื ืืื ืืืืจืื ืฉืื ืื ื ืขืืฉืื ืืื ื ืืื ืืืืืื ืืช ืืืฉื ืืื ืืชื ื ืืื ืืืืื.
1 421
ืืืืืฉ ืืืงื ืืกืงืืื ืืจื ืืืงืกืื ืื
ืืชืื ืืช ืืืื ืขืืจื ืื ืืืจืื ืืืืฉ ืงืฆืช ืงืื (ื ื, ืืจืื ืงืื) ืืืืืง ืืืชื ืืงืืืฅ ืืื ืืืจืื ืงืืฆืื ืงืื ืื ืืืชืจ, ืื ืฉืื ืขืืจ ืืืืืงืืช. ื ืชืืื ืขื ืืืืื ืคืฉืืื ืื ืชืืื ื ืืงืื ืืื:
class MyBigHandler {
def handle(message: String): String =
message match
case "error" => "Handling error"
case "warning" => "Handling warning"
case "info" => "Handling info"
case "zzz" => "MyHandler"
case _ => "Unhandled message"
}
ืื ืื ืงื ืืฉ ืืกื ืืื ืคืื ืงืฆืื ืืืช ืฉืืืคืืช ืืื ืืื ื ืกืืืื ืฉื ืืืืขืืช. ืืื ื ืืืืื ืฉืืืืืขืืช ืืืืืงืืช ืืงืืืฆืืช ืืฉืืฉ ืืืื ืืืืขืืช ืืงืื ืืืืคืื ืืื ืงืืืฆื ืฆืจืื ืคืื ืงืฆืืืช ืขืืจ ืืฉืืชืคืืช ืืืื ืืืฉ ืงืฉืจ ืืื ืืงืืืฆืืช. ืืืฆื ืืื ื ืจืฆื ืืคืฆื ืืช ื match ืืงืืฆืื ืืื ืงืืืฅ ืืืื ืืืจืื ืขื ืงืืืฆืช ืืืืขืืช. ืืคื ืืืื ืืขืืจืชื ื ื Mixins. ืื ืืงืื ืืืจื ืืืจืืื ืืืืฉ:
trait MessageHandler {
def handle(message: String): String = "Unhandled Message"
}
trait ErrorHandler extends MessageHandler {
abstract override def handle(message: String): String = message match {
case "error" => "Handling error"
case _ => super.handle(message)
}
}
trait WarningHandler extends MessageHandler {
abstract override def handle(message: String): String = message match {
case "warning" => "Handling warning"
case _ => super.handle(message)
}
}
trait InfoHandler extends MessageHandler {
abstract override def handle(message: String): String = message match {
case "info" => "Handling info"
case _ => super.handle(message)
}
}
class MyHandler extends MessageHandler
with ErrorHandler
with WarningHandler
with InfoHandler {
override def handle(message: String): String =
message match
case "zzz" => "MyHandler"
case _ => super.handle(message)
}
ืื trait ืืืคื ืืืืืขืืช ืฉืจืืืื ืืืืช ืขืืืจื ืืืืื ืืฉืืช ืืงืืืฅ ื ืคืจื ืขื ืืืืืงื ืฉื ืคืื ืงืฆืืืช ืขืืจ. ื Handler ืืื ืคืฉืื ืืจืืื ืฉื ืื ืืืืงืกืื ืื ืืืืื ืืืืกืืฃ ืืืืืฉ ืืฉืื ืืืืจืื ืฉืื ืืื ืืื ืืงืื ืืืฃ ืืืงืกืื ืืขืืฉืื ืืจืื ืืืชืจ ืงื ืืฉืื ืืช ืืืืคืื ืืื ืงืืืฆืช ืืืืขืืช ืื ืืืืืงืืช ืืืจืืช ืื ืืืชืื ืืืืงืืช ืืื ืงืืืฆื ืื ืคืจื.1 421
ืชืืืืงื ื GPT
ืื ืืขื GPT ืืคืื ืืืืง ืืื ืืืจืื ืืืื ืกืืฃ ืืคืืืงืฆืืืช ืืืฉืืช ืฉืืืฆืืืช ืืืื ืืื ืคืจืืืงืืื ืฉืืืืชื ืืขืืจื ืืื. ืืคืืชืื ืชืืื ืืืชืืจ ืื ืื ืื ื ืืฃ ืคืขื ืื ืืืืขืื ืื ืืืืืง ืืขื ื ื AI, ืืืฉ ืฆืืจื ืื ืื ืงืืช ืืช ืืงืื ืืคื ื ืฉืคืื ืื ืืืื ืืื ืื ืงืืช ืืช ืืืงืกื ืฉืืืืจ ืืื ื ืืื ืืกืืฃ ืืืจื ืืกืคืืง Prompt Engineering ืืคืฉืจ ืืืืืข ืืชืืฆืื ืืืื.
ืืฉืืืข ืืจืืฉืื ื (ืืคืืืช ืขืืืจื) ื ืชืงืืชื ืืืชืืจ ืืืฉ - ืืืื ืฉืื ืื ืืื ืืข ื GPT ืขืฆืื ืฉืืจื ืืคืจืืืคื ืฉืืืจ ืขืื ืืืคืกืืง ืืขืืื.
ืื ื ืืฉืืื ืืช ืื ืืขืืืื ืืื ืฉืืจืืชื ืฆื-ืฉืืืฉื ืืกืืจืชืืื ืืจืืฆื ืืืืืช - ืื API ืืืฆืื ื ืืืื ืื ื ืขืืื ืืืื ืืกืคืจ ืืืจืกื. ืืฉืืฉ ืฉืื ืื ืืื ืชืืื ืืืื. ื AI ืืืื ื ืืืื ืืืื ืืืื, ืืื ืขืืืื ืื ืืืืื ืื ืชืืื ืืชืืจืืืื ืืืืจืกื ืืืฉื. ืืื ืื Release Notes ืฉืืืื ืืช ืจืฉืืืช ืื ืืืืจืื ืฉืืฉืชื ื ืื ืืืจืื ืฉืืืจืื ืืคืจืืืคืืื. ืืจืืข ืฉืืืืืช ืืฉืื AI ืืคืจืืืงื ืขืืื ืืืงืคืื ืืขืงืื ืื ืืืื ืืืจื ืืชืฉืืืืช ืฉืืชืงืืืืช, ืืืืืช ืืชื ืคืจืืืคืืื ืืกืืืืื ืืคืกืืงืื ืืขืืื ืืืืขืืืช ืชืืงืื, ืชืืื ืืืืืจ ืืื.
ืืื ืฉืขืืืจ ืืืื ืืื ืื ื ื ืืืื ืชืืืืื ืืืชืจ ื AI ืืชืืจ ืจืืื ืชืฉืชืืช ืืืขืจืืืช, ืืืฆื ืื ืืืื ื ืจืื ืืืชืจ ืืืืชืจ ืื ืกืืืจ. ืืืื ืงืืืื ืื ืื ื ื ืฆืืจื ืืขืืืจ ืืคืืชืจืื ืืช AI ืืืืกืกื ืงืื ืคืชืื, ืฉืืืชืงื ื ืขื ืืฉืจืชืื ืฉืื ื ืืืฉืืืื ืฉืื ื. ืืืงืืื ื ืฆืืจื ืืงืื SLAs ืืจืื ืืืชืจ ืืืืื ืืืืืจืืช ืฉืืคืขืืื ืื ืืขืื ืืืื ืืขื ื.
Endi mavjud! Telegram Tadqiqoti 2025 โ yilning asosiy insaytlari 
