HabrastatisticsαŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž› Habr αžšαžŸαŸ‹αž“αŸ…αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“ geektimes

ហេ αž αžΆαž”αŸ‹

αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαž”αž“αŸ’αžαž‘αžΌαž‡αžΈαžαž›αž“αŸƒαž€αžΆαžšαžœαžΆαž™αžαž˜αŸ’αž›αŸƒ αž’αžαŸ’αžαž”αž‘ Habr αž›αŸ’αž’αž”αŸ†αž•αž»αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž†αŸ’αž“αžΆαŸ† 2018. αž αžΎαž™αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž†αŸ’αž“αžΆαŸ†αž˜αž·αž“αž‘αžΆαž“αŸ‹αž…αž”αŸ‹αž€αŸαžŠαŸ„αž™ αžŠαžΌαž…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αžΆαž“αžŠαžΉαž„αž αžΎαž™αžαžΆαž“αŸ…αžšαžŠαžΌαžœαž€αŸ’αžαŸ…αž˜αžΆαž“αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž…αŸ’αž”αžΆαž”αŸ‹ αž’αžΆαžŸαŸ’αžšαŸαž™αž αŸαžαž»αž“αŸαŸ‡ αžœαžΆαž”αžΆαž“αž€αŸ’αž›αžΆαž™αž‡αžΆαž€αžΆαžšαž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž˜αžΎαž›αžαžΆαžαžΎαžœαžΆαž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžŠαž›αŸ‹αž’αŸ’αžœαžΈαŸ”

HabrastatisticsαŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž› Habr αžšαžŸαŸ‹αž“αŸ…αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“ geektimes

αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαžŸαŸ’αžαž·αžαž·αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„ αž€αžΆαžšαžœαžΆαž™αžαž˜αŸ’αž›αŸƒαž’αžαŸ’αžαž”αž‘αžŠαŸ‚αž›αž”αžΆαž“αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“ αž€αŸαžŠαžΌαž…αž‡αžΆαž€αžΌαžŠαž”αŸ’αžšαž—αž–αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž›αžΎαžšαž”αŸ€αž”αžŠαŸ‚αž›αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ”

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž“αžΉαž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αžΆαž“αž€αžΎαžαž‘αžΎαž„ αž€αžΆαžšαž”αž“αŸ’αžαž‚αžΊαžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αžšαŸ„αž˜αž€αžΆαžšαž€αžΆαžαŸ‹αŸ” αž’αŸ’αž“αž€αžŠαŸ‚αž›αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž›αžΎαž€αžΆαžšαžœαž·αž—αžΆαž‚αž›αž˜αŸ’αž’αž·αžαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž“αŸƒαž•αŸ’αž“αŸ‚αž€αž“αŸƒαž‚αŸαž αž‘αŸ†αž–αŸαžšαž€αŸαž’αžΆαž…αž˜αžΎαž›αž•αž„αžŠαŸ‚αžšαŸ” αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αž‘αžΆαž”αŸ‹.

αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ†αž”αžΌαž„

