ToCode
Open in Telegram
ืืืคืื ืงืฆืจืื ืืืชืื ืชืื ืืืช ืื ืื ืคืจืง
Show more1 419
Subscribers
-124 hours
No data7 days
-430 days
Posts Archive
1 419
ืืื ืงืจืืช ืืชืงืื?
ืืืื ื ืืืจ ืขื "ืืชืงืื". ืจืื ืืืชืื ืชืื ืฉืืกืชืืืื ืขื ืกืคืจืื ืืคืขื ืืจืืฉืื ื ืืืคืฉืื ืืช ื Getting Started ืืืช ื Tutorials (ืืืืื ืืคืืื ืื ืื, ืจืง ื ืืชื ืื ืืงืืื ืืขืืื). ืืื ืื ืื ื ืคืืชืืื ืืฃ ืชืืขืื ืฉื ืกืคืจืื ืืื vue-i18n ืืืืืืื ืืืจ ืืืื ืืืืื ืืื ืืืฉืชืืฉ ืืกืคืจืื ืืคื ืืชืื ืืช ืืืื:
const i18n = createI18n({
locale: 'ja',
fallbackLocale: 'en',
messages: {
en: {
message: {
hello: 'hello world'
}
},
ja: {
message: {
hello: 'ใใใซใกใฏใไธ็'
}
}
}
})
ืื ืืืืชื ืืงืืื, ื'ืืื ื ื ChatGPT ืืืืงืฉืชื ืืื ืืื ืืื ืืืชืื ืืื ืงืฆืจ ืฉืืจืื ืืื ืืฉืื ืืช vue-i18n ืืืืฉืื ืฉืื. ืืชืืฆืื? ืืืื ืืชืื ืงืื ืฉืืืขื ืืช ืื ืืืืืขืืช ืืื ืืฉืคืืช ืืฆืืจื ืกืืืืช ืืชืื ืงืืืฅ ื JS ืืืืืจ ืืื ืืก ืืช ืื ืืืงืกืืื ืฉื ืื ืืฉืคืืช ืืืื ืื.
ืืจืืจ ืืื ืื ืงืืจื - ืื ืืืืจืื Lazy Loading ื ืืฆื ืืืืง "ืืืชืงืื" ืฉื ืืชืืขืื ืืฃ ืืื ืื ืืงืจื ืืืชื ืื AI ืืชืืืืก ืืืื ืคืืืช ืืจืฆืื ืืช. ืจืื ืงืื ืืืืืื ืฉืืืฆืืื ืืืื ืืจื ื ืืืขื ืกืืืืช ืืช ืื ืืืงืกืืื ืืื ืื ืืืื ื Boilerplate ืฉ AI ืืืืฆืจ.
ืืื ืืฉืื ืืืืื, ืืขืื ื ืืื ืืืช ืฉื ืืืงืกืืื ืฉืื ืื ื ืฆืจืืืื ืืคื ืืฉืคื ืื ืื ืื ืื ืื ืืชืงืื ืืื ืืืง ืืกืืกื ืืืืืชื ืืืชืืืื ืืจืืืื ืฉืคืืช. ืจืืืื ืฉืคืืช ืื ืืืื ืืืื ืขื ืืฉืืื ืืืฆืืขืื ืืื ืืจืืจ ืืื ืื ืฉืืชื ืืขืจืืช ืืื.
ืืืฉืืื ืฉืื ื ืืืชืืืช ืงืื ืืชืืขืื, ืืืืืืื ืืขืืื ื AI, ืืื ืืืชืื ืืช ื Best Practices ืฉืืืื ืืขืฆื ื Only Practices ืืืืื ืืืงืื ืืืื ืืืขืจืืช. ืืื ืฉืืืืจืื ืืื ืฉื ืคืืืชืื "ืฆืจืืื ืืืืืช ืืจื ืืจืืจื (ืืขืืืฃ ืจืง ืืืช) ืืขืฉืืช ืืืจืื".1 419
values = banks.map {|b| iterate_bank(b, 12) }
puts values.sum
end
def iterate_bank(bank, num_batteries)
value = 0
next_digit_index = 0
num_batteries.times do |i|
options = bank[next_digit_index..-(num_batteries - i)]
next_digit = options.max
next_digit_index += options.index(next_digit) + 1
value += next_digit * (10 ** (num_batteries - 1 - i))
end
value
end
end
if $PROGRAM_NAME == __FILE__
d = Day3.new
d.parse("input.txt")
d.part1
d.part2
end1 419
ืฉืืืฉื ืคืชืจืื ืืช ืจืืฉืื ืื ื Advent Of Code 2025
ืขืื ืฉื ื ื ืืืจืช ืืืื ืืื ืืฆืืืจ ืืจืืง ืืืกืื ืืคืจืกื ืฉืื ืกื ืืืืืช ืชืื ืืช ืืืฉ ืืืชืจ Advent Of Code. ืืคืขื ืืกืคืจ ืืืืืืช ืืจื ื 12, ืืขืืงืจ ืื ืืื ืงืฆืช ืืชืขืืืฃ ืืื ืื ื ืืืื ืืืืืืช ืฉืืื ืขื ืืขืืืืช ืฉื ืฉืื, ืื ืคื ืืืงืื ื ืืื ืืืืื. ืืืจ ืืื ืฉื ืื ืฉืื ืืฆืืืชื ืืืฆืื ืืื ืืกืืื ืืช ืื ืืกื ืืืืื ืืคืขื ืขื 12 ืืืืืช ืืืื ืืืฆืื ืืช ืืืืืืืฆืื ืืืืื ืืืชืืื.
ืืื ืชืืื ืื ื ืื ืืงืฆื ืืื ื ืืกืืื ืืช ืืฉืืืข ืืจืืฉืื ืขื 3 ืืืืืช ืคืชืืจืืช ืืชืื 5 ืฉืคืืจืกืื. ืชืืฃ ืืืืืืช ืืืคืชืจืื ืืช ืฉืื ืืื ืงืืื ืืืืจื - ืื ื ืืคืจืกื ืืช ืืคืชืจืื ืืช ืืืื ืื ืืชืืจ ืคืชืจืื ืืช ืืืช ืกืคืจ ืฉืฆืจืื ืืืืื ืืื (ืืช ืื ืืคืฉืจ ืืงืื ื ChatGPT ืฉืืืืฃ ืืืืืืช ืืืกืื ืืื) ืืื ืืื ืืชืช ืื ืืื ืืืืืืฆืื ืื ืกืืช ืืืคืชืืจ. ืื ืืืื ืื ืืืฉืื, ืื ืืกืคืืง ืืืืจ ืืงืฆืช ืืกืืจืื ืืื ืื ืื ืืืง ืืืงืกื ืฉื ืืคืชืืจ ืืื ืืืืชืืืื ืืืื ืืงืกืื. ืืืื ื ืจืื ืืช ืืงืื.
ืืื 1 - ืืืกืคืช
ืืชืจืืื ืืื:
https://adventofcode.com/2025/day/1
ืืืืืืฉืื ืกืืื ืืฉืืชืืืชื ืืช ืืืฉืืง ืืฉืืชื ืฉืคืืืชืื ืืื ืืฉืคื ืืืืฉืืืช ืื ืคืชืจืชื ืื. ืื ืืืื ืืืจ ืืืื ืืืจืชื ืืจืืื. ืืื ืจืืฉืื ืืืง 1:
def move_dial(old_value, line):
count = int(line[1:])
if line.startswith("L"):
return (old_value - count) % 100
elif line.startswith("R"):
return (old_value + count) % 100
else:
raise Exception(f"Line {line}")
dial = 50
zero_count = 0
with open('input.txt', encoding='utf-8') as f:
for line in f:
dial = move_dial(dial, line)
if dial == 0:
zero_count += 1
print(f"{zero_count=}")
ืืืง 2 - ืืจืื ืืื ืืืขืืืืช ืืคืฉืืืช ืืืฉืืื ืืื ืืกืืฃ ืื ืขืื:
def dial_diff(line):
count = int(line[1:])
if line.startswith("L"):
return -count
elif line.startswith("R"):
return count
else:
raise Exception(f"Line {line}")
dial = 50
zero_count = 0
with open('input.txt', encoding='utf-8') as f:
for line in f:
count = dial_diff(line)
full_rounds = abs(count) // 100
if count > 0:
# move right
next_dial = (dial + count) % 100
if (next_dial < dial and next_dial != 0):
full_rounds += 1
elif count < 0:
next_dial = (dial + count) % 100
if (next_dial > dial and next_dial != 0 and dial != 0):
full_rounds += 1
dial = next_dial
zero_count += full_rounds
if dial == 0:
zero_count += 1
print(zero_count)
ืืื 2 - ืื ืืช ืืชื ืืช
ืืชืจืืื ืืื
https://adventofcode.com/2025/day/2
ืืืง ืจืืฉืื ืืืจืชื ืืจืืื ืืืืจ ื ืฉืืชื ืืจืืืื. ืืช ืืืืง ืืจืืฉืื ืขืื ืคืชืจืชื ืืื ืืืืืืื ืจืืืืืจืืื ืืื ืืืืง ืืฉื ื ืงืืฆืจืชื ืืช ืืืืฉืืืื ืื ืชืชื ืืื ืืข ืืืืืืืื ืืจืืืืืจืืื ืืขืืื ืืฉืืืื:
class Aoc2025Day2
def initialize(input_file_name)
@ranges = parse(input_file_name)
end
def parse(input_file_name)
File
.read(input_file_name)
.split(',')
.map {|r| r.split('-') }
.map {|a, b| a.to_i..b.to_i }
end
def part1
@ranges.flat_map {|r| r.filter {|id| valid?(id) } }.sum
end
def part2
@ranges.flat_map {|r| r.filter {|id| id.to_s.match(/^(\w+)\1+$/) } }.sum
end
def valid?(id)
ids = id.to_s
ids[0...ids.length / 2] == ids[ids.length / 2...]
end
end
if __FILE__ == $PROGRAM_NAME
a = Aoc2025Day2.new("input.txt")
puts a.part1
puts a.part2
end
ืืื 3 - ืืืื
ืืชืจืืื ืืื
https://adventofcode.com/2025/day/3
ืืืืชื ืฉืื ืืืชืื ืคืชืจืื ืืืชืจ ืืขืื ืฉืกืืจืง ืืช ืืืขืจื ืจืง ืคืขื ืืืช ืืื index ื max ืืืจ ืื ืืืื ืืจืืื ืืืฆื ืืชืื ืชืื ืืขืฆืืืช ืืคืขืืื ืื ืฆืืช. ืืคืืืช ืืฆืืืชื ืืืชืื ืืช ืืืืจืืืช ืืื ืืืชืืืื ืืืชืจ ืืื ืืืื ืืงืกืื. ืื ืืงืื:
class Day3
attr_accessor :banks
def parse(input_file_name)
@banks = File
.read(input_file_name)
.lines
.map {|l| l.strip.split('') }
.map {|bank| bank.map(&:to_i) }
end
def part1
values = banks.map {|b| iterate_bank(b, 2) }
puts values.sum
end
def part21 419
ืืืจืื ืฉืื ื ืขืืฉื ืืืื ืืืจืช ืืืืืช ื AI
ืืขืงืืืช ืืื ืคืืกืืื ืฉืงืจืืชื ืืืื ืืืืจืื ืขื ืืฉืืืงื ืืืืืื ืืช ืฉื ืืชืื ืชืื ืืืื ืืืื ื ืืืคืืื ืืืืืืื ืืฉืื ืืืืื - ืืคืชืืื ืฉืืฉืชืืฉืื ื ืืื ื AI ืขืืืืื ืืืชืจ ืืืจ, ืืืืืื ืืืชืจ ืืืจ, ืืืืืืจืื ืงืื ืืื ืืืชืจ ืืคืืืช ืืื ืืืืืขืื ืืืชืจ ืขื ืืงืื ืฉื ืืืขืจืืืช ืฉืืื. ืื ื ืจืฉืืื ืืืงืืช ืฉื ืืืจืื ืฉืื ื ืขืืฉื ืืืื ืืืจืช ืืืืืช ื AI ืืคืขื ืืืืชื ืจืง ืืืืื ืขืืืื:
1. ืืกืชืื ืขื ืืื ืืืืืฉืื ืืื ืืืืื ืืช ืืืขืื - ืืืืืื ืจ ืืืืงืจ ืขื ืกืืื ื ืงืืืื ืืขื ื ืืจืืืชื ืืื ืื ื ืืืื ืืงืืช ืจืขืืื ืืืืคืื ืืืชื ืืงืื ืขืืื ืืืขืจืืช ืฉืื, ืืืื ืขื ืขืื 2 ืืืืฆืืช ืื ื ืืืื ืืงืื ืขืื ืืจืกืืืช ืืืืืืฉืื ืฉืื ืื ืืืืชื ืจืขืืื. ืืืื ืืฉืื ื ืฆืจืื ืืคืชื ืคืืฆ'ืจ ืื ื ืืืจ ืื ืฆืจืื ืืืฉืื ืืจืืฉ ืขื ืื ืื ืฉืืืื ืืืฉืืจ, ืื ื ืคืฉืื ื ืืชื ื AI ืืจืืฅ ืืืฉืืืจ ืืืจืื (ืขื ืืืื ื ืฉืื. ืืขื ื.). ืื ื ืืฉืงืืข ืืืื ืืื ืืืงืจืื ืืช ืืืืืืฉืื ืืืืขื ืืฃ ืคืขื ืื ืืืงื ืืช ืืงืื ืืืื. ืื ืฉืื ืงืืจื ืื ืฉืื ื ืืืื ืืื ืขื ืืจืืืืงืืืจื. ืื ื ืืืื ืื ืืื ืงืฉื ื AI ืืื ืืช, ืืืคื ืืื ืืกืชืื ืืืฆืจ ืคืชืจืื ืืช ืขืงืืืื ืืืื ืืื ืืกืชืื ืฉื. ืงืจืืืช ืืืืืฉื AI ืืคืืฆ'ืจ ืืืฉ ืืืืืช ืืืชื ืืืื ืขื ืืืขืจืืช ืืืื ื ืืงืื. ืื ืืจืืจ ืืงืื ืฉืื, ืื ืื ืืกืคืืง ืืจืืจ. ืืืื ืืืกืืจืงืฆืืืช ืืกืจืืช. ืืืคื ืืืืกืืจืงืฆืืืช ืฉืืฆืจืชื ืืขืืืืืช ืืขืืืช ืืืฆืืขืื ืื ืืขืืืช ืืืืื. ืคืขื ืืืืชื ืืืฉื ืขื ืจืขืืื ืืืื ื ืืืืงืืช ืืืขืจืืช ืืจืง ืืืจื ืืื ืืืืฉืื ืืงืื ืืกืคืืง ืคืืืืง ืืื ืืืืื ืื ืืืื ื ืืื ืืื. ืืืื ืืืืชื ืฉืืืข ืื ื ืืืื ืื ืกืืช 4 ืืืจืจืืืืช ืืจืืฉื ืฉืื ืืช ืืืจืืืช ืืื ืืืกืฃ ืฉื ืคืืฆ'ืจืื ืืืื ืืืื ืืช ืขื ืื ืืืจืจืืื.
2. ืืจืคื ืื ืคืื ืงืฆืื ืืืืืงืืช ืืืืื ืืคื ื ืฉืืชืืื ืืฉื ืืช ืืืชื - ืื ืื ืืื ืคืจืงืื ืืคื ื ืืื ืฉื ืื ืืืื ืื ืฉืืื ืืช ืืืฉืงืขื. ืืืื ืืฉืื ื ื ืืืฉ ืืขืืื ืขื ืคืื ืงืฆืื ืื ื ืืชืืื ืขื ืคืจืืืคื "ืชืกืืืจ ืื ืขืืฉื ืืคืื ืงืฆืื", ืืืงื ืืช ืืืกืืจ ืฉืื ืืืืฉืื ืขื ืคืจืืืคื "ืื ื ืชืืื ืืช ืืืืงืืช ืืคืื ืงืฆืื ืืืื ืืงืจื ืงืฆื" ืืื "ืฆื ืืืจื ืืืืฉ ืืช ืื ืืืืืงืืช". ืืฉืืฉ ืืกืคืืง ืืืืืืืช ืืกืืื ืืงืื ืืชืฉืชืืช ืืืื ื AI ืืฆืืื ืืื ืืช ืชืืื ืืช ืฉื 30-40 ืืืืงืืช ืืคืื ืงืฆืื ืืืืืช ืืืืื ืขืืืจืืช ืืจืืฆื ืจืืฉืื ื ืื ืฉืื ืื ืืืงื ืื ืืื ืคืืชืื ืืื ื ืืืื ืืืืฉืื ืืืจืื ืืืืฉ ืืช ืืงืื ืืืืืื ืืื ืฉืื ืฉืืจืชื ืืืื, ืื ืื ืื ืืชืืืื ืชื ืืฉืืืจ ืื ืื ื ืืืืข ืฉืฉืืจืชื ืจืง ืืช ืื ืฉืชืื ื ืชื.
3. ืืืจืง ืงืื - ืชืืื ืืืืชื ืืืืืง ืงืื ืืื ืขืืฉืื ืขื AI ืื ื ืืคืืื ืืจืื ืคืืืช ืงืฉืืจ ืืืื ืืื ืฉืืืืชื ืงืืื. ืืืืืฉ ืื ืืื? ืืฉืื ืื ืืกืคืืง ืืจืืจ? ืื ื ืจืื ืืคื? git restore ืืื ืกืื ืฉืื. ืืงืื ืืกืคืฆืืคื ืืืื ืืืฉืืืืชื. ืืืืืฉ ืฉื ืคืื ืงืฆืื ืืืืฆืจ ืืืืืฆืช ืืคืชืืจ. ืืงืกื ืืื ืืืืฉืงืื, ืืืืืืจืื, ืืชืืขืื, ืืืื ื ืืืืื ืืืชืจ ืฉื ืืืขืจืืช.
4. ืืืื ืขื ืื ืฉืืจื - ืคืขื ืืฉืจืืืชื ืฉืืจืช ืงืื ืืืืจื ืืืคืฉืชื ืืชืืขืื ืื ืืื ืขืืฉื ืืื ืืจืื ืคืขืืื ืื ืืื ืชื ืขื ืืกืืฃ ืืื ืืื ืฉื ืืืชื ืขืื ืืคืฉืจ ืื ืื ืืคืฉืจ ืืืฉืชืืฉ ืืืื ื ืืืื. ืืืื ืืืืคืืฉ ืืชืืขืื ืืื ืืชืื ื IDE ืืืืื ืืช ืฉืืจืช ืืงืื ืืืืืจื ืืื ืขื ืื ืืงืื ืืงืกื. ืืืกืืจ ืฉืื ื ืืงืื (ืืฉืืืืช ืืืืฉื ืฉืื ื ืืขืื) ืขืืืจ ืื ืืืืื ืืจืื ืืืชืจ ืืืจ ืืืจืื ืืืชืจ ืืื ืืื ืฉืืจื ืืกืืืืช ืืชืืื ืื. ืืืืืื ืืจื ืืืืืื ืขื AI ืขื ืื ืฉืืจื ืืืคืฉืจ ืืจืืืช ืืืจืื ืฉืคืขื ืืืืชื ืืงืืืช ืืคืกืคืก. ืืืืืื ืืืืืจ ืืืืืืืืื ืืงืืืช ืืกืืจืื ืืืืืงืื ืขื ืกืขืืคืื ืืชืืขืื ืฉืื ื ืื ืืืื ืืืคืฉืจ ืื ืืจืืืช ืืืจืื ืฉืคืขื ืืื ืื ืงืฉื ืืจืืืช.
ืืืืฉืื ืฉ"ืืคืจืืืงื ืฉืื ืืกืืื ืืื ืืฉืืื AI" ืืฉ ืืจืขืื ืฉื ืืืช, ืืื ืืืื ืืืื - ืืคืจืืืงื ืฉืื ืืกืืื ืืื ืืฉืืื ืฉ AI ืืืื ืืื ืืช ืื ืคืืฆ'ืจ ืืืคืก (ืืื ืจืื ืื ืืกืืื ืืื ืืฉืืื ืฉืื ื ืืืชืื ืื ืคืืฆ'ืจืื ืืืคืก), ืืื ืืขืืจืช AI ืื ื ืืืื ืืืชืืงื ืืืฉืืื ืืืื ืืืช ืชืฉืชืืช ืฉืชืืคืื ืืืชื ืืืจืื ืคืืืช ืืกืืื.
ืืื ืืืชืจ ืืฉืื, ืืคืชืืื ืฉืขืืืืื ืขื AI ืืฆืืจื ื ืืื ื ืืืืืื ืืืชืืงื ืืืืจืื ืฉืชืืื ืืื ืืืืืช ืืืงืฆืืข: ืคืืชืื ืืืกืืจืงืฆืืืช, ืืืฆืืช ืคืชืจืื ืืช ืืฆืืจืชืืื ืืืขืืืช, ืืืืื ืืขืืืช ืืคื ื ืฉืื ืงืืจืืช ืืื ืืขืชื, ืืืคืืฉ ืืืจ ืืจืืื ืืืืืช ืืืชืจ ืืื ืืช ืืขืจืืืช.
1 419
ืืื ืฆืืฆืื ืืคืขืืื ืื
ืฉืืืฉ ืฉืืืืช ืฉืื ืื ื ืืืืืื ืืืฉืืืจ ืคืชืืืืช ืืืื: ืื ืืืจืื ืืืงืฉืื ืืืืขืงื ืืฉืืืจืื ื ืฉืืจืื? ืื ืืชืขืืฃ ืืช ืืชืืงืื? ืืืืื ืืืจืื ืฆืจืื ืืืื ืืชืงื?
1. ืื ืืืจืื ืืืงืฉืื ืืืืขืงื - ืฉื ืื ืืชืคืงืื ืืฉืื ืื ืืฉืืืืืื ื ืืฉื? ืืฉืกืงืจืืคื ืืื ืื ืืืืืจ ืฉืงืืฆื ื JS ืฉืืื ืืฆืจ ืืืืืื ืืื? ืฉืืงืื ืืืื ืืืชืจ ืืื ืืืงืื ืืืืื ืืืงืื ืชืฉืชืืช ืืฉืืชืคืช? ืฉืืฉืจืช ืืชืืื ืืขืืื ืืืชืจ ืงืฉื ืืื ืฉืื ืื ื ืจืืืืื? "ืื ืืื ืืืื ืืจืืืช ืืช ืื" ืืืจื ืืื ืืืืื ืืื ืฉืืฃ ืืื ืื ืฉื ืื.
2. ืื ืืชืขืืฃ ืืช ืืชืืงืื - ืฆืจืื ืืืืืข ืืคืจืืืงื ืืฉืืื ืืืื ืืก ืคืืฆ'ืจ "ืืงืื ืช JavaScript"? ืื ืขืืฆืจ ืกืคืจืื ื? ื ืชืคืก ื Code Review? ืืื ืฉืืชื ืื ืืืจื ืืืืืื?
3. ืื ืืืื ืฆืจืื ืืชืงื - ืืชืงื ืื ืื ืื ืฉืืืจืง Warning? ืจืง ืื ื Warning ืืืฉ ืืคืืื? ืจืง ืื ืืฉ ืืื?
ืืฉ ืืืื ืืืื ืื ืื ืื ืื ืืืืืืืืื ืฉืฆืืขืงืื ืขืืื ื ืืฉืืงืื ืืืืืฃ ืืืื ืฉืืฉ ืืืชืจ ืืื ืื ืื ืื ื ืืคืชืืื ืืืื ืื ืื ืื ืื ืฉืืืคืฉืจืื ืืืชืขืื ืืืืชื ืื ืื ืื ืื ืืืืืืืืื. ืฉืืื Husky? ืชืื ืจืืข ืื ืื ื ืืืืื ืืื ืืืื ืืืชื. ืืืืืื ืืขืืืจ ืืืืงืืช ืืฉืืื ืืืืืฃ ืืจืกื? ื ืฉืื ืืช ืืืืืงื ื skip ืจืง ืืืจืกื ืืื. ืื ืื ื ืืชืขืืืื ืืืืืืจืืช ืื ืืจืื ืืื ืื False Positives. ืืชืื 3 ืืืืขืืช ืฉืงืืืืชื ืืืื ื Code Review ื AI ืฉืืืฉืชื ืืื ืืขืืืืช ืฉื ื AI ืืืืื ืืืืื ืื ืืื ืืงืจ ืืงืจืื ืืืืืื ืืื ื AI ืืชืืืื ืืืื ืืื ืืืขื. ืืืืชื ืืื ืงืืืฅ ื JavaScript ืืืขืจืืช ืืืจ ืขืืจ ืืช ื 5 ืืื ืืืฃ ืืื ืืืจ ืื ืืืืจ ืืชื ืืืืืจื ืขื ืื ืืชืืืื ืืืืคืืข.
ืืื ืจืขืืื ืืช ืฉืืืืืื ืืขืืืจ:
1. ืื ืื ื ืืืืืื ืืืืืื ืืืื ืืขืืืช ืืกืคืืง ืืฉืืืืช ืืฉืืื ืืขืฆืืจ ืืช ืืขืืืื ืืืช ืื ืืฉืืจ ืืืืืช.
2. ืืื ืชืืื ืืคืจืืืงื ืฆืจืื ืืืืืช ืื ืืื ืฉืืืจืื ืืืกืชืื ืขื ืืืืืจืืช. ืืื ืื ืืื ืืงืืขื ืืชื ืืืืืจืืช ืืงืคืฆื ืืื ืืืื ืืืจืืื ืืฆืขืืง ืืฉืืฉ ืืขืื ืฉืืืจืฉืช ืืช ืื, ืืคื ื ืฉืืืฆื ืืืืืจ.
3. ืืืง ืืคื ื ืงืืืื ืื ืื ืจืขืืื ืืื ืื ืืื ืื ืืืืข ืืื ืืื ืื ืืื ืืืื ืื ืืื. ืืืคืชื ืฉืขืืฉืื ืืืืฃ ืืจืกื ืขื ืชืืืช ืืฉื ื ืฆืจืื ืืช ืื ืืืื ืฉื ืฉืืืข ืืื ืืืืืื ืืฉ ืืฉืืื ืฉื ืฉืืจืื ืชืืืืืช ืืกืคืจืื ื ืืื. ืขืืืฃ ืฉืืืจืื ืืืืืช ืืืืข ืืงืื Push ืขื ืืคืจืืื ืืืืืื ืื ืืขืฉืืช ืขื ืื ืืื ืืืืช ืืฉ ืกืื ื.
ืืืืจื ืฉืื ื ืคืฉืืื - ืืคืชื ืืืชืจ ืืืจ ืืขื ืคืืืช ืืขืืืืช. ืืขืจืืืช ืชืืื ื ืฉืฆืืขืงืืช ืขื ืืืื ืขื ืื ืฉืืืช ืื ืขืืืจืืช.
1 419
ืงืื ืฉื ืจืื ืืื ืืื ืืื ืืขืฆื ืื (ืืืืฉ AI)
ืืืืืื ืจ ืืฉืืืข ืืจืื ืืื ืืขืืื ืขื ืกืืื ื AI ืืขื ื. ืื ืืืืืืื ืืืืืืื ืืขืฉืืช ืืืจืื ืืืื ืืฆืืจืชืืื ืืื ืืืคืฉ ืืคืขืืื ืฉืืื ืขืืื ืืจืื ืคืขืืื ืื ื ืืื ื. ืฉืืืืื ืืืชื ืืคืขืืื ืืืืืื ืจืื ืื ืฆืจืื ืืงืจืื ืื ืฉืืจื ืฉ AI ืืืชื ืืื ื ืืืฉื ืฉืืชืฉืืื ืืืจืืืช. ืืฆื ืืื ืื ืืคืฉืจ ืืืื ืก "ืืจืืฉ ืฉื AI" ืื ืื ืืืื ื ืืงื ืืืื ืืคืกืคืก ืืืจืื ืงืื ืื ืฉืืื ืขืืฉื ืื ืืกืืจ. ืืฆื ืฉื ื ืจืื ืืคืขืืื ื AI ืืฉืืืจ ืกืืื ืื ืืืขืืืืช ืฉืื, ืกืืื ืื ืฉืื ืื ื ืืืืืื ืืจืืืช ืืงืื ืฉ AI ืืืชื ืืฉืขืืืจืื ืื ื ืืืืืช ืืืชืจ ืืฉืื ืื ืืืื ืืชืืฆืื. ืืืืื? ืืจืืจ ืืฉืืื ืื ืืื ื.
ืืื ืืฉ PR ืืคืืฆ'ืจ ืฉืืืงืฉืชื ืืงืืคืืืืื ืืืชืื ืขื ืคืจืืืงื ืงืื ืคืชืื ืฉืื ืฉื ืงืจื ืื ืืืืก. ืืืงืฉืชื ืฉืืื ื ืืกื ื ืื ืฉืืจืื ืฉืืจ ืืืืืืื ืืืืื ืืช ืืืืืื, ืืชืจืืื, ืืืื ืขื ืืืฆืจ ืืืืื ืืืฉืืจ ืืืคืฉืจืืช ืืืืจืื ืืช ืืืฆืจ ืืืืื ืืงืืืฅ CSV:
https://github.com/ynonp/langlets-rails/pull/71
ืืื ืขืฉื ืขืืืื ืืืืืื - ืืชืืืืจ ืฉื ืืื ืืืืื ืืื ืืฆืจ ืื ืืกืืื ืขืืืืื ืืชืื ืืคืจืืืงื. ืื ื ืืืื ืืืฉืื ืืช ื PR ืืืจืืืช ืืช ืื ืืืื ืขื ืืืืฉื ืฉืื. ืืืชืื ืช ืื ืืฉื ืื ืืื ืืืงื ืืืชืจ ืืื. ืื, ืฉืื ื ืืืืจ ืจืืืืก ืืื ืืืืืจ ืืช ืืคืจืืืงื ืืื ืื ืืื ืืืงื ืืืชืจ ืืื. ืืืง ืืื ืื ืืืืช ืืื ืฉื AI ืืืชืื ืงืื ืืืจ ืืืืง ืืืจ ืืื ืื ืืืกืจ ืืืืืืช ืฉื AI ืืงืื ืืืืืืช ืืืืืช. ืืืื ื ืงืจื ืืช ื PR ืืจืืืช ืื ืขืืื ืืื ืฉืืืจ ืฉื.
ืืฆืืช ืื ืื
ืืงืืืฅ ืืจืืฉืื ืฉื AI ืืชื ื ืงืจื
play_controller.rb. ืื ืืงืืืฅ ืฉืืืคื ืืืฆืืช ืื ืื ืืืืจ ืคื ืืฉ ืื ืืขืื ืขื ืืฉื. ืืฉื play_controller ืืืื ืืชืืื ื URL ืฉืืืงืฉืชื ืืื ืืื ืื ืฉื ืืื ืคืืจืืืืื ืืื ืืจืืจ ืืื ื ืื ืืืืจื ืฉื ืืงืื ืืจืืืจ. ืฉื ืืื ืืืชืจ ืืื StandalonePlayerController - ืืืื ืื ืืฉื ืฉืืื ืืืืจ ืืงืืืฅ ื JavaScript ืืืงืืื ืืืืฉื ื PR. ืชืืฃ ื ืืืข ืืื.
ืืืจ ืืืจื ืฉืืืคืช ืืจืฉืืื ืืืกืืก ืื ืชืื ืื ืื ืื ื ืจืืืื ืืช ืืืขืื ืืจืืฉืื ื: ืื ืืจืฉืืื ืื ื ืืฆืื ืงืืคืืืืื ืืืืื ืืขื ืืช ื Redirect ืืืกื ืืืืช. ืื ื ืื ืืืงืฉืชื ืืช ืื ืื ืชืืืื ืืืจืื ืืืขืจืืช ืืืจืงืื Exception ืืืฆื ืืื. ื ืฉืื ืื ืฉืืจืื ืคืขืืื ืืืืืืช ืืืื ืืคืฉืจ ืืฉืคืจ ืืืืฆืขืืช ืืฆืืจืช ืงืืฆื "ืืืงืื ื AI". ืืืืืง ืืื ืืื ืืืขืชื ืืืชืืจ ืืื ืืืื ืฉืื ื ืืงืื ืฉ AI ืืืฆืจ ืืื ื ืืืืืง ืืืชื ืืื:
* Get the medium from the first lesson to access phrases *
first_lesson = @course.lessons.first
unless first_lesson
redirect_to root_path, alert: "No lessons found for this course"
return
end
@medium = first_lesson.medium
ืื ืืืืืง ืงืื ืฉื ืจืื ืืื ืืื ืืื ืืขืฆื ืื. ืืฆื ืืื ืืื ืืืื ืฉืืฉืืื ืืืืืข ืืงืืจืก ืืืืืื ืืื ืฆืจืื ืืขืืืจ ืืจื lessons, ืืงืืช ืืช ืืฉืขืืจ ืืจืืฉืื ืืฉื ืืืฉืช ืืฉืื medium. ืืื ืื ืืืื ืฉืืืื ืืืืืช ืฉืื ืืืื ืฉืขืืจืื ืืงืืจืก ืืื ืื ืืคืฉืจ ืืืฆืื ืืช ืื ืื. ืืงืื ืขืืื, ืืืคื ืืื ืืืงืจืื ืืื ืืจืืจ ืืืื ื ืจืื ืืื. ืืื ืืคืชืื ืจืืืืก ืืืืขืื ืฉืื ืืืื ืืืขืืืก ืืืืืงื ืขื ืืงืื ืืจืืืจ ืื ืื ืืคืฉืจ ืืืฉืชืืฉ ืื ืฉืื ืืืงืืืืช ืืืจืื ืืืขืจืืช ืืืื ืืคืชืื ืจืืืืก ืืืืื ืืื ืืื ืืกืื ืืช ืืืืืง ืืื ืืคืื ืงืฆืื ืืืฉื ืฉื course. "ืื, ืื ื ืจืืื ืฉืฆืจืื ืืืืืข ืืงืืจืก ืืืืืื ืื ืื ื ืืืชืื ืืื ืคืื ืงืฆืื ืืืืฉื ืงืื" ืื ืืฉืื ืฉ AI ืืืขื ืืื ืืืืจ.
ืืืจ ืฉื ื ืฉืฉืืืจ ืืื ืื ืืฉืืืืฉ ื @. ืืจืืืืก ืื ืื ื ืืกืื ืื ื @ ืืฉืชื ืื ืฉืื ืื ื ืจืืฆืื ืืืฉืช ืืืืื ืืงืื ืืชืื ืืช ืืฉืืฉืคืืขื ืืืืฉื ืขื ื HTML ืฉืืืืฆืจ. ืืืฉืชื ื @medium ื PR ืืฃ ืืื ืื ื ืืืฉ ืืืจื ืืงืื ืืจืืืจ ืืืื ื ืืื ืืืชืจ ืืกืื ืืืชื ืืืฉืชื ื ืคื ืืื ืฉื ืืคืื ืงืฆืื. ืืคืื ืงืฆืื ืืกืชืืืืช ืืฉืืจืืช:
* Prepare vocabulary data - all token translations from the medium *
@vocabulary = @phrases.flat_map(&:token_translations).uniq { |tt| [tt.original_text.downcase, tt.translation.downcase] }
ืฉืืื ืขืืืืืช ืืจืื ืืืชืจ ืืื ืืชืืจ ืืชืืื ืืืฉื ืฉื Medium ืื ืืืืืฉืื Service Object ืื ืฉืืคืฉืจ ืืื ืืืืืง ืืืชื. ืขื ืฉื ืืื ืืคืื ืงืฆืื ืื ืื ืืืื ื ืฆืจืืืื ืืช ืืืขืจื.
ืฉืืืจืช ืืืฆืจ ืืืืื ื CSV
ืืคืื ืงืฆืื ืืฉื ืื ืฉื AI ืื ื ื ืงืจืืช vocabulary_csv. ืื ืคื ืืขืืจืช Rules File ืืคืฉืจ ืืื ืืฉืื ืข ืืืชื ืืืฆืืจ ืงืื ืืจืืืจ ืืืฉ ืืฉืืื ื CSV ืืื ืขื ืฉื ืืื ืืื StandalonePlayerCsvController ืืื ืืกืืจ ืื ืจืื ืืืคืชืืื ืืื ืืฉืืื ืฉืื ื ืืืืจ ืื ืืื ืืืกืืคืื ืงืืืฅ ืงืื ืืจืืืจ ืืืฉ ืจืง ืืฉืืื "ืืืจืื ื CSV". ืื ืฉืืืชืจ ืืืจืื ืื ืฉืืคืื ืงืฆืื ืืฉื ืื ืืืืื ืืจืื ืงืื ืฉื ืืฆื ืืืจ ืืคืื ืงืฆืื ืืจืืฉืื ื. ืืจืืจ ืืืืจื ืืื ื AI ืขืืฉื ืืช ืื ืืฉืกืืื AI ืืขืชืื ื ืืืจืืช ืืฆืืื ืืจืืืช ืืืกืืจืงืฆืืืช. ืืืช ืืกืืื ืฉืื ืื ื ืืืืืื ืืขืืืจ ืขื ืืงืื ืืืชืงื.
ืงืืืฅ ื JavaScript1 419
ืืืชืจ ืืื ืืืืงืืช?
ืื ืฉืื ืืช ืืฉืื ืืืขืจืืช ืืฉืื ืืืืงื ืื ื ืฉืืจื ืื ืกืืื ืฉืืกืจืืช ืืืืงืืช. ืืืฆื ืืื ืืืกืืคืื ืืืืงื ืฉืชืฉืืจ ืืืื ืืฉืื ืื, ืืชืงื ืื ืืืชื ืืืจืกื ืืืืฉื ืืืืฉืืืื ืืืืื. ืืช ืื ืืืื ืืืืขืื ืืขืฉืืช.
ืืื ืื ืงืืจื ืื ืฉืื ืืช ืืฉืื ืืืขืจืืช ื 10 ืืืืงืืช ื ืฉืืจื? ืืชืงื ืื ืืช ืืืื? ืื ืื ืืืื ืืืืืช ืฉืืฉืื ื ืฉืืจ ืจืง ืืืืืื ืืืจื, ืื ืืืืืงืืช ืืืืืืช ืืจืืฅ ืจืง ืืขื ื ืืืืงื ืืืืืื ืืงืื ืืช ืืชืืฆืืืช?
ืืืชืจ ืืื ืืืืงืืช ืื ืืขืื ืงืฉื ืืื ืคืืืช ืืื ืืืืงืืช ืืื ืืคืชืจืื ืฉืื ืืืชืจ ืืืชืืจ. ืื ืงื ืืืืืง ืืืืงืืช ืื ืืืื ืื ืื ื ืืคืกืคืกืื ืืืจืื ืืฉืืืื. ืื ืงื ืืืืื ืืื ืืืืงืืช ืจืฆืืช ืืื ืืืกืืจ ืืช ืื, ืื ืขื ืืื ืืจืฆื ืืงืืืืืช ืื ืขื ืืื ืืืคืืืืืืฆืื ืฉื ืืงืื ืื ืคืฉืื ืืืืืง ืืืืงืืช ืืืืชืจืืช. ืืืื ืืืจืื ืืขืืืช ืงืฉืืช ืื ืืื AI ืื ืขืืืจ. ืืื ืืืื ืจืง ืืืืกืืฃ ืงืื.
ืืืืืฉ ืขืืืชื ืขื ืฉื ื ืคืจืืืงืืื - ืืืื ืืื ืคืืืช ืืื ืืืืงืืช ืืืฉื ื ืืืชืจ ืืื. ืฉื ืืื ืืจืฉื ืขืืืื ืืคื ื ืฉืืฆืืืชื ืืืฉืชืืฉ ืืืืืงืืช ืืชืืจ ืืื ืขืืืื ืฉืืืืฅ ืืช ืืคืืชืื.
ืืขืืืื, ืืืืช ืืืื ืฉื ืืืืงืืช ืืื ืืืจื ืืื ืืืื ืืืชืื ืืขืจืืืช ืืืื ืืช ืืืจ. ืืขืืื ืงืื, ืืจืืฅ ืืืืงืืช, ืืงืื ืคืืืืง ืจืืืื ืื ืชืื ืคืืืช ืืืงื ืืืชืงื. ื ืฉืื ืื ืฉืื ืื ืกืืื. ืืืจื ืืฉืืืจ ืขื ืืืืช ืืืื ืฉื ืืืืงืืช ืืื ืื ืืืื ืืืชืื ืืืืืืง ืืืชื.
1 419
commit a883c360dfae324a365d9bfb9ab881865a33f0c4 (HEAD -> main)
Merge: d55f747 c363960
Author: ynonp <ynonperek@gmail.com>
Date: Sun Nov 30 13:56:36 2025 +0200
Merge branch 'develop'
diff --git a/demo.py b/demo.py
remerge CONFLICT (content): Merge conflict in demo.py
index 96d7fe5..ba6d51e 100644
--- a/demo.py
+++ b/demo.py
@@ -1,10 +1,5 @@
-<<<<<<< d55f747 (fixed text)
-if __name__ == "__main__":
- print("Hello World")
-=======
def greet():
- print("hello world")
+ print("Hello World")
if __name__ == "__main__":
greet()
->>>>>>> c363960 (refactor to use function)
ืืฆื r ืืฆืื ืืืขืชื ืืช ืืคืื ืืื ืืจืืจ - ืื ื ืจืืื ืืช ืฉื ื ืืขื ืคืื, ืืช ืืฉืื ืืืื ืฉื ืื ืขื ืฃ ืืืช ืืืืขืืช ืืงืืืื ืืืชืืืืืช.1 419
ืืืค ืืื: ืืฆืืช ืฉืื ืืืื ื Merge Commit
ื ืชืื ืืจืืคื ืืื:
* a883c36 (HEAD -> main) Merge branch 'develop'
|\
| * c363960 (develop) refactor to use function
* | d55f747 fixed text
|/
* 64b74f3 initial commit
ืืฉ ืื ื ืขื ืฃ main ืืขื ืฃ develop, ืืขื ืฃ develop ืืืฆืขื ื ืฉืื ืื ืืงืืื c363960 ืืขื ืฃ main ืขืฉื ืฉืื ืื ืืืืชื ืืื ืืืืืชื ืงืืืฅ ืืงืืื d55f747. ืืกืืฃ ืืืืื ื ืืช ืืฉืื ืืืื ื develop ืืงืืืื a883c36.
ืขืืฉืื ื ื ืกื ืืืกืชืื ืืืืจื ืืจืืคื ืืืืืื ืื ืืื ืืฉืื ืืืื ืฉืงืืืื ืืืืืื ืืื ืืก ืืืื ืืืืืง ืื ืืืืื. ื ืืกืืื ืจืืฉืื ืขืืื ืืืคืชืืข:
$ git log -p -1
commit a883c360dfae324a365d9bfb9ab881865a33f0c4 (HEAD -> main)
Merge: d55f747 c363960
Author: ynonp <ynonperek@gmail.com>
Date: Sun Nov 30 13:56:36 2025 +0200
Merge branch 'develop'
ืื ื ืจืืื ืืช ืงืืืื ืืืืืื ืืื ื ืจืื ืฉืืื ืื ืฉืื ืืืื ืืื! ืื ืงืืจื ืคื?
ืืืกืืจ ืืื ืฉืืื ืื ืืฆืื ืฉืื ืืืื ืฉืืืฆืขื ืืงืืืื ืืืืื ืืชืืจ ืืจืืจืช ืืืื. ืืชืื ืืชืืขืื:
--diff-merges=<format>
Specify diff format to be used for merge commits. Default is \off\
ืืกืืื ืืื ืฉืืื ืื ืืืืข ืืื ืืืื ืงืืืื ืืืฆืื ืืช ืืืืืืื ืืืื ืืจืืจืช ืืืืื ืืื ืื ืืืฆืื ืืืื. ืืคืฉืจืืช ืืืช ืืื ืืืืืจ ืืืฆืื ืืช ืืืืืืื ืืื ืืืืจื ืืจืืฉืื, ืืืงืจื ืฉืื ื main:
$ PAGER= git log -1 -p --diff-merges=1
commit a883c360dfae324a365d9bfb9ab881865a33f0c4 (HEAD -> main)
Merge: d55f747 c363960
Author: ynonp <ynonperek@gmail.com>
Date: Sun Nov 30 13:56:36 2025 +0200
Merge branch 'develop'
diff --git a/demo.py b/demo.py
index 73bd701..ba6d51e 100644
--- a/demo.py
+++ b/demo.py
@@ -1,2 +1,5 @@
-if __name__ == "__main__":
+def greet():
print("Hello World")
+
+if __name__ == "__main__":
+ greet()
ืืื ืื ืื ื ืืืื ืื ืฉืขื ืฃ develop ืืืฆืื ืืช ืืืืคืกื ืฉื Hello World ืืคืื ืงืฆืื ื ืคืจืืช ืืฉื greet. ืืื ืขื ืขื ืฃ develop ืขืฆืื? ืื ืืื ืขืจื 2 ื diff-merges ืืื ื ืืชื ืืืฉืชืืฉ ืืืืื separate ืืื ืืจืืืช ืืช ืืฉืื ืืืื ืืื ืื ืืขื ืคืื:
$ PAGER= git log -1 -p --diff-merges=separate
commit a883c360dfae324a365d9bfb9ab881865a33f0c4 (from d55f74779962b803a89f178a08065014dd74b3ac) (HEAD -> main)
Merge: d55f747 c363960
Author: ynonp <ynonperek@gmail.com>
Date: Sun Nov 30 13:56:36 2025 +0200
Merge branch 'develop'
diff --git a/demo.py b/demo.py
index 73bd701..ba6d51e 100644
--- a/demo.py
+++ b/demo.py
@@ -1,2 +1,5 @@
-if __name__ == "__main__":
+def greet():
print("Hello World")
+
+if __name__ == "__main__":
+ greet()
commit a883c360dfae324a365d9bfb9ab881865a33f0c4 (from c363960ad68f3b2875b083d7bc2b92e57df1cb7a) (HEAD -> main)
Merge: d55f747 c363960
Author: ynonp <ynonperek@gmail.com>
Date: Sun Nov 30 13:56:36 2025 +0200
Merge branch 'develop'
diff --git a/demo.py b/demo.py
index 3635ac7..ba6d51e 100644
--- a/demo.py
+++ b/demo.py
@@ -1,5 +1,5 @@
def greet():
- print("hello world")
+ print("Hello World")
if __name__ == "__main__":
greet()
ืืชืืฆืื ืืื ืฉื ื diff-ืื ืืคืื ืืื - ื diff ืืจืืฉืื ืืจืื ืื ืืช ืืฉืื ืืืื ืฉื ืงืืืื ืืืืืื ืืื main ืฉืื ืืืขืืจื ืฉื ืืืืคืกื ืืคืื ืงืฆืื. ื diff ืืฉื ื ืืจืื ืื ืืช ืืฉืื ืืืื ืืื develop ืืขืืฉืื ืื ื ืจืืื ืฉืืงืืืื ืืืืืื ืืฉืชืืฉื ืืืืชืืืช ืืืืืืช ืืชืืืืช ืืืื ืืขืื ืฉื develop ืืืืคืกื ืืืชื ืืืืชืืืช ืงืื ืืช.
ืืคืฉืจืืช ืฉืืืฉืืช ืืืชื ืื ืืื combined ืื ืืงืืฆืืจ c ืฉืืฆืืื ืืช ืื ืืืืืืื ืืื:
$ PAGER= git log -1 -p --diff-merges=c
commit a883c360dfae324a365d9bfb9ab881865a33f0c4 (HEAD -> main)
Merge: d55f747 c363960
Author: ynonp <ynonperek@gmail.com>
Date: Sun Nov 30 13:56:36 2025 +0200
Merge branch 'develop'
diff --combined demo.py
index 73bd701,3635ac7..ba6d51e
--- a/demo.py
+++ b/demo.py
@@@ -1,2 -1,5 +1,5 @@@
- if __name__ == "__main__":
+ def greet():
- print("hello world")
+ print("Hello World")
+
+ if __name__ == "__main__":
+ greet()
ืืฆื ืืื ืืืชืจ ืงื ืืืืื ืืื ืื ืืฉืชื ื ืืื ืืฆื ืฉื ื ืืืชืจ ืงืฉื ืืืืื ืืืืื ืขื ืฃ ืืืืข ืื ืฉืื ืื.
ืืืคืฆืื ืืืจืื ื ืืื r ืื remerge. ืืืฆื ืืื ืืื ืืืคืฉ ืืช ืื ืืฉืื ืืืื ืืื ืกื ืืฉืืืจ ืืช ืกืืื ื ืืงืื ืคืืืงื ืฉืืื ืืื ืฉื ืืื ืืจืืืช ืื ืืืืข ืืืืคื. ืืืงืจื ืฉืื ื ืืคืื ืืื:
$ PAGER= git log -1 -p --diff-merges=r1 419
ืืืื ืืืืชื: ืคืจืืืฉื ืืคื ืืื ืืืคืชื ืจืืฉื
ืืงืืชื ืืืืช ืคืืกืืืจืก ืืฉืืื ืืกืืคืืจ ื ื ืื ืฉืื ืืืืช ืืงืืืืช:
CREATE TABLE customers (
customer_id INT PRIMARY KEY,
full_name TEXT NOT NULL,
email_address TEXT NOT NULL,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
ืืื ืจืฆืืชื ืืืืง ืืืชื ื Partitions ืืื ืืฉืคืจ ืืืฆืืขื ืฉืืืคืืช (ืจืื ืืฉืืืคืืช ืฆืจืืืืช ืืืฆืื ืืงืืืืช ืืืฉืื). ืื ืืืืชื ื ChatGPT ืืืืงืฉืชื ืืจืกื ืืืืืงืช ืฉื ืืืืื. ืื ืืงืื ืฉืืื ืืืคืืก:
CREATE TABLE customers (
customer_id INT PRIMARY KEY,
full_name TEXT NOT NULL,
email_address TEXT NOT NULL,
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
)
PARTITION BY RANGE (created_at);
ืืื ืืืืื ืืขื.
ืคืืกืืืจืก ืื ืืจืืฆื ืืืืขื ืฉืืืคืชื ืืจืืฉื ืฆืจืื ืืืืืช ืืืง ืื Partition. ืืื ืืจืืจ - ืืคืชื ืจืืฉื ืืืืจ ืืืืืช ืืืืืื ืขื ืื ืืฉืืจืืช, ืืื ืื ืืฉืืจืืช ืืืืืกื ืืช ืืืืืืืช ืฉืื ืืช ืืื ืืคืืกืืืจืก ืืจื ืืืืื ืืืืืืืืช ืื ืืืขืช ืืืืื Partition ืืคืชื ืจืืฉื ืืกืืื ืืืืืกื. ืืื ืชื ืืคืชื ืจืืฉื ืฉืื ืงืฉืืจ ืืืคืชื ืืืืืงื ืฉื ืืืืื, ืคืืกืืืจืก ืขืืืื ืืฆืืจื ืืกืจืืง ืืช ืื ื Partitions ืืื ืืืฆืื ืืช ืืฉืืจื.
ืืคืชืจืื ืฉื ChatGPT ืื ืืืืื, ืืื ืืฆืืข ืืืฉืชืืฉ ืืืคืชื ืจืืฉื ืฉืืืจืื ืืฉื ื ืฉืืืช (ื id ืื timestamp). ืื ืื ื ืื ืืืืืื ืืคืชืืืช ืจืืฉืืื ืืืจืืืื. ืืืคืฆืื ืฉื ืื ืื ืืืืืื ืฉืืื ืืฆืืข ืืื ืืืืชืจ ืืืืจื ืขื ืืืคืชื ืืจืืฉื, ืืื ืื ืื ืืืืื.
ืคืชืจืื ืฉื ืจืื ืื ืืืชืจ ืืื ืืชืืืืจืื (ืื ืืืืฉืชื ืขืืืื) ืืื ืืืฉืชืืฉ ืืืคืชื ืจืืฉื ืืกืื UUID ืฉืืืื timestamp ืืืฉื UUID7 ืื ULID. ืืืคืชื ืจืืฉื ืืื ืืคืฉืจ ืืงืืช ืืช ืืืืง ืฉื ืืืื ืืืืืช ืืคืชื ืืืืืงื ืฉื ืืืืื. ืืื ืืฉ ืคืืกื ืืจืื ืฉืืชืืจ ืืช ืืจืขืืื:
https://elixirforum.com/t/partitioning-postgres-tables-by-timestamp-based-uuids/60916
ืืงืฆืจื ืื ืืงืื ืฉืื ืืืฆืืจืช ืืืืื:
create table(:payloads, primary_key: false, options: "PARTITION BY RANGE(id)") do
add(:id, :binary_id, null: false, primary_key: true)
# ... other fields and references
end
ืืืงืื ืฉืืืฆืจ ืืช ื Partitions ืืืื ืืฉืื ืืื:
CREATE TABLE #{table}_p#{start_date.year}#{month}
PARTITION OF #{table} FOR VALUES
FROM (ulid_to_uuid('#{start_ulid}'))
TO (ulid_to_uuid('#{end_ulid}'))1 419
ื .ื. ืจืืื ื ืืืืืื ืจ ืืื ืื ื ืคืืชื ืชืืงืื ืจืืงื ืืืืจื ืืืืงืฉ ืืงืจืกืจ ืืชืื ื ืคืจืืืงื ืืกืืื (ืืืฉื ืืฉืืง ืืจืืืกืืืช ืืืืืื ืกืคืจืืืช ืื ืืฉืืง ืกื ืืืง), ื ืืชื ืื ืืช ืืืื ืืืืืื ืืืงืจืกืจ ืืฆืืื ืืื ืืื ืืช ืืช ืื ื Boilerplate ืฉื ืืคืจืืืงื ืืฉืคื ืฉืืืจืชื, ืืื ืืืฉืื ืืืชืงืื ืืช ืืชืืืืืช ืืืชืงื ืืืืืจืฆืื ืขื ืฉืืคืจืืืงื ืจืฅ.
ืกืืื ืฉืขืืื, ืืขืืื ืืขืืื
ืจืขืืื ืฉืืืฉื ืืื ืฉืกืืื ื AI ืืืืืื ืืขืืื ืื ืฆื. ืืคืขืืื ืื ืืฆืืจืื ืืจืื ืืืืจืฆืืืช ืืื ืืกืืฃ ืื ืืกืชืืจื ืืขืืืฃ ืืชืช ืืื ืืื ืฉืืืชืจ ืืขืืื ืขืฆืืืืช. ืืงืจืกืจ ืืจืขืืื ืืื ืืืืืฉ ืืขืืจืช ืืคืืฆ'ืจืื ืืืืื:
1. ืืฉืกืืื ืืชืืื ืืขืืื ืืื ืื ืืขืฆืืจ ืืืจื X ืืืืจืฆืืืช ืืฉืืื ืื ืืชื ืืืืืื ืฉืืชื ืจืืฆืื ืืืืฉืื. ืืื ืคืฉืื ืืืฉืื ืขื ืฉืชืขืฆืจื ืืืชื.
2. ืืื ืืขืื ืืืคืขืื ืืื ืกืืื ืื ืืื ืืื ืืกืชืืจืื ืื ืืขืจืื ืืช ืืืชื ืืืงืื ืืงืืฆืื. ืืคืฉืจ ืืขืืืจ ืืื ืืกืืื ืื ืืคืขืืืื ืืืืชื ืจืฉืืื ืื ืืืช ืฉื ืกืืื ืื.
3. ืกืืื ืืืื ืืืคืขืื ืคืงืืืืช Shell ืืื ืืืืื ืืชืื ืื ืฉืื ืงืืจืืื Sandbox. ืืืชื ืกื ืืืืงืก ืื ืืขืฆื ืืืื ืฉืื ืืืคืฉืจ ืืงืจืกืจ ืืืฉืช ืืงืืฆืื ืืืืฅ ืืคืจืืืงื ืื ืืคืชืื ืืืืืจื ืจืฉืช. ืกืื ืืืงืก ืืจืืข ื ืชืื ืจืง ืขื ืืง ืืื ืืืจื ืฉืื ืขืืืืื ืขื ืชืืืื ืืืื ืืงืก. ืื ืืื ืืืืจื ืืื ืืืคืฉืจ ืืกืืื ืืืชืจ ืขืฆืืืืช ืืืืืจืื ืืช ืืกืืืื.
ืืขืืืื ืขื ืงืจืกืจ ืืฉืชืืฉืชื ืืื ืืื ืืืจืืฅ ืืืืงืืช ืืืชืงื ืืช ืืงืื ืื ืงืื ืืืืืงืืช ืขื ืฉืืืืืงืืช ืืขืืจื. ืื ืืืงื ืืกืืื ืืื ืืื ืืกืืฃ ืืื ื ืืชื ืืจืกื ืขืืืืช ืฉื ืืงืื ืืืืชื ืื ื ืืืื ืืงืจืื ืืื ืืืืื ืฉืืื ืื ืขืฉื ืฉืืืืืช.
ืกืืื ืืื ืืงืื
ืจืขืืื ืจืืืขื ืฉืงืจืกืจ ืืงืืืื ืืื ืืืืืืช ืืืฉืชืืฉ ืืกืืื ืืื ืืงืื. ืื ืืืืจ ืืืืื ืชืืืื ื MCP ืืื ืืืชืจ ืืขื ืืื ืื ืืืืืืจ ืืืืื ื ืฉืืื ืขื ืืคืืคื ืืขื ืืกืืฃ. ืืชืื ื Terminal ืืืืื ื ืืงืจืกืจ ืื ื ืืืื ืืื ืฉืื ืืืืืฅ Cmd+K ืืืงืื Popup ืฉื ืกืืื AI ืฉืืฉ ืื ืืืฉื ืืืื ืืงืจืืื ืืืชืืื ืืืกืืฃ. ืื ืื ืืชื ื ืชืงืขืื ืืืืื ืคืงืืืช Shell ืื git ืื ืขืืืืช ืชืืื ืชืืืื ืืืงืฉ ืขืืจื ืืืืืง ืืืืคื ืฉืืชื.
ืืฆื ืืืคืืคื ืืกืืื ืืืื ืืืคืขืื ืืคืืคื, ืื ืืื ืืืชืจืื, ืืืืืฅ, ืืืงืืื, ืืืืื, ืืงืืช ืฆืืืืื ืืกื ืืืืกืชืื ืืงืื ืกืื ืื ืืืงืฉืืช ืืจืฉืช ืฉื ืืืคืืคื. ืืฆืืจื ืืืืช ืืกืืื ืืืื ืืืืคื ืขืฆืืื ืื ืกืืช ืืช ืฉืื ืืื ืืงืื ืฉืื ืขื ืฉืืืจืื ืขืืืืื ืื ืืขืืืจ ืืื ืืืื.
ืกื ืืื ืงืจืกืจ ืืื ืกืืืืช ืขืืืื ืืขื ืืื ืช ืฉืืฆืืขื ืืืฉื ืฉืื ื ื VS Code ืืขืืืื ืขื ืกืืื ืื ืืืืฉ ืขื ืืจืฆืช ืืกืืื ืื ืืืงืืื, ืืื ืืงืื ืืืืืคื ืืืชืจ ืขืฆืืื.
1 419
ืืชืงื ืชื ืงืจืกืจ, ืื ืขืืฉืื?
ืืฉืืืข ืืงืืืฆืช ืืืืจืื AI ืืจืืืชื ืฆืขืืื ืจืืฉืื ืื ืขื Cursor. ืืืจื ืืื ืื ื ืืืฆืื ืกืืืืื ืืืืื ืืืจื ืืืคืืฉืื ืืืื ืืื ืืคืขื ืชืคืกืชื ืืืจืืก ืื ืฉืื ืืืืืื ืจ ืืืืชื ืฆืจืื ืืืื ืื ืืฆืืืชื ืืืงืืื ืกืืืื ืืืจืื. ืืืงืื ืื ืื ื ืืืชื ืืื ืืช ืขืืงืจื ืืืืจืื ืืืงืืื ืฉืื ืืขืืืจ ืืืื ืืื ืฉืื ืืืืขื.
ืื ืื Cursor
ืงืจืกืจ ืืื ืกืืืืช ืืคืืชืื ืืฉืืืืช AI ืืจืืฉืื ื ืฉืจืืืชื. ืืื ืืฆืื ืขืื ื 2023 ืืืฉ ืขื ChatGPT ืืืืขืชื ืืืชื ืฉื ืืคื ื VS Code ืืงืืคืืืืื ืืืื ืืคื ื ืืกืืืืืช ืืืชืืจืืช Windsurf ื Trae. ืขืื ืืืืชืืื ืืืืจืื ืืงืจืกืจ ืืชืืืื ืื ืืืืฆืจ ืชืืกืฃ ื VS Code ืื ืืงืืช ืืช ืืงืื ืขืฆืื (ืื VS Code ืืื ืืงืื ืคืชืื) ืืืืืฆืจ ืขื ืืกืืกื ืขืืจื ืืฉืืื ืืืฉืื ืืืงืื ืืืื ืื ืืืื ื ืฉืืื ืืชืช ืืช ืืืื ืืขืจื ืฉื ื AI ืื ืจืืฆืื ืืืืฆืจ ืขืืจื ืฉืืื. ืืืื ืืฉืื ืืืจ ืขืืจื ืืช ืืจืกื 2 ืขืืจื ืืงืื ืฉืืื ืืชืคืงื ืืืืคื ืขืฆืืื ืืฆืืื ืืืฆืื ืื'ื ืื ืืจืืจื ืืืื ืืืืงืช ืืขืืืื ืืื ืืคืชืืื ื AI.
ื ืงืืืช ืืคืชืืื - ืืงืืจืช ืืคืจืืืงื
ืืจืขืืื ืืืจืืื ืืจืืฉืื ืฉืื ืื ื ืจืืืื ืืืจ ืืฉืืชืงืื ืื ืงืจืกืจ ืืื ืฉื ื ืืคืชืืจื ืืืืจื ืืื "ืืฆื ืขืืจื" ื"ืืฆื ืกืืื". ืืฆื ืืขืืจื ืื ืื ืฉื ืจืื ืืื VS Code ืฉืื ืื ื ืืืืจืื ืืื ืืช ืืืืืื ืจ ืืชืืื ื ืืืกื ืืกืืื. ื ืฉืื ืื ืืืื ืืืจืื ืืขื ืืื ืื ืืืฆื ืื:
1. ืืกืืื ืื ืืืคืืขืื ืืชืืจ ืจืฉืืื ืื ืืืช ืืืืืจ ืืื ืืชืืช ืืฉื ื. ืจืฉืืื ืืืืช ืืืคืฉืจืช ื ืืืื ืืืืจ ืืื ืืกืคืจ ืกืืื ืื ืฉืขืืืืื ืืืงืืื.
2. ืืฉืืื ืขื ืืกืืื ืืืคืืขื ืืืจืื ืืืกื ืืืงืืืช ืืคืืืช ืืฆื ืืกื ืืคืขืืื ืืืชืจ.
3. ืขืืจื ืืืงืกื ื ืืฆื ืืฆื ืืฉืืืื ืฉื ืืืกื ืื ืจืื ืฉืืืื ืงืฆืช ืืืฉืืืืชื.
ืื ื ืืชืืื ืืืคืขืืช ืงืจืกืจ ืขื ืคืจืืืงื ืงืืื ืืฉืืื ืืืชื ืืืงืืจ. ื ืฉืื ืื ืฉืืชืืช ืืชืืืช ืืืืืขื ืืฉ ืืคืชืืจ ืืืืืจืช ืืฆื ืืขืืืื ืฉื ืืกืืื ืืืฉืืื ืืืงืืจ ืื ื ืืืืจ ืืืฆื Ask. ืื ื ืืื ืคืจืืืคืืื ืืืืืื ืืืฆื ืื:
1. Describe the project architecture. Use mermaid diagrams.
2. Find the top 10 technical debts the project.
3. Describe the test framework used, what parts of the project are covered with tests and what important flows are not tested.
4. Find top 10 potential performance bottlenecks the project may have.
5. Describe a full flow (include specific files and line numbers) from web request to response for a URL.
ืื ืืืคืืฉ ืืื ืืฆืื ืื ืืกืืจ ืืงืกืืืืื ืืื ืจืฉืืื ืฉื ืงืืฆื ืงืื ืืืงืืจ. ืืฉืื ื ื ืื ืก ืืงืืืฅ ืงืื ืื ื ืืืื ืืกืื ืคืื ืงืฆืื, ืืืืืจ ื Popup ืืืคืฉืจืืช Add to chat ืืื ืืืืฉืื ืขื ืคืจืืืคืืื ืกืคืฆืืคืืื ืืคืื ืงืฆืื ืื ืืื:
1. Describe the API of the function - what are its input parameters, expected data in the database, output format and when is it used.
2. Is the function covered with existing tests? point me to the relevant tests.
3. Code review the function and suggest an alternative implementation.
ืืฉืืืจืื ืืชืืืืื ืืืกืชืื ืื ื ืืืื ืืขืืืจ ืืืื ืืขืืจื ืืื ืืฆืืื ืืชืื ืืงืื ืืื ืืืืืจ ืืืื ืืกืืื ืื ืืื ืืจืืืช ืื ืขืืฉืื ืืกืืื ืื ืืืืจืื. ืื ืืื ืืจืืฉืื ืฉื ืงืจืกืจ - ื ืืืื ืขืืืื ืืืงืืื ืฉื ืืื ืกืืื ืื ืืืื ืืืงืจืื ืืืงืืื ืืช ืืคืจืืืงื ืืืชืื ื ืื ืขืืืจื ืืช ืืขืืืื.
ืชืืงืื ื ืงืื - ืืชืื ืื ืืืืฆืืข
ืจืขืืื ืฉื ื ืฉืงืจืกืจ ืืงืืืื ืืื ืคืืชืื ืืคื ืืจืืฉื ืื Spec Driven Development. ื ืืืืจ ืืชืืืช ืืกืืื ืื ื ืื ืฉืื ื ืืกืชืื ืขื ืืกืืื ืฉืืงืจ ืืช ืกืืืืช ืืืืืงืืช ืฉื ืืคืจืืืงื ืืชืืืจ ืื ืืืื ืชืืืืืื ืืืืกืื ืขื ืืื ืืืืงืืช ืืืืื ืื. ืขืืฉืื ืื ื ืืขืืืจ ืืช ืืืชื ืกืืื ืืืฆื Plan, ืืืืจ flow ืืื ืืืืงืฉ:
> Create a test plan to test flow X. Be specific about the tests to execute, the data to create in the DB and the expected results.
ืืชืืฆืื ืืื ืงืืืฅ Markdown ืฉืืืื ืจืฉืืื ืฉื ืืืืงืืช ืขื ืืืจืืืช ืืื ืืืชืื ืืช ืืืืืงืืช ืืืื. ืืืืื ืืช ืืืจืื ื ืืื ืืืงืฉ ืืชืื ื ืืืืจืฆืื ืืืกืืก ืื ืชืื ืื, ืฉืืชืื ืฉื ืคืื ืงืฆืื ืื ืฉื flow ืืงืื, ืขืืืื UI ืื ืื ืคืืฆ'ืจ ืื ืืื ืฉืื ืื ื ืฆืจืืืื.
ืืืจื ืฉืืชืืื ืืช ืืืคืืขื ืื ื ืืืื ืืืืฉืื ืืืืจ ืขื ืืกืืื ืืื ืืขืืื ืืืชื, ืืืฉื ืื ื ืืืื ืืืงืฉ ืืื ื ืืืืกืืฃ ืืืืงืืช ืขืืืกืื ืื ืืืืื ืฉืืืืืงืืช ืืืืืืช ืืจืืฅ ืืืงืืื. ืื ื ืืืื ืื ืืขืจืื ืืขืฆืื ืืช ืงืืืฅ ื Markdown ืฉื ืืชืืื ืืช ืืฉืฆืจืื ืฉืืืื ืืืชืจ ืืืืืงืช ืืคืจืืืคื.
ืืืจื ืฉืกืืืืชื ืืขืืื ืขื ืืชืืื ืืช ืืืืชื ืืืื ืฉื ืืชืืื ืืช ืื ื ืืืื ืืคืชืืจ Build. ืืืืฆื ืขืืื ืืขืืืจื ืืช ืืกืืื ืืืฆื ืืืฆืืข ืืฉื ืืื ืืชืืื ืืืชืื ืืช ืืงืื.
Available now! Telegram Research 2025 โ the year's key insights 
