Asciinema: μ‹œκ°„ μ–‘μžν™”

에 λ§Œλ“  2016λ…„ 05μ›” 20일  Β·  7μ½”λ©˜νŠΈ  Β·  좜처: asciinema/asciinema

μ΅œκ·Όμ— λ³‘ν•©λœ #156을 기반으둜 λ‹€μŒ κΈ°λŠ₯을 μ œμ•ˆν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. --max-wait μ˜΅μ…˜μ€ μ΅œλŒ€ λŒ€κΈ° λ²”μœ„μ˜ μ‹œν€€μŠ€λ₯Ό μ·¨ν•  수 μžˆμŠ΅λ‹ˆλ‹€(λ˜λŠ” 이에 λŒ€ν•œ λ‹€λ₯Έ μ˜΅μ…˜μ΄ μžˆμ„ 수 있음). 예λ₯Ό λ“€μ–΄:

asciinema rec -w 0.4 0.8 1 3

(ν˜•μ‹μ— λŒ€ν•΄ λ…Όμ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ•„λ§ˆλ„ 곡백이 μ•„λ‹Œ ꡬ뢄 κΈ°ν˜Έκ°€ μžˆλŠ” 것이 ꡬ문 λΆ„μ„ν•˜κΈ° 더 μ’‹κ±°λ‚˜ 더 μ‰¬μšΈ κ²ƒμž…λ‹ˆλ‹€: 0.4,0.8,1,3 )

이것은 μ˜λ―Έν•©λ‹ˆλ‹€

  • 400msμ—μ„œ 800ms μ‚¬μ΄μ˜ μ‹œκ°„ 지연이 400ms둜 μ€„μ–΄λ“­λ‹ˆλ‹€.
  • 800ms와 1s μ‚¬μ΄μ˜ μ‹œκ°„ 지연이 800ms둜 μ€„μ–΄λ“­λ‹ˆλ‹€.
  • 1μ΄ˆμ™€ 3초 μ‚¬μ΄μ˜ μ‹œκ°„ 지연이 1초둜 μ€„μ–΄λ“­λ‹ˆλ‹€.
  • 3초 μ΄μƒμ˜ μ‹œκ°„ 지연은 3초둜 μ€„μ–΄λ“­λ‹ˆλ‹€(단일 κ°’ max-wait 처럼).

μ΄λ ‡κ²Œ ν•˜λ©΄ 타이핑 지연을 μ΅œμ†Œν™”(더 μœ μ°½ν•˜κ²Œ λ§Œλ“€κΈ°)ν•˜λŠ” 것과 같이 λ…ΉμŒμ˜ μ‹œκ°„ 흐름을 μ’€ 더 μ‘°μ •ν•  수 있으며 μ—¬μ „νžˆ 짧고 κΈ΄ μΌμ‹œ 쀑지(λ­”κ°€λ₯Ό μ§€μ ν•˜κΈ° μœ„ν•΄)λ₯Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

이 κΈ°λŠ₯에 λŒ€ν•΄ μ–΄λ–»κ²Œ μƒκ°ν•˜μ„Έμš”? 어렡지 μ•Šκ³  μ‹€μ²œν•  수 μžˆμ„ 것 κ°™μ•„μš”.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ•ˆλ…•ν•˜μ„Έμš” @laughedelic ,

λ‚˜λŠ” λ‹Ήμ‹ κ³Ό 거의 같은 μš”κ΅¬ 사항을 가지고 μžˆμ—ˆκΈ° λ•Œλ¬Έμ— 이것을 https://github.com/cirocosta/asciinema-edit λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.

그것은 asciinema 캐슀트(v2)λ₯Ό μ·¨ν•œ λ‹€μŒ ν•„μš”ν•œ 것에 따라 이벀트 μŠ€νŠΈλ¦Όμ„ λ³€κ²½ν•©λ‹ˆλ‹€.