αž€αžΆαžšαžœαžΆαž™αžαž˜αŸ’αž›αŸƒαž“αŸαŸ‡αž‚αžΊαž˜αž·αž“αž•αŸ’αž›αžΌαžœαž€αžΆαžš αž αžΎαž™αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž˜αžΆαž“αž–αŸαžαŸŒαž˜αžΆαž“αžαžΆαž„αž€αŸ’αž“αž»αž„αžŽαžΆαž˜αž½αž™αž‘αŸαŸ” αžŠαžΌαž…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰αž™αŸ‰αžΆαž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŠαŸ„αž™αž˜αžΎαž›αžšαž”αžΆαžšαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž’αžαŸ’αžαž”αž‘αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸ…αž›αžΎ Habre αž˜αžΆαž“αž›αŸαžαžšαŸ€αž„αž”αž“αŸ’αžαŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžœαžΆαž‡αžΆαž”αž‰αŸ’αž αžΆαž“αŸƒαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸ αž™αžΎαž„αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž’αžΆαž“αž’αžαŸ’αžαž”αž‘αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž€αŸ’αž“αž»αž„αž‡αž½αžšαž˜αž½αž™αž€αŸ’αž“αž»αž„αžšαž„αŸ’αžœαž„αŸ‹αž˜αž½αž™ (αž€αŸ’αž“αž»αž„αž˜αž½αž™αžαŸ’αžŸαŸ‚ αž“αž·αž„αž•αŸ’αž’αžΆαž€ αžŠαžΎαž˜αŸ’αž”αžΈαž€αž»αŸ†αž±αŸ’αž™αž•αŸ’αž‘αž»αž€αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ)αŸ” αžαž˜αŸ’αž›αŸƒαžαŸ’αž›αž½αž“αž‚αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž‘αž½αž›αžŠαŸ„αž™αž’αŸ’αž“αž€αž‰αŸ‚αž€αžŸαžΆαž˜αž‰αŸ’αž‰αž“αŸ…αž€αŸ’αž“αž»αž„ Python (αž”αŸ’αžšαž—αž–αž˜αžΆαž“ αž“αŸ…αž‘αžΈαž“αŸαŸ‡) αž αžΎαž™αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš csv αž’αŸ’αžœαžΈαž˜αž½αž™αžŠαžΌαž…αž“αŸαŸ‡αŸ–

2019-08-11T22:36Z,https://habr.com/ru/post/463197/,"Blazor + MVVM = Silverlight наносит ΠΎΡ‚Π²Π΅Ρ‚Π½Ρ‹ΠΉ ΡƒΠ΄Π°Ρ€, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΄Ρ€Π΅Π²Π½Π΅Π΅ Π·Π»ΠΎ Π½Π΅ΠΏΠΎΠ±Π΅Π΄ΠΈΠΌΠΎ",votes:11,votesplus:17,votesmin:6,bookmarks:40,views:5300,comments:73
2019-08-11T05:26Z,https://habr.com/ru/news/t/463199/,"Π’ NASA испытали систСму Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ управлСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ микроспутника Π΄Ρ€ΡƒΠ³ΠΈΠΌ",votes:15,votesplus:15,votesmin:0,bookmarks:2,views:1700,comments:7

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‰αŸ‚αž€αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΎ Python, Pandas αž“αž·αž„ Matplotlib αŸ” αž’αŸ’αž“αž€αžŠαŸ‚αž›αž˜αž·αž“αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž›αžΎαžŸαŸ’αžαž·αžαž·αž’αžΆαž…αžšαŸ†αž›αž„αž•αŸ’αž“αŸ‚αž€αž“αŸαŸ‡ αž αžΎαž™αž‘αŸ…αžαŸ’αžšαž„αŸ‹αž’αžαŸ’αžαž”αž‘αŸ”

αžŠαŸ†αž”αžΌαž„αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž•αŸ’αž‘αž»αž€αžŸαŸ†αžŽαž»αŸ†αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αŸ…αž€αŸ’αž“αž»αž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αž αžΎαž™αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž†αŸ’αž“αžΆαŸ†αžŠαŸ‚αž›αž’αŸ’αž“αž€αž…αž„αŸ‹αž”αžΆαž“αŸ”

import pandas as pd
import datetime
import matplotlib.dates as mdates
from matplotlib.ticker import FormatStrFormatter
from pandas.plotting import register_matplotlib_converters


df = pd.read_csv("habr.csv", sep=',', encoding='utf-8', error_bad_lines=True, quotechar='"', comment='#')
dates = pd.to_datetime(df['datetime'], format='%Y-%m-%dT%H:%MZ')
df['datetime'] = dates
year = 2019
df = df[(df['datetime'] >= pd.Timestamp(datetime.date(year, 1, 1))) & (df['datetime'] < pd.Timestamp(datetime.date(year+1, 1, 1)))]

print(df.shape)

