Pull to refresh
3
0
Send message

Как устроен «Русский медвежонок» — оплот психодела и здравого смысла в образовании

Reading time14 min
Views67K


Если вы подозреваете, что «трамвай» — это глагол повелительного наклонения, или что «забор крови» — это нечто из фильмов ужасов, то вы точно понимаете, где в тестах по русскому языку есть обширное поле для лютого троллинга.

Сначала я вообще считал, что «Русский медвежонок» — это отдельное произведение искусства, созданное, чтобы с иррациональным юмором показать расширенные возможности языка. А потом allex познакомил меня с создателями сего шедевра, и выяснилось, что это вообще-то ужасно серьёзное дело, которым заняты математики и лингвисты. Предельно адекватные, насколько это вообще возможно для математиков и лингвистов.

Значит, сейчас «Медвежонок» — это самый массовый конкурс по русскому языку, подозрительно напоминающий олимпиаду всем, кроме формы. Формально он — игра. Предприятие это сугубо коммерческое, участие стоит 85 рублей (до 100 рублей на Дальнем Востоке). Участие добровольное, в качестве приза предполагается нечто символическое — это тоже осознанно, чтобы не было тех, кто играет на мамону. Все вопросы предполагают на входе некоторый общий уровень развития человека, рождённого на Земле в России. То есть это нечто из базовой школьной программы, общечеловеческие бытовые знания и базовый же кругозор. Задач на чистое академическое знание нет. Задач на зубрёжку нет. Даже если вам кажется, что есть. Задачи довольно хорошо тестируются на живых людях до раскатки на конечных пользователей.

В общем, я хочу показать, что бывает, когда математики добираются до русского языка. И познакомить вас с двумя прекрасными людьми — кандидатом физико-математических наук Игорем Рубановым и кандидатом филологических наук Еленой Муравенко.

Первое, что меня без меры порадовало — что в методологии «пять вариантов ответов» сразу подразумевается, что все эти варианты создаются так, чтобы максимально запутать отвечающего и, фактически, внести новый уровень сложности в задачу. Сейчас покажу пару примеров.
Читать дальше →
Total votes 136: ↑126 and ↓10+153
Comments525

Лайфхаки от Boomburum-а

Reading time13 min
Views49K

Привет, Хабр! В моей голове долгое время скребётся тараканом идея рассказать вам про пару лайфхаков, которые я использовал когда-то или продолжаю использовать до сих пор. Нашёл свободную минутку и предлагаю вашему вниманию 20 килознаков — надеюсь, что-нибудь пригодится и вам. 

Читать далее
Total votes 85: ↑75 and ↓10+121
Comments98

Семь раз отмерь: как измерить синергию в команде?

Level of difficultyEasy
Reading time4 min
Views1.7K

В этой статья я хочу рассказать об онлайн тесте, который я разработал для того, чтобы делать срез по команде на тему синергии и вовлеченности. Он нужен, чтобы определить в менеджменте те места, улучшение которых дадут самый сильный эффект. Другими словами, чтобы быстро понять, что происходит в команде на уровне процессов, где и что болит и какие улучшения стоит сделать в первую очередь.

Особенно это полезно, когда в компании еще не сформировалась культура работы с напряжениями: люди не умеют формулировать их конструктивно и нет механизмов их успешного разрешения. А так же когда компания большая и собирать напряжения встречами один на один долго и неудобно.

В начале немного концептуального объяснения откуда этот инструмент появился. А в конце ссылка на шаблон теста, который можно скопировать и использовать в своей компании.

Читать далее
Total votes 5: ↑2 and ↓3+1
Comments4

Yet Another Домашний Сервер. Железо (часть 1)

Level of difficultyEasy
Reading time10 min
Views41K

Вот и я потихоньку пришёл к тому, чтобы сделать свой домашний сервер. Точнее, идея появилась ещё со школьных времён, но вот реализовать в каком-либо виде получилось только сейчас. И я бы хотел поделиться тем, что у меня получилось, с читателями Хабра, и ко всем написанным статьям я готов добавить ещё одну, так как думаю что мой опыт может быть интересен. В любом случае - велком под кат, если заинтересовало.

Читать далее
Total votes 20: ↑16 and ↓4+13
Comments98

Сказка о типизации

Level of difficultyMedium
Reading time7 min
Views7.9K

В некотором царстве, в некотором государстве жил был царь. Как-то раз объявил царь всему народу - "Кто решит три моих задачки, тот сам сможет царём стать". И даже контракт метода опубликовал, всё честь по чести.

