Drew DeWalt рд▓реЗ рд╣рд░реЗ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛ рдкреЗрд╢ рдЧрд░реНрдпреЛ

Drew DeVault, Sway рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛рддрд╛рд╡рд░рдг, Aerc рдЗрдореЗрд▓ рдХреНрд▓рд╛рдЗрдиреНрдЯ, рд░ SourceHut рд╕рд╣рдпреЛрдЧреА рд╡рд┐рдХрд╛рд╕ рдкреНрд▓реЗрдЯрдлрд░реНрдордХрд╛ рд▓реЗрдЦрдХ, Hare рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛ рдкреЗрд╢ рдЧрд░реЗ, рдЬрд╕рдорд╛ рдЙрдиреА рд░ рдЙрдирдХреЛ рдЯреЛрд▓реАрд▓реЗ рд╡рд┐рдЧрдд рд╕рд╛рдвреЗ рджреБрдИ рд╡рд░реНрд╖рджреЗрдЦрд┐ рдХрд╛рдо рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЫрдиреНред рд╣рд░реЗрд▓рд╛рдИ рд╕реА рдЬрд╕реНрддреИ рддрд░ рд╕реА рднрдиреНрджрд╛ рд╕рд░рд▓ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рдХреЛ рд░реВрдкрдорд╛ рдЪрд┐рдирд┐рдиреНрдЫред рд╣рд░реЗрдХреЛ рдореБрдЦреНрдп рдбрд┐рдЬрд╛рдЗрди рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВ рдордзреНрдпреЗ, рдЙрд▓реНрд▓реЗрдЦрд┐рдд рдлреЛрдХрд╕ рд╕рд░рд▓реАрдХрд░рдг рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рдХреЛ рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдкреВрд░реНрдг рднрд░реЛрд╕рд╛рдорд╛ рдЫ (рдкрд╣рд▓ рд░ рдирд┐рд╣рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдмрд┐рдирд╛ рдиреИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ), рд╕рд╛рдорд╛рдиреНрдп рддреНрд░реБрдЯрд┐ рд░ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрди рд╕рд╣рд╛рдпрдХ рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐рдХреЛ рд╕рд╛рдеред

╨Ш╤Б╤Е╨╛╨┤╨╜╤Л╨╡ ╤В╨╡╨║╤Б╤В╤Л ╨║╨╛╨╝╨┐╨╕╨╗╤П╤В╨╛╤А╨░ ╨╕ ╨╕╨╜╤Б╤В╤А╤Г╨╝╨╡╨╜╤В╨░╤А╨╕╤П ╤А╨░╤Б╨┐╤А╨╛╤Б╤В╤А╨░╨╜╤П╤О╤В╤Б╤П ╨┐╨╛╨┤ ╨╗╨╕╤Ж╨╡╨╜╨╖╨╕╨╡╨╣ GPLv3, ╨░ ╨║╨╛╨┤ ╤Б╤В╨░╨╜╨┤╨░╤А╤В╨╜╨╛╨╣ ╨▒╨╕╨▒╨╗╨╕╨╛╤В╨╡╨║╨╕ ╨┐╨╛╨┤ ╨╗╨╕╤Ж╨╡╨╜╨╖╨╕╨╡╨╣ MPL (Mozilla Public License). ╨Т ╨┐╨╡╤А╨▓╨╛╨╝ ╨┐╤Г╨▒╨╗╨╕╤З╨╜╨╛╨╝ ╨▓╤Л╨┐╤Г╤Б╨║╨╡ ╨╖╨░╤П╨▓╨╗╨╡╨╜╨░ ╨┐╨╛╨┤╨┤╨╡╤А╨╢╨║╨░ ╨╛╨┐╨╡╤А╨░╤Ж╨╕╨╛╨╜╨╜╤Л╤Е ╤Б╨╕╤Б╤В╨╡╨╝ Linux ╨╕ FreeBSD ╨╜╨░ ╨┐╨╗╨░╤В╤Д╨╛╤А╨╝╨░╤Е x86_64, aarch64 ╨╕ riscv64, ╨░ ╤В╨░╨║╨╢╨╡ ╤Б╨░╨╝╨╛╨┤╨╛╤Б╤В╨░╤В╨╛╤З╨╜╨╛╨╡ ╨╕╤Б╨┐╨╛╨╗╤М╨╖╨╛╨▓╨░╨╜╨╕╨╡ ╨┤╨╗╤П ╨╖╨░╨┐╤Г╤Б╨║╨░ ╨┐╨╛╨▓╨╡╤А╤Е ╨╛╨▒╨╛╤А╤Г╨┤╨╛╨▓╨░╨╜╨╕╤П ╨▒╨╡╨╖ ╨╛╨┐╨╡╤А╨░╤Ж╨╕╨╛╨╜╨╜╨╛╨╣ ╤Б╨╕╤Б╤В╨╡╨╝╤Л. ╨Т ╨┐╨╗╨░╨╜╨░╤Е ╤Г╨┐╨╛╨╝╨╕╨╜╨░╨╡╤В╤Б╤П ╨┐╨╛╨┤╨┤╨╡╤А╨╢╨║╨░ ╨╛╨┐╨╡╤А╨░╤Ж╨╕╨╛╨╜╨╜╤Л╤Е ╤Б╨╕╤Б╤В╨╡╨╝ NetBSD, OpenBSD, Illumos, Haiku ╨╕ Plan 9 ╨╕ ╨┐╨╗╨░╤В╤Д╨╛╤А╨╝ ppc64le, i686 ╨╕ arm32.