αžœαžΆαž”αŸ’αžšαŸ‚αžαžΆαž“αŸ…αž†αŸ’αž“αžΆαŸ†αž“αŸαŸ‡ (αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαžœαžΆαž˜αž·αž“αž‘αžΆαž“αŸ‹αž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹) αž“αŸ…αž–αŸαž›αžŸαžšαžŸαŸαžšαž’αžαŸ’αžαž”αž‘ 12715 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž†αŸ’αž“αžΆαŸ† 2018 αž‘αžΆαŸ†αž„αž˜αžΌαž› - 15904 αŸ” αž‡αžΆαž‘αžΌαž‘αŸ… αž…αŸ’αžšαžΎαž“αžŽαžΆαžŸαŸ‹ - αž“αŸαŸ‡αž‚αžΊαž”αŸ’αžšαž αŸ‚αž› 43 αž’αžαŸ’αžαž”αž‘αž€αŸ’αž“αž»αž„αž˜αž½αž™αžαŸ’αž„αŸƒ (αž αžΎαž™αž“αŸαŸ‡αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆαž€αžΆαžšαžœαžΆαž™αžαž˜αŸ’αž›αŸƒαž‡αžΆαžœαž·αž‡αŸ’αž‡αž˜αžΆαž“αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αžαžΎαž’αžαŸ’αžαž”αž‘αžŸαžšαž»αž”αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž‰αž™αž€αžŠαŸ‚αž›αž’αžœαž·αž‡αŸ’αž‡αž˜αžΆαž“ αž¬αžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αž»αž” αž˜αž“αž»αžŸαŸ’αžŸαž˜αŸ’αž“αžΆαž€αŸ‹αž’αžΆαž…αž‘αžΆαž™αž”αžΆαž“αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž¬αž€αžΆαžšαž”αŸ‰αžΆαž“αŸ‹αž”αŸ’αžšαž˜αžΆαžŽαž–αžΈαž‚αž˜αŸ’αž›αžΆαžαž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž’αŸ’αž“αž€αž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽ)αŸ”

αž…αžΌαžšαž™αžΎαž„αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžœαžΆαž›αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž–αžΈαžŸαŸ†αžŽαž»αŸ†αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αž‡αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΎαž…αŸ†αž“αž½αž“αž“αŸƒαž€αžΆαžšαž˜αžΎαž› αž˜αžαž·αž™αŸ„αž”αž›αŸ‹ αžαž˜αŸ’αž›αŸƒαžœαžΆαž™αžαž˜αŸ’αž›αŸƒ αž“αž·αž„αž…αŸ†αž“αž½αž“αž…αŸ†αžŽαžΆαŸ†αŸ”

def to_float(s):
    # "bookmarks:22" => 22.0
    num = ''.join(i for i in s if i.isdigit())
    return float(num)

def to_int(s):
    # "bookmarks:22" => 22
    num = ''.join(i for i in s if i.isdigit())
    return int(num)

def to_date(dt):
    return dt.date() 

date = dates.map(to_date, na_action=None)
views = df["views"].map(to_int, na_action=None)
bookmarks = df["bookmarks"].map(to_int, na_action=None)
votes = df["votes"].map(to_float, na_action=None)
votes_up = df["up"].map(to_float, na_action=None)
votes_down = df["down"].map(to_float, na_action=None)
comments = df["comments"].map(to_int, na_action=None)

df['date'] = date
df['views'] = views
df['votes'] = votes
df['bookmarks'] = bookmarks
df['up'] = votes_up
df['down'] = votes_down

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ†αžŽαž»αŸ†αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž αžΎαž™αž™αžΎαž„αž’αžΆαž…αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžœαžΆαž”αžΆαž“αŸ” αž…αžΌαžšαž™αžΎαž„αžŠαžΆαž€αŸ‹αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‡αžΆαž€αŸ’αžšαž»αž˜αžαžΆαž˜αžαŸ’αž„αŸƒ αž αžΎαž™αž™αž€αžαž˜αŸ’αž›αŸƒαž˜αž’αŸ’αž™αž˜αŸ”

g = df.groupby(['date'])
days_count = g.size().reset_index(name='counts')
year_days = days_count['date'].values
grouped = g.median().reset_index()
grouped['counts'] = days_count['counts']
counts_per_day = grouped['counts'].values
counts_per_day_avg = grouped['counts'].rolling(window=20).mean()
view_per_day = grouped['views'].values
view_per_day_avg = grouped['views'].rolling(window=20).mean()
votes_per_day = grouped['votes'].values
votes_per_day_avg = grouped['votes'].rolling(window=20).mean()
bookmarks_per_day = grouped['bookmarks'].values
bookmarks_per_day_avg = grouped['bookmarks'].rolling(window=20).mean()

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž•αŸ’αž“αŸ‚αž€αž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž‚αžΊαžαžΆαž™αžΎαž„αž’αžΆαž…αž˜αžΎαž›αž€αŸ’αžšαžΆαž αŸ’αžœαŸ”

