О странном ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ экономии мСста Π½Π° ТСстком дискС

ΠžΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ…ΠΎΡ‡Π΅Ρ‚ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° ТСсткий диск Π½ΠΎΠ²Ρ‹ΠΉ кусок Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Π΅ΠΌΡƒ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ свободного мСста для этого. Π£Π΄Π°Π»ΡΡ‚ΡŒ Ρ‚ΠΎΠΆΠ΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ хочСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ «Π²ΡΠ΅ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΈ Π½ΡƒΠΆΠ½ΠΎΠ΅». И Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ с Π½ΠΈΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ?

Вакая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° встаСт Π½ΠΈ Ρƒ Π½Π΅Π³ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ. На Π½Π°ΡˆΠΈΡ… ТСстких дисках покоятся Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚Ρ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΈ это количСство Π½Π΅ стрСмится ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒΡΡ. Но насколько ΠΎΠ½Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Π°? Π’ ΠΊΠΎΠ½Ρ†Π΅-ΠΊΠΎΠ½Ρ†ΠΎΠ², вСдь всС Ρ„Π°ΠΉΠ»Ρ‹ это лишь Π½Π°Π±ΠΎΡ€Ρ‹ Π±ΠΈΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ ΠΈ, скорСС всСго, новая Π½Π΅ сильно отличаСтся ΠΎΡ‚ Ρ‚ΠΎΠΉ, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ хранится.

ΠŸΠΎΠ½ΡΡ‚Π½ΠΎΠ΅ Π΄Π΅Π»ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΡƒΠΆΠ΅ хранящиСся куски ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° ТСстком дискС β€” Π·Π°Π΄Π°Ρ‡Π° Ссли Π½Π΅ ΠΏΡ€ΠΎΠ²Π°Π»ΡŒΠ½Π°Ρ, Ρ‚ΠΎ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π½Π΅ эффСктивная. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, вСдь Ссли Ρ€Π°Π·Π½ΠΈΡ†Π° нСбольшая, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΠ΄ΠΎΠ³Π½Π°Ρ‚ΡŒ…

О странном ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ экономии мСста Π½Π° ТСстком дискС

TL;DR β€” вторая ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ странном ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JPEG-Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π² Π±ΠΎΠ»Π΅Π΅ понятной Ρ„ΠΎΡ€ΠΌΠ΅.

О Π±ΠΈΡ‚Π°Ρ… ΠΈ Ρ€Π°Π·Π½ΠΈΡ†Π΅

Если Π²Π·ΡΡ‚ΡŒ Π΄Π²Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ случайных куска Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ Π² Π½ΠΈΡ… совпадаСт Π² срСднСм ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° содСрТащихся Π±ΠΈΡ‚ΠΎΠ². И ΠΏΡ€Π°Π²Π΄Π°, срСди Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… раскладов для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°Ρ€Ρ‹ (’00, 01, 10, 11′) Ρ€ΠΎΠ²Π½ΠΎ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ значСния, Ρ‚ΡƒΡ‚ всС просто.

Но ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ссли ΠΌΡ‹ просто возьмСм Π΄Π²Π° Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΏΠΎΠ΄Π³ΠΎΠ½ΠΈΠΌ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄ Π²Ρ‚ΠΎΡ€ΠΎΠΉ, Ρ‚ΠΎ ΠΌΡ‹ лишимся ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ…. Если ΠΆΠ΅ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ измСнСния, Ρ‚ΠΎ просто ΠΏΠ΅Ρ€Π΅ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π΅ΠΌ Π΄Π΅Π»ΡŒΡ‚Π°-ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈ Π±Π΅Π· нас прСкрасно сущСствуСт, Ρ…ΠΎΡ‚ΡŒ ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π² Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ цСлях. МоТно ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΌΠ΅Π½ΡŒΡˆΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ, Π½ΠΎ Π΄Π°ΠΆΠ΅ Ρ‚Π°ΠΊ ΠΌΡ‹ рискуСм ΠΏΠΎΡ‚Π΅Ρ€Π΅ΠΉ критичСских сСгмСнтов Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ Π½Π΅ΠΎΠ±Π΄ΡƒΠΌΠ°Π½Π½ΠΎΠΌ использовании со всСм подряд.

