เจ–เฉ‹เจœเจพเจ‚ เจจเฉ‚เฉฐ เจชเจฟเจ†เจฐ เจ•เจฐเฉ‹, เจœเจจเจคเจพ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ‡ เจจเจฟเฉฑเจœเฉ€ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจฒเฉฑเจญเจฃเจพ เจชเจธเฉฐเจฆ เจ•เจฐเฉ‹

เจ•เฉเจ เจฆเจฟเจจ เจชเจนเจฟเจฒเจพเจ‚, เจฌเจฟเจฒเจ•เฉเจฒ เจ‰เจนเฉ€ เจนเฉ‹เจ‡เจ† เจœเฉ‹ เจŸเจพเจˆเจŸเจฒ เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฟเจ† เจนเฉˆเฅค เจตเจพเจชเจธ 2014 เจตเจฟเฉฑเจš (เจ…เจฐเจฅเจพเจค, 28 เจฆเจธเฉฐเจฌเจฐ เจจเฉ‚เฉฐ 17:00 เจตเจœเฉ‡), เจฎเฉ‡เจฐเฉ€ เจชเจคเจจเฉ€ เจ…เจคเฉ‡ เจฎเฉˆเจ‚ เจ…เจคเฉ‡ เจฎเฉ‡เจฐเฉ‡ เจฆเฉ‹เจธเจคเจพเจ‚ เจจเฉ‡ "เจ•เจฒเจพเจธเจŸเฉเจฐเจพเจซเฉ‹เจฌเฉ€เจ†" เจคเฉ‹เจ‚ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจ–เฉ‹เจœ "เจ•เฉเจฒเฉˆเจ•เจŸเจฐ" เจ–เฉ‡เจกเจฟเจ† เจ…เจคเฉ‡ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจคเฉ‹เจ‚ เจญเฉเฉฑเจฒ เจ—เจ เจธเฉ€, เจชเจฐ "เจ•เจฒเจพเจธเจŸเฉเจฐเจพเจซเฉ‹เจฌเฉ€เจ†" เจจเฉ‡ เจธเจพเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจฏเจพเจฆ เจฆเจฟเจตเจพเจ‡เจ†เฅค เจธเจญ เจคเฉ‹เจ‚ เจ…เจšเจพเจจเจ• เจคเจฐเฉ€เจ•เจพ.

เจ–เฉ‹เจœเจพเจ‚ เจจเฉ‚เฉฐ เจชเจฟเจ†เจฐ เจ•เจฐเฉ‹, เจœเจจเจคเจพ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ‡ เจจเจฟเฉฑเจœเฉ€ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจฒเฉฑเจญเจฃเจพ เจชเจธเฉฐเจฆ เจ•เจฐเฉ‹

เจ…เจคเฉ‡ เจตเจพเจธเจคเจต เจตเจฟเฉฑเจš, เจ‡เฉฑเจฅเฉ‡ เจธเจพเจกเฉ€ เจซเฉ‹เจŸเฉ‹ เจนเฉˆ, เจœเฉ‹ เจœเจจเจคเจ• เจกเฉ‹เจฎเฉ‡เจจ เจตเจฟเฉฑเจš เจชเจพเจˆ เจ—เจˆ เจธเฉ€ (เจฎเฉ‡เจฐเฉ€ เจชเจฟเฉฑเจ  เจฎเฉ‹เฉœ เจ—เจˆ เจนเฉˆ, เจฌเจพเจ•เฉ€ เจฆเฉ‡ เจšเจฟเจนเจฐเฉ‡ เจ‡เจธ เจฒเฉ‡เจ– เจฒเจˆ เจตเจฟเจ—เฉœ เจ—เจ เจนเจจ) ...