αžŸαžΌαž˜αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αž…αŸ†αž“αž½αž“αž“αŸƒαž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž“αŸ…αž›αžΎ Habre αž€αŸ’αž“αž»αž„αž†αŸ’αž“αžΆαŸ† 2019 αŸ”

import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = (16, 8)
fig, ax = plt.subplots()

plt.bar(year_days, counts_per_day, label='Articles/day')
plt.plot(year_days, counts_per_day_avg, 'g-', label='Articles avg/day')
plt.xticks(rotation=45)
ax.xaxis.set_major_formatter(mdates.DateFormatter("%d-%m-%Y"))  
ax.xaxis.set_major_locator(mdates.MonthLocator(interval=1))
plt.legend(loc='best')
plt.tight_layout()
plt.show()

αž›αž‘αŸ’αž’αž•αž›αž‚αžΊαž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαŸ” αžŠαžΌαž…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αžƒαžΎαž‰ Habr αž‚αžΊαž‡αžΆ "αžŸαžΆαž…αŸ‹αž€αŸ’αžšαž€" αžαž·αž…αžαž½αž…αž–αŸαž‰αž˜αž½αž™αž†αŸ’αž“αžΆαŸ†αŸ” αžαŸ’αž‰αž»αŸ†β€‹αž˜αž·αž“β€‹αžŠαžΉαž„β€‹αž˜αžΌαž›αž αŸαžαž»β€‹αž‘αŸαŸ”

HabrastatisticsαŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž› Habr αžšαžŸαŸ‹αž“αŸ…αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“ geektimes

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž†αŸ’αž“αžΆαŸ† 2018 αž˜αžΎαž›αž‘αŸ…αžšαž›αžΌαž“αž‡αžΆαž„αž”αž“αŸ’αžαž·αž…αŸ–

HabrastatisticsαŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž› Habr αžšαžŸαŸ‹αž“αŸ…αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“ geektimes

αž‡αžΆαž‘αžΌαž‘αŸ… αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž”αžΆαž“αžƒαžΎαž‰αž€αžΆαžšαžαž™αž…αž»αŸ‡αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αž“αŸƒαž…αŸ†αž“αž½αž“αž’αžαŸ’αžαž”αž‘αžŠαŸ‚αž›αž”αžΆαž“αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2019 αž“αŸ…αž›αžΎαž€αŸ’αžšαžΆαž αŸ’αžœαž“αŸ„αŸ‡αž‘αŸαŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ…αž‘αŸ€αž αž•αŸ’αž‘αž»αž™αž‘αŸ…αžœαž·αž‰ αžœαžΆαž αžΆαž€αŸ‹αž”αžΈαžŠαžΌαž…αž‡αžΆαž”αžΆαž“αž€αžΎαž“αž‘αžΎαž„αž”αž“αŸ’αžαž·αž…αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαžšαžŠαžΌαžœαž€αŸ’αžαŸ…αž˜αž€αŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž€αŸ’αžšαžΆαž αŸ’αžœβ€‹αž–αžΈαžšβ€‹αž”αž“αŸ’αž‘αžΆαž”αŸ‹β€‹αž’αŸ’αžœαžΎβ€‹αž²αŸ’αž™β€‹αžαŸ’αž‰αž»αŸ†β€‹αž’αŸ’αž›αžΆαž€αŸ‹β€‹αž‘αžΉαž€β€‹αž…αž·αžαŸ’αžβ€‹αž”αž“αŸ’αžαž·αž…β€‹αž‘αŸ€αžαŸ”

αž…αŸ†αž“αž½αž“αž˜αžΎαž›αž‡αžΆαž˜αž’αŸ’αž™αž˜αž€αŸ’αž“αž»αž„αž˜αž½αž™αž’αžαŸ’αžαž”αž‘αŸ–

HabrastatisticsαŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž› Habr αžšαžŸαŸ‹αž“αŸ…αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“ geektimes

αž€αžΆαžšαžœαžΆαž™αžαž˜αŸ’αž›αŸƒαž‡αžΆαž˜αž’αŸ’αž™αž˜αž€αŸ’αž“αž»αž„αž˜αž½αž™αž’αžαŸ’αžαž”αž‘αŸ–

HabrastatisticsαŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž› Habr αžšαžŸαŸ‹αž“αŸ…αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“ geektimes

αžŠαžΌαž…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αžƒαžΎαž‰αž…αŸ†αž“αž½αž“αž˜αžΎαž›αž‡αžΆαž˜αž’αŸ’αž™αž˜αžαž™αž…αž»αŸ‡αž”αž“αŸ’αžαž·αž…αž–αŸαž‰αž˜αž½αž™αž†αŸ’αž“αžΆαŸ†αŸ” αž“αŸαŸ‡αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž“αŸ’αž™αž›αŸ‹αžŠαŸ„αž™αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž’αžαŸ’αžαž”αž‘αžαŸ’αž˜αžΈαž˜αž·αž“αž‘αžΆαž“αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž›αž·αž”αž·αž€αŸ’αžšαž˜αžŠαŸ„αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžŸαŸ’αžœαŸ‚αž„αžšαž€αž αžΎαž™αžœαžΆαž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αžƒαžΎαž‰αž‰αžΉαž€αž‰αžΆαž”αŸ‹αž‘αŸαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž€αžΆαžšβ€‹αž’αŸ’αž›αžΆαž€αŸ‹β€‹αž…αž»αŸ‡β€‹αž€αžΆαžšβ€‹αžœαžΆαž™αžαž˜αŸ’αž›αŸƒβ€‹αž‡αžΆβ€‹αž˜αž’αŸ’αž™αž˜β€‹αž€αŸ’αž“αž»αž„β€‹αž˜αž½αž™β€‹αž’αžαŸ’αžαž”αž‘β€‹αž‚αžΊβ€‹αž˜αž·αž“β€‹αž’αžΆαž…β€‹αž™αž›αŸ‹β€‹αž”αžΆαž“β€‹αž…αŸ’αžšαžΎαž“β€‹αž‡αžΆαž„αŸ” αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž‚αžΊαžαžΆαž’αŸ’αž“αž€αž’αžΆαž“αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž˜αž·αž“αž˜αžΆαž“αž–αŸαž›αžœαŸαž›αžΆαžŠαžΎαž˜αŸ’αž”αžΈαž˜αžΎαž›αž’αžαŸ’αžαž”αž‘αž‡αžΆαž…αŸ’αžšαžΎαž“αž¬αž˜αž·αž“αž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹αž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαžœαžΆαž™αžαž˜αŸ’αž›αŸƒαŸ” αžαžΆαž˜αž‘αžŸαŸ’αžŸαž“αŸˆαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž„αŸ’αžœαžΆαž“αŸ‹αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’ αž“αž·αž“αŸ’αž“αžΆαž€αžΆαžšαž“αŸαŸ‡αž‚αžΊαž˜αž·αž“αžŸαž”αŸ’αž”αžΆαž™αž…αž·αžαŸ’αžαžαŸ’αž›αžΆαŸ†αž„αžŽαžΆαžŸαŸ‹αŸ”

αžŠαŸ„αž™αžœαž·αž’αžΈαž“αŸαŸ‡αžœαžΆαž˜αž·αž“αž”αžΆαž“αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2018 αž αžΎαž™αž€αžΆαž›αžœαž·αž—αžΆαž‚αž‚αžΊαž…αŸ’αžšαžΎαž“αž¬αžαž·αž…αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αŸ”

HabrastatisticsαŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž› Habr αžšαžŸαŸ‹αž“αŸ…αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“ geektimes