Это только присказка, сказка будет впереди
Total votes 49: ↑46 and ↓3+54
Comments22

Ассемблер/дизассемблер клавиатурных раскладок Windows с помощью flat assembler

Reading time6 min
Views27K

раскладка


Знакомый линуксоид упрекнул меня, мол, в винде ни переключения языка Caps Lock'ом нет, ни даже раскладку нельзя отредактировать. Посмотрел я, и правда, все раскладки содержатся в файлах C:\Windows\System32\kbd*.dll, и редактировать такое hex-редактором ну никак не назвать удобным.


Как достичь удобства? Для переключения раскладок Caps Lock'ом можно использовать всякие навесные программы, тяжёлые вроде Punto Switcher, или простые вроде lswitch. Для редактирования раскладок есть MSKLC, но он малофункционален и неудобен, а аналоги вроде KbdEdit или KLM32 платные.


И тогда я решил написать на flat assembler'е код, собирающий DLL раскладки.

Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments54

Генерация 2D мира с помощью клеточного автомата на Python

Level of difficultyEasy
Reading time8 min
Views11K

Всем привет! На написание этой статьи меня вдохновил автор YouTube канала PeaAshMeter. В своем видео автор показывает простейший генератор 2D мира, который основан на простейшем правиле клеточного автомата. Что такое клеточный автомат? Какие клеточные автоматы бывают? На эти и многие другие вопросы я попробую ответить.

Читать далее
Total votes 25: ↑25 and ↓0+25
Comments4

Понимаем обычное дерево отрезков

Level of difficultyMedium
Reading time13 min
Views13K

Всем привет! Изучив несколько статей по этой теме, у меня остались вопросы, и некоторые моменты по-прежнему были не понятны, поэтому я решил написать свою, которая, как мне кажется, была бы понятна тем, кто не силен в спортивном программировании. В ней я объясняю, как устроено дерево отрезков. Примеры с кодом будут приведены на языке C++, однако на объяснение это не влияет.

Читать далее
Total votes 20: ↑19 and ↓1+24
Comments4

Неожиданная эффективность условных вероятностей

Reading time11 min
Views8.2K

В последнее время я решил заняться задачами по теории вероятностей, потому что мне кажется, получение знаний в этой сфере принесёт большую пользу. Я нашёл ключ, часто использующийся для решения многих из них: накладываем условие на промежуточное состояние, а затем отдельно вычисляем значение этого промежуточного состояния. Это превращает очень сложные задачи в такие, где решение практически очевидно. [Однако в таком случае мы иногда обмениваем эффективность на простоту.]

Такой подход был полезен для решения задачи о днях рождения в очереди, и в статье я приведу ещё три примера, в которых это проявляется. Если задача покажется вам неинтересной, перейдите к следующей, они все разные.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments9

Почему компонент дизайн системы — это часть процесса создания дизайна

Level of difficultyMedium
Reading time4 min
Views1.7K

Привет, я Андрей Сахаров, дизайнер и преподаватель UI/UX дизайна. Работа с компонентами — важная составляющая культуры дизайна. Часто бывает, что новички в профессии имеют абстрактное, неоформленное представление о том, как создается дизайн. Понимание технологии и того, как все устроено, собственный осознанный подход к работе и практические наработки приходят со временем. На мой взгляд, причина кроется в том, что многие начинают с теории, а не с практики. Поэтому в этой статье я хотел бы на конкретных примерах рассказать о собственном методе работы с компонентами.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments3

Полгода самостоятельного изучения .NET – не повторяйте моих ошибок

Level of difficultyEasy
Reading time8 min
Views22K

Доброго времени суток! Меня зовут Васьен, я – начинающий backend разработчик, поставивший себе цель переучиться из экономиста в программисты с нуля. Обучение я начал в конце сентября прошлого года и на текущий момент выходит, что прошло ровно полгода с момента начала пути. Все нормально, я еще не вкатился и неизвестно, когда "вкачусь", я осознаю, что много чего осталось не изученным, в каких областях имею лишь очень поверхностные представления и просто продолжаю дальше учиться.

Так или иначе, разница между пониманием базовых вещей сейчас и тогда, на старте, огромная, и за столь небольшой временной промежуток успел набить пару шишек, получить какой-никакой опыт, понять в чем был не прав и могу предостеречь таких же попутчиков от повторения моих ошибок. Также данная статья является неким ответом на собственный вопрос из прошлой статьи, где я переживал за то, что имею так мало реализованных проектов, около пустой профиль на гитхабе и не знаю, как оценить свой прогресс. Заодно и советом начинающим, как эффективнее учиться, улучшать свои практические навыки программирования, понемногу заполняя свой гитхаб. Итак, какие ошибки я совершил за это время и в чем был не прав.

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments29

