Обновить

Технотекст

Дженерики в языке Go

Время на прочтение6 мин
Количество просмотров71K
func Map[F, T any](s []F, f func(F) T) []T {
    r := make([]T, len(s))
    for i, v := range s {
        r[i] = f(v)
    }
    return r
}

Как вы уже наверняка знаете, proposal по дженерикам в Golang принят (официально это называется type parameters) и будет имплементирован в go 1.18. Бета будет доступна уже в конце этого года. А это значит, что пора разобраться, на чём в итоге остановились разработчики языка — ведь черновик type parameters постоянно менялся в течение последних лет.


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


Самостоятельно поиграться с дженериками можно здесь


Итак, поехали.

Читать дальше →

Карты, фаззинг, OSM: ищем поверхность атаки для сложного приложения

Время на прочтение13 мин
Количество просмотров4.3K

Фаззинг - это такое тестирование, в котором не надо придумывать тесткейсы, потому что умная машина (или настойчивый алгоритм перебора) делает это за вас.

Но с фаззингом есть одна неприятность - непонятно, как тестировать любую достаточно сложную систему. Мы бы хотели генерировать много тестов и быстро прогонять их, а в итоге приходится каждый раз откатывать состояние окружения, потому что программа пишет что-то в БД. Или входные данные настолько сложны, что их так просто не нагенерируешь.

Поэтому попробуем разобраться, как программу можно делить на части. А также определять, какие части нам нужны, а какие не очень.

Читать далее

Java: есть ли жизнь на десктопе?

Время на прочтение15 мин
Количество просмотров29K

Привет! Я Виктор Барсуков, Java-разработчик в Lamoda. В этой статье хочу рассказать о своем опыте разработки десктопного Java-приложения в рамках пет-проджекта. Что из этого получилось и что можно было бы сделать иначе.

Читать далее

Стратегии оптимизации HDL-кода и синтезатора нетлиста для FPGA

Время на прочтение22 мин
Количество просмотров8K

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

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

Читать далее

Хранители данных: как устроена работа с DWH в Lamoda

Время на прочтение7 мин
Количество просмотров39K

Всем привет! Меня зовут Юлия Скогорева, я системный аналитик в команде Center of excellence в Lamoda, которая входит в дирекцию данных и аналитики.

Если бизнесу нужны какие-то данные для принятия важных решений, то на помощь приходит наша команда. Мы тщательно изучаем множество микросервисов, чтобы определить, какие же данные нужны для решения бизнес-целей, формируем архитектуру хранилища, пишем скрипты запросов и витрин данных, строим юниверсы, делаем отчеты и дашборды. Большая часть работы не обходится без участия команды DWH-разработки.

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

Читать далее

Качество, блокчейн и другие тренды EdTech 2022 года

Время на прочтение8 мин
Количество просмотров3.6K

EdTech — отрасль, живущая по заветам Льюиса Кэрролла. Чтобы не отстать от современных технологий, нужно бежать изо всех сил. Но перед тем, как начать гонку, хорошо бы разобраться, в какую сторону двигаться. Вот что стоит держать в голове, если вы работаете над современным образовательным продуктом и хотите соответствовать ожиданиям пользователей.

Читать далее

Как мы СХД QSAN тестировали. Чудес не бывает, но иногда так хочется…

Время на прочтение17 мин
Количество просмотров8.9K

Задачи компаний и их потребности в СХД меняются по мере развития. Рынок СХД тоже не стоит на месте. И проверенные 5 лет назад решения могут не тянуть сегодняшних задач. Потратив в общей сложности пару месяцев рабочего времени на выбор, тестирование, внедрение, диагностику и решение различных проблем с СХД QSAN XS1224 решил поделиться своим видением. Мне кажется, что многим это будет интересно. Описываемый период времени — с 2019 года по настоящий момент.

Читать далее

Моя система физического и ментального здоровья гика

Время на прочтение8 мин
Количество просмотров19K
Мне 39 лет и с 19 работаю разработчиком и руководителем проектов, женат, есть ребенок. Всё норм, единственный нюанс – тело досталось с начальными параметрами гораздо хуже средних.
Когда ребенок рождается, его состояние оценивается по шкале Апгар 0-10. 7-10 – это норма, 0-2 балла — сильные отклонения в состоянии здоровья. У меня было – 2 балла. Мне повезло, и я выжил, но получил детский церебральный паралич, вторую группу инвалидности и справку о нетрудоспособности. Руки и ноги дергаются, говорю непонятно (но привыкнуть можно),  правая рука умеет только здороваться и зажимать ctrl, хожу как зомби.