ΠœΠ΅ΠΆΠ΄Ρƒ Ρ‡Π΅ΠΌ ΠΈ Ρ‡Π΅ΠΌ Ρ‚ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΡƒΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ? Ну Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, записываСмый ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» β€” просто ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±ΠΈΡ‚, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ самой ΠΏΠΎ сСбС ΠΌΡ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ. Π’ΠΎΠ³Π΄Π° Π½Π°Π΄ΠΎ просто Π½Π°ΠΉΡ‚ΠΈ Π½Π° ТСстком дискС Ρ‚Π°ΠΊΠΈΠ΅ Π±ΠΈΡ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π±Π΅Π· нСобходимости Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠΎΡ‚Π΅Ρ€ΡŽ Π±Π΅Π· ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… послСдствий. Π”Π° ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅ΡΡ‚ΡŒ смысл Π½Π΅ просто сам Ρ„Π°ΠΉΠ» Π½Π° Π€Π‘, Π½ΠΎ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΠΌΠ΅Π½Π΅Π΅ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ. Но ΠΊΠ°ΠΊΡƒΡŽ ΠΈ ΠΊΠ°ΠΊ?

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎΠ΄Π³ΠΎΠ½ΠΊΠΈ

На ΠΏΠΎΠΌΠΎΡ‰ΡŒ приходят Ρ„Π°ΠΉΠ»Ρ‹, сТатыС с потСрями. ВсС эти jpeg, mp3 ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ Ρ…ΠΎΡ‚ΡŒ ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ сТатиСм с потСрями, содСрТат ΠΊΡƒΡ‡Ρƒ Π±ΠΈΡ‚, доступных для бСзопасного измСнСния. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ, Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΡ… ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… участках кодирования. ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅. ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ тСхники… нСзамСтная модификация… ΠΎΠ΄Π½ΠΈ Π±ΠΈΡ‚Ρ‹ Π² другиС… Π΄Π° это ΠΆΠ΅ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‡Ρ‚ΠΎ стСганография!

И ΠΏΡ€Π°Π²Π΄Π°, встраиваниС ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΊΠ°ΠΊ Π½ΠΈ Ρ‡Ρ‚ΠΎ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π΅Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π˜ΠΌΠΏΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ для чСловСчСских ΠΎΡ€Π³Π°Π½ΠΎΠ² чувств. Π’ΠΎΡ‚ Π² Ρ‡Π΅ΠΌ ΠΏΡƒΡ‚ΠΈ расходятся β€” Ρ‚Π°ΠΊ это Π² сСкрСтности: наша Π·Π°Π΄Π°Ρ‡Π° сводится ΠΊ внСсСнию ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° свой ТСсткий диск Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π΅ΠΌΡƒ ΠΎΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈΡ‚. Π—Π°Π±ΡƒΠ΄Π΅Ρ‚ Π΅Ρ‰Π΅.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΌΡ‹ Ρ…ΠΎΡ‚ΡŒ ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…, Π½ΡƒΠΆΠ½ΠΎ провСсти Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. И дальшС я расскаТу ΠΈ ΠΏΠΎΠΊΠ°ΠΆΡƒ ΠΈΡ… Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ распространСнного Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Ρ„Π°ΠΉΠ»ΠΎΠ².

О ΡˆΠ°ΠΊΠ°Π»Π°Ρ…

Если ΡƒΠΆ ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‚ΠΎ самоС сТимаСмоС Π² ΠΌΠΈΡ€Π΅. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, ΠΎ JPEG-Ρ„Π°ΠΉΠ»Π°Ρ…. Мало Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ сущСствуСт Ρ‚ΠΎΠ½Π½Π° инструмСнтария ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для встраивания Π² Π½Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΎΠ½ являСтся самым популярным графичСским Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ Π½Π° этой ΠΏΠ»Π°Π½Π΅Ρ‚Π΅.

