В сети опубликовали подборку внутренних документов Google, содержащую более 2500 страниц. Судя по всему, утечка произошла случайно еще в марте текущего года. В документах детально описывается, как работает и ранжирует результаты поисковая система Google, причем данные не совпадают с официальной версией компании, которой Google придерживается уже много лет.
Хабру — 18 лет. Выросли в читателей и авторов те, кто родился с ним в один день и даже позже. Выросли сотрудники, которые работают 18, 15, 10, 5 лет. Да, многие в Хабре работают долго, потому что он не отпускает. Изменился интерфейс, редактор публикаций, пережили ужесточения и послабления правил, неоднократно менялась структура контента. Да что там говорить: Хабр успел разделиться на три сайта и собраться обратно в единый журнал об IT и около IT. Но самое главное, что ежемесячно наши пользовате…
Однажды, смотря на матричное табло, я подумал, что было бы не плохо, если бы смена текста была анимированной. Стало интересно попробовать. Прототип анимации. Изображение сконвертировано в анимированный GIF из реально снятого видеоИзначально думал, что для реалистичной анимации движения точек должны быть с ускорением и торможением, но их реальный ход на экране оказался не таким уж большим и реальный эффект был совсем не заметен, кроме того, финальный пиксель получался как бы с задержкой, поэтом…
У одной задачи может быть несколько способов решения. Возьмем классическую задачу программирования — задачу подсчета, в которой мы считаем, сколько раз каждый элемент списка встречается в нем. Способ решения этой задачи на Python менялся по мере развития языка. Именно об этом мы будем говорить в этой статье.Большинство из нас присоединилось к программированию на Python с его третьей версии. Однако мы начнем с Python 1.4. Пристегните ремни, отправляемся в далекое прошлое — в 1997 год!Python 1.4М…
Я познакомился с Lineage 2, когда был в начальной школе. Играл несколько лет, но замедление прогресса с ростом уровня было невыносимым, а запустить свой сервер было сложно. Так я забросил «линейку» на многие года. С тех пор заинтересовался IT, получил два высших образования и начал писать статьи на Хабр. Но мысль про свой сервер не оставляла меня. Что произошло с игрой за 10+ лет? Можно ли сегодня прикоснуться к игре детства? Действительно ли «раньше было лучше» или это когнитивное искажение?…
Регулярно имею дело с собеседованиями: как прохожу, так и провожу их. Расскажу, что с ними не так и как это можно исправить.Давайте поговорим сегодня на тему технических собеседований в IT. Я хотел бы поделиться своим опытом, рассказать, каким я вижу хорошее собеседование, остановиться на проблемах и ошибках, совершаемых различными компаниями при организации процесса собеседования, и дать набор рекомендаций по улучшению данного процесса. Но сначала давайте знакомиться.Меня зовут Михаил, я заним…
Привет! Меня зовут Денис, я ведущий Golang-разработчик в МТС Диджитал. Еще год назад я работал экспертом по запуску новых сервисов и услуг в Корпоративном центре МТС и параллельно заканчивал курс «Продвинутый Go‑разработчик» от Практикума.В этой статье я расскажу, как начал программировать на Python и зачем мне понадобился Go, как и чему я учился и почему теперь посматриваю на Rust. Начну с моего пути в разработчики, но если вам не интересна эта часть, смело листайте в середину — там много пол…
Привет, Хабр! Меня зовут Александр Лырчиков, я разрабатываю систему хранения данных TATLIN.UNIFIED в YADRO. СХД — сложная система, и, если при работе произошла ошибка, она должна своевременно и понятно сообщать пользователю об этом. В большинстве веб-сервисов для этого используют баннер с надписью «Что-то пошло не так», но такой способ уведомления нам не подходит. Мы столкнулись с проблемой, когда переданных сообщений и HTTP-кодов уже не хватает. Поэтому разработали собственный инструмент для о…
Данная история началась с того, что как-то коллега скинула в телеграмм чат команды пример (на Go)type field struct { name string } func (p *field) print() { fmt.Println(p.name) } func main() { data := []field{{"one"},{"two"},{"three"}} for _,v := range data { go v.print() } time.Sleep(3 * time.Second) // горутины выводят: three, three, three } и попросила объяснить, почему если поменять массив структур на массив указателей на струк…