Pull to refresh
1
0
Aleksei Terentev @Terentich

Software Engineer

Send message

Sun против Intel: Питерское противостояние 2004-го года

Reading time11 min
Views17K

Эта история произошла 18 лет назад. Все сроки давности уже прошли, так что можно рассказать о тех событиях и как так получилось, что две огромных технологических компании буквально дрались за коллектив из 150 человек. Но прежде надо немного объяснить, что же это был за коллектив и чем он был примечателен.


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

Читать дальше →
Total votes 123: ↑122 and ↓1+121
Comments51

Прошлое и настоящее глубоководных погружений

Reading time18 min
Views8.5K

Еще недавно весь мир с замиранием читал новости об аппарате «Титан» американской компании OceanGate, с которым внезапно прервалась связь. У людей было много вопросов: «Какие есть шансы на выживание? Успеют ли найти аппарат до того, как закончится кислород?». Но специалисты по глубоководным погружениям (в том числе всем известный Джеймс Кэмерон) спустя сутки уже понимали, что шансов у экипажа не было: давление на глубине в 4000 метров такое, что в чудеса верить не приходилось.

После того, как гибель глубоководного аппарата из-за имплозии (сжатия корпуса) была подтверждена, сразу же всплыли данные о давних проблемах OceanGate с безопасностью. Мол, все об этом предупреждали: у них даже не было никаких сертификатов! Да и выбор углепластика в качестве материала корпуса изначально был плохой идеей. 

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

Читать далее
Total votes 36: ↑35 and ↓1+34
Comments25

Ностальгические игры: Fallout 2 (часть 1)

Level of difficultyEasy
Reading time8 min
Views18K

В 1997 году в свет вышла Fallout – игра, ставшая эталоном жанра. Она покорила умы и сердца миллионов геймеров по всему миру, которые не спали ночами, говоря себе «Ну еще один квест и точно на боковую!». Без крупной пиар кампании и поддержки от издателя (он не верил в успех проекта) продажи были скромны. Но это не помешало выпустить продолжение, в котором разработчики взяли всё лучшее от прародителя, доработали, расширили и сдобрили щепоткой юмора (в первой части его было существенно меньше). Обе игры со временем обрели культовый статус и стали примером того, как надо делать глубокие, интересные проекты с проработанной вселенной, увлекательным действом и миром, в котором почти каждый поступок имеет последствия.

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

Что ж, прежде чем перейти к обзору, я просто не могу не процитировать ставшую уже культовой фразу, сказанную устами Рона Перлмана: «War. War never changes...»

Читать далее
Total votes 64: ↑59 and ↓5+54
Comments73

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

Reading time23 min
Views72K

Привет / Merhaba! Я сетевой инженер из Санкт-Петербурга, один год жил и работал в Москве, но всегда мечтал пожить в небольшом поселке, без пробок и суматохи. И вот мы всей семьей уже более полугода живем в поселке Taşucu (Ташуджу), который расположен в провинции Mersin, рядом с городом Silifke, на побережье Средиземного моря. Сейчас Россия ведет активные работы по строительству объекта энергетики и сопутствующей инфраструктуры в Турции, поэтому переезд на Средиземноморское побережье стал для россиян более доступным (наличие вакансий в разных сферах). Турция располагает как для удаленной работы и фриланса, так и трудоустройства. Сегодня я расскажу про особенности переезда, оформления документов, особенности жилья, плюсах и минусах жизни в небольшом турецком поселке, где всего один светофор и почти не бывает туристов. Данные актуальны на 2021 год.

Читать далее
Total votes 39: ↑37 and ↓2+35
Comments77

Советы руководителю от руководителя

Reading time11 min
Views113K
Привет, Хабр! Я управляю командами разработки уже 10 лет.

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