рднрд╛рд╖рд╛рд▓реЗ рдореНрдпрд╛рдиреБрдЕрд▓ рдореЗрдореЛрд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд░ рдПрдХ рд╕реНрдерд┐рд░ рдкреНрд░рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ, рдЬрд╕рдорд╛ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рддреЛрдХрд┐рдПрдХреЛ рд╣реБрдиреБрдкрд░реНрдЫред рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд▓рд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐, рдиреНрдпреВрдирддрдо рд░рдирдЯрд╛рдЗрдо рд╕рдВрд▓рдЧреНрди рдЫред рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдорд╣рд░реВ, рдХрдореНрдкрд╛рдЗрд▓рд░рд╣рд░реВ, рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рд░ рдЕрдзрд┐рдХрддрдо рдкреНрд░рджрд░реНрд╢рди рд░ рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд┐рдпрдиреНрддреНрд░рдгрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд░реНрдиреЗ рдкреНрд░рдгрд╛рд▓реА рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдиреЗ рдЬрд╕реНрддрд╛ рдирд┐рдореНрди-рд╕реНрддрд░ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рднрд╛рд╖рд╛рд▓рд╛рдИ рдЕрдиреБрдХреВрд▓рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред

рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рддрдпрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдордХреЛ рдЖрдзрд╛рд░рднреВрдд рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВ, рдорд╛рдирдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдорд╣рд░реВ рд░ рдкреНрд░реЛрдЯреЛрдХрд▓ рд░ рдврд╛рдБрдЪрд╛рд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдорд╛ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдЧрд░реНрджреИред рдкреБрд╕реНрддрдХрд╛рд▓рдпрд▓реЗ рдЗрдирдкреБрдЯ/рдЖрдЙрдЯрдкреБрдЯ, рдлрд╛рдЗрд▓ рд╣реЗрд░рдлреЗрд░, рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐, рдЗрдиреНрдХреНрд░рд┐рдкреНрд╕рди, рдиреЗрдЯрд╡рд░реНрдХрд┐рдЩ, рд╕рдордп рд░ рдорд┐рддрд┐ рд╕рдЮреНрдЪрд╛рд▓рди, рд╕рд╛рдЭрд╛ рдпреБрдирд┐рдХреНрд╕ рдЖрджрд┐рдорд╛ рдкрд╣реБрдБрдЪ (рдЬрд╕реНрддреИ рдкреЛрд▓, fnmatch рд░ рдЧреНрд▓реЛрдм), рдкрд╛рд░реНрд╕рд┐рдЩ рд░ рдЯрд╛рдЗрдк рдЬрд╛рдБрдЪ рдЬрд╕реНрддрд╛ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рд╕рдореЗрдЯреНрдЫред OpenGL, SDL2 рд░ libui рдХреНрд╖рдорддрд╛рд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдмрд╛рдЗрдиреНрдбрд┐рдЩрд╣рд░реВ рдЕрд▓рдЧ рд░реВрдкрдорд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫред

╨Т ╨║╨░╤З╨╡╤Б╤В╨▓╨╡ ╨┐╤А╨╕╨╝╨╡╤А╨╛╨▓ ╨┐╤А╨╛╨╡╨║╤В╨╛╨▓, ╨╜╨░╨┐╨╕╤Б╨░╨╜╨╜╤Л╤Е ╨╜╨░ ╤П╨╖╤Л╨║╨╡ Hare, ╤Г╨┐╨╛╨╝╨╕╨╜╨░╤О╤В╤Б╤П ╨╝╨╕╨║╤А╨╛╤П╨┤╤А╨╛ Helios, ╨╝╨╡╨╜╨╡╨┤╨╢╨╡╤А ╨┐╨░╤А╨╛╨╗╨╡╨╣ Himitsu, ╤Б╨╕╤Б╤В╨╡╨╝╨░ ╤В╤А╨░╤Б╤Б╨╕╤А╨╛╨▓╨║╨╕ ╨╗╤Г╤З╨╡╨╣ raytracing, ╨┐╤А╨╛╨│╤А╨░╨╝╨╝╨░ ╨┤╨╗╤П ╤И╨╕╤Д╤А╨╛╨▓╨░╨╜╨╕╤П box, bittorrent-╨┤╨╡╨╝╨╛╨╜ btqd, scheduled (╨░╨╜╨░╨╗╨╛╨│ ╤Б╨╕╤Б╤В╨╡╨╝╤Л cron), toothbrush (╨║╨╗╨╕╨╡╨╜╤В ╨╕ рд╕рд░реНрднрд░ ╨┤╨╗╤П ╨┐╤А╨╛╤В╨╛╨║╨╛╨╗╨░ finger). ╨Ш╨╖ ╨┐╨╗╨░╨╜╨╛╨▓ ╨╜╨░ ╨▒╤Г╨┤╤Г╤Й╨╡╨╡ ╨╛╤В╨╝╨╡╤З╨░╨╡╤В╤Б╤П ╤Б╤В╨░╨▒╨╕╨╗╨╕╨╖╨░╤Ж╨╕╤П ╤Б╨┐╨╡╤Ж╨╕╤Д╨╕╨║╨░╤Ж╨╕╨╕ ╤П╨╖╤Л╨║╨░ ╨╕ ╤Б╨╛╤Б╤В╨░╨▓╨░ ╤Б╤В╨░╨╜╨┤╨░╤А╤В╨╜╨╛╨╣ ╨▒╨╕╨▒╨╗╨╕╨╛╤В╨╡╨║╨╕, ╤А╨╡╨░╨╗╨╕╨╖╨░╤Ж╨╕╤П ╨┐╨╛╨┤╨┤╨╡╤А╨╢╨║╨╕ ╨╜╨╡╨┤╨╛╤Б╤В╨░╤О╤Й╨╕╤Е ╨┐╨╗╨░╤В╤Д╨╛╤А╨╝ ╨╕ ╨░╤А╤Е╨╕╤В╨╡╨║╤В╤Г╤А, ╨┤╨╛╨▒╨░╨▓╨╗╨╡╨╜╨╕╨╡ ╨▒╨╕╨▒╨╗╨╕╨╛╤В╨╡╤З╨╜╤Л╤Е ╤Д╤Г╨╜╨║╤Ж╨╕╨╣ ╨┤╨╗╤П ╨┐╨╛╨┤╨┤╨╡╤А╨╢╨║╨╕ TLS 1.2 ╨╕ 1.3.