С кем дружить UX-редактору? Как быстро вырастить грейд? Что включить в редполитику? И ещё 22 вопроса о UX Writing

Reading time10 min
Views1.3K

Привет, редактор! Недавно мы провели UX Writing Meetup со спикерами из СберМаркет Tech, Ozon и Магнит, но из-за ограниченного тайминга не успели ответить на многочисленные крутые вопросы слушателей. Расскажем, что делать, если редполитика становится слишком толстой, с какими командами UX-редактору стоит подружиться в первую очередь, где взять рабочий опыт, если без него не берут на работу. Поехали!

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments0

Как я поговорил с HR и увеличил конверсию в собеседования

Level of difficultyEasy
Reading time4 min
Views21K

Меня зовут Артур. Уже более 4 лет я занимаюсь менеджментом различных IT проектов (от создания лендинга до big data проектов). 

Хочу поделиться своим кейсом, как я убедил HR читать большую презентацию из 15+ слайдов о моих достижениях. 

Эта статья больше поможет менеджерам, маркетологам и дизайнерам. 
А в конце я дам небольшие советы новичкам в IT и программистам.  

На создание хорошего резюме может уйти больше недели.
Парадокс в том, что надо рассказать о себе много, при этом уложиться в объем не более одной-двух страниц. 

И чем больше у вас разнообразных проектов, тем больше приходится мучиться 
и думать, о чем рассказывать подробно, а что выкинуть.

Что я сделал дальше...
Total votes 19: ↑11 and ↓8+6
Comments33

6 ошибок, из-за которых менеджеры-джуны остаются джунами

Level of difficultyEasy
Reading time6 min
Views12K

Привет, я Вика Строгонова, руководитель проектного офиса в KTS. Я веду проекты с 2017 года и прошла путь от младшего менеджера до руководителя проектного офиса. Сейчас в моем портфеле более 20 проектов, в подчинении — 42 человека, среди них  разработчики, аналитики и менеджеры. 

Текст написан на собственном опыте, поэтому уверена, что есть и другие ошибки, которые я не учла в статье. Буду рада, если поделитесь ошибками джунов, с которыми вы чаще всего сталкиваетесь, в комментариях. 

Все типовые проблемы, о которых пойдет речь ниже, касаются менеджеров-джунов или вчерашних стажеров. Это не тайные знания, которые открываются только тем, кто несколько лет отработал на проектах или прошел специальные курсы: это достаточно базовые вещи, которые начинающие менеджеры почему-то упускают. 

Читать далее
Total votes 35: ↑33 and ↓2+34
Comments14

Простые способы улучшить читаемость функциональных требований

Level of difficultyEasy
Reading time5 min
Views6.1K

Чтение ФТ — занятие непростое. Восприятие новой информации и её анализ требуют продолжительной концентрации и расходуют главный ресурс IT‑шника — внимание.
Если текст сложный, читатель спотыкается в нём и увязает, перечитывает по несколько раз, тратя время и ресурс внимания.

В статье расскажу про простые приёмы для начинающих писателей требований, которые помогут сделать их легче для чтения и ориентирования.

Читать далее
Total votes 15: ↑15 and ↓0+15
Comments4

Развертывание бразильского кластера Flowwow

Reading time8 min
Views1.9K

Меня зовут Кирилл Суханов, я product manager в Flowwow. В этой статье расскажу, как мы разворачивали наш продукт на совершенно новой территории, как по ходу корректировали алгоритм и как будем действовать уже с третьим нашим кластером, когда будем готовы им заняться. 

Читать далее
Total votes 2: ↑1 and ↓10
Comments6

Решаем задачу по взаимодействию микросервисов на Python тремя способами

Level of difficultyEasy
Reading time6 min
Views15K

Когда речь заходит про взаимодействие микросервисов, все сразу вспоминают о сложных архитектурных паттернах, вроде Event Bus и CQRS. В этой статье я расскажу, как выполнить простенькую задачку для двух микросервисов без навороченной архитектуры. В моем случае это создание сервиса, который агрегирует события компании в единую ленту событий.
Читать дальше →
Total votes 43: ↑42 and ↓1+51
Comments38

Генерация данных — творчество или рутина?

