рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рд╕реЗ рд░рд┐рдореЛрдЯ рдкреНрд░реЗрдЬреЗрдВрдЯреЗрд╢рди рдХрдВрдЯреНрд░реЛрд▓

рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ ( рдкреЗрд░рдХреЛрдирд╛ рд▓рд╛рдЗрд╡ рдкрд░ ) рдмрдирд╛рдИ рд╣реИред рдФрд░ рдПрдХ рд░рд╛рдд (рдЬреЗрдЯ-рд▓реИрдЧ рд╕рдм рдХреЗ рдмрд╛рдж) рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реНрд▓рд╛рдЗрдб рдкрд░ рдореЗрд░реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ - рдЯрд┐рдкреНрд╕ - рдФрд░ рд╕реНрд▓рд╛рдЗрдб рдХреЛ рд▓реИрдкрдЯреЙрдк рдкрд░ рдЬрд╛рдП рдмрд┐рдирд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рд╕реНрд▓рд╛рдЗрдб рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрдорддреНрдХрд╛рд░ рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рдПрдВрдбреНрд░реЙрдпрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдерд╛ред Google Market рдиреЗ рдирд┐рд░рд╛рд╢ рдХрд┐рдпрд╛ рд╣реИред рдЗрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдиреЗ рдХреЗрд╡рд▓ PowerPoint рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛, рд▓рд┐рдмрд░ рдСрдлрд┐рд╕ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдорд┐рд▓рд╛, рднреБрдЧрддрд╛рди рдХрд┐рдпрд╛, рдФрд░ рдпрд╣ рдХрд┐рд╕реА рддрд░рд╣ рдЧрд▓рдд рд▓рдЧ рд░рд╣рд╛ рдерд╛ред

рд▓реЗрдХрд┐рди рдПрдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рд╣реИ - рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ред рдЖрдк рдПрдХ рд▓реИрдкрдЯреЙрдк рдкрд░ HTTP-рд╕рд░реНрд╡рд░ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдлреЛрди рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд▓рд┐рдВрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрд▓рд╛рдЗрдб рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рди рдХреЗрд╡рд▓ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд╕рд╛рде, рдмрд▓реНрдХрд┐ рдРрдкреНрдкрд▓ рдХреЗ рд╕рд╛рде, рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд╣рд╛рдВ, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдХ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЖрдк WAP рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд▓реИрдкрдЯреЙрдк рд╕реЗ тАЛтАЛрднреА рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рди рдирд┐рдХрд▓рд╛ред рдЕрдЬрдЧрд░ рдореЗрдВ рд▓рдЧрднрдЧ 70 рд▓рд╛рдЗрдиреЗрдВ, рдХреЛрдИ рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ (рд▓рдЧрднрдЧ) рдирд╣реАрдВред

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрдврд╝реА рдЬрд╛рддреА рд╣реИрдВ (рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╕реНрддреБрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рд╕реЗ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛)ред рд╣рдо рдХреБрдЫ рдкреЛрд░реНрдЯ рдкрд░ BaseHTTPServer рдмрдврд╝рд╛рддреЗ рд╣реИрдВ , рдореИрдВ 8000 рд╕реЗ 9000 рддрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреНрд░рдо рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдХрд╛рдо рди рдХрд░реЗред StackOverflow рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдо рдЕрдкрдирд╛ рдЖрдИрдкреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдПрдХ рдмрдбрд╝реА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ - рдпрд╣ URL рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рджрд░реНрд╢рдХреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕реНрд▓рд╛рдЗрдбреНрд╕ рдХреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рди рд▓реЗ рдЬрд╛рдПред рдПрдХ рдорд╛рдореВрд▓реА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрдпреВрдЖрд░ рдХреЛрдб рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЦреЛрд▓рддрд╛ рд╣реВрдВред рдпрджрд┐ рдЖрдк рд╕рдореНрдореЗрд▓рди рдХреЗ рджреМрд░рд╛рди рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ URL рджрд░реНрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣ рдмрд╛рдд рд╣реИред рдФрд░ рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдкрд░реНрдпрд╛рдкреНрдд рдЖрдВрддрд░рд┐рдХ рд╡рд╛рдИрдлрд╝рд╛рдИред