Потом я вспомнил, что живу в мире пустозвонов, не стесняющихся нести «знания» в массы: бизнес-консультанты без бизнеса, карьерные консультанты без карьеры, коучи по чему угодно после двухмесячных курсов от таких же коучей. Неопытные умы, наслушавшись их, думают, что так мир и устроен, а потом огорчаются, что ничего не вышло. А опытные крутят у виска и отмалчиваются.

Поэтому выключаю тумблер «не будь выскочкой» и делюсь «секретами».



Тут не будет стандартных «делегируй», «налаживай процесс», «стой в правильной позе на стендапе» — об этом написано уже достаточно. Будет о другом.
Читать дальше →
Total votes 155: ↑152 and ↓3+149
Comments201

IntelliJ productivity tips — Секреты самых быстрых разработчиков планеты

Reading time15 min
Views21K


Знать свою машину нужно хотя бы для того, чтобы не стрессовать, если на улице пойдет дождь, а вы не умеете включать дворники. С IntelliJ работает тот же принцип: чтобы быстро и удобно работать, оставаясь в потоке, нужно овладеть кое-какой магией. К счастью, JetBrains позаботились о горячих клавишах — осталось только научиться правильно их применять.


Виктор Рента в своем докладе на JPoint 2021 рассказал о полезных функциях и горячих клавишах IntelliJ, которые могут заметно ускорить ваш кодинг. Следите за руками! Расшифровка доклада и запись — под катом.

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

Эргономика решает: классные эргономические клавиатуры, на которые стоит обратить внимание

Reading time4 min
Views53K

Думаю, что многие читатели Хабра часто работают с клавиатурой — неважно, для кода или написания статей/документации. Приспособиться можно к любой клавиатуре, даже самой недорогой и «китайской» (хотя и в этой категории бывают отличные модели). Но лучше, конечно, работать с комфортом.

В этой подборке мы собрали несколько клавиатур, которые нравятся нам самим — какие-то есть у сотрудников Selectel, к каким-то присматриваемся. Хороших клавиатур достаточно много, мы напишем о части из них. Если у вас есть собственная любимая «клава», расскажите о ней в комментариях.
Читать дальше →
Total votes 51: ↑45 and ↓6+39
Comments188

Секреты производительности Spark, или Почему важна компиляция запросов

Reading time8 min
Views4.5K

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

Читать далее
Total votes 13: ↑12 and ↓1+11
Comments1

Архитектура и стоимость простого бессерверного веб-приложения Amazon Web Services

Reading time7 min
Views16K

Введение


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


Читать дальше →
Total votes 29: ↑24 and ↓5+19
Comments34

Финансовое latency critical приложение на Java и Akka

Reading time19 min
Views7.1K

Всем привет! В своей статье я поделюсь опытом разработки одного из финансовых приложений на Java в ТехЦентре Дойче Банка, расскажу про стек технологий, который мы используем, и каких результатов достигаем

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

Spring Security — пример REST-сервиса с авторизацией по протоколу OAuth2 через BitBucket и JWT

Reading time16 min
Views29K
В предыдущей статье мы разработали простое защищенное веб приложение, в котором для аутентификации пользователей использовался протокол OAuth2 с Bitbucket в качестве сервера авторизации. Кому-то такая связка может показаться странной, но представьте, что мы разрабатываем CI (Continuous Integration) сервер и хотели бы иметь доступ к ресурсам пользователя в системе контроля версий. Например, по такому же принципу работает довольно известная CI платформа drone.io.

В предыдущем примере для авторизации запросов к серверу использовалась HTTP-сессия (и куки). Однако для реализации REST-сервиса данный способ авторизации не подходит, поскольку одним из требований REST архитектуры является отсутсвие состояния. В данной статье мы реализуем REST-сервис, авторизация запросов к которому будет осуществляться с помощью токена доступа (access token).
Читать дальше →
Total votes 2: ↑2 and ↓0+2
Comments1

Spring Security — пример веб приложения с авторизацией по протоколу OAuth2 через BitBucket