ะ”ะธัะบะปะตะนะผะตั€: ะฒัั ะธะฝั„ะพั€ะผะฐั†ะธั ะฝะธะถะต ะฟัƒะฑะปะธะบัƒะตั‚ัั ะธัะบะปัŽั‡ะธั‚ะตะปัŒะฝะพ ะฒ ะพะฑั€ะฐะทะพะฒะฐั‚ะตะปัŒะฝั‹ั… ั†ะตะปัั…. ะะฒั‚ะพั€ ะฝะต ะฟะพะปัƒั‡ะฐะป ะดะพัั‚ัƒะฟะฐ ะบ ะฟะตั€ัะพะฝะฐะปัŒะฝั‹ะผ ะดะฐะฝะฝั‹ะผ ั‚ั€ะตั‚ัŒะธั… ะปะธั† ะธ ะบะพะผะฟะฐะฝะธะน. ะ˜ะฝั„ะพั€ะผะฐั†ะธั ะฒะทัั‚ะฐ ะปะธะฑะพ ะธะท ะพั‚ะบั€ั‹ั‚ั‹ั… ะธัั‚ะพั‡ะฝะธะบะพะฒ, ะปะธะฑะพ ะฑั‹ะปะฐ ะฟั€ะตะดะพัั‚ะฐะฒะปะตะฝะฐ ะฐะฒั‚ะพั€ัƒ ะฐะฝะพะฝะธะผะฝั‹ะผะธ ะดะพะฑั€ะพะถะตะปะฐั‚ะตะปัะผะธ.

เจฆเฉ‹ เจธเฉ‚เจšเจ•เจพเจ‚เจ• เจตเจพเจฒเจพ เจ‡เฉฑเจ• Elasticsearch เจกเจพเจŸเจพเจฌเฉ‡เจธ, เจ•เจฅเจฟเจค เจคเฉŒเจฐ 'เจคเฉ‡ Claustrophobia (claustrophobia.com) เจจเจพเจฒ เจธเจฌเฉฐเจงเจค, เจœเจจเจคเจ• เจกเฉ‹เจฎเฉ‡เจจ เจตเจฟเฉฑเจš เจชเจพเจ‡เจ† เจ—เจฟเจ† เจธเฉ€เฅค

index          docs.count store.size 
phobia-master  1068927      3.2gb
phobia-sandbox 55           2.9mb

เจ•เฉ‹เจˆ เจตเฉ€, IP เจเจกเจฐเฉˆเฉฑเจธ เจจเฉ‚เฉฐ เจœเจพเจฃเจฆเจพ เจนเฉ‹เจ‡เจ†, เจ‡เฉฑเจ• เจฌเฉ‡เจธเจฟเจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‡เฉฑเจ• เจฐเฉˆเจ—เฉ‚เจฒเจฐ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจฐเจพเจนเฉ€เจ‚ เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจกเจพเจŸเจพ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ เจฒเจšเจ•เจฆเจพเจฐ เจ–เฉ‹เจœ เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจญเจพเจธเจผเจพ.

เจธเจผเฉ‹เจกเจจ เจ–เฉ‹เจœ เจ‡เฉฐเจœเจฃ เจฆเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉเจ†เจฐเจพ เจจเจฟเจฐเจฃเจพ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเฉ‚เฉฐ เจชเจนเจฟเจฒเฉ€ เจตเจพเจฐ 03.02.2019/03/09 00:31.03.2019:12 เจจเฉ‚เฉฐ เจ–เฉ‹เจœเจฟเจ† เจ—เจฟเจ† เจธเฉ€เฅค เจ‡เจธ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš 00 เจฎเจพเจฐเจš, 16 เจจเฉ‚เฉฐ เจฎเฉ‡เจฐเฉ€ เจธเฉ‚เจšเจจเจพ (เจˆเจฎเฉ‡เจฒ เจ…เจคเฉ‡ เจซเฉ‡เจธเจฌเฉเฉฑเจ• เจฆเฉเจ†เจฐเจพ), 30:XNUMX เจ…เจคเฉ‡ XNUMX:XNUMX (เจฎเจพเจธเจ•เฉ‹ เจธเจฎเฉ‡เจ‚) เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐ เจฌเฉฐเจฆ เจ•เจฐ เจฆเจฟเฉฑเจคเฉ€ เจ—เจˆ เจธเฉ€เฅค

เจ•เฉเฉฑเจฒ เจฎเจฟเจฒเจพ เจ•เฉ‡, เจธเจผเฉ‹เจกเจจ เจจเฉ‡ เจ‡เจธ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเฉ‚เฉฐ 6 เจตเจพเจฐ เจฐเจฟเจ•เจพเจฐเจก เจ•เฉ€เจคเจพ:

03.02.2019 03:09:00
03.02.2019 19:39:00
01.03.2019 12:10:00
03.03.2019 19:55:00
09.03.2019 05:41:00
23.03.2019 13:07:00

เจ‡เจธ เจฌเจพเจฐเฉ‡ เจ–เฉเฉฑเจฒเฉ‡ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ–เฉ‹เจœเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ Elasticsearch, เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเจพ เจฒเฉ‡เจ– เจฒเจฟเจ–เจฟเจ†.