αž‡αžΆαž‘αžΌαž‘αŸ… αž˜αŸ’αž…αžΆαžŸαŸ‹αž’αž“αž’αžΆαž“αž˜αžΆαž“αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αž·αžαŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αžŸαžΌαž˜β€‹αž€αž»αŸ†β€‹αž“αž·αž™αžΆαž™β€‹αž’αŸ†αž–αžΈβ€‹αžšαžΏαž„β€‹αžŸαŸ„αž€αžŸαŸ…αŸ” αž‡αžΆαž‘αžΌαž‘αŸ…αž™αžΎαž„αž’αžΆαž…αž“αž·αž™αžΆαž™αž”αžΆαž“αžαžΆ Habr "αžšαžŸαŸ‹αžšαžΆαž“αž˜αžΆαž“αž‡αžΈαžœαž·αž" αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžšαžŠαžΌαžœαž€αŸ’αžαŸ…αžŠαŸ„αž™αž‡αŸ„αž‚αž‡αŸαž™αž αžΎαž™αž…αŸ†αž“αž½αž“αž’αžαŸ’αžαž”αž‘αž“αŸ…αž›αžΎαž‚αŸαž αž‘αŸ†αž–αŸαžšαž˜αž·αž“αžαž™αž…αž»αŸ‡αž‘αŸαŸ”

αž€αžΆαžšαžœαžΆαž™αžαŸ†αž›αŸƒ

αž₯αž‘αžΌαžœαž“αŸαŸ‡αžαžΆαž˜αž–αž·αžαž€αžΆαžšαžœαžΆαž™αžαž˜αŸ’αž›αŸƒαŸ” αžŸαžΌαž˜αž’αž”αž’αžšαžŸαžΆαž‘αžšαžŠαž›αŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αž”αžΆαž“αž…αžΌαž›αŸ” αžαŸ’αž‰αž»αŸ†αžŸαžΌαž˜αžšαŸ†αž›αžΉαž€αž’αŸ’αž“αž€αž˜αŸ’αžαž„αž‘αŸ€αžαžαžΆ αž€αžΆαžšαžœαžΆαž™αžαž˜αŸ’αž›αŸƒαž‚αžΊαž˜αž·αž“αž•αŸ’αž›αžΌαžœαž€αžΆαžš αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαžαŸ’αž‰αž»αŸ†αžαž€αžαžΆαž“αž’αŸ’αžœαžΈαž˜αž½αž™ αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αžαŸ’αžαž”αž‘αžαŸ’αž›αŸ‡αž‚αž½αžšαžαŸ‚αž“αŸ…αž‘αžΈαž“αŸαŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž˜αž·αž“αž˜αŸ‚αž“αž‘αŸ សរសេរ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž”αž“αŸ’αžαŸ‚αž˜αžœαžΆαžŠαŸ„αž™αžŠαŸƒαŸ” αž‡αžΆβ€‹αž€αžΆαžšβ€‹αžœαžΆαž™αžαž˜αŸ’αž›αŸƒ αžαŸ’αž‰αž»αŸ†β€‹αž”αŸ’αžšαžΎβ€‹αž˜αŸ‰αŸ‚αžαŸ’αžšβ€‹αž‚αžŽαž“αžΆ αžŠαŸ‚αž›β€‹αžαŸ’αž‰αž»αŸ†β€‹αž‚αž·αžβ€‹αžαžΆβ€‹αž‚αž½αžšβ€‹αž±αŸ’αž™β€‹αž…αžΆαž”αŸ‹β€‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸβ€‹αžŽαžΆαžŸαŸ‹αŸ”

αž’αžαŸ’αžαž”αž‘αž–αŸαž‰αž“αž·αž™αž˜αžαžΆαž˜αž…αŸ†αž“αž½αž“αž“αŸƒαž€αžΆαžšαž˜αžΎαž›

αž’αžαŸ’αžαž”αž‘αž–αŸαž‰αž“αž·αž™αž˜αžŠαŸ„αž™αž€αžΆαžšαžœαžΆαž™αžαž˜αŸ’αž›αŸƒαž‘αŸ…αžŸαž˜αžΆαž˜αžΆαžαŸ’αžšαž€αžΆαžšαž˜αžΎαž›

