Pull to refresh
42
0
Екатерина Соколова @greenEkatherine

Пользователь

Send message

Поиск часто встречающихся элементов в массиве

Reading time5 min
Views119K
Задача: в массиве длиной N найти элемент, который повторяется больше N/2 раз.

Казалось бы, чего тут думать? Возьмём Dictionary<значение элемента, число появлений>, за один проход по массиву сосчитаем появления каждого элемента, потом выберем из словаря искомый элемент. Решение за O(N), куда может быть ещё быстрее?

Есть один нюанс: для словаря нам потребуется O(N) дополнительной памяти — в несколько раз больше размера исходного массива, и это при реализации словаря хоть хэш-таблицей, хоть деревом. Что будем делать, если наша цель — обработка сигнала неким устройством с маленькой памятью? Массив — замеры уровня сигнала, из которых один — «настоящий» передаваемый уровень, а остальные — шум и помехи. Неужели придётся для определения «настоящего» уровня возиться с хэш-таблицами и деревьями?

К счастью, нет: достаточно O(1) дополнительной памяти, и по-прежнему одного прохода по массиву.
Читать дальше →
Total votes 105: ↑98 and ↓7+91
Comments38

Как «научиться учиться» — улучшаем внимательность

Reading time5 min
Views61K
Ранее мы рассказали, какие исследования стоят за популярными советами о том, как «научиться учиться». Затем обсудили метакогнитивные процессы и полезность «каракулей на полях».

В третьей части — рассказали, как тренировать память «по науке». Кстати, про память — говорили отдельно тут и тут, еще — разбирались с тем, как «учиться по карточкам».

Сегодня — обсудим концентрацию, «многозадачность» и прокачку внимания.

Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments21

Что в имени тебе моем: как качественно «пробить» человека в сети Интернет?

Reading time5 min
Views197K
Мы постоянно встречаемся в своей жизни с новыми людьми, и стоит констатировать, что помимо хороших друзей нам попадаются мутные товарищи, а иногда и отъявленные мошенники. Любовь наших сограждан оставить свой след в интернете и старания наших ИТ-компаний по автоматизации всего и вся позволяют нам довольно оперативно собирать интересующую информацию о конкретных персонах по открытым источникам. Чтобы это делать быстро и качественно, нам нужно владеть простой методологией разведывательной работы и знать, где и какую информацию о человеке можно добыть в интернете.
Читать дальше →
Total votes 90: ↑70 and ↓20+50
Comments56

Проверяем партнера по открытым источникам

Reading time3 min
Views40K


В нашей стране никто не застрахован от «кидалова» партнером по договору: заказчики не платят фрилансерам, соучредители выходят из проекта, а поставщики отказываются от выполнения контрактов. Хорошие закупщики за то и ценятся, что имеют хорошие базы и связи в налоговой и могут неофициально проверить любого контрагента. К счастью, непрозрачный российский рынок в последние годы проясняется: появилось сразу несколько бесплатных государственных сервисов для проверки контрагента на честность. О них и пойдет речь в статье.
Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments19

Стек приложений Blockchain

Reading time5 min
Views29K
Здравствуйте, Хабр!

Надеемся не слишком вас шокировать, признавшись в неподдельном интересе к децентрализованным приложениям.



Вместе с автором мы убеждены, что «не биткойном единым» полезны описанные технологии, и в качестве доказательства предлагаем перевод интересной статьи, в которой внятно и убедительно описаны перспективы стека Blockchain
Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments9

Как я сам научился программировать за 8 недель

Reading time3 min
Views567K
Для многих, кто никогда не программировал, обучение программированию кажется невероятно сложной задачей. Как бы то ни было, спасибо тому огромному количеству ресурсов, которые недавно стали доступны в Интернет и являются бесплатными — самообучение программированию никогда еще не было таким простым.

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

Ниже я описал простой путь от ничего не зная о разработке программного обеспечения до обладания рабочим прототипом за восемь недель, который примерно повторяет шаги, которые я выполнил.
Читать дальше →
Total votes 133: ↑90 and ↓43+47
Comments92

Подборка бесплатных инструментов для разработчиков

Reading time28 min
Views186K
Сегодня мы представляем вашему вниманию адаптированную подборку инструментов (в том числе облачных) для разработчиков, которые позволяют создавать по-настоящему качественные проекты. Здесь представлены исключительно SaaS, PaaS и IaaS сервисы, предоставляющие бесплатные пакеты для разработчиков инфраструктурного ПО.

Читать дальше →
Total votes 96: ↑89 and ↓7+82
Comments38

Спектральный метод на примере простых задач матфизики

Reading time6 min
Views17K
В этой статье описан псевдоспектральный метод численного решения уравнений матфизики, используемый в вычислительной гидродинамике, геофизике, климатологии и во многих других областях.

image

Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments5

Каверзные кватернионы

Reading time4 min
Views185K


Отгадайте загадку: в четырёх измерениях сидит и комплексными числами воротит?

Подсказка: это вектор со скаляром. И вещественная матрица. И придумал его Гамильтон.

Не помогло? Ну что вы, это же элементарно! Это кватернион! Кватернионы используют для записи вращений в робототехнике, игровых движках, ПО для моделирования и вообще везде, где не нужны проблемы с углами Эйлера или матрицами. Если вас испугала путаница выше с разными представлениями кватерниона, то можете быть спокойны. Кватернионы очень просты в использовании и их внутреннее строение может понадобиться только в очень редких случаях, где нужна тонкая оптимизация. В остальное время с помощью кватернионов можно крутить всё что угодно и как угодно, и оно будет плавно и красиво интерполироваться без шарнирных замков.
Что же такое кватернион?
Total votes 110: ↑102 and ↓8+94
Comments48

Пишем свой XML-парсер

Reading time9 min
Views71K

Предыстория


Решив запустить небольшой сервис на подаренном мне хостинге, оказалось, что там нету ни одного xml-парсера: ни SimpleXML, ни DOMXML, а только libxml и xml-rpc. Недолго думая, я решил написать свой. Мне требовался разбор не сложных rss-лент, поэтому хватило достаточно просто класса xml => array.[1]

Но для интересной статьи этого было явно не достаточно, поэтому сейчас мы напишем свою замену для SimpleXML. А заодно пробежимся по многим интересным возможностям PHP 5.

Постановка задачи


Доступ к элементам у нас будет осуществляться как доступ к свойствам класса, например $xml->element, а доступ к атрибутам элемента, как к массиву, те $xml->element['attr'], также реализуем проверку на существование атрибута при помощи isset() и итерацию по элементам при помощи foreach. И так, начнем.
Читать дальше →
Total votes 1: ↑1 and ↓0+1
Comments42

Кручу-верчу, запутать хочу: углы Эйлера и Gimbal lock

Reading time3 min
Views126K


Выставите любой палец левой руки вперед. Давайте, не стесняйтесь, никто не будет над вами смеяться. Это нужно для важного эксперимента. Выставили? Теперь представьте что вы — это ваш палец (ну и бред). Повернитесь под прямым углом направо, затем наверх, и наконец налево. Где вы оказались? Правильно, в том же месте, но уже на спине.

С некоторой натяжкой именно так работает вращение с помощью углов Эйлера. Немного непредсказуемо и неудобно, не правда ли? Углы Эйлера имеют несколько недостатков, но есть одно особенно нехорошее свойство из-за которого вы не захотите с ними связываться. Его имя — Gimbal lock.

В русском языке gimbal lock называют по-разному: шарнирный замок, блокировка осей, складывание рамок. К сожалению, по запросам в поисковике с такими ключевыми словами выдаётся много мусора, а статья в Википедии оставляет желать лучшего, поэтому я сам расскажу вам об этом феномене и предложу как с ним бороться.

Внимание! Заходя под кат вы подвергаетесь риску поломать голову.
Ха! Я ничего не боюсь! Где этот gimbal lock?
Total votes 67: ↑60 and ↓7+53
Comments37

Занимательная геодезия

Reading time9 min
Views100K
Всем привет!
Сегодня я расскажу тебе, %USERNAME%, о башмаках и сургуче, капусте, королях координатах, проекциях, геодезических системах и совсем чуть-чуть о веб-картографии. Устраивайся поудобнее.

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

Вот, казалось бы, простая вещь — географические координаты. Широта и долгота, что может быть проще. А вот представьте, что вы очутились на необитаемом острове. Смартфон утонул, а других средств связи у вас нет. Остаётся только написать письмо с просьбой о помощи и по старинке выбросить его в море в запечатанной бутылке.

Вот только незадача — вы совершенно не знаете, где находится ваш необитаемый остров, а без указания координат никто вас не найдёт, даже если выловит ваше письмо. Что делать? Как определить координаты без GPS?

Об этом и о многом другом - подробнее под катом
Total votes 108: ↑103 and ↓5+98
Comments51

Работа с метаданными изображений в WPF

Reading time6 min
Views19K
image
Недавно решил ознакомиться с платформой .NET, языком C# и Windows Presentation Foundation.
В процессе изучения (а изучаю языки и технологии я всегда в процессе разработки пробного проекта) мне встретилось довольно много подводных камней и тонких моментов. Поделиться с хабрасообществом (я полагаю, что многим начинающим разработчикам WPF это было бы интересно) хочется всем и сразу, но объем получившегося хабратопика был бы слишком большим, поэтому я решил начать с метаданных изображений, т.к. на эту тему информации даже в англоязычном интернете маловато.

За подробностями прошу под кат...
Total votes 84: ↑60 and ↓24+36
Comments20

Приведение типов

Reading time4 min
Views204K
Будучи на конференции Qt Developer Days 2010 я узнал, что одним из самых популярных вопросов на собеседовании в разные зарубежные компании, работающие с Qt библиотекой, является вопрос о различиях в способах приведения типов в C++. Поэтому здесь я рассмотрю основные различия между static_cast, dynamic_cast, const_cast, reinterpret_cast, C-style cast, qobject_cast и qvariant_cast

Читать дальше →
Total votes 51: ↑48 and ↓3+45
Comments59

Git game или в поисках Линуса Торвальдса

Reading time1 min
Views43K


Наткнулся сегодня на этот замечательный проект. Из файла README.md репозитория проекта:

Это игра для терминала, цель которой проверить ваш уровень знаний Git. Каждый уровень в игре — задание, которое необходимо выполнить в репозитории. После выполнения текущего задания вы получите следующее задание. Всего есть 10 уровней, которые возрастают по сложности!

Поехали!


Склонируйте репозиторий с помощью команды:
$ git clone https://github.com/hgarc014/git-game.git

Читать дальше →
Total votes 52: ↑47 and ↓5+42
Comments39

Создаем резюме на LaTeX — как и зачем?

Reading time5 min
Views90K
Многие документы я подготавливаю в LaTeX, а не в Word. И к моменту, когда я определяюсь со следующим местом работы, я подвожу итоги сделанного, и, уж чтобы не пропадало, фиксирую их в документах, составляющих каркас моего CV. По моему личному убеждению, тщательность в создании документов для будущего работодателя нужна не столько для коммуникаций с «эйчарами», сколько для осмысления дороги, по которой идешь, и направления, в котором решаешь двигаться дальше. Итак, почему я для резюме выбрал LaTeX?

Читать дальше →
Total votes 125: ↑99 and ↓26+73
Comments71

Диплом бакалавра в LaTeX, или ДСТУ 3008-95 в 150 строк

Reading time21 min
Views141K
image
Всем привет. Недавно меня тоже настигла переломная веха студенческой жизни — бакалаврская дипломная работа. Среди многих формальных деталей этого замечательного явления особо заметным стоит нормоконтроль. Нет, я понимаю и всячески поддерживаю, что стандарты необходимы, в том числе стандарты на оформление академического текста. Просто наши стандарты, в отличие от западных, достаточно идиотичны. Они не экономят ни чернила, ни бумагу, они не упрощают поиск литературы по номенклатуре, а усложняют чтение названия. Не говоря уже о том, что текст стандарта спроектирован и описан людьми, работающими в редакторе Microsoft Word. Опять-таки, я не имею ничего против Word, это мощнейшая система. Но технический текст в нем набирать неудобно, и по гибкости он во много раз проигрывает бессмертному творению Дональда Кнута — LaTeX.

Итак, мое написание диплома началось с того, что я потратил 4 часа на настройку преамбулы под нормы украинского стандарта оформления ДСТУ 3008-95. Насколько мне известно, он почти полностью соответствует русскому ГОСТу. Я знал, что существуют готовые решения (например, disser), но после пары проб предпочел настроить каждую деталь самостоятельно. Для тренировки. Тренировка удалась — я узнал бездну новых вещей о LaTeX, этого монстра невозможно выучить полностью :-)

Под катом я полностью опишу процесс настройки каждой конкретной детали и использование их при написании, а также разные мелочи, упрощающие написание диплома еще больше. Сразу предупреждаю: где-то мои решения могут показаться костылями. Где-то они не слишком универсальны. Я это знаю, понимаю, принимаю и приветствую критику и предложения в комментариях ;-)
Читать дальше →
Total votes 105: ↑101 and ↓4+97
Comments54

Задачи на собеседованиях в Яндексе

Reading time15 min
Views358K
Открытые вакансии на должность разработчика в Яндексе есть всегда. Компания развивается, и хороших программистов не хватает постоянно. И претендентов на эти должности тоже хоть отбавляй. Главная сложность – отобрать действительно подходящих кандидатов. И в этом плане Яндекс мало чем отличается от большинства крупных IT-компаний. Так что базовые принципы, описываемые в этой статье, могут быть применимы не только к Яндексу.

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

image
Читать дальше →
Total votes 221: ↑178 and ↓43+135
Comments329

Популярные вопросы на собеседовании по C++ и ответы на них

Reading time9 min
Views330K
Здравствуйте!

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

О том, что спрашивают на собеседовании у C++ программистов, а также об ответах на эти вопросы и пойдет речь в данном посте.
Читать дальше →
Total votes 199: ↑196 and ↓3+193
Comments174

Первое собеседование, или Почему устроиться на работу сложнее, чем сдать экзамен

Reading time12 min
Views88K
Самый удивительный вопрос, который нам задают при назначении собеседований кандидатам на позиции стажеров, звучит так: «А что будут спрашивать?».

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

В чем же причина такого вопроса?

Длительный опыт общения с кандидатами с университетской скамьи показал, что причина проста. Студенты часто воспринимают собеседование так же, как экзамен в своем ВУЗе: нужно подготовиться (лучше всего за одну ночь :)), прийти и сдать. И тот, кто лучше всех ответит на вопросы, получит пятерку, то есть будет нанят.

Загвоздка состоит в том, что собеседование — это совсем не экзамен. Под катом ответ почему.

Читать дальше →
Total votes 26: ↑19 and ↓7+12
Comments38

Information

Rating
Does not participate
Location
Praha, Hlavni Mesto Praha, Чехия
Registered
Activity