เจ–เฉ‹เจœเจพเจ‚ เจจเฉ‚เฉฐ เจชเจฟเจ†เจฐ เจ•เจฐเฉ‹, เจœเจจเจคเจพ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ‡ เจจเจฟเฉฑเจœเฉ€ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจฒเฉฑเจญเจฃเจพ เจชเจธเฉฐเจฆ เจ•เจฐเฉ‹

เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจตเจฟเฉฑเจš เจ†เจฐเจกเจฐเจพเจ‚ 'เจคเฉ‡ เจกเฉ‡เจŸเจพ (เจธเจฟเจฐเจซเจผ 1 เจฎเจฟเจฒเฉ€เจ…เจจ เจคเฉ‹เจ‚ เจตเฉฑเจง เจฐเจฟเจ•เจพเจฐเจก) เจธเจผเจพเจฎเจฒ เจนเจจ:

  • เจ†เจฐเจกเจฐ เจฆเฉ€ เจฎเจฟเจคเฉ€
  • เจ–เฉ‹เจœ เจฆเฉ€ เจฎเจฟเจคเฉ€ เจ…เจคเฉ‡ เจธเจฎเจพเจ‚
  • เจ–เฉ‹เจœ เจจเจพเจฎ
  • เจ–เฉ‹เจœ เจฆเจพ เจธเจฅเจพเจจ (เจฆเฉ‡เจธเจผ เจ…เจคเฉ‡ เจธเจผเจนเจฟเจฐ)
  • เจ†เจฐเจกเจฐ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจตเจฟเจ…เจ•เจคเฉ€ เจฆเจพ เจจเจพเจฎ, เจซเจผเฉ‹เจจ เจจเฉฐเจฌเจฐ เจ…เจคเฉ‡ เจˆเจฎเฉ‡เจฒ เจชเจคเจพ
  • เจฒเจพเจ—เจค (เจชเฉ‚เจฐเจต-เจญเฉเจ—เจคเจพเจจ, เจ›เฉ‹เจŸเจพเจ‚ เจ…เจคเฉ‡ เจชเฉเจฐเจšเจพเจฐ เจ•เฉ‹เจกเจพเจ‚ เจธเจฎเฉ‡เจค), เจญเฉเจ—เจคเจพเจจ เจฆเฉ€ เจฎเฉเจฆเจฐเจพ เจ…เจคเฉ‡ เจญเฉเจ—เจคเจพเจจ เจฆเฉ€ เจ•เจฟเจธเจฎ (เจจเจ•เจฆเฉ€, เจ•เจพเจฐเจก)
  • เจ–เฉ‹เจœ เจชเฉ‚เจฐเจพ เจนเฉ‹เจฃ เจฆเจพ เจธเจฎเจพเจ‚
  • เจ–เจฟเจกเจพเจฐเฉ€เจ†เจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€
  • เจ–เฉ‹เจœ เจญเจพเจ—เฉ€เจฆเจพเจฐเจพเจ‚ เจฆเฉ€ เจธเจพเจ‚เจเฉ€ เจซเฉ‹เจŸเฉ‹ เจจเจพเจฒ เจฒเจฟเฉฐเจ• เจ•เจฐเฉ‹

2013 เจคเฉ‹เจ‚ 2019 เจฆเฉ€ เจฎเจฟเจ†เจฆ เจฒเจˆ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจตเฉฑเจ–-เจตเฉฑเจ– เจฆเฉ‡เจธเจผเจพเจ‚ เจคเฉ‹เจ‚ เจธเฉ€:

  • เจฐเฉ‚เจธ
  • เจฏเฉ‚เจ•เจฐเฉ‡เจจ
  • เจฌเฉ‡เจฒเจพเจฐเฉ‚เจธ
  • เจเจธเจŸเฉ‹เจจเฉ€เจ†
  • เจœเจฐเจฎเจจเฉ€
  • เจธเจชเฉ‡เจจ
  • France
  • เจนเฉŒเจฒเฉˆเจ‚เจก
  • เจ‡เจŸเจฒเฉ€
  • เจ…เจคเฉ‡ เจ‡เจธ เจคเจฐเจพเจ‚ เจนเฉ€.

เจ‰เจฆเจพเจนเจฐเจฃ เจตเจœเฉ‹เจ‚, เจœเจฐเจฎเจจเฉ€ เจฒเจˆ 10 เจนเจœเจผเจพเจฐ เจคเฉ‹เจ‚ เจตเฉฑเจง เจฐเจฟเจ•เจพเจฐเจก เจฎเจฟเจฒเฉ‡ เจนเจจเฅค