방금 μ„€λͺ…ν•œ λ°©μ‹μœΌλ‘œ μ–‘μžν™” μΆ”κ°€λ₯Ό μ™„λ£Œν–ˆμŠ΅λ‹ˆλ‹€. btw πŸ‘

그것이 λ‹Ήμ‹ μ—κ²Œ μœ μš©ν•˜κΈ°λ₯Ό λ°”λžλ‹ˆλ‹€!

κ³ λ§ˆμ›Œ!

λͺ¨λ“  7 λŒ“κΈ€

@sickill 이에 λŒ€ν•œ 의견이 μžˆμŠ΅λ‹ˆκΉŒ?

ν₯미둜운 μ•„μ΄λ””μ–΄λ„€μš”. λ‚˜λŠ” 이것이 맀우 적은 수의 μ‚¬μš©μžμ—κ²Œ μ‚¬μš©λ  것이라고 μƒκ°ν•©λ‹ˆλ‹€. -w λŠ” 이미 맀우 μœ μš©ν•˜μ§€λ§Œ λ§Žμ€ μ‚¬λžŒλ“€μ΄ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” κ²ƒμœΌλ‘œ μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€. μ‚¬λžŒλ“€μ€ 기본값을 μ‚¬μš©ν•©λ‹ˆλ‹€.

μ €λŠ” μ—¬κΈ° μšΈνƒ€λ¦¬μ— μžˆμŠ΅λ‹ˆλ‹€... ν•œνŽΈμœΌλ‘œλŠ” 이 아이디어가 정말 λ§ˆμŒμ— λ“€κ³ , λ‹€λ₯Έ ν•œνŽΈμœΌλ‘œλŠ” μƒλ‹Ήν•œ μ–‘μ˜ μ½”λ“œ, μ‚¬μš©μžμ˜ 1%에 λŒ€ν•΄ μœ μ§€ 관리해야 ν•˜λŠ” μ½”λ“œκ°€ μΆ”κ°€λœλ‹€λŠ” 것을 μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€. 여기에 견적에 κ΄€ν•΄μ„œλŠ” ;))

이것은 μ–΄λ–»μŠ΅λ‹ˆκΉŒ?

λ‚˜λŠ” ascicastsλ₯Ό μ²˜λ¦¬ν•˜κΈ° μœ„ν•œ λ³„λ„μ˜ 도ꡬ μ„ΈνŠΈλ₯Ό λ§Œλ“€λ €λŠ” 아이디어λ₯Ό ν•œλ™μ•ˆ 가지고 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 속도λ₯Ό 2λ°° 높이고, 이미 λ…ΉμŒλœ ASCIIcast νŒŒμΌμ— -w μ•Œκ³ λ¦¬μ¦˜μ„ μ μš©ν•˜κ³ , μž„μ˜μ˜ ν…μŠ€νŠΈ(λΉ„λ°€λ²ˆν˜Έ ν‘œμ‹œ) μ°ΎκΈ°+μ§€μš°κΈ°μ™€ 같은 μž‘μ—…μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