Здоровье было всю жизнь не айс, однако тело реально посыпалось около 30, плюсом к ДЦП: гастрит, колит, простатит, аритмия, множественные экструзии межпозвоночных дисков, остеопороз, постоянный мышечный спазм всего тела, нарушение зрения, бессоница и др.  Когда я спросил у кардиолога, почему у меня в таком раннем возрасте развилась аритмия, она объяснила очень просто: ДЦП постоянно фигачит все мышцы, сердце – это мышца, просто до этой мышцы добрались не сразу.

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

Моя система состоит из трех компонентов:

  • Работа над телом: кинезитерапия, йога,  дыхание,  закалка, правильное питание
  • Работа над духом: Формирование внутренних установок которые делают меня сильнее и счастливее
  • Ежегодная диагностика и работа с лучшими врачами в тех местах где у меня есть или будут проблемы.


Далее подробнее расскажу о системе.
Читать дальше →

Автоматизация автоматизации или как мы обеспечили автоустановку не только ОС Astra Linux, но и софта в один «проход»

Время на прочтение19 мин
Количество просмотров31K

Как "раскатать" ось на кучу устройств? Что делать если перед вами стоит задача установить операционную систему семейства linux на большое количество устройств? Ходишь-бродишь среди леса устройств, подключаешь флешку и отвечая на одни и те же вопросы при установке системы. Пока не заблудишься...или не сойдёшь с ума в этой рутине...или поймёшь что поседел и зрение уже не то...или...Что-то я увлёкся. Конечно первым делом нужно открывать google! И он ответит: "Парень, не парься, используй preseed". И будет прав, т.к. в linux есть задокументированная возможность использования файла ответов (тот самый preseed.cfg). Если коротко, то вы формируете файл ответов, кладёте его в нужное место и система использует его для ответов на вопросы при установке. А вы в это время пьёте чай и всё такое. Но так ли всё гладко? Конечно нет! Welcome!

Читать далее

Физика двоичной логики

Время на прочтение13 мин
Количество просмотров43K

Вопрос «Как работает компьютер?» чрезвычайно многогранен и ответ на него зависит от выбранного уровня абстракции. Рассказ о компьютере может строиться вокруг прикладного ПО, операционной системы или архитектуры. Эта статья — попытка дать ответ на этот вопрос с точки зрения нижних уровней абстракции: логических схем и принципа их работы.
Читать дальше →

Шрифты в играх: как из 191 Мб сделать 12 Мб

Время на прочтение9 мин
Количество просмотров13K

Каждый, кто хоть раз играл в игры Playrix, замечал, что в них приходится много читать. Тексты окружают игрока повсюду: это разные элементы интерфейса, окна сезонов, баннеры, а также диалоговые окна, в которых разворачиваются целые сюжетные линии. Иногда нам кажется, что если собрать все наши игровые тексты, то можно выпустить ещё один том «Войны и мира». 

Работать с таким большим количеством текстов сложно — у каждого из 7 проектов в релизе был свой способ подготовки шрифтов. В какой-то момент мы поняли, что нам нужно объединить усилия и создать общий для всех подход, который будет поддерживать специальная техническая команда

Читать далее

Как я переехала из Москвы в Испанию (без мужа и с зарплатой в тенге)

Время на прочтение12 мин
Количество просмотров26K

Привет, я Света, давайте снова знакомиться. 

В IT я более 10 лет, начинала в Мэйл.Ру в отделе персонала. Пока компания росла от 600 до 6 000 человек, я выросла из ассистента отдела до руководителя направления внутренних коммуникаций. Олды могут меня помнить по митапам Мэйла в офисе Авион, там я раздавала вам пиццу в перерывах. Позже мы с командой организовывали митапы, конференции и мероприятия в башнях. Их многие наверняка тоже помнят.

Сейчас, когда меня спрашивают о работе, я отвечаю, что живу в Европе, работаю в IT, получаю зарплату в валюте, а за несколько месяцев могу накопить миллион. 

Я и правда живу в Испании, а работаю проджектом в Beeline Казахстан. Отсюда возможность накопить миллион и зарплата в валюте — все это про тенге. 

В свободное время делаю DevRel-проекты с разными компаниями, помогаю с Хабром, пишу статьи в Т—Ж и другие издания про IT, деньги и путешествия. 

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

Идём оформлять испанский ВНЖ

Неотправленное письмо боссу в кровавом Enterprise

Время на прочтение5 мин
Количество просмотров24K

Хоть я и интроверт, но с soft skills у меня неплохо. Поэтому я стараюсь придерживаться принципа:

True wisdom: 1. Having a lot to say. 2. Not saying it.

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

Читать далее

Новый язык программирования

Время на прочтение23 мин
Количество просмотров21K
image
Более года назад я начал публикацию статей с описанием особенностей нового языка программирования. С тех пор утекло много воды, было протестировано множество идей, в итоге несколько раз все поменялось кардинальным образом и сейчас представляю на суд читателей описание предфинальной версии языка и его особенностей.

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