αž’αžαŸ’αžαž”αž‘αž–αŸαž‰αž“αž·αž™αž˜αžŠαŸ„αž™αž˜αžαž·αž™αŸ„αž”αž›αŸ‹αž…αŸ†αž–αŸ„αŸ‡αžŸαž˜αžΆαž˜αžΆαžαŸ’αžšαž€αžΆαžšαž˜αžΎαž›

αž€αŸ†αž–αžΌαž›αž’αžαŸ’αžαž”αž‘αž…αž˜αŸ’αžšαžΌαž„αž…αž˜αŸ’αžšαžΆαžŸαž”αŸ†αž•αž»αžαŸ”

αž’αžαŸ’αžαž”αž‘αž–αŸαž‰αž“αž·αž™αž˜αžŠαŸ„αž™αž€αžΆαžšαžœαžΆαž™αžαž˜αŸ’αž›αŸƒ

αž’αžαŸ’αžαž”αž‘αž–αŸαž‰αž“αž·αž™αž˜αžαžΆαž˜αž…αŸ†αž“αž½αž“αž…αŸ†αžŽαžΆαŸ†

αž€αŸ†αž–αžΌαž›αžŠαŸ„αž™αžŸαž˜αžΆαž˜αžΆαžαŸ’αžšαž“αŸƒαž…αŸ†αžŽαžΆαŸ†αž‘αŸ…αž“αžΉαž„αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–

αž’αžαŸ’αžαž”αž‘αž–αŸαž‰αž“αž·αž™αž˜αžαžΆαž˜αž…αŸ†αž“αž½αž“αž˜αžαž·αž™αŸ„αž”αž›αŸ‹

αž αžΎαž™αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž‚αžΊαž…αž»αž„αž€αŸ’αžšαŸ„αž™ Antitop αžαžΆαž˜αž…αŸ†αž“αž½αž“αž“αŸƒαž€αžΆαžšαž˜αž·αž“αž…αžΌαž›αž…αž·αžαŸ’αž

αž’αž»αž‰αŸ” αžαŸ’αž‰αž»αŸ†β€‹αž˜αžΆαž“β€‹αž‡αž˜αŸ’αžšαžΎαžŸβ€‹αž‚αž½αžšβ€‹αž±αŸ’αž™β€‹αž…αžΆαž”αŸ‹β€‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸβ€‹αž˜αž½αž™β€‹αž…αŸ†αž“αž½αž“β€‹αž‘αŸ€αž αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αžαŸ’αž‰αž»αŸ†β€‹αž“αžΉαž„β€‹αž˜αž·αž“β€‹αž’αž»αž‰β€‹αž’αŸ’αž“αž€β€‹αž’αžΆαž“β€‹αž‘αžΎαž™αŸ”

αžŸαŸαž…αž€αŸ’αžαžΈαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“

αž“αŸ…αž–αŸαž›αžŸαžΆαž„αžŸαž„αŸ‹αž€αžΆαžšαžœαžΆαž™αžαž˜αŸ’αž›αŸƒ αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹αž›αžΎαž…αŸ†αžŽαž»αž…αž–αžΈαžšαžŠαŸ‚αž›αž˜αžΎαž›αž‘αŸ…αž‚αž½αžšαž’αŸ„αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαŸ”

αž‘αžΈαž˜αž½αž™ 60% αž“αŸƒαž€αŸ†αž–αžΌαž›αž‚αžΊαž‡αžΆαž’αžαŸ’αžαž”αž‘αž“αŸƒαž”αŸ’αžšαž—αŸαž‘ "geektimes" αŸ” αžαžΆαžαžΎαžœαžΆαž“αžΉαž„αž˜αžΆαž“αž…αŸ†αž“αž½αž“αžαž·αž…αž“αŸ…αž†αŸ’αž“αžΆαŸ†αž€αŸ’αžšαŸ„αž™ αž αžΎαž™αž’αŸ’αžœαžΈαžŠαŸ‚αž› Habr αž“αžΉαž„αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž’αžαŸ’αžαž”αž‘αž’αŸ†αž–αžΈαžŸαŸ’αžšαžΆαž”αŸ€αžš αž›αŸ†αž  αžαŸ’αž“αžΆαŸ†αž–αŸαž‘αŸ’αž™αž‡αžΆαžŠαžΎαž˜αž“αŸ„αŸ‡ αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αžŠαžΉαž„αž‘αŸαŸ” αž”αŸ’αžšαžΆαž€αžŠαžŽαžΆαžŸαŸ‹ αž’αŸ’αž“αž€αž’αžΆαž“αž“αžΉαž„αž”αžΆαžαŸ‹αž”αž„αŸ‹αž’αŸ’αžœαžΈαž˜αž½αž™αŸ” αžŸαžΌαž˜β€‹αž˜αžΎαž›αŸ”