2014 เจตเจฟเฉฑเจš "เจธเจพเจกเฉ€" เจ–เฉ‹เจœ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฑเจคเฉ€:

  {
        "_index": "phobia-master",
        "_type": "model-Game",
        "_id": "105352",
        "_score": 10.159659,
        "_source": {
          "comment": "",
          "suspicious_cancellation": false,
          "promo_code": "",
          "photo": "https://.../.../.../28.12-17.jpg",
          "book_source": {
            "ru": "ะกะฐะนั‚",
            "fr": "Site internet",
            "en": "Web-site",
            "nl": "ะกะฐะนั‚",
            "be": "ะกะฐะนั‚",
            "tr": "ะกะฐะนั‚",
            "ca": "Pรกgina web",
            "de": "Internetseite",
            "db": "site",
            "it": "ะกะฐะนั‚",
            "sk": "ะกะฐะนั‚",
            "ar": "ะกะฐะนั‚",
            "th": "ะกะฐะนั‚",
            "sl": "ะกะฐะนั‚",
            "cs": "ะกะฐะนั‚",
            "et": "Lehekรผlg",
            "az": "Sayt",
            "ua": "ะกะฐะนั‚",
            "es": "Pรกgina web"
          },
          "client_tickets_count": null,
          "currency": "₽",
          "result": null,
          "language_code": null,
          "owner": {
            "phone": "+7โ€ฆ",
            "nickname": "ะโ€ฆ ะ›โ€ฆ",
            "id": 38284,
            "profile_type": "everyone",
            "email": "โ€ฆ@gmail.com"
          },
          "id": 105352,
          "refused_to_photo": null,
          "not_completed": null,
          "confirmed": false,
          "extra_price": 0,
          "branded_photo": null,
          "booking_price": 12000,
          "call_center_comment": null,
          "cert_id": 0,
          "status": {
            "ru": "ะŸั€ะพะนะดะตะฝะฐ",
            "fr": "Rรฉussi",
            "en": "Completed",
            "nl": "ะŸั€ะพะนะดะตะฝะฐ",
            "be": "ะŸั€ะพะนะดะตะฝะฐ",
            "tr": "ะŸั€ะพะนะดะตะฝะฐ",
            "ca": "ะกompletat",
            "de": "Absolviert",
            "db": "completed",
            "it": "ะŸั€ะพะนะดะตะฝะฐ",
            "sk": "ะŸั€ะพะนะดะตะฝะฐ",
            "ar": "ะŸั€ะพะนะดะตะฝะฐ",
            "th": "ะŸั€ะพะนะดะตะฝะฐ",
            "sl": "ะŸั€ะพะนะดะตะฝะฐ",
            "cs": "ะŸั€ะพะนะดะตะฝะฐ",
            "et": "Lรคbitud",
            "az": "KeรงilmiลŸdir",
            "ua": "ะŸั€ะพะนะดะตะฝะฐ",
            "es": "Completado"
          },
          "booked_by": null,
          "investigated": "no",
          "brand_logo": {
            "ru": "",
            "fr": "",
            "en": "",
            "nl": "",
            "be": "",
            "db": null,
            "ca": "",
            "de": "",
            "tr": "",
            "it": "",
            "sk": "",
            "ar": "",
            "th": "",
            "sl": "",
            "cs": "",
            "et": "",
            "az": "",
            "ua": "",
            "es": ""
          },
          "gamers_count": 4,
          "tickets_count": 0,
          "partial_prepay": true,
          "payment": {
            "ru": "ะพะฝะปะฐะนะฝ",
            "fr": "en ligne ",
            "en": "online",
            "nl": "online",
            "be": "ะพะฝะปะฐะนะฝ",
            "tr": "Online",
            "ca": "Online ",
            "de": "Online-Zahlung",
            "db": "online",
            "it": "online",
            "sk": "online",
            "ar": "ุฏูุน ุงู„ูƒุชุฑูˆู†ูŠ",
            "th": "เธญเธญเธ™เน„เธฅเธ™เนŒ",
            "sl": "ะพะฝะปะฐะนะฝ",
            "cs": "ะพะฝะปะฐะนะฝ",
            "et": "Online",
            "az": "onlayn",
            "ua": "ะพะฝะปะฐะนะฝ",
            "es": "Online"
          },
          "promocode_type": null,
          "lacking_sum_paid": false,
          "prepay_price": 3000,
          "booking_time_local": "28.12.2014 12:36",
          "hints_count": null,
          "booking_id": "PER 14 54 814",
          "booking_time": "2014-12-28T09:36:13+00:00",
          "timeslot": {
            "start": "2014-12-28T14:00:00+00:00",
            "price": 6000,
            "start_local_date": "28 ะดะตะบะฐะฑั€ั",
            "id": 95759,
            "caption": "ะšะพะปะปะตะบั†ะธะพะฝะตั€: 28.12.2014, 17:00",
            "es_start_local_date": "2014-12-28",
            "quest": {
              "rating_positions": [
                486,
                486
              ],
              "id": 108,
              "name": {
                "ru": "ะšะพะปะปะตะบั†ะธะพะฝะตั€",
                "fr": "",
                "en": "The Collector",
                "nl": "",
                "be": "",
                "db": "ะšะพะปะปะตะบั†ะธะพะฝะตั€",
                "ca": "",
                "de": "",
                "tr": "",
                "it": "",
                "sk": "",
                "ar": "",
                "th": "",
                "sl": "",
                "cs": "",
                "et": "",
                "az": null,
                "ua": "",
                "es": ""
              },
              "location": {
                "city": {
                  "timezone": "Europe/Moscow",
                  "country": {
                    "iso_code": "ru",
                    "id": 1,
                    "name": {
                      "ru": "ะ ะพััะธั",
                      "fr": "",
                      "en": "Russia",
                      "nl": "Rusland",
                      "be": "",
                      "db": "ะ ะพััะธั",
                      "ca": "",
                      "de": "Russland",
                      "tr": "",
                      "it": "",
                      "sk": "",
                      "ar": "",
                      "th": "",
                      "sl": "",
                      "cs": "",
                      "et": "",
                      "az": null,
                      "ua": "",
                      "es": ""
                    }
                  },
                  "id": 1,
                  "name": {
                    "ru": "ะœะพัะบะฒะฐ",
                    "fr": "",
                    "en": "Moscow",
                    "nl": "",
                    "be": "",
                    "db": "ะœะพัะบะฒะฐ",
                    "ca": "",
                    "de": "Moskau",
                    "tr": "",
                    "it": "",
                    "sk": "",
                    "ar": "",
                    "th": "",
                    "sl": "",
                    "cs": "",
                    "et": "",
                    "az": "",
                    "ua": "ะœะพัะบะฒะฐ",
                    "es": ""
                  }
                },
                "id": 55,
                "name": {
                  "ru": "ะŸะพะฒะฐั€ัะบะฐั",
                  "fr": "",
                  "en": "",
                  "nl": "",
                  "be": "",
                  "db": "ะŸะพะฒะฐั€ัะบะฐั",
                  "ca": "",
                  "de": "",
                  "tr": "",
                  "it": "",
                  "sk": "",
                  "ar": "",
                  "th": "",
                  "sl": "",
                  "cs": "",
                  "et": "",
                  "az": null,
                  "ua": "",
                  "es": ""
                }
              }
            },
            "prices_by_tickets_count": null,
            "start_local_dt": "2014-12-28T17:00:00+03:00",
            "start_local": "28.12.2014, 17:00"
          },
          "cancellation_reason": null,
          "cancellation": {
            "ru": "ะฝะตั‚",
            "fr": "non",
            "en": "no",
            "nl": "nee",
            "be": "ะฝะตั‚",
            "tr": "hayฤฑr",
            "ca": "No",
            "de": "nein",
            "db": "no",
            "it": "no",
            "sk": "nie",
            "ar": "ู„ุง",
            "th": "เน„เธกเนˆ",
            "sl": "ะฝะตั‚",
            "cs": "ะฝะตั‚",
            "et": "pole",
            "az": "ะฝะตั‚",
            "ua": "ะฝะตะผะฐั”",
            "es": "no"
          }
        }
      }