μš°λ¦¬λŠ” μ—¬λΆ„ λͺ…령을 μΆ”κ°€ν•˜κΈ°μœ„ν•œ λ©”μ»€λ‹ˆμ¦˜μ„ κ°€μ§ˆ 수 asciinema 같은 λ°©μ‹μœΌλ‘œ μˆ˜ν–‰, git - μ‹€ν–‰ν•  λ•Œ asciinema foo 이 검사λ₯Όν•˜λŠ” 경우 foo μžμ‚¬μ˜ λ‚΄λΆ€ λͺ…령이 μ—†μœΌλ©΄ $PATH μ—μ„œ asciinema-foo λ°”μ΄λ„ˆλ¦¬λ₯Ό μ°Ύμ•„ λŒ€μ‹  μ‹€ν–‰ν•©λ‹ˆλ‹€. λͺ¨λ“  μ–Έμ–΄λ‘œ μΆ”κ°€ λͺ…령을 μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μœ„μ™€ 같이 asciinema-quantize λ˜λŠ” 보닀 일반적인 asciinema-process λ₯Ό λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” λ‹€μ–‘ν•œ μŠ€μœ„μΉ˜λ₯Ό 지원할 수 μžˆμŠ΅λ‹ˆλ‹€(예: ν–₯μƒλœ -w , μ•„λ§ˆλ„ -s 속도 λ³€κ²½ 전체 λ…ΉμŒ). μž…λ ₯ json을 읽고 μ˜΅μ…˜μ— 따라 μ²˜λ¦¬ν•˜κ³  좜λ ₯ json을 μž‘μ„±ν•©λ‹ˆλ‹€. 인기 μžˆλŠ” λͺ…령인 경우 λ‚΄λΆ€ λͺ…λ ΉμœΌλ‘œ 승격될 수 μžˆμŠ΅λ‹ˆλ‹€(λ˜λŠ” asciinema-* λ°”μ΄λ„ˆλ¦¬λ‘œ asciinema νŒ¨ν‚€μ§€λ‘œ 제곡됨).

λ‚˜λŠ” λ‹€λ₯Έ μ œμ•ˆμ— μ—΄λ € μžˆμŠ΅λ‹ˆλ‹€!

사싀 λ‚˜λŠ” 같은 생각을 ν•˜κ³  μžˆμ—ˆλ‹€. μ™ΈλΆ€μ—μ„œ ν•˜λŠ” 것, λ ˆμ½”λ“œ json νŒŒμΌμ„ μ²˜λ¦¬ν•˜λŠ” 것뿐이닀. λ‹€λ₯Έ ν•˜λ‚˜λŠ” λ‚΄κ°€ μ§€κΈˆ 바둑을 배울 μ‹œκ°„μ΄ λ§Žμ§€ μ•Šλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ 이 μ™ΈλΆ€ λͺ…λ Ή 톡합이 κ·œμΉ™μ— 따라 λͺ…λͺ…λœ μ‹€ν–‰ 파일과 ν•¨κ»˜ μž‘λ™ν•˜λ©΄ asciinemaλ₯Ό 훨씬 μ‰½κ²Œ ν™•μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Btw, λ‚˜λŠ” 당신이 μ•„μ£Ό μœ μš©ν•˜κ³  μž‘λ™ν•˜λŠ” asciinema2gif 에 λŒ€ν•΄ μ•Œκ³  μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. μ—¬κΈ°μ—μ„œ gif λ³€ν™˜μ— λŒ€ν•œ λͺ‡ 가지 토둠을 λ³΄μ•˜κ³  κ³„νšμ— ν¬ν•¨λ˜μ§€ μ•Šμ•˜μœΌλ©° μ™„λ²½ν•˜κ²Œ μ΄ν•΄ν•˜μ§€λ§Œ μ—¬μ „νžˆ μ‚¬μš©μžμ˜ μš”κ΅¬ 사항이 λ‹€λ₯Ό 수 μžˆμœΌλ―€λ‘œ μ΄λŸ¬ν•œ ν™•μž₯성은 μ‚¬μš©μžκ°€ νŠΉμ • μš”κ΅¬ 사항을 슀슀둜 μΆ©μ‘±ν•  수 μžˆλ„λ‘ ν•˜λŠ” 맀우 쒋은 방법이 될 수 μžˆμŠ΅λ‹ˆλ‹€.

λΉ„μŠ·ν•œ μ˜κ²¬μ„ λ“£κ²Œ λ˜μ–΄ κΈ°μ©λ‹ˆλ‹€. 파이썬이 더 μ΅μˆ™ν•©λ‹ˆκΉŒ? 이것을 κ΅¬ν˜„ν•  μ–Έμ–΄λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ?