О странном ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ экономии мСста Π½Π° ТСстком дискС

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ собаководством, Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ своС ΠΏΠΎΠ»Π΅ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² Ρ„Π°ΠΉΠ»Π°Ρ… этого Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°. Никто Π½Π΅ Π»ΡŽΠ±ΠΈΡ‚ ΠΎΠ΄Π½ΠΎΡ†Π²Π΅Ρ‚Π½Ρ‹Π΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΠΊΠΈ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΈΠ·-Π·Π° излишнСго сТатия, поэтому Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒΡΡ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ с ΡƒΠΆΠ΅ сТатым Ρ„Π°ΠΉΠ»ΠΎΠΌ, избСгая пСрСкодирования. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π΅Π΅ β€” с цСлочислСнными коэффициСнтами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ послС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΡ… Π·Π° ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… β€” Π”ΠšΠŸ ΠΈ квантования, Ρ‡Ρ‚ΠΎ прСкрасно ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ Π½Π° схСмС кодирования (спасибо Π²ΠΈΠΊΠΈ Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠΌ. Π‘Π°ΡƒΠΌΠ°Π½Π°):
О странном ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ экономии мСста Π½Π° ТСстком дискС

БущСствуСт мноТСство Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ jpeg-Ρ„Π°ΠΉΠ»ΠΎΠ². Π•ΡΡ‚ΡŒ оптимизация Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ (jpegtran), Π΅ΡΡ‚ΡŒ оптимизация «Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ«, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π° самом Π΄Π΅Π»Π΅ Π΅Ρ‰Π΅ ΠΊΠ°ΠΊΠΈΠ΅ вносят, Π½ΠΎ нас ΠΎΠ½ΠΈ Π½Π΅ Π²ΠΎΠ»Π½ΡƒΡŽΡ‚. Π’Π΅Π΄ΡŒ Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π³ΠΎΡ‚ΠΎΠ² Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ€Π°Π΄ΠΈ увСличСния свободного мСста Π½Π° дискС, Ρ‚ΠΎ ΠΎΠ½ свои изобраТСния Π»ΠΈΠ±ΠΎ Π΄Π°Π²Π½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π», Π»ΠΈΠ±ΠΎ совсСм этого Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΈΠ·-Π·Π° боязни ΠΏΠΎΡ‚Π΅Ρ€ΠΈ качСства.

F5

Под Ρ‚Π°ΠΊΠΎΠ΅ условия ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ†Π΅Π»ΠΎΠ΅ сСмСйство Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Π² этой Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π‘Π°ΠΌΡ‹ΠΌ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΌ ΠΈΠ· Π½ΠΈΡ… являСтся Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ F5 Π·Π° авторством АндрСаса ВСстфСлда, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ с коэффициСнтами ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ яркости, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ чСловСчСский Π³Π»Π°Π· Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ чувствитСлСн ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊ Π΅Π΅ измСнСниям. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΡƒ встраивания, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π½Π° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, благодаря Ρ‡Π΅ΠΌΡƒ позволяСт ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ Ρ‚Π΅ΠΌ мСньшС ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ встраивании ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ количСства ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ‡Π΅ΠΌ большС Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

Π‘Π°ΠΌΠΈ измСнСния ΠΏΡ€ΠΈ этом сводятся ΠΊ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡŽ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ³ΠΎ значСния коэффициСнтов Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… условиях (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Π½Π΅ всСгда), Ρ‡Ρ‚ΠΎ ΠΈ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ F5 для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ТСстком дискС. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ коэффициСнт послС Ρ‚Π°ΠΊΠΎΠ³ΠΎ измСнСния, скорСС всСго, Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ мСньшСС число Π±ΠΈΡ‚ послС провСдСния кодирования Π₯Π°Ρ„Ρ„ΠΌΠ°Π½Π° ΠΈΠ·-Π·Π° статистичСского распрСдСлСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² JPEG, Π° Π½ΠΎΠ²Ρ‹Π΅ Π½ΡƒΠ»ΠΈ Π΄Π°Π΄ΡƒΡ‚ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ ΠΏΡ€ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ RLE.