เจ•เจฒเจพเจธเจŸเฉเจฐเจพเจซเฉ‹เจฌเฉ€เจ† เจฆเฉ‡ เจ•เฉเจฐเฉˆเจกเจฟเจŸ เจฒเจˆ, เจ‰เจน เจ‰เจนเจจเจพเจ‚ เจ•เฉฐเจชเจจเฉ€เจ†เจ‚ เจฆเฉ€ เจ›เฉ‹เจŸเฉ€ เจธเฉฐเจ–เจฟเจ† เจตเจฟเฉฑเจšเฉ‹เจ‚ เจนเจจ เจœเฉ‹ เจธเฉฐเจญเจพเจตเฉ€ เจกเฉ‡เจŸเจพ เจ‰เจฒเฉฐเจ˜เจฃเจพ เจฆเฉ€เจ†เจ‚ เจฐเจฟเจชเฉ‹เจฐเจŸเจพเจ‚ เจฆเจพ เจœเจตเจพเจฌ เจฆเจฟเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจ เจ…เจคเฉ‡ เจ–เฉ‹เจœเจ•เจฐเจคเจพเจตเจพเจ‚ เจฆเจพ เจงเฉฐเจจเจตเจพเจฆ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจ:

เจจเจฎเจธเจ•เจพเจฐ เจฎเฉˆเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉฐเจชเจจเฉ€ เจ•เจฒเจพเจธเจŸเฉเจฐเฉ‹เจซเฉ‹เจฌเฉ€เจ† เจคเฉ‹เจ‚ เจฒเจฟเจ– เจฐเจฟเจนเจพ เจนเจพเจ‚, เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจœเจพเจฃเจฆเจพ เจนเฉˆเฅค เจธเจพเจจเฉ‚เฉฐ เจกเจพเจŸเจพ เจฒเฉ€เจ• เจนเฉ‹เจฃ เจฆเฉ‡ เจ–เจคเจฐเฉ‡ เจฆเฉ‡ เจธเจฌเฉฐเจง เจตเจฟเฉฑเจš เจซเฉ‡เจธเจฌเฉเฉฑเจ• 'เจคเฉ‡ เจคเฉเจนเจพเจกเจพ เจธเฉเจจเฉ‡เจนเจพ เจชเฉเจฐเจพเจชเจค เจนเฉ‹เจ‡เจ† เจนเฉˆ, เจœเจฟเจธ เจฒเจˆ เจฎเฉˆเจ‚ เจคเฉเจนเจพเจกเจพ เจตเจฟเจธเจผเฉ‡เจธเจผ เจคเฉŒเจฐ 'เจคเฉ‡ เจงเฉฐเจจเจตเจพเจฆ เจ•เจฐเจจเจพ เจšเจพเจนเจพเจ‚เจ—เจพ! เจงเฉฐเจจเจตเจพเจฆ เจฆเฉ‡ เจšเจฟเฉฐเจจเฉเจน เจตเจœเฉ‹เจ‚, เจ…เจธเฉ€เจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจพเจกเฉ€เจ†เจ‚ เจญเจตเจฟเฉฑเจ–เฉ€ เจ–เฉ‡เจกเจพเจ‚ เจฆเฉ‡ เจŸเฉˆเจธเจŸเจฐเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจฌเจฃเจจ เจฒเจˆ เจธเฉฑเจฆเจพ เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจธเจนเจฟเจฎเจค เจนเฉ‹, เจคเจพเจ‚ เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ€ เจธเฉฐเจชเจฐเจ• เจœเจพเจฃเจ•เจพเจฐเฉ€ เจญเฉ‡เจœเฉ‹: เจˆเจฎเฉ‡เจฒ เจ…เจคเฉ‡ เจŸเฉˆเจฒเฉ€เจซเจผเฉ‹เจจเฅค เจœเจฆเฉ‹เจ‚ เจŸเฉˆเจธเจŸ เจ•เฉ€เจคเฉ‡ เจœเจพเจฃเจ—เฉ‡ เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเฉฑเจฆเจพ เจฆเฉ‡เจตเจพเจ‚เจ—เฉ‡! เจคเฉเจนเจพเจกเฉ€ เจฎเจฆเจฆ เจฒเจˆ เจฆเฉเจฌเจพเจฐเจพ เจงเฉฐเจจเจตเจพเจฆ ๐Ÿ˜‰

เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฒเฉ€เจ• เจ…เจคเฉ‡ เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจฌเจพเจฐเฉ‡ เจ–เจผเจฌเจฐเจพเจ‚ เจนเจฎเฉ‡เจธเจผเจพ เจฎเฉ‡เจฐเฉ‡ เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจšเฉˆเจจเจฒ 'เจคเฉ‡ เจชเจพเจˆเจ†เจ‚ เจœเจพ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจ"เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฒเฉ€เจ•".

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