Этот проект очень долго был без собственного названия и в публикациях назывался просто и абстрактно «новый язык». Но после нескольких статей, временное название «новый язык» постепенно превратилось в имя собственное NewLang, которое я и решил в конечном итоге оставить (что еще раз подтверждает поговорку, что нет ничего более постоянного, чем что-то временное).

Читать дальше →

Война с компилятором и собой: об оптимизациях вещественной арифметики на Эльбрусе

Время на прочтение24 мин
Количество просмотров28K

Недавно в процессе выполнения учебного задания мне потребовалось реализовать метод конечных разностей для нахождения приближённого решения краевой задачи. По сути, я впервые столкнулся с вычислениями с плавающей точкой и не мог не попробовать запустить свою программу на Эльбрусе, зная о его больших возможностях и заточенности под вычисления такого рода. Хотите удивиться? Отправляйтесь со мной в увлекательное путешествие!

Читать дале

Как мы сделали простого WebRTC робота в домашних условиях

Время на прочтение6 мин
Количество просмотров7.8K

Бывало ли у Вас такое, что выйдя из дома Вы не помните выключили ли утюг? Обсуждая с другом очередной такой случай, появилась шуточная идея сделать робота для дистанционной визуальной проверки домашних дел. Да и вообще хотелось, на коленке сделать “шпионского” робота управляемого по камере со смартфона. Эта идея вынашивалась нами давно, но руки дошли только сейчас. И мы сразу же отправились в ближайший бар для обсуждений. Собственно роботом это называть не совсем верно. Скорее это самоходная платформа с телеметрическим управлением через сеть Интернет. Но в статье будет использоваться термин “робот” просто потому что так привычней. 

Технология WebRTC идеально нам подошла, так как довольно легко организовать передачу видео, аудио и data каналов между двумя peer’ами с минимальной задержкой сигнала. Наглядная упрощенная схема всей системы изображена на рисунке ниже. Да и опыта работы с этой технологией у нас не было, потому очень хотелось попробовать.

Читать далее

Реклама Dendy, которую мы заслужили

Время на прочтение6 мин
Количество просмотров39K

В 90-е у компаний, которые занимались рекламой не было таких крутых инструментов для создания графики, как сейчас и я подумал, что было бы интересно посмотреть как могла выглядеть реклама старой доброй Dendy, если бы её создавали в наше время.

Читать далее

Как этот год работала наша внутренняя служба гражданской обороны — от первых слухов до развития кризиса

Время на прочтение10 мин
Количество просмотров13K
image

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

У нас было 40 тысяч масок, 5 тысяч респираторов, 10 тысяч перчаток и 350 литров антисептиков, но опасение вызывала информированность. Не то чтобы это был необходимый запас для офиса, но раз уж вы начали готовиться к ковиду, то становится трудно остановиться. Началось всё ещё весной 2020, когда половина офисных сотрудников в эпидемию не верила, а другая половина бегала в панике и не знала, как защищаться. У нас работает больше 2500 человек, поэтому было важно организовать процессы, связанные с этим всем.

В первую очередь мы взялись за сбор и оценку информации и сделали отдельную поддержку чисто по COVID-19.

В административно-эксплуатационном департаменте есть бывшие военнослужащие. Мы собрались и поняли, что любую неопределённость можно преодолеть планом. Потому начали писать стратегические планы действий на случай, если вдруг нужно будет переходить на удалёнку, например. Верили в них поначалу мало, но за следующие пару недель параноики восторжествовали. От стадии «это сезонное и пройдёт через две недели» мы довольно быстро перешли к «это серьёзно», «это запредельно серьёзно» и далее к варианту плана «***», где военные в присущей им манере детально описали наихудший вариант развития событий. Именно его мы и взяли дальше за основу работы.

Самодельный стратостат

Время на прочтение28 мин
Количество просмотров21K

result_lowres


Допустим, вы интересуетесь космосом, но космос для вас недоступен. Выше 10км не подняться, а посмотреть "что там?" очень хочется. По классификации NASA — нижняя граница космоса начинается на 100км от поверхности Земли. Эта статья будет не совсем про космос, но про возможность создания своего стратосферного зонда с нуля. Я много видел примеров успешного запуска и несколько статей на Хабре, но почти все они — это отчеты. Я же хочу оставить статью, которая сможет претендовать на "complete guide" для юных покорителей. Запаситесь терпением и безлимитным интернетом — будет много текста, картинок и даже пару видео. Это был долгий путь для нас, но я намерен сделать его не таким изнурительным для всех желающих. Поехали?

Читать дальше →

Моделирование и визуализация при анализе и проектировании ИТ систем. И не только

Время на прочтение5 мин
Количество просмотров14K

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

Читать далее