рдмреЗрд╕ рдЯреАрдЯреАрдкреАрдПрд╕рд░реНрд╡рд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ , рдЬреАрдИрдЯреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ do_GET рд╡рд┐рдзрд┐ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдкреИрджрд╛ рдХрд░рддреЗ рд╣реИрдВред рдкрд╣рд▓реА рдЪреАрдЬ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдЬрд╛рдВрдЪрдирд╛ рд╣реИ, рд╡рд╣ рд╣реИ рд╣рдорд╛рд░рд╛ рд░реИрдВрдбрдо рдирдВрдмрд░ред рдпрджрд┐ рд╡рд╣рд╛рдБ рд╣реИ, рдФрд░ URL рдЕрдЧрд▓реЗ рдпрд╛ рдореМрдЬреВрджрд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдПрдХ рд╕реНрдерд╛рди рдпрд╛ рдХреНрд░рдорд╢рдГ, рдмреИрдХрд╕реНрдкреЗрд╕ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдкреГрд╖реНрда рдХреЛ рдЕрдЧрд▓реЗ рдпрд╛ рдкрд┐рдЫрд▓реЗ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВред

рдореЗрд░реЗ рдкрд╛рд╕ fvwm рд╣реИ , рдЗрд╕рд▓рд┐рдП рд╕рд┐рдореБрд▓реЗрд╢рди рдХреНрд▓рд┐рдХ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред рдЕрдиреНрдп рд╡рд┐рдВрдбреЛ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдЕрд▓рдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЬрдЧрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рд╣реИрдВ - рдореИрдВрдиреЗ рдЬрд╛рдВрдЪ рдХреАред

рдЦреИрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╕рдм рд╣реИред рдореЛрдмрд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЬрд░ рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдХреЗрд╡рд▓ рдлреЙрдиреНрдЯ рдХреЛ рдмрдбрд╝рд╛ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдХрдо рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдиреНрдпрдерд╛ рдЙрдиреНрд╣реЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП - рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рджреМрд░рд╛рди рдЕрдкреНрд░рд┐рдп рдард╣рд░рд╛рд╡ред рд╣рд╛рдБ, рдФрд░ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдФрд░ рд▓реИрдкрдЯреЙрдк рдкрд░ рд╕реНрдХреНрд░реАрди рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВред

рдпреБрджреНрдз рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рд╕рдлрд▓ рд░рд╣рд╛ред

#!/usr/bin/python import sys import os import random import socket import BaseHTTPServer import re handler_class=BaseHTTPServer.BaseHTTPRequestHandler token="/" + str(random.randint(0, sys.maxint)) + "/" page = 1 validate = re.compile(token + "(prev|next)$") def send_key(key): os.system("FvwmCommand 'All (VCLSalFrame) FakeKeypress press {}'".format(key)) class Handler(BaseHTTPServer.BaseHTTPRequestHandler): def link(self,s,n): if n < 0 or n >= len(data): return " " return '<a href="{}{}">{}</a>'.format(token,s,s) def do_GET(self): cmd = validate.match(self.path) if cmd is None: self.send_response(404) self.send_header("Content-type", 'text/html') self.end_headers() self.wfile.write('<h1>OK</h1>') return global page if cmd.group(1) == 'prev' and page > 0: page = page - 1 send_key('BackSpace') elif cmd.group(1) == 'next' and page < len(data)-1: page = page + 1 send_key('space') self.send_response(200) self.send_header("Content-type", 'text/html; charset=utf-8') self.end_headers() self.wfile.write(""" {pagenum} - {next} <hr> {data} <hr> {prev} - {pagenum} """.format(prev = self.link('prev', page - 1), pagenum = page + 1, next = self.link('next', page + 1), data = data[page])) def read_file(s): with open(s) as f: return re.split('--- *\n?', f.read()) def ip(): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(('192.168.1.1', 0)) # fake, but nobody cares return s.getsockname()[0] def make_url(port): url="http://{}:{}{}prev".format(ip(), port, token) print url os.system("firefox 'http://chart.apis.google.com/chart?cht=qr&chs=200x200&chl={}' &".format(url)) def run(): for port in random.sample(xrange(8000, 9000),1000): try: httpd = BaseHTTPServer.HTTPServer(('',port), Handler) httpd.server_activate() make_url(port) httpd.serve_forever() except socket.error, e: if e.errno not in (98,): print e exit() except KeyboardInterrupt: print "\nExiting" exit() data = read_file('notes.txt') print "Got {} slides".format(len(data)) run() 

Source: https://habr.com/ru/post/In132331/


All Articles