αž‘αžΈαž–αžΈαžš αž…αŸ†αžŽαžΆαŸ†αž€αŸ†αž–αžΌαž›αž”αžΆαž“αž”αŸ’αžšαŸ‚αž‘αŸ…αž‡αžΆαž˜αžΆαž“αž‚αž»αžŽαž—αžΆαž–αžαŸ’αž–αžŸαŸ‹αžŠαŸ‚αž›αž˜αž·αž“αž“αžΉαž€αžŸαŸ’αž˜αžΆαž“αžŠαž›αŸ‹αŸ” αž“αŸαŸ‡β€‹αž‚αžΊβ€‹αž‡αžΆβ€‹αž•αŸ’αž›αžΌαžœαž…αž·αžαŸ’αžβ€‹αž’αŸ’αž“αž€β€‹αž’αžΆαž“β€‹αž”αŸ’αžšαž αŸ‚αž›β€‹αž‡αžΆβ€‹αž˜αž·αž“β€‹αž™αž€β€‹αž…αž·αžαŸ’αžβ€‹αž‘αž»αž€β€‹αžŠαžΆαž€αŸ‹β€‹αž‘αŸ…β€‹αž“αžΉαž„β€‹αž€αžΆαžšβ€‹αžœαžΆαž™β€‹αžαž˜αŸ’αž›αŸƒ, αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž”αŸ’αžšαžŸαž·αž“β€‹αž”αžΎβ€‹αž’αžαŸ’αžαž”αž‘ αžαŸ’αžšαžΌαžœαž€αžΆαžšαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžœαžΆαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž…αŸ†αžŽαžΆαŸ†αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž αžΎαž™αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αžŠαŸαž’αŸ†αž”αŸ†αž•αž»αžαž“αŸƒαž’αžαŸ’αžαž”αž‘αžŠαŸ‚αž›αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸ αž“αž·αž„αž’αŸ’αž„αž“αŸ‹αž’αŸ’αž„αžšαŸ” αžαŸ’αž‰αž»αŸ†αž‚αž·αžαžαžΆαž˜αŸ’αž…αžΆαžŸαŸ‹αž‚αŸαž αž‘αŸ†αž–αŸαžšαž‚αž½αžšαžαŸ‚αž‚αž·αžαžŠαžΌαž…αž˜αŸ’αžŠαŸαž…αžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžšαžœαžΆαž„αž…αŸ†αž“αž½αž“αž…αŸ†αžŽαžΆαŸ† αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž„αŸ’αžœαžΆαž“αŸ‹ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž–αž½αž€αž‚αŸαž…αž„αŸ‹αž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαž—αŸαž‘αž’αžαŸ’αžαž”αž‘αž–αž·αžŸαŸαžŸαž“αŸαŸ‡αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž“αŸ…αž›αžΎHabrΓ©αŸ”

αž’αŸ’αžœαžΈαž˜αž½αž™β€‹αžŠαžΌαž…αž“αŸαŸ‡αŸ” αžαŸ’αž‰αž»αŸ†αžŸαž„αŸ’αžƒαžΉαž˜αžαžΆαžœαžΆαž‡αžΆαž–αŸαžαŸŒαž˜αžΆαž“αŸ”

αž”αž‰αŸ’αž‡αžΈαž“αŸƒαž’αžαŸ’αžαž”αž‘αž”αŸ’αžšαŸ‚αž‘αŸ…αž‡αžΆαžœαŸ‚αž„ αž›αŸ’αž’ αžœαžΆαž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž€αžΆαž“αŸ‹αžαŸ‚αž”αŸ’αžšαžŸαžΎαžšαŸ” αžšαžΈαž€αžšαžΆαž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αŸ’αž“αžΆαŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