Reading time9 min
Views26K
В данной статье мы рассмотрим способ авторизации пользователей в веб приложениях на Spring Boot по протоколу OAuth2 с использованием внешнего сервера авторизации (на примере Bitbucket).

Что мы хотим получить


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

В нативный код из уютного мира Java: путешествие туда и обратно (часть 2)

Reading time20 min
Views15K


Это вторая часть расшифровки доклада Ивана Углянского (dbg_nsk) с JPoint 2020, посвященного связи Java с нативным кодом. В прошлой части мы поговорили про традиционный способ связи — через Java Native Interface (JNI), рассмотрели специфичные ему проблемы и оценили производительность. Картина получилась удручающей, поэтому давайте разбираться, чем можно заменить JNI?

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

Spark schemaEvolution на практике

Reading time8 min
Views2.9K
Уважаемые читатели, доброго дня!

В данной статье ведущий консультант бизнес-направления Big Data Solutions компании «Неофлекс», подробно описывает варианты построения витрин переменной структуры с использованием Apache Spark.

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

Обычно это логи, или ответы различных систем, сохраняемые в виде JSON или XML. Данные выгружаются в Hadoop, далее из них нужно построить витрину. Организовать доступ к созданной витрине можем, например, через Impala.

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

Например, сегодня логируется такой ответ:

{source: "app1", error_code: ""}

а завтра от этой же системы приходит такой ответ:

{source: "app1", error_code: "error", description: "Network error"}

В результате в витрину должно добавиться еще одно поле — description, и придет оно или нет, никто не знает.

Задача создания витрины на таких данных довольно стандартная, и у Spark для этого есть ряд инструментов. Для парсинга исходных данных есть поддержка и JSON, и XML, а для неизвестной заранее схемы предусмотрена поддержка schemaEvolution.

С первого взгляда решение выглядит просто. Надо взять папку с JSON и прочитать в dataframe. Spark создаст схему, вложенные данные превратит в структуры. Далее все нужно сохранить в parquet, который поддерживается в том числе и в Impala, зарегистрировав витрину в Hive metastore.

Вроде бы все просто.
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments6

Windows 10 + Linux. Настройка GUI KDE Plasma для Ubuntu 20.04 в WSL2. Пошаговое руководство

Reading time9 min
Views88K


Введение


Данная статья предназначена вниманию системных администраторов, которые подготавливают типовые рабочие места на компьютерах под управлением ОС Windows 10, в том числе для разработчиков ПО.

Следует отметить, что существует определенная проблема, связанная с невозможностью интеграции ПО, полученного в on-line магазине Microsoft Store для использования в пользовательском образе Windows 10. Не вдаваясь в подробности уточню, что данная проблема связана с тем, что установленные из Microsoft Store программы связываются со служебной учетной записью Administrator, и при завершении создания пользовательского образа утилитой sysprep возникают обусловленные этим обстоятельством ошибки.

Рассмотренный в данной статье способ позволить избежать такой проблемы при подготовке образа ОС Windows 10 с предварительно настроенной подсистемой WSL2, а также с заранее подготовленным и настроенным образом ОС Ubuntu 20.04 с GUI KDE Plasma, который в свою очередь может иметь свой набор пользовательского ПО.

В сети Интернет имеется большое количество примеров и руководств по настройке подсистем WSL (т.е. WSL1 и сравнительно новой WSL2), с настройкой GUI интерфейса для linux систем на базе ОС начиная с версии Ubuntu 16.04 и заканчивая Ubuntu 20.04, но в основном это касалось рабочих столов на основе т.н. «легковесного» xfce4, имеющий вполне объяснимые ограничения в пользовательских настройках. Но что касается GUI KDE Plasma для Ubuntu 20.04, в сети не нашлось какой-либо существенной информации. Но именно этот вариант предоставляет конечному пользователю практически неограниченный набор настроек как внешнего вида системы, так и настроек оборудования, конечно с учетом текущих возможностей интеграции linux-систем, реализованных в подсистеме WSL2.
Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments43