рд╣рд░реЗрдорд╛ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб: рдХреНрд░рд┐рдкреНрдЯреЛ::sha256 рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН; рдПрдиреНрдХреЛрдбрд┐рдЩ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН::рд╣реЗрдХреНрд╕; fmt рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН; рд╣реНрдпрд╛рд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН; useio; рдУрдПрд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН; рдирд┐рд░реНрдпрд╛рдд fn main() void = { const hash = sha256::sha256(); const рдлрд╛рдЗрд▓ = os :: open("main.ha"); defer io ::close(file); io::copy(&hash, file)!; рдпреЛрдЧ рдЧрд░реМрдВ: [sha256::SIZE]u8 = [0...]; hash::sum(&hash, sum); hex::encode(os::stdout, sum)!; fmt::println(); const рдЕрднрд┐рд╡рд╛рджрди = [тАЬрдирдорд╕реНрддреЗ, рд╕рдВрд╕рд╛рд░!тАЭ, тАЬ┬бHola Mundo!тАЭ, тАЬ╬У╬╡╬╣╬м ╧Г╬┐╧Е ╬Ъ╧М╧Г╬╝╬╡!тАЭ, тАЬрдирдорд╕реНрддреЗ, рд╕рдВрд╕рд╛рд░!тАЭ, тАЬуБУуВУуБлуБбуБпф╕ЦчХМя╝БтАЭ, ]; рдХреЛ рд▓рд╛рдЧрд┐ (let i = 0z; i < len(рдЕрднрд┐рд╡рд╛рджрди); i += 1) { fmt::println(рдЕрднрд┐рд╡рд╛рджрди[i])!; }; let x: *int = alloc(42); fmt::printfln("x: {}", x); fmt::printfln("*x: {}", *x)!; рдирд┐: рд╢реБрд▓реНрдХ (x); const рдлрд╛рдЗрд▓ = os::open(os::args[1]); defer io::close(file)!; рдЪрд▓реЛ рдмрдлрд░: *[65535]u8 = alloc([0...]); рд╕реНрдердЧрд┐рдд рдореБрдХреНрдд (рдмрдлрд░); const n = io::read(рдлрд╛рдЗрд▓, рдмрдлрд░)! рдЖрдХрд╛рд░рдХреЛ рд░реВрдкрдорд╛; io::рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН(os::stdout, buffer[..n]); }; fn рдХреНрд░рдордмрджреНрдз (рд╡рд╕реНрддреБрд╣рд░реВ: []int) рд╢реВрдиреНрдп = { ... }; @test fn рдХреНрд░рдордмрджреНрдз () рд╢реВрдиреНрдп = { рд╡рд╕реНрддреБрд╣рд░реВ = [рел, рек, рей, реи, рез]; рдХреНрд░рдордмрджреНрдз (рд╡рд╕реНрддреБрд╣рд░реВ); рдХреЛ рд▓рд╛рдЧрд┐ (i = 5z; i < len(рд╡рд╕реНрддреБрд╣рд░реВ); i += 4) { assert(items[i - 3] <= рд╡рд╕реНрддреБрд╣рд░реВ[i], "рд╕реВрдЪреА рдХреНрд░рдордмрджреНрдз рдЫреИрди"); }; };

рд╕реНрд░реЛрдд: opennet.ru

DDoS рд╕реБрд░рдХреНрд╖рд╛, VPS VDS рд╕рд░реНрднрд░рд╣рд░реВ рднрдПрдХрд╛ рд╕рд╛рдЗрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рднрд░рдкрд░реНрджреЛ рд╣реЛрд╕реНрдЯрд┐рдЩ рдЦрд░рд┐рдж рдЧрд░реНрдиреБрд╣реЛрд╕реН ЁЯФе DDoS рд╕реБрд░рдХреНрд╖рд╛, VPS VDS рд╕рд░реНрднрд░рд╣рд░реВ рд╕рд╣рд┐рддрдХреЛ рднрд░рдкрд░реНрджреЛ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╣реЛрд╕реНрдЯрд┐рдЩ рдХрд┐рдиреНрдиреБрд╣реЛрд╕реН | ProHoster