α α α αΆαα
Π
αααααΆααα’ααααααα
αΆααα’αΆααααααααΉαα’αααΈαααααΆαααΎαα‘αΎα ααΆαααααααΊαααα·ααα
αααααααΆαααΆααα
αααα»αααΌαααααΉαα’ααααααααααααΆ αααα·αα· αα·αααΆαααΆαααααααα·ααααααΆααααΌαααΆααα αααα»ααα·αααΆαααααααΆαααΆααααα»αααΆαα½αααα ααΆαααα·αααααΌαααΆαααΆααΆααΆ αααα»ααα·αααΆαααααΎαα»ααα
ααααααααΆαα½α α¬ααααΆαα’αααΈαα½ααααααα ααα»αααααα
αααααα»ααα·αααΆααΆααααααΆαα½αα±ααα
αΆααα’αΆααααααα ααΎαααΉαα
αΆααααααΎαααΆαα½αααΌαααΆαα»α α’αααααααα·αα
αΆααα’αΆααααααα’αΆα
αααααααααααααΌαααΆαα
ααΆαβαααααΌαβαα·αααααα
αα αααα»αααααααααΌααααααααα·ααΈααα ααΆαααα ααα½αααααΆαααΎα ααα·ααααα αα·αααΆαααΆααααααα’αααααααα»ααααααααααααΌαααΆααααααα·α αΆαααΆα αααααΊααα’αα½α αα α αΎα ααα»ααααααΆαα·αα’αα»ααααΆαα±ααα’ααααααααΎααααα½ααααα»αααααΆααααααααααααα ααΆααααααα αΎαααΎααααΈαα·ααΆαααααααααααΆαααααααα ααααα ααΆααΉαα’αα»ααααΆαα±ααα’αααααααΎααΆαααααΆαααααΆααα½αα±ααα αΆααα’αΆαααααα α§ααΆα ααα ααΎαααΈααααααααααααΆαααα·αααΆαααααααα "C++" ααΆαααααΆααααααΌααααα»αααααααααΆα αααΎαααααΆαα
αααααα·ααΈαααα’αααααααααΌαααΆααααααα’ α₯α‘αΌααααααΆαααα‘ααααααααααααααα’αααααααΆαααααα·αααα· ααααΌα ααΆαααααα α αααα ααααα’ααααα·αααα αα·αααΆαααΆααααααααααααΆαα (ααΏααα½αα±ααα αΆααα’αΆααααααααΆα αααΎαα’αΆα ααααΎαα ααΈαααααααα ααα»ααααααΆααΉααααα αααααααα)α αα·ααααααααααΌαααΆααααααΆαα»ααααα»αα―αααΆα csv αααααΎααα ααΌα αααα
2018-12-18T12:43Z,https://habr.com/ru/post/433550/,"ΠΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅Ρ Slack β ΠΏΡΠΈΡΠΈΠ½Ρ Π²ΡΠ±ΠΎΡΠ°, ΠΊΠΎΡΡΠΊΠΈ ΠΏΡΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠΈ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°, ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡΠΈΠ΅ ΠΆΠΈΠ·Π½Ρ",votes:7,votesplus:8,votesmin:1,bookmarks:32,
views:8300,comments:10,user:ReDisque,karma:5,subscribers:2,hubs:productpm+soft
...
ααΎαααΉαααα½αααΆααααααΈααααααααααααααααΆαααααααΆαααααααα αααααα
def get_as_str(link: str) -> Str:
try:
r = requests.get(link)
return Str(r.text)
except Exception as e:
return Str("")
def get_hubs():
hubs = []
for p in range(1, 12):
page_html = get_as_str("https://habr.com/ru/hubs/page%d/" % p)
# page_html = get_as_str("https://habr.com/ru/hubs/geektimes/page%d/" % p) # Geektimes
# page_html = get_as_str("https://habr.com/ru/hubs/develop/page%d/" % p) # Develop
# page_html = get_as_str("https://habr.com/ru/hubs/admin/page%d" % p) # Admin
for hub in page_html.split("media-obj media-obj_hub"):
info = Str(hub).find_between('"https://habr.com/ru/hub', 'list-snippet__tags')
if "*</span>" in info:
hub_name = info.find_between('/', '/"')
if len(hub_name) > 0 and len(hub_name) < 32:
hubs.append(hub_name)
print(hubs)
αα»αααΆα find_between αα·αααααΆαα Str ααααΎαααΎαααααα’αααααααΆαααααΆαααΈα αααα»αααΆαααααΎαα½αααΆ
αααααααααα»αααΆα get_hubs ααΊααΆαααααΈαα½αα±ααα αΆααα’αΆαααααααα½α αααααΎααααααΆαα»αααΆαα ααΆαα»ααααα αααα»ααααα»ααααα αΆαααΆαα·αααααΌααααααΈααΆααααΌαααααααΆ ααΌα ααααα’αααα’αΆα αααΆααααααΆαααα·ααΆαααααααΆα
hubs_profile = {'infosecurity', 'programming', 'webdev', 'python', 'sys_admin', 'it-infrastructure', 'devops', 'javascript', 'open_source', 'network_technologies', 'gamedev', 'cpp', 'machine_learning', 'pm', 'hr_management', 'linux', 'analysis_design', 'ui', 'net', 'hi', 'maths', 'mobile_dev', 'productpm', 'win_dev', 'it_testing', 'dev_management', 'algorithms', 'go', 'php', 'csharp', 'nix', 'data_visualization', 'web_testing', 's_admin', 'crazydev', 'data_mining', 'bigdata', 'c', 'java', 'usability', 'instant_messaging', 'gtd', 'system_programming', 'ios_dev', 'oop', 'nginx', 'kubernetes', 'sql', '3d_graphics', 'css', 'geo', 'image_processing', 'controllers', 'game_design', 'html5', 'community_management', 'electronics', 'android_dev', 'crypto', 'netdev', 'cisconetworks', 'db_admins', 'funcprog', 'wireless', 'dwh', 'linux_dev', 'assembler', 'reactjs', 'sales', 'microservices', 'search_technologies', 'compilers', 'virtualization', 'client_side_optimization', 'distributed_systems', 'api', 'media_management', 'complete_code', 'typescript', 'postgresql', 'rust', 'agile', 'refactoring', 'parallel_programming', 'mssql', 'game_promotion', 'robo_dev', 'reverse-engineering', 'web_analytics', 'unity', 'symfony', 'build_automation', 'swift', 'raspberrypi', 'web_design', 'kotlin', 'debug', 'pay_system', 'apps_design', 'git', 'shells', 'laravel', 'mobile_testing', 'openstreetmap', 'lua', 'vs', 'yii', 'sport_programming', 'service_desk', 'itstandarts', 'nodejs', 'data_warehouse', 'ctf', 'erp', 'video', 'mobileanalytics', 'ipv6', 'virus', 'crm', 'backup', 'mesh_networking', 'cad_cam', 'patents', 'cloud_computing', 'growthhacking', 'iot_dev', 'server_side_optimization', 'latex', 'natural_language_processing', 'scala', 'unreal_engine', 'mongodb', 'delphi', 'industrial_control_system', 'r', 'fpga', 'oracle', 'arduino', 'magento', 'ruby', 'nosql', 'flutter', 'xml', 'apache', 'sveltejs', 'devmail', 'ecommerce_development', 'opendata', 'Hadoop', 'yandex_api', 'game_monetization', 'ror', 'graph_design', 'scada', 'mobile_monetization', 'sqlite', 'accessibility', 'saas', 'helpdesk', 'matlab', 'julia', 'aws', 'data_recovery', 'erlang', 'angular', 'osx_dev', 'dns', 'dart', 'vector_graphics', 'asp', 'domains', 'cvs', 'asterisk', 'iis', 'it_monetization', 'localization', 'objectivec', 'IPFS', 'jquery', 'lisp', 'arvrdev', 'powershell', 'd', 'conversion', 'animation', 'webgl', 'wordpress', 'elm', 'qt_software', 'google_api', 'groovy_grails', 'Sailfish_dev', 'Atlassian', 'desktop_environment', 'game_testing', 'mysql', 'ecm', 'cms', 'Xamarin', 'haskell', 'prototyping', 'sw', 'django', 'gradle', 'billing', 'tdd', 'openshift', 'canvas', 'map_api', 'vuejs', 'data_compression', 'tizen_dev', 'iptv', 'mono', 'labview', 'perl', 'AJAX', 'ms_access', 'gpgpu', 'infolust', 'microformats', 'facebook_api', 'vba', 'twitter_api', 'twisted', 'phalcon', 'joomla', 'action_script', 'flex', 'gtk', 'meteorjs', 'iconoskaz', 'cobol', 'cocoa', 'fortran', 'uml', 'codeigniter', 'prolog', 'mercurial', 'drupal', 'wp_dev', 'smallbasic', 'webassembly', 'cubrid', 'fido', 'bada_dev', 'cgi', 'extjs', 'zend_framework', 'typography', 'UEFI', 'geo_systems', 'vim', 'creative_commons', 'modx', 'derbyjs', 'xcode', 'greasemonkey', 'i2p', 'flash_platform', 'coffeescript', 'fsharp', 'clojure', 'puppet', 'forth', 'processing_lang', 'firebird', 'javame_dev', 'cakephp', 'google_cloud_vision_api', 'kohanaphp', 'elixirphoenix', 'eclipse', 'xslt', 'smalltalk', 'googlecloud', 'gae', 'mootools', 'emacs', 'flask', 'gwt', 'web_monetization', 'circuit-design', 'office365dev', 'haxe', 'doctrine', 'typo3', 'regex', 'solidity', 'brainfuck', 'sphinx', 'san', 'vk_api', 'ecommerce'}
αααααΆααααΆααααααααα ααααα geektimes ααΎααα ααΆαααααααααααααααΆαα
hubs_gt = {'popular_science', 'history', 'soft', 'lifehacks', 'health', 'finance', 'artificial_intelligence', 'itcompanies', 'DIY', 'energy', 'transport', 'gadgets', 'social_networks', 'space', 'futurenow', 'it_bigraphy', 'antikvariat', 'games', 'hardware', 'learning_languages', 'urban', 'brain', 'internet_of_things', 'easyelectronics', 'cellular', 'physics', 'cryptocurrency', 'interviews', 'biotech', 'network_hardware', 'autogadgets', 'lasers', 'sound', 'home_automation', 'smartphones', 'statistics', 'robot', 'cpu', 'video_tech', 'Ecology', 'presentation', 'desktops', 'wearable_electronics', 'quantum', 'notebooks', 'cyberpunk', 'Peripheral', 'demoscene', 'copyright', 'astronomy', 'arvr', 'medgadgets', '3d-printers', 'Chemistry', 'storages', 'sci-fi', 'logic_games', 'office', 'tablets', 'displays', 'video_conferencing', 'videocards', 'photo', 'multicopters', 'supercomputers', 'telemedicine', 'cybersport', 'nano', 'crowdsourcing', 'infographics'}
αααααααααααααα αααααααΌαααΆααααααΆαα»αααΆαααααααΌα ααααΆα α₯α‘αΌααααααΆααΆααααα½ααααα»αααΆαααααααα»αααΆαααααααα‘ααααααααααΆααΎα’ααααααααααΆαααααα·αααα·αααα geektimes α¬αααααααααααααααα
def is_geektimes(hubs: List) -> bool:
return len(set(hubs) & hubs_gt) > 0
def is_geektimes_only(hubs: List) -> bool:
return is_geektimes(hubs) is True and is_profile(hubs) is False
def is_profile(hubs: List) -> bool:
return len(set(hubs) & hubs_profile) > 0
αα»αααΆαααααααααααΆαααααααΌαααΆααααααΎαα‘αΎααααααΆααααααααααααααα ("ααΆαα’αα·αααααα" "ααααααΆα" ααα)
ααααΎαααΆα
ααΆααααααα αΎαααΎααααΈα αΆααααααΎααα·ααΆαα ααΎααααα»ααααα»ααα·αααααα αα·αααααΎαααΆααα·αααααααααααααααα
def to_list(s: str) -> List[str]:
# "user:popular_science+astronomy" => [popular_science, astronomy]
return s.split(':')[1].split('+')
def to_date(dt: datetime) -> datetime.date:
return dt.date()
df = pd.read_csv("habr_2019.csv", sep=',', encoding='utf-8', error_bad_lines=True, quotechar='"', comment='#')
dates = pd.to_datetime(df['datetime'], format='%Y-%m-%dT%H:%MZ')
dates += datetime.timedelta(hours=3)
df['date'] = dates.map(to_date, na_action=None)
hubs = df["hubs"].map(to_list, na_action=None)
df['hubs'] = hubs
df['is_profile'] = hubs.map(is_profile, na_action=None)
df['is_geektimes'] = hubs.map(is_geektimes, na_action=None)
df['is_geektimes_only'] = hubs.map(is_geektimes_only, na_action=None)
df['is_admin'] = hubs.map(is_admin, na_action=None)
df['is_develop'] = hubs.map(is_develop, na_action=None)
α₯α‘αΌααααααΎαα’αΆα ααΆαααα·ααααααααΆαααα»αααΆααααα αα·ααααα αΆαα ααα½αααααΆαααααα»αααααααΆααααααΆαααααααααααααααααααααΆα
g = df.groupby(['date'])
days_count = g.size().reset_index(name='counts')
year_days = days_count['date'].values
grouped = g.sum().reset_index()
profile_per_day_avg = grouped['is_profile'].rolling(window=20, min_periods=1).mean()
geektimes_per_day_avg = grouped['is_geektimes'].rolling(window=20, min_periods=1).mean()
geektimesonly_per_day_avg = grouped['is_geektimes_only'].rolling(window=20, min_periods=1).mean()
admin_per_day_avg = grouped['is_admin'].rolling(window=20, min_periods=1).mean()
develop_per_day_avg = grouped['is_develop'].rolling(window=20, min_periods=1).mean()
ααΎααααα αΆαα ααα½αα’ααααααααααΆαααααα»ααααααααααΎ Matplotlibα
αααα»αααΆααααα
ααα’ααααα "geektimes" αα·α "geektimes only" αα
αααα»αααΆααΆα ααΈααααα α’ααααααα½αα’αΆα
ααΆαααααα·αααα·αααααααααααΆααααΈααααα»αααααααα½α (α§ααΆα ααα "DIY" + "microcontrollers" + "C++") α αααα»αααΆαααααΎααΆααα
ααΆ "αααααα" ααΎααααΈααααα
α’ααααααααααααααααΆααα
ααΎααα ααααα αααααΈααΆαααα ααααΆααΆαααααΆααΆααΆα’ααααααααααααΆααααααααααααα·αααααΉαααααΌαααΆαααααα»ααααααα
αα αααα»αααααααα»α ααΎαααΆααα½αα’αααΈ "α₯αααα·αα geektimes" αααααααΆααααΆαα½αααΉαααΆαααααΆααααααΌααα αααα»αα αααΆαααααααααΆαααααααΆααα’ααααααααααΆαα geektimes α αΆααααααΎααααΌααααα αααα ααΌααααα αΆαα’ααααα geektimes ααΆα ααααα‘ααα
df_gt = df[(df['is_geektimes_only'] == True)]
group_gt = df_gt.groupby(['date'])
days_count_gt = group_gt.size().reset_index(name='counts')
grouped = group_gt.sum().reset_index()
year_days_gt = days_count_gt['date'].values
view_gt_per_day_avg = grouped['views'].rolling(window=20, min_periods=1).mean()
ααααααααΊαα½αα±ααα αΆααα’αΆααααααα αααΆααΆααααααα αΆαααααα ααααααΆαααΎαααα’ααααα geektimes αα ααΉαα ααα½αααα»αααΊαα ααααααααΆαα½ααα αα»ααα·α 1: 5 α ααα»αααααααααααααα ααα½αααααααααα»αααΆαααΆααααααααα½ααα½αα±ααααααααααΆαα ααΆαααΎαα’ααααα "αααααΆααα" αα ααααΆαααααα·ααααα αΆαααααα ααα
α’αααααα’αΆα
ααααααααΆαααααααααΆα
ααα½αααααΆαααΎαααα»αααα’ααααααα
αααα»αααααα "geektimes" αα
ααααααΆααα
α»ααααααΆααααΈααΆαααααΆααααααΌαα
αααΆαα ααα»αααα "αααααααα" αα·αααΎαααΈ 5% αααααααααα»αα
ααΆαα½αα±ααα αΆααα’αΆαααααααααα»αααΆαααΎαα ααα½ααααααααααΆαααΎααααα»ααα½αα’αααααα
αααααΆααα’ααααα "αααααΆααα" ααΆααΆααααα αα 40% ααΆαααΎαααααα ααααααα ααααΆαα·ααα½αα±ααααααΆααααα’αΎαααα ααΆααααΆααααα
ααΎαααααααΆααΊαα·αα’αΆα
αααααΆααααααΆαααααα»α αααα ααααΆαααααΆα’αααΈαααααΆαααΎαα‘αΎα α¬ααΆααΆααααααααααα α»ααααα»αααΆααα·ααΆα α¬αααα ααααΆα’ααααα·ααααααααΆαααααα»αα
ααααα’ααααα·αααα geektimes ααΆααα
αα·ααααααΆα ;)
ααααα·ααΈααα ααααΆα αααααα αΆαααΈα ααα»α ααααΌααα½αα±ααααααααααΆααααΈαααααααααααα αααα»αα ααα½αααααΆαααΎαα’ααααα - ααααααααααααΆαααααΆαααααΈ αα·αααα§αααΆα
ααααααααα
α αΌααααααα ααΆααα·ααΆααααααΆααααααΆαααααααααααα α αΌαααΆααααααΈαααααααααααααΌαααΆαα 20 ααΆαα ααα½αααααΆαααΎαα
hubs_info = []
for hub_name in hubs_all:
mask = df['hubs'].apply(lambda x: hub_name in x)
df_hub = df[mask]
count, views = df_hub.shape[0], df_hub['views'].sum()
hubs_info.append((hub_name, count, views))
# Draw hubs
hubs_top = sorted(hubs_info, key=lambda v: v[2], reverse=True)[:20]
top_views = list(map(lambda x: x[2], hubs_top))
top_names = list(map(lambda x: x[0], hubs_top))
plt.rcParams["figure.figsize"] = (8, 6)
plt.bar(range(0, len(top_views)), top_views)
plt.xticks(range(0, len(top_names)), top_names, rotation=90)
plt.ticklabel_format(style='plain', axis='y')
plt.tight_layout()
plt.show()
αααααα:
αα½αα±ααααααΆααααα’αΎα αααααααααααααα·αααααα»αααΆααααααΉαααααααααΊ "ααααα·αα»αααααααΆα"; α’αααααΉαααΆαααααΌαααΆαα 5 αααα½ααααα
αΌα "αααααα·ααΈ" αα·α "αα·ααααΆααΆαααααααααα·αα" αααααα
Antitop ααΆααααΆαα Gtk αα·α Cocoa α
αααα»αααΉαααααΆααα’αααααΈα’αΆααααααΆαααα½α αααααααααααααΌαααα’αΆα
ααααΌαααΆαααααΎαααΎααααααα
ααΆαααΆααααα
α αΎαααΈαααα»αααΆαααΆαααααααααααΆααααααΆα αααααααΎαα·ααααααααΆααα·ααΆαααααααααα ααΎαα’αΆα αααα αΆαα’αααααααααα·αααααα»ααααααΆαααααααααααααααα·αααααα»ααααααΆααααααΆα 2019 αααα
ααααα·αα»αααααααΆα
ααααααααααα»ααα·αααΆαααααΎααΆααα Sberbank α’αααααααααα½αααααΆα ααΆαααΎα 304000, 599 ααααα, ααΆαααΆαααααα +457.0/-14.0α’αααΌαααααΆααααααααααααα ααααΊααΆαααααααααΆααααααααααααααΆαααααΆαααααα½α ααΆαααΎα 232000, 147 ααααα, ααΆαααΆαααααα +75.0/-11.0α’ααααααααααααααα·αα αααααααΆααΈααΈαα - α’αααΈααααααααΆαααΊα’αΆαααααααΆααα ααΆαααΎα 176000, 778 ααααα, ααΆαααΆαααααα +356.0/-0.0ααααααα Megafon ααααα ααΎααΆαααΆαααΌαααααα ααΆαααΎα 166000, 676 ααααα, ααΆαααΆαααααα +624.0/-2.0ααΆααα½α α αΌα VK ααΆααααααααααΆααααΈααααααΆααΉααα·ααααααΆαα»αααα ααΆαααΎα 148000, 332 ααααα, ααΆαααΆαααααα +124.0/-17.0ααααααααααααα·ααΈαα»ααααα½ααααα·ααααα ααΆαααΎα 132000, ααα· 321, ααΆαααΆαααααα +246.0/-19.0ααΆααααα αααααααααα»ααααα»ααααααααα·ααΆαααααα ααααΈα ααα½α 2,7 ααΆααααΆα ααααααα»ααααααΆα 773 ααΆαααααΈ ααΆαααΎα 123000, 154 ααααα, ααΆαααΆαααααα +86.0/-5.0αααααΆαα ααΎααααα»ααααααΆααα’ααΈαααΊαα·α ααΆαααΎα 121000, 933 ααααα, ααΆαααΆαααααα +392.0/-83.0'ααΆαα·ααΆααΌαααααα' ααΊα₯ααα·ααααα αααααααΆαααΆα SMS α¬ααΆαα α»ααααααα ααααααΆααααα’α·αααααΆαααααααααααααΈ Megafon ααΆαααΎα 114000, 478 ααααα, ααΆαααΆαααααα +488.0/-8.0αααΆαααΈααααααα ααααα αααα»αααααΈααααΆαααααα½α Rostelecom ααααα’αααα ααΆαααΎα 111000, 194 ααααα, ααΆαααΆαααααα +300.0/-8.0
ααΆαααααααααααα·ααΈ
α’αααΈαα»ααααααΆαα ααΆαααΎα 167000, 249 ααααα, ααΆαααΆαααααα +239.0/-33.0α’αααααΆααααααα OOP ααΆααααααα’αααααΆααα’ααα αα·ααααααα·ααΈααααα’αααα ααΆαααΎα 129000, ααα· 1271, ααΆαααΆαααααα +131.0/-63.0α ααα»α’αααΈααΆαααΆα’αααα’αα·ααααααααΆααααααααα·αα’αΆα ααα½αααΆαααΆαααΆα ααΆαααΎα 119000, ααα· 901, ααΆαααΆαααααα +151.0/-14.0ααΎααααα·ααααααΆαααααααααααΆααααα»αααα αΆαααα? ααΆαααααααααααα·ααΈαααααΆααααΈααΆααα·αααααΆα ααΆαααΎα 116000, 649 ααααα, ααΆαααΆαααααα +222.0/-16.0ααΆααΆααααααααααα·ααΈααααΈαααα»ααααααΆααααααΆααααααααααααΎαααΆαα½αααΆααα·ααααΆααααααααααΆαα ααΆαααΎα 106000, 764 ααααα, ααΆαααΆαααααα +164.0/-52.0α’αααΈααααααα»αααΆαααααα·ααΈααααΆα (ααΆα 30 ααααΆααααα»αααΆαα’αα·αααααααααααα·ααΈ) ααΆαααΎα 101000, 128 ααααα, ααΆαααΆαααααα +178.0/-9.0ααΆααΆααααααααααα·ααΈαααααα αα·ααααααααα»αα ααΆαααΎα 82900, 119 ααααα, ααΆαααΆαααααα +38.0/-10.0ααααααααααααααΈααΈ JavaScript αα·α Node.js αα KPI ααΆαααΎα 80300, 14 ααααα, ααΆαααΆαααααα +34.0/-2.0ααΆααα IT αααααααΎα§ααΆα αααααααααΎαααΆαααααΆαααΈαααΌαααΆααααα‘αΌα ααΆαααΎα 78000, 86 ααααα, ααΆαααΆαααααα +84.0/-14.0256 αα½ααα C ++ ααα: ααααα ray tracer ααΈααααααα»αααααααααΈαααΈαααα ααΆαααΎα 77600, 124 ααααα, ααΆαααΆαααααα +241.0/-0.0
αα·ααααΆααΆαααααααααα·αα
α’αααΈαααα’ααααα ααΆαααααΆααΈ: α’αΆαα»ααα·αααααααΆ ααΆαααΎα 236000, 123 ααααα, ααΆαααΆαααααα +119.0/-9.0α’ααααα·ααααΆααΆαααααααΆαααααΎαααααααα’αΉααααααααΆαα’αΆαα»ααΆαα αααΆααααΆααααααα»ααα ααΎαααααΈ ααΆαααΎα 234000, 212 ααααα, ααΆαααΆαααααα +82.0/-14.0αααααΈααΌααααααα 'Chernobyl'α ααΎαα αΎααα·α ααΆαααΎα 173000, 803 ααααα, ααΆαααΆαααααα +164.0/-25.0ααααααααααα’αΆαα» 12 ααααΆαααααΆααααΆαααααΎααααα·αααααα»αααααα’ααααα αααα»ααααααΈααα·ααααααα ααααααααααΆααα ααΆαααΎα 145000, 280 ααααα, ααΆαααΆαααααα +126.0/-29.0ααΏααα·ααΆααααα Alloy Rose αα·α Fallen Krenka ααΆαααΎα 134000, 244 ααααα, ααΆαααΆαααααα +217.0/-1.0ααααΎα±ααααΆααΆαααααα! ααΆααααααα’αα»αααΆααααα αΆαααααΎα ααΆαααΎα 134000, 235 ααααα, ααΆαααΆαααααα +377.0/-1.0αααααα·ααΈαααααΆαα Boeing 737 Max ααααΌαααΆαααααααααα’αααααΆααααα αααααααΆα 9 αα»ααααΆααααα»ααα½αααααα ααΆαααΎα 126000, 560 ααααα, ααΆαααΆαααααα +153.0/-6.0αα»αααα αα»ααααααΆαα αα»αααααΆαα ααΏααααααΆααααα ααΆαααΎα 121000, 384 ααααα, ααΆαααΆαααααα +242.0/-4.0ααα·ααα·ααΌααΆαααααΎααα·ααΈααααα’α₯αααα αααααα»αααΆααα»αααα ααΆαααΎα 108000, 222 ααααα, ααΆαααΆαααααα +173.0/-10.0ααΆααΆααααααααααα·ααΈααααΈαααα»ααααααΆααααααΆααααααααααααΎαααΆαα½αααΆααα·ααααΆααααααααααΆαα ααΆαααΎα 106000, 764 ααααα, ααΆαααΆαααααα +164.0/-52.0
α’αΆααΈα
ααααααααααα»ααα·αααΆαααααΎααΆααα Sberbank α’αααααααααα½αααααΆα ααΆαααΎα 304000, 599 ααααα, ααΆαααΆαααααα +457.0/-14.0αααα»αααααααΆαααΈαα·αααααα’αααα’αα·ααααααααΆαα½αααΉαααΆααα·αα·αααααΌααααααααα»α α αΎααααα»ααα»αααα ααΆαααΎα 187000, ααα· 21, ααΆαααΆαααααα +37.0/-3.0ααααα ααααΆαα’αα·αααααα ααΆαααΎα 179000, 668 ααααα, ααΆαααΆαααααα +315.0/-60.0α’αααΈαα»ααααααΆαα ααΆαααΎα 167000, 249 ααααα, ααΆαααΆαααααα +239.0/-33.0α αΌααα·αααααααα αααα 22 ααΆαααΎα 158000, 927 ααααα, ααΆαααΆαααααα +259.0/-100.0ααΎααααΎααΌα ααααα ααΎααααΈααααΆααααααΌαα’αααΌααα ααααααααααΎααΆαααααα’αααααααα·αααΆαααΆαααααααα αα? ααΆαααΎα 139000, 762 ααααα, ααΆαααΆαααααα +200.0/-20.0ααΆαα αααααααα·αααΆααΆααΆαα»ααααΈ ααΆαααΎα 128000, 612 ααααα, ααΆαααΆαααααα +480.0/-33.0α ααα»α’αααΈααΆαααΆα’αααα’αα·ααααααααΆααααααααα·αα’αΆα ααα½αααΆαααΆαααΆα ααΆαααΎα 119000, ααα· 901, ααΆαααΆαααααα +151.0/-14.0αα»ααααα·α "αα»α"α ααΎααΆαααααΌαα αααα? ααΆαααΎα 117000, 398 ααααα, ααΆαααΆαααααα +210.0/-14.0ααΎααααα·ααααααΆαααααααααααΆααααα»αααα αΆαααα? ααΆαααααααααααα·ααΈαααααΆααααΈααΆααα·αααααΆα ααΆαααΎα 116000, 649 ααααα, ααΆαααΆαααααα +222.0/-16.0
α αααΆαααα αααα»α IT
α’ααααααααααααααα·αα αααααααΆααΈααΈαα - α’αααΈααααααααΆαααΊα’αΆαααααααΆααα ααΆαααΎα 176000, 778 ααααα, ααΆαααΆαααααα +356.0/-0.0ααααααα Megafon ααααα ααΎααΆαααΆαααΌαααααα ααΆαααΎα 166000, 676 ααααα, ααΆαααΆαααααα +624.0/-2.0ααΆαα αααααααα·αααΆααΆααΆαα»ααααΈ ααΆαααΎα 128000, 612 ααααα, ααΆαααΆαααααα +480.0/-33.0'ααΆαα·ααΆααΌαααααα' ααΊα₯ααα·ααααα αααααααΆαααΆα SMS α¬ααΆαα α»ααααααα ααααααΆααααα’α·αααααΆαααααααααααααΈ Megafon ααΆαααΎα 114000, 478 ααααα, ααΆαααΆαααααα +488.0/-8.0αααααααα’αΆααααΆααααΆα αααΆααααααΆααααα»αααααΆααΆααα·αααΆααααΆααααΆααααααααα½ααααααα»αααΆαα’αα»αααααα·ααααΆαααααα ααΆαααΎα 111000, 77 ααααα, ααΆαααΆαααααα +122.0/-14.0ααααααα Protonmail ααααΌαααΆαααΆααΆαααα αααα»ααααααααα»αααααΈ ααΆαααΎα 102000, 398 ααααα, ααΆαααΆαααααα +418.0/-7.0α αααΆααααααΈααΈααΆαα―αααα Runet ααααΌαααΆαα’αα»αααααααααα Duma αα αααα»αααΆαα’αΆαα ααα½αααΈ ααΆαααΎα 88200, 878 ααααα, ααΆαααΆαααααα +73.0/-18.0αααααααα’αααααααααααααα·ααΈααααΎαααΎααααΆααΆα αα·αα’αΆααα·α αα αααααΆ ααΆαααΎα 87200, 611 ααααα, ααΆαααΆαααααα +166.0/-9.0ααααα½αβααΌαααααΆαααα αα·αβααΌαααααΆααααβααΆαβα’αα»αααβα αααΆααβααααΈααΈβααΆαβααΆααβα±ααβααΆα αβααΈααβααΎβαααα»αα αα»α RuNet ααΆαααΎα 83600, 364 ααααα, ααΆαααΆαααααα +79.0/-9.0ααΆαααααΎααααααα’α·αα ααααααα·αααααααααΌα ααΆααααα·α ααααα½α α’αααΈααΈαα·αααααα’ααααααααααααΆαα αααα»ααα ααααααα»αααααΈ ααΆαααΎα 74700, 389 ααααα, ααΆαααΆαααααα +290.0/-1.0
ααΆαα’αα·ααααααααα ααααα
ααΎααααα·ααααααΆαααααααααααΆααααα»αααα αΆαααα? ααΆαααααααααααα·ααΈαααααΆααααΈααΆααα·αααααΆα ααΆαααΎα 116000, 649 ααααα, ααΆαααΆαααααα +222.0/-16.0αααααααααΎαααα ααααααα ααααΆα 2019 ααΆαααΎα 110000, 278 ααααα, ααΆαααΆαααααα +233.0/-11.0ααΆαααα Docker αααααααΈ 1α ααΌαααααΆα ααΆαααΎα 91300, 24 ααααα, ααΆαααΆαααααα +52.0/-10.0ααααααααααααααΈααΈ JavaScript αα·α Node.js αα KPI ααΆαααΎα 80300, 14 ααααα, ααΆαααΆαααααα +34.0/-2.0αα·ααααΆααΆα Vasya αα·αααΏααααΆαααααααΆααα’αααΈ API ideempotency ααΆαααΎα 68900, 160 ααααα, ααΆαααΆαααααα +216.0/-3.0ααΆααααααΉαα’αααΈααΆαααααΆααααααΌαααΆαααΌα α ααααα·αααΆαα·ααααααΆα ααα»α ααααααααααααααααα ααααααααααααα ααΆαααΎα 65900, 223 ααααα, ααΆαααΆαααααα +138.0/-41.0α ααα»α’αααΈααΆαααΆα’ααααα·ααα½αααααααααΆααααααααΆααααα’ααααααααΎαααα ααααααααααΆααααααΆααααα·ααα ααΆαααΎα 62700, 243 ααααα, ααΆαααΆαααααα +179.0/-13.0αααααΎααααααα·ααΈααα αααααααααΎαααΈααααΌα ααΆαααΎα 62200, 122 ααααα, ααΆαααΆαααααα +56.0/-8.0αααααααΉααααααΆαα Vue.js ααΆαααΎα 60800, 133 ααααα, ααΆαααΆαααααα +77.0/-6.0α ααα»α’αααΈααΆαααΆααΆαα’αα·ααααααααα αααααααααΎαααΆαααΆααααα»αααααΆα? αααααααΈ 1 ααΆαααΎα 57700, 319 ααααα, ααΆαααΆαααααα +101.0/-6.0
GTK
α αΎαα α»αααααα ααΎααααΈαα»αα±ααααααΆααααΆααα’αΆααα’ααα α·ααα αααα»αααΉααααααα αααΆααααααΆααααααααααααααααααΆαα αΌαααΎααα·α αααα»α "gtk" α αααα»ααα½αααααΆαααΆααααΌαααΆαααααα»ααα αα½α α’αααααααα "αααααααααααααααα·" ααΆααααΆαααα½αααΈαα½αααααΆαααΆααααααα
ααΆαααααΎααααΆαα GtkApplication α αα»αααΆααααα αΆα librsvg ααΆαααΎα 1700, 9 ααααα, ααΆαααΆαααααα +9.0/-1.0
ααα ααααΈααααα·ααααΆα
ααΆααΉααα·αααΆαααΆαααααα·ααααΆαααα ααΈαααΆαα’αΆαααΆααα’ααααααΆα
ααααα: www.habr.com