@sickill κΈ€μŽ„, μ‹€μ œλ‘œ λ‚˜λŠ” μ§€κΈˆκΉŒμ§€ λͺ‡ 가지 κΈ°λ³Έ 필터와 ν•¨κ»˜ jq λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄:

jq '.stdout |= map(.[0] *= 0.5)' record.json > record.twice-faster.json

asciinema play 두 λ°° 더 λΉ λ₯΄κ²Œ μž¬μƒλ˜λŠ” json을 μƒμ„±ν•©λ‹ˆλ‹€. λ˜λŠ”

jq '.stdout |= map(.[0] |= ([., 1.234] | min))' record.json > record.cut.json

max-wait time 을 1.234 둜 μ„€μ •ν•˜λŠ” 것과 κ°™μŠ΅λ‹ˆλ‹€. λ‚˜λŠ” jq-guruκ°€ μ•„λ‹ˆλ―€λ‘œ 더 μ‰½κ²Œ ν•  수 μžˆμ§€λ§Œ 이것은 맀우 κ°„λ‹¨ν•˜λ©°(일반적으둜 jq에 μ΅μˆ™ν•˜λ‹€λ©΄) μž‘λ™ν•©λ‹ˆλ‹€. μ œμ•ˆλœ μ‹œκ°„ μ–‘μžν™” κΈ°λŠ₯을 이런 λ°©μ‹μœΌλ‘œ κ΅¬ν˜„ν•˜λŠ” 것은 μ’€ 더 λ³΅μž‘ν•˜μ§€λ§Œ κ°„λ‹¨ν•©λ‹ˆλ‹€.

λ¬Όλ‘  이것은 μ§€μ •λœ μ˜΅μ…˜μ΄ μžˆλŠ” λͺ¨λ“  μ’…λ₯˜μ˜ μ…Έ 슀크립트둜 λž˜ν•‘λ  수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 더 λ§Žμ€ 톡합을 μ›ν•˜λ©΄ Python 및 Goλ₯Ό λΉ„λ‘―ν•œ λ‹€μ–‘ν•œ κ΅¬ν˜„ 이 μžˆλŠ” JMESPathλ₯Ό μ‚¬μš©ν•˜μ—¬

μ•ˆλ…•ν•˜μ„Έμš” @laughedelic ,

λ‚˜λŠ” λ‹Ήμ‹ κ³Ό 거의 같은 μš”κ΅¬ 사항을 가지고 μžˆμ—ˆκΈ° λ•Œλ¬Έμ— 이것을 https://github.com/cirocosta/asciinema-edit λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.

그것은 asciinema 캐슀트(v2)λ₯Ό μ·¨ν•œ λ‹€μŒ ν•„μš”ν•œ 것에 따라 이벀트 μŠ€νŠΈλ¦Όμ„ λ³€κ²½ν•©λ‹ˆλ‹€.

방금 μ„€λͺ…ν•œ λ°©μ‹μœΌλ‘œ μ–‘μžν™” μΆ”κ°€λ₯Ό μ™„λ£Œν–ˆμŠ΅λ‹ˆλ‹€. btw πŸ‘

그것이 λ‹Ήμ‹ μ—κ²Œ μœ μš©ν•˜κΈ°λ₯Ό λ°”λžλ‹ˆλ‹€!

κ³ λ§ˆμ›Œ!

μ•ˆλ…•ν•˜μ„Έμš” @cirocostaμž…λ‹ˆλ‹€! ν•‘ν•΄μ€˜μ„œ κ³ λ§ˆμ›Œ! 당신이 그것을 λ„κ΅¬λ‘œ λ§Œλ“€κ³  v2 ν˜•μ‹κ³Ό ν•¨κ»˜ μž‘λ™ν•œλ‹€λŠ” 것이 λŒ€λ‹¨ν•©λ‹ˆλ‹€. λ‹€μŒμ— asciinema 캐슀트λ₯Ό λ…ΉμŒν•  λ•Œ μ‹œλ„ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