Тесты в Python: все основные подходы, плюсы и минусы. Доклад Яндекса

Reading time23 min
Views83K
Перед вами доклад Марии Зеленовой zelma — разработчика в Едадиле. За час Маша рассказала, в чём состоит тестирование программ, какие тесты бывают, зачем их писать. На простых примерах можно узнать про библиотеки для тестирования Python-кода (unittest, pytest, mock), принципы их работы и отличия между ними.


— Добрый вечер, меня зовут Маша, я работаю в отделе подготовки анализа данных Едадила, и сегодня у нас с вами лекция про тестирование.
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments3

Apache Airflow: делаем ETL проще

Reading time25 min
Views153K

Привет, я Дмитрий Логвиненко — Data Engineer отдела аналитики группы компаний «Везёт».


Я расскажу вам о замечательном инструменте для разработки ETL-процессов — Apache Airflow. Но Airflow настолько универсален и многогранен, что вам стоит присмотреться к нему даже если вы не занимаетесь потоками данных, а имеете потребность периодически запускать какие-либо процессы и следить за их выполнением.


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



Что обычно видишь, когда гуглишь слово Airflow / Wikimedia Commons

Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments28

Подготовка к собеседованиям в IT-гиганты: как я преодолела проклятье алгоритмического собеседования

Reading time12 min
Views204K

Дисклеймер:


Я не программирую с трёх лет, не знаю наизусть Кнута, не являюсь призёром олимпиад по информатике и чемпионатов по спортивному программированию, не училась в MIT. У меня за плечами образование по информатике и 6 лет опыта в коммерческой разработке. И до недавнего времени я не могла пройти дальше первого технического скрининга в IT-гиганты из FAANG (Facebook, Amazon, Apple, Netflix, Google и подобные), хотя предпринимала несколько попыток. 

Но теперь всё изменилось, я получила несколько офферов и хочу поделиться опытом, как можно к этому прийти. Речь пойдёт о позиции Software Engineer в европейских офисах перечисленных компаний.
Читать дальше →
Total votes 201: ↑196 and ↓5+191
Comments342

Поиск работы за границей и иммиграция в Канаду

Reading time12 min
Views87K

Всем привет!


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


TL;DR: Сейчас я живу в городе Виктория, на острове Ванкувер. Это Канада, Британская Колумбия. Свою мечту жить у океана я реализовал, но это заняло 5 лет, и сначала были совершенно другие планы. Более подробно ниже. Ниже картинка моих рабочих мест за последние 10 лет.



Меня всегда тянуло уехать куда-нибудь. Поначалу было все равно, я хотел лишь находиться в новом для себя месте, желательно не России. Это совершенно не связано с политическим климатом или еще чем-то. Я родился и учился в Москве, и Москва это офигенный город. С карьерой более-менее все хорошо было.


В студенческие годы мой отец, подсунул мне ссылку на world4u — это волонтерская организация по обмену. В 2007, 2008, 2009 я посетил Германию, Францию и Италию. В среднем программа была по 1-2 месяца и нужно было оплатить только за перелет. Именно эти европейские проекты оказали на меня влияние, я увидел мир, и понял, что это скучно прожить жизнь в одном месте, даже с комфортом. Картинка ниже очень хорошо передает мой основной мотив:



Это из детского рассказа про Улитку и Кита:


Начинаем рассказ (занимайте места!)
Про малютку улитку и великана кита.
Вот скала,
Где над морем улитка жила,
И вздыхала она то и дело:
-Как мне все надоело!
Мир огромен, а я тут сижу на скале,
А могла бы уплыть на большом корабле…
Читать дальше →
Total votes 58: ↑47 and ↓11+36
Comments127
1
23 ...

Information

Rating
Does not participate
Date of birth
Registered
Activity