Reading time15 min
Views6.4K

Долгие годы люди стремились к всё более реалистичному изображению окружающих их вещей. Много лет прошло от симпатичных наскальных мамонтов до шедевров эпохи Ренессанса и Просвещения. Однако где-то в 19-м веке (примерно, когда стала появляться первая фототехника, ага), что-то пошло не так, и живопись сменила своё направление от реализма к абстракции. Дальше больше; и все "скатилось" до клякс, пятен и потёков, размазанных по холсту или любой другой поверхности стоимостью в миллионы долларов... И при этом зачастую совершенно было непонятно, кто автор "шедевра": 3-х летний ребенок, маститый художник, нейросеть или кот, опрокинувший банку варенья.

Похожие процессы происходят и в мире данных, синтетические, сгенерированные, абстрактные данные обретают всё большую ценность на рынке. Такие данные являются более безопасными, а также позволяют тестировать системы качественнее и воспроизводить проблемы до их появления в продакшене... А еще делать прогнозы, анализ, безопасно обмениваться и многое другое.

В этом посте мы рассмотрим основные моменты генерации данных с нуля (на основе схемы БД), а так же на основе уже существующих данных. Рассмотрим способы, методы, особенности и инструменты. А каждый шаг будем иллюстрировать примерами живых и настоящих SQL-запросов (в основном PostgreSQL-flavour, но постараемся и не только). И в итоге убедимся, что SQL позволяет нам не только эффективно работать с уже существующими данными (на минуточку, уже почти на протяжении 50 лет), но с помощью него их можно еще и довольно эффектно придумывать.

А начнем мы конечно же с ChatGPT
Total votes 7: ↑6 and ↓1+7
Comments0

Неопределённое поведение и теорема Ферма

Reading time4 min
Views54K
В соответствии со стандартами C и C++, если выполнение программы приводит к переполнению знаковой целой переменной, или к любому из сотен других «неопределённых действий» (undefined behaviour, UB), то результат выполнения программы может быть любым: она может запостить на Твиттер непристойности, может отформатировать вам диск…
Увы, в действительности «пасхальные яйца», которые бы заставляли программу в случае UB делать что-то из ряда вон выходящее, не встречались со времён GCC 1.17 — та запускала nethack, когда встречала в коде программы неизвестные #pragma. Обычно же результат UB намного скучнее: компилятор просто оптимизирует код для тех случаев, когда UB не происходит, не придавая ни малейшего значения тому, что этот код будет делать в случае UB — ведь стандарт разрешает сделать в этом случае что угодно!
В качестве иллюстрации того, как изобилие UB в стандарте позволяет компилятору выполнять неочевидные оптимизации, Реймонд Чен приводит такой пример кода:

int table[4];
bool exists_in_table(int v)
{
    for (int i = 0; i <= 4; i++) {
        if (table[i] == v) return true;
    }
    return false;
}

В условии цикла мы ошиблись на единицу, поставив <= вместо <. В итоге exists_in_table() либо должна вернуть true на одной из первых четырёх итераций, либо она прочтёт table[4], что является UB, и в этом случае exists_in_table() может сделать всё что угодно — в том числе, вернуть true! В полном соответствии со стандартом, компилятор может соптимизировать код exists_in_table() до
int table[4];
bool exists_in_table(int v)
{
    return true;
}

Такие оптимизации иногда застают программистов врасплох.
Читать дальше →
Total votes 107: ↑104 and ↓3+101
Comments129

Что каждый программист на C должен знать об Undefined Behavior. Часть 1/3

Reading time7 min
Views31K
Часть 1
Часть 2
Часть 3

Люди иногда спрашивают, почему код, скомпиливанный в LLVM иногда генерирует сигналы SIGTRAP, когда оптимизация была включена. Покопавшись, они обнаруживают, что Clang сгенерировал инструкцию «ud2» (подразумевается код X86) — то же, что генерируется __builtin_trap(). В этой статье рассматривается несколько вопросов, касающихся неопределённого поведения кода на C и того, как LLVM его обрабатывает.

image

В этой статье (первой из трёх) мы попытаемся объяснить некоторые из этих вопросов, чтобы вы могли лучше понять связанные с ними компромиссы и сложности, и возможно, изучить немного больше тёмные стороны С. Мы выясним, что C не является «высокоуровневым ассемблером», как многие опытные программисты на C (особенно те, кто сфокусирован на низком уровне) предпочитают думать, и что C++ и Objective-C напрямую унаследовали множество таких проблем.
Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments18

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity