Небольшое путешествие на байдарках по потомаку. По пути довольно сильные пороги, особенно, когда на двойке гребешь один. Отличное место, еще и в 20 мин от дома



Небольшое путешествие на байдарках по потомаку. По пути довольно сильные пороги, особенно, когда на двойке гребешь один. Отличное место, еще и в 20 мин от дома



Never write if you can speak; never speak if you can nod; never nod if you can wink (Martin Lomasney)
С интересом читаю Гришу в ФБ. Вместо ответа комментарием на вопросы про алгоритмы сортировки (https://goo.gl/pPcJEd), напишу пост, так чуть удобнее, букв много. Речь в посте Гриши шла про то, нужно ли пытать кандидатов алгоритмами, которые давно уже никто не пишет на этих языках (и он верно объясняет почему).
В TEAMIDEA я выбрал три задачки, которые давал почти всем программистам на собеседовании. Иногда все собеседование состояло в обсуждении этих задачек (вообще пул задачек у меня был больше, но эти три вылезали чаще).
Первая задачка – про то, как искать по миллиону текстовых документов. Т.е. нужно написать свой поиск с нуля. Вводишь три слова – находишь три сотни документов, где эти три слова есть.
Мне ее интересно обсуждать, потому что я сам когда-то писал поиск и знаю связанные с этим сложности. Оцениваю задачу как легкую, но если кандидат с ней справляется – есть “продолжения”, вроде “а как быть, если слов несколько, вам же пересекать множества документов по каждому слову надо, а множества большие”, а также про постраничный просмотр и fuzzy search. Минимум кандидат должен был догадаться про пары WordId -> PageId, и даже это не выходило у 50% по резюме хороших специалистов.
Вторая задачка – про сокращатель урлов. Вводишь в форму урл – дает нечто короткое. Вводишь короткое – редиректит на длинный. Нужно продумать проект и найти технические риски, придумать архитектуру и алгоритмы. Оцениваю задачу как легкую.
В этой задачке полезно знать про биты и байты, кодировки. Решение на самом деле дико простое – надо сохранить урл в NoSQL, а индекс перевести в 65-ричную систему, он же и будет коротким урлом.
Эту задачу вообще в таком виде единицы решали. Что только не придумывал народ…
Третья задачка – про сжатие данных. Постановка ее открытая – есть текст на русском, нужно, чтобы он занимал меньше байт. Но при этом без потерь. Пойдут любые способы. Сложность аналогичная первой.
Многие пытаются заменять частые сочетания букв на айдишники, но правда, ломаются уже на том, сколько бит нужно на этот айдишник. До решения с плавающим числом бит на айдишник не додумывался никто. До алгоритма Хаффмана не додумывался никто. Лемпель-Зив процентов на 10 угадывали, но в целом тоже плохо. В лучшем случае сжимали текст, убирая лишние биты (раз текст на русском), что уже тоже неплохо.
Почему эти три? Теоретически к ним можно было заранее подготовиться, но, слава богу, ни разу компании, которые присылали программистов, не выясняли и не передавали детали следующим. Не знаю, плюс это для них или минус 🙂 Даже, если бы кто-то заранее прочел про поиск или сжатие, это, может, дало бы и плюсы, т.к. нельзя все знать, но сам факт подготовки к собеседованию добавляет очков.
Каждая задача не имеет одного правильного ответа. Можно придумать разные способы ее решения, и я оценивал насколько у человека работает техническая фантазия и насколько широк кругозор. Насколько он умеет рассуждать и насколько он умеет доказывать свою точку зрения.
Grigoriy Dobryakov, какой-то процент приходящих давал ответы в стиле “ну как, я возьму Solr и библиотеку сжатия данных”. Это лучше, чем ничего, особенно, если человек ЗНАЕТ или ИСПОЛЬЗОВАЛ это всё, но практически во всех этих случаях они не способен объяснить, как это работает внутри. Иногда – вообще.
За редкими исключениями эта система никогда не давала сбой:)
Крупное обновление на блоге про Хайбрис. Удалось разобраться с Apache PredictionIO. Интересное добавление к любому крупному интернет-магазину. Магазин может отправлять в эту систему логи, а система снабжать магазин подсказками, как больше заработать. Механизмы оформлены в шаблоны, которые просто работают. Можно разобраться еще глубже и править алгоритмы, но на ум быстро не приходит, когда такое может быть нужно: алгоритмы довольно универсальные для e-commerce.
Я там обработал некоторый массив данных от реального интернет-магазина, и получил рекомендации системы, основанные на истории покупок. В другом эксперименте я получал перечень товаров, которыми покупатель вероятно заинтересуется.
В общем, велкам, лайки и шары приветствуются)
https://hybrismart.com/2016/09/21/predictionio-machine-learning-in-e-commerce/
Дожили. SD-карта на 1Тб. Пока только рабочий прототип. У нас в костко у кассы продаются 256Гб флэшки за 15 баксов. У меня тридцать лет назад компьютер был на 8 килобайт памяти. Это в сто тридцать четыре миллиона раз меньше, чем вот эта флэшка. Таких флэшек можно полный карман набрать. Далее будут ускорять ввод-вывод. В интересное время живем, товарищи 🙂
http://www.theverge.com/circuitbreaker/2016/9/20/12986234/biggest-sd-card-1-terabyte-sandisk
Узнаете?

Интересная заметка по Лизу и Машу, про школу, завтраки и обеды, связанные с этим традиции и предпочтения. Взгляд из Вашингтона;)
Меня много раз спрашивали: «Как мои дети адаптировались к американской школе?» Очень легко. Я даже этого не заметила.
В государственную американскую школу берут абсолютно всех без разбора: из России ты или из Индии, говоришь по-английский или впервые слышишь этот язык, есть ли у тебя какой-либо аттестат об образовании или нет. Главное предъявить всего два документа: контракт на аренду (покупку) жилья, свидетельствующий, что ты действительно живешь в районе, который относится к этой public school, и прививочную карту. Если нет необходимых прививок – не беда. Ребенка отправят в поликлинику, бесплатно сделают недостающие вакцины, а затем — в школу.
Для началки предусмотрено всего одно тестирование – на знание английского. После проверки знаний присваивается уровень от нуля до шести. Моей младшей дочке поставили третий. Но даже с нулевым ребенка все равно возьмут учиться.
В средней и старшей школе к экзамену по английскому добавляется математика. Но уровень сдачи теста влияет только на распределение по группам – в сильную или слабую попадет ребенок.
Всех иностранцев вместо классической программы изучения английского языка отправляют на ESOL (английский для говорящих на других языках). Здесь их разбивают по группам и учат читать, писать, объясняют грамматику и т.д. Дважды в год идет тестирование. Как только ребенок достигает шестого уровня, его снимают с ESOL и переводят в обычные группы. Кому-то требуется полгода, чтобы попасть в обычный класс, а кто-то может сидеть на программе несколько лет.
В пригороде Вашингтона школы каждый месяц, а то и несколько раз в месяц пополняются иностранными учениками. Из каких только стран не приезжают дети! Сидят за одним столом китаец, индус, кореец и девочки из России и Ирана, пытаются разговаривать друг с другом на английском. И у них получается!
А теперь представьте, как в обычный класс общеобразовательной российской школы посреди года попадают американец и, допустим, мексиканец. Мне кажется, это повод для реалити-шоу. А здесь к такому привыкли.
Так как Америка – страна многонациональная, постоянно пополняется иностранными «мозгами» и «руками», то в местных школах разработана целая система по «вкатыванию» зарубежных детей в местную систему образования. У них на поток поставлено обучение языку, традициям и правилам поведения в школе. У каждого учителя в классе есть дети-иностранцы с абсолютно полярными культурами и религиями, но это никого не пугает.
Например, в первый школьный день к Маше прикрепили одноклассников, которые провели ей экскурсию по учебному заведению. С любыми вопросами она могла обращаться к классному руководителю или детям. Ее фотографию повесили на стенд со всеми новичками года.
Первую неделю Маша тупо сидела и рисовала на уроках. Ей давали все те же задания, что и остальным детям, все те же тесты, и она почти наугад ставила ответы. Если с математикой она хоть как-то справлялась, то с историей Вирджинии не очень. В первом же тесте по теме «Война за независимость» она написала, что это англичане победили американцев и еще что-то в этом же духе. А учитель потом терпеливо исправляла, что выиграли американцы. И ставила смайлики. Иногда Маша в пустых клеточках по-русски писала: «Я не понимаю ваше дурацкое задание!», и за это ей ничего не было. Ей вообще первое время ставили оценки только по математике и ESOL. Но постепенно, когда учителя начинали видеть, что она уже понимает материал, стали оценивать и окружающий мир, и историю.
А вот Лизе в средней школе оценки стали ставить практически с первой недели обучения. Уровень ее английского был 4 из 6, поэтому, видимо, учителя посчитали, что этого достаточно для понимания предметов. Конечно, Лиза мучилась с американской конституцией и поправками к ней, с терминами по геометрии, но в итоге справилась.
Честно говоря, мне кажется, первостепенная задача американской школы (по крайней мере до High School) заключается не в том, чтобы дать детям глубокие знания по какому-либо предмету, а чтобы вырастить настоящих американцев, граждан своей страны. Так каждое утро во всех школах Америки начинается с того, что ученики прикладывают руку к сердцу и произносят клятву верности стране. А каждую пятницу они начинают с гимна.
У них в каждом кабинете висят американские флаги. А еще флаги на домах, на машинах, на зданиях. Они с удовольствием и гордостью носят одежду с американской символикой. Не на Олимпийские игры, а так, каждый день. В школе они досконально изучают конституцию и миллион поправок к ней, штудируют права человека, законы. Постоянно выбирают лидеров разных школьных организаций, делают какие-то доклады.
Они в два счета делают американцев из китайцев, индусов, русских. Это происходит автоматически. Через год обучения в американской школе дети мешают родной язык с английским, а через два предпочитают полностью общаться на английском.
В итоге как проходит адаптация детей к американской школе? Легко и безболезненно. Но вот если мы, приезжие, хотим сохранить родной язык и культуру для своих детей, то придется очень постараться.
Друзья, у меня тут крупное обновление на блоге. Интеграция Microsoft Bot Framework c hybris. В целом, основная часть статьи не про интеграцию, а про бот-решение от Microsoft. В него входят два продукта: Bot Framework и Language Understanding Intelligent Service (LUIS). Интересное решение для создания аналога IVR в чатах. Велкам, на русском таких материалов или еще нет, или очень мало (но я не нашел)