НСобходимыС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ сводятся ΠΊ ΡƒΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΡŽ части, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅ΠΉ Π·Π° ΡΠ΅ΠΊΡ€Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ (ΠΏΠ°Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ пСрСстановки), которая позволяСт ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ рСсурсы ΠΈ врСмя выполнСния, ΠΈ добавлСния ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с мноТСством Ρ„Π°ΠΉΠ»ΠΎΠ² вмСсто ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π° Ρ€Π°Π·. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ процСсс измСнСния Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŽ вряд Π»ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ интСрСсСн, поэтому ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ описанию Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

ВысокиС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Для дСмонстрации Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° я Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π° чистом Π‘ΠΈ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π» ряд ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΊΠ°ΠΊ ΠΏΠΎ скорости выполнСния, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ памяти (Π²Ρ‹ Π½Π΅ прСдставляСтС, сколько эти ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΡ‡ΠΊΠΈ вСсят Π±Π΅Π· сТатия Π΄Π°ΠΆΠ΅ Π΄ΠΎ DCT). ΠšΡ€ΠΎΡΡ-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ достигнута использованиСм ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ libjpeg, pcre ΠΈ tinydir, Π·Π° Ρ‡Ρ‚ΠΎ ΠΈΠΌ спасибо. ВсС это собираСтся ‘make»ΠΎΠΌ, поэтому ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Windows для ΠΎΡ†Π΅Π½ΠΊΠΈ хотят ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ сСбС ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Cygwin, Π»ΠΈΠ±ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ с Visual Studio ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

РСализация доступна Π² Ρ„ΠΎΡ€ΠΌΠ΅ консольной ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΏΡ€ΠΎ использованиС послСднСй ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Π² Ρ€ΠΈΠ΄ΠΌΠΈ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π½Π° Π³ΠΈΡ‚Ρ…Π°Π±Π΅, ссылку Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я ΠΏΡ€ΠΈΠ»ΠΎΠΆΡƒ Π² ΠΊΠΎΠ½Ρ†Π΅ поста.

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

Π‘ ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ изобраТСния Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ поиском ΠΏΠΎ рСгулярному Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. По Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ТСланию Π² Π΅Π΅ ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ…, ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы ΠΈ ΠΏΡ€. Однако, стоит Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€Π°ΠΉΠ½Π΅ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½Ρ‹ΠΌ ΠΈ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ нСпосрСдствСнноС содСрТимоС. ΠŸΠΎΡ‚Π΅Ρ€Ρ значСния Π΄Π°ΠΆΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ нСвозмоТности восстановлСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

По Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° оставляСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π°Ρ€Ρ…ΠΈΠ²Π°, содСрТащий всю Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для распаковки ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… изобраТСниях. Π‘Π°ΠΌ ΠΏΠΎ сСбС ΠΎΠ½ вСсит порядка ΠΏΠ°Ρ€Ρ‹ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚ ΠΈ Ρ…ΠΎΡ‚ΡŒ сколько сущСствСнного влияния Π½Π° занятоС дисковоС пространство Π½Π΅ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚.

МоТно Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡƒΡŽ Π²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π»Π°Π³Π° ‘-a’: ‘./f5ar -a [ΠΏΠ°ΠΏΠΊΠ° поиска] [Perl-совмСстимоС рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅]’. Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° производится ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ‘./f5ar -p [ΠΏΠ°ΠΏΠΊΠ° поиска] [Perl-совмСстимоС рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅] [ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Ρ„Π°ΠΉΠ»] [имя Π°Ρ€Ρ…ΠΈΠ²Π°]’, Π° распаковка с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ‘./f5ar -u [Ρ„Π°ΠΉΠ» Π°Ρ€Ρ…ΠΈΠ²Π°] [имя восстановлСнного Ρ„Π°ΠΉΠ»Π°]’.

ДСмонстрация Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, я Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ» ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΈΠ· 225 Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ бСсплатных Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ собак с сСрвиса Unsplash ΠΈ ΠΎΡ‚Ρ€Ρ‹Π» Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ pdf-ΠΊΡƒ Π½Π° 45 ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚ΠΎΠΌΠ° Π˜ΡΠΊΡƒΡΡΡ‚Π²Π° ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠšΠ½ΡƒΡ‚Π°.

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ довольно прост:

$ du -sh knuth.pdf dogs/
44M knuth.pdf
633M dogs/

$ ./f5ar -p dogs/ .*jpg knuth.pdf dogs.f5ar
Reading compressing file... ok
Initializing the archive... ok
Analysing library capacity... done in 17.0s
Detected somewhat guaranteed capacity of 48439359 bytes
Detected possible capacity of upto 102618787 bytes
Compressing... done in 39.4s
Saving the archive... ok

$ ./f5ar -u dogs/dogs.f5ar knuth_unpacked.pdf
Initializing the archive... ok
Reading the archive file... ok
Filling the archive with files... done in 1.4s
Decompressing... done in 21.0s
Writing extracted data... ok

$ sha1sum knuth.pdf knuth_unpacked.pdf
5bd1f496d2e45e382f33959eae5ab15da12cd666 knuth.pdf
5bd1f496d2e45e382f33959eae5ab15da12cd666 knuth_unpacked.pdf

$ du -sh dogs/
551M dogs/

Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹ для Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ

О странном ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ экономии мСста Π½Π° ТСстком дискС

Распакованный Ρ„Π°ΠΉΠ» всС Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½ΡƒΠΆΠ½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ:

О странном ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ экономии мСста Π½Π° ТСстком дискС

Как Π²ΠΈΠ΄Π½ΠΎ, с исходных 633 + 36 == 669 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ТСстком дискС ΠΌΡ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΊ Π±ΠΎΠ»Π΅Π΅ приятным 551. Вакая Ρ€Π°Π΄ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Ρ‚Π΅ΠΌ самым ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ коэффициСнтов, Π²Π»ΠΈΡΡŽΡ‰ΠΈΠΌ Π½Π° ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ сТатиС Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ: ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ всСго лишь Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ‡ΠΊΡƒ ΠΌΠΎΠΆΠ΅Ρ‚ спокойно «ΡΡ€Π΅Π·Π°Ρ‚ΡŒ» ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΡƒ Π±Π°ΠΉΡ‚ с ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, это всС Ρ€Π°Π²Π½ΠΎ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡƒΡΡ‚ΡŒ ΠΈ ΠΊΡ€Π°ΠΉΠ½Π΅ нСбольшиС, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ придСтся ΠΌΠΈΡ€ΠΈΡ‚ΡŒΡΡ.

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, для Π³Π»Π°Π·Π° ΠΎΠ½ΠΈ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ. Под спойлСром (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ habrastorage Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ Π² большиС Ρ„Π°ΠΉΠ»Ρ‹) Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΊΠ°ΠΊ Π½Π° Π³Π»Π°Π·, Ρ‚Π°ΠΊ ΠΈ ΠΈΡ… ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠ· ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ: ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π», с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ, Ρ€Π°Π·Π½ΠΈΡ†Π° (Ρ‡Π΅ΠΌ тусклСС Ρ†Π²Π΅Ρ‚, Ρ‚Π΅ΠΌ мСньшС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π² Π±Π»ΠΎΠΊΠ΅).

ВмСсто Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

Бмотря Π½Π° всС эти слоТности, ΠΊΡƒΠΏΠΈΡ‚ΡŒ ТСсткий диск ΠΈΠ»ΠΈ Π·Π°Π»ΠΈΡ‚ΡŒ всС Π² ΠΎΠ±Π»Π°ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΊΡƒΠ΄Π° Π±ΠΎΠ»Π΅Π΅ простым Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Но Ρ…ΠΎΡ‚ΡŒ сСйчас ΠΌΡ‹ ΠΈ ΠΆΠΈΠ²Π΅ΠΌ Π² Ρ‚Π°ΠΊΠΎΠ΅ прСкрасноС врСмя, Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π·Π°Π²Ρ‚Ρ€Π° всС Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΉΡ‚ΠΈ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈ Π·Π°Π»ΠΈΡ‚ΡŒ ΠΊΡƒΠ΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ всС свои лишниС Π΄Π°Π½Π½Ρ‹Π΅. Или ΠΏΡ€ΠΈΠ΄Ρ‚ΠΈ Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΠΈ ΠΊΡƒΠΏΠΈΡ‚ΡŒ сСбС ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ТСсткий диск Π½Π° тысячу Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚. А Π²ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π΄ΠΎΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎ всСгда.

-> GitHub

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