Pull to refresh
56
Karma
0
Rating
Святослав Жиренко @swh

Research&Development

  • Posts
  • Comments

Совместная игра в Factorio — лучшее собеседование для программистов, что мы проводили

ITSumma corporate blogProgrammingPersonnel ManagementGames and game consolesLogic games
Translation
В последнее время много копий сломано вокруг технических собеседований. Очевидно, что инвертирование двоичного дерева на доске практически никак не связано с практическими навыками реального программиста. Примитивный Fizzbuzz по-прежнему остаётся самым эффективным тестом. Как следствие, выросло внимание к опенсорсным проектам, но оказалось, что это тоже не очень хороший показатель, потому что у большинства профессионалов нет на них времени.

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

Все эти методы интервью не сравнятся с очень простой метрикой: совместная игра в Factorio. Прохождение всего цикла Factorio — практически идеальный показатель, насколько хорошо человек решает общие технические проблемы. Можно даже настроить прохождение игры на основе будущей должности, чтобы лучше понять, как кандидат справится со своей ролью.
Читать дальше →
Total votes 110: ↑106 and ↓4 +102
Views49.9K
Comments 138

Защита авторских прав на ваши Pet-projects

Конференции Олега Бунина (Онтико) corporate blogDevelopment of mobile applicationsLegislation in ITCopyright
Что делать, когда вы получили претензию, требование или иск по вашему проекту от работодателя или партнера с требованием передать все материалы? Как вы можете защитить свои проекты в этом случае или сильно заранее, для профилактики? Много ли разработчиков разбираются в этом? Количество разработок и результатов творческой деятельности неуклонно растет и возникает все больше спорных ситуаций по правам на эти проекты (произведения). Поэтому вопрос защиты прав на Pet-project (пет-проекты) становится практикой. К тому же она может быть не такой уж сложной.

Вадим Кирюхин, управляющий партнер, адвокат юридической фирмы «Кирюхин и Партнеры», член международной ассоциации адвокатов (International Bar Association) сегодня расскажет, что такое пет-проект с точки зрения российского законодательства и что вы можете сделать, если получили претензию от вашего работодателя с требованием передать все материалы по пет-проекту. Вы узнаете также, какие в настоящее время есть способы защиты ваших прав на пет-проекты, а в конце рассмотрим кейсы из судебной практики.


Читать дальше →
Total votes 21: ↑20 and ↓1 +19
Views5.7K
Comments 14

Пишем простое, но полезное приложение для Nokia N900 за 20 минут

Smartphones
Приветствую, уважаемый хабраюзер!
В данной заметке я расскажу об интересных свойствах операционной системы Maemo с точки зрения
системного администратора Unix. Цель заметки — показать удобство написания приложений под данную ОС.

Писать приложение мы будем на Shell. А почему бы и нет? — ведь для Maemo это родная среда!
Читать дальше →
Total votes 43: ↑34 and ↓9 +25
Views2.8K
Comments 43

Как я создал собственный алгоритм YouTube (чтобы не тратить время впустую)

VDSina.ru corporate blogSearch enginesWorking with videoAlgorithmsSocial networks and communities
Translation


Побег от алгоритма YouTube


Я люблю смотреть видео на YouTube, осязаемым образом улучшающие мою жизнь. К сожалению, алгоритм YouTube с этим не согласен. Он любит кормить меня кликбэйтом и прочим мусором.

Всё это неудивительно: алгоритм отдаёт приоритет кликам и времени просмотра.

Поэтому я поставил перед собой задачу: Смогу ли я написать код, который автоматически будет находить ценные видео, избавив меня от привязанности к алгоритму YouTube?

Вот так всё и началось.

Оптимально выстроенные планы


Я начал с визуализации того, что должен делать мой инструмент. Мне нужна была программа, которая будет (i) ранжировать видео на основании вероятной релевантности для меня и (ii) автоматически отправлять мне предлагаемые видео, из которых я смогу выбирать.

Я решил, что смогу серьёзно повысить продуктивность, если буду пакетно выбирать наборы видео для просмотра на каждую неделю и избавлюсь от необходимости бесконечного скроллинга YouTube.
Читать дальше →
Total votes 43: ↑42 and ↓1 +41
Views16.9K
Comments 29

Пошаговая установка TRAC на FreeBSD для начинающих

Lumber room

The Trac project


Я не буду описывать ее возможности и для чего эта система нужна, все есть на офф. сайте (http://trac.edgewall.org) или в википедии.
Рассмотрю только установку и настройку детально для новичков (статья посвящена другу Энверу из Рязани, может еще кому пригодиться), тому кто уже с этим сталкивался пользы эта статья не принесет.

Связка FreeBSD + SVN + Apache2 + Trac


Для новичков подробнее о связке и способе работы

Все исходники разрабатываемого ПО лежат в SVN (удобно видеть все изменения и всегда легко сделать откат, если надо).
Trac — система, предоставляющая возможность интерактивной работы прежде всего с svn репозиторием, а так же вики (не считая доп. модулей).
Читать дальше →
Total votes 7: ↑5 and ↓2 +3
Views682
Comments 4

RecyclerView.ItemDecoration: используем по максимуму

Surf corporate blogDevelopment of mobile applicationsInterfacesDevelopment for AndroidMobile applications design
🔥 Technotext 2020 🔥 Technotext 2020
Привет, дорогой читатель Хабра. Меня зовут Олег Жило, последние 4 года я Android-разработчик в Surf. За это время я поучаствовал в разного рода крутых проектах, но и с легаси-кодом поработать довелось.

У этих проектов есть как минимум одна общая деталь: везде при разработке приложения использовался список с элементами. Например, список контактов телефонной книги или список настроек вашего профиля.

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


Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Views11.1K
Comments 10

Создание собственной View под Android – может ли что-то пойти не так?

Development of mobile applicationsAlgorithmsDevelopment for Android
«Дело было вечером, делать было нечего» — именно так родилась идея сделать вью с возможностью зума, распределяющую юзеров по рангам в зависимости от кол-ва их очков. Так как до этого я не имел опыта в создании собственных вьюшек такого уровня, задача показалась мне интересной и достаточно простой для начинающего… но, *ох*, как же я ошибался.

В статье я расскажу о том, с какими проблемами мне пришлось столкнутся как со стороны Android SDK, так и со стороны задачи (алгоритма кластеризации). Основная задача статьи – не научить делать так называемыми “custom view”, а показать проблемы, которые могут возникнуть при их создании.

Тема будет интересна тем из вас, кто имеет мало (или не имеет вовсе) опыта в создании чего-то подобного, а также тем, кто хочет словить лулзов с автора в сто первый раз уверовать в «гибкость» Android SDK.
Читать дальше →
Total votes 26: ↑24 and ↓2 +22
Views34.3K
Comments 10

Введение в Spring Boot: создание простого REST API на Java

ProgrammingJava
Sandbox

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


Каждый раз, создавая очередное корпоративное Java-приложение на основе Spring, вам необходимо повторять одни и те же рутинные шаги по его настройке:


  • В зависимости от типа создаваемого приложения (Spring MVC, Spring JDBC, Spring ORM и т.д.) импортировать необходимые Spring-модули
  • Импортировать библиотеку web-контейнеров (в случае web-приложений)
  • Импортировать необходимые сторонние библиотеки (например, Hibernate, Jackson), при этом вы должны искать версии, совместимые с указанной версией Spring
  • Конфигурировать компоненты DAO, такие, как: источники данных, управление транзакциями и т.д.
  • Конфигурировать компоненты web-слоя, такие, как: диспетчер ресурсов, view resolver
  • Определить класс, который загрузит все необходимые конфигурации
Читать дальше →
Total votes 11: ↑6 and ↓5 +1
Views189.4K
Comments 18

Как устроен Apple Lightning

Manufacture and development of electronicsPeripheryDIYElectronics for beginners
Translation


Это моя маленькая статья с описанием (почти) всего, что я знаю об интерфейсе Apple Lightning и связанных с ним технологиях: Tristar, Hydra, HiFive, SDQ, IDBUS и др. Но сначала маленькое предупреждение…

Читайте эту статью на свой страх и риск! Информация основана на большом количестве внутренних материалов AppleInternal (утечка данных, схем, исходных кодов), которые я прочёл по диагонали. И, конечно, на моих собственных исследованиях. Должен предупредить, что я никогда раньше не проводил подобных исследований. Таким образом, эта статья может использовать неправильные или просто странные термины и оказаться частично или полностью неправильной!
Читать дальше →
Total votes 45: ↑45 and ↓0 +45
Views37.3K
Comments 109

Бесплатные онлайн-курсы по Automotive, Aerospace, робототехнике и инженерии (50+)

НПП ИТЭЛМА corporate blogRobotics developmentStudying in ITIT careerTransport
Подписывайтесь на каналы:
@AutomotiveRu — новости автоиндустрии, железо и психология вождения
@TeslaHackers — сообщество российских Tesla-хакеров, прокат и обучение дрифту на Tesla


Спрос на крутых специалистов в автоиндустрии растёт и будет расти. В современных автомобилях строк кода больше, чем в космических кораблях, боевых самолетах и операционных системах. Доля стоимости ПО в автомобилях в скором времени дойдет до 50%. Каждый компонент автомобиля стремится стать «умным».

Предлагаем вашему вниманию подборку онлайн-курсов для самостоятельного изучения и повышения компетентности в области automotive.

Бесплатные курсы от edX (36)


Road Traffic Safety in Automotive Engineering

от Chalmers University of Technology

Изучите основы пассивной и активной безопасности в автомобильной технике.


Длительность: 7 недель
Нагрузка: 10-20 часов в неделю
Сложность: Advanced
Цена: бесплатно (сертификат за $249)
Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Views9.2K
Comments 6

В Сеть выложили неизвестную адаптацию SimCity для нефтяников — SimRefinery

Game developmentHistory of IT


В коллекцию Internet Archive добавлена рабочая копия игры SimRefinery, её можно скачать и поиграть в эмуляторе.

Игра нашлась после статьи двухнедельной давности Фила Сальвадора (Phil Salvador) о компании Maxis Business Simulations. Это было подразделение Maxis, которая выпустила известный хит SimCity.
Читать дальше →
Total votes 34: ↑34 and ↓0 +34
Views9.5K
Comments 3

450 бесплатных курсов от Лиги Плюща

SkillFactory corporate blogProgrammingStudying in ITPopular scienceData Engineering
Translation
image


Информационные технологии позволяют получить невероятно крутые образовательные ресурсы в один клик. Бесплатно.

Я сейчас решаю задачу, как из огромной массы жизненно важного контента выбрать тот, который стоит попробовать в первую очередь, как «разметить данные», чтобы нейросеточка у подрастающего поколения обучилась более эффективно. (ontol.org, «Выгорание», «Удаленка», телеграм-канал).

Предлагаю вашему вниманию полную подборку всех бесплатных курсов от Лиги Плюща.

Лига плюща (The Ivy League) — ассоциация восьми частных американских университетов, расположенных в семи штатах на северо-востоке США. В состав лиги входят: Брауновский университет (Brown University), Гарвардский университет (Harvard University), Дартмутский колледж (Dartmouth College), Йельский университет (Yale University), Колумбийский университет (Columbia University), Корнеллский университет (Cornell University), Пенсильванский университет (University of Pennsylvania), Принстонский университет (Princeton University).

Эти университеты выпустили около 500 онлайн-курсов, 450 из которых сейчас доступны.

Оглавление


Computer Science (37)
Data Science (18)
Программирование (8)
Гуманитарные науки (80)
Бизнес (72)
Art & Design (20)
Наука (32)
Социальные науки (74)
Здоровье и медицина (32)
Инженерия (15)
Образование и преподавание (21)
Математика (14)
Личностное развитие (7)

Читать дальше →
Total votes 25: ↑24 and ↓1 +23
Views45.7K
Comments 5

Модель памяти в примерах и не только

Java
Tutorial
В продолжение серии топиков под названием «фундаментальные вещи о Java, которые стоит знать, но которые многие не знают». Предыдущий топик: Бинарная совместимость в примерах и не только

Модель памяти Java — нечто, что оказывает влияние на то, как работает код любого java-разработчика. Тем не менее, довольно многие пренебрегают знанием этой важной темы, и порой наталкиваются на совершенно неожиданное поведение их приложений, которое объясняется именно особенностями устройства JMM. Возьмём для примера весьма распространённую и некорректную реализацию паттерна Double-checked locking:

public class Keeper {
    private Data data = null;
    
    public Data getData() {
        if(data == null) {
            synchronized(this) {
                if(data == null) {
                    data = new Data();
                }
            }
        }
        
        return data;
    }
}

Люди, пишущие подобный код, пытаются добиться улучшения производительности, избегая блокировки, если значение уже было присвоено. К сожалению, эти люди не учитывают многих факторов, в результате проявления которых может случиться зомби-апокалипсис. Под катом я расскажу теорию и приведу примеры того, как что-то может пойти не так. Кроме того, как говорили в одном индийском фильме, «Мало знать, что не так. Нужно знать, как сделать так, чтобы было так». Потому и рецепты успеха вы также сможете найти дальше.
Читать дальше →
Total votes 98: ↑95 and ↓3 +92
Views198.2K
Comments 34

Откуда растут ноги у Java Memory Model

JavaConcurrent computing
Sandbox
Современное железо и компиляторы готовы перевернуть с ног на голову наш код, лишь бы он работал быстрее. А их производители тщательно скрывают свою внутреннюю кухню. И все прекрасно, пока код выполняется в одном потоке.

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

Но все уже осознали, ведь жить с этим как-то надо. А Java программисты даже неплохо живут. Потому что в Java есть модель памяти — Java Memory Model (JMM), которая предоставляет достаточно простые правила для написания корректного многопоточного кода.

И правил этих достаточно для большинства программ. Если вы их не знаете, но пишите или хотите писать многопоточные программы на Java, то лучше как можно скорее ознакомиться с ними. А если знаете, но вам не хватает контекста или интересно узнать откуда растут ноги у JMM, тогда статья может вам помочь.
Читать дальше →
Total votes 55: ↑53 and ↓2 +51
Views52.7K
Comments 10

Лучшие вопросы средней сложности по SQL на собеседовании аналитика данных

Дата-центр «Миран» corporate blogPostgreSQLProgrammingSQLIT career
Translation
Первые 70% курса по SQL кажутся довольно простыми. Сложности начинаются на остальных 30%.

С 2015 по 2019 годы я прошёл четыре цикла собеседований на должность аналитика данных и специалиста по анализу данных в более чем десятке компаний. После очередного неудачного интервью в 2017 году — когда я запутался в сложных вопросах по SQL — я начал составлять задачник с вопросами по SQL средней и высокой сложности, чтобы лучше готовиться к собеседованиям. Этот справочник очень пригодился в последнем цикле собеседований 2019 года. За последний год я поделился этим руководством с парой друзей, а благодаря дополнительному свободному времени из-за пандемии отшлифовал его — и составил этот документ.

Есть множество отличных руководств по SQL для начинающих. Мои любимые — это интерактивные курсы Codecademy по SQL и Select Star SQL от Цзы Чон Као. Но в реальности первые 70% из курса SQL довольно просты, а настоящие сложности начинаются в остальных 30%, которые не освещаются в руководствах для начинающих. Так вот, на собеседованиях для аналитиков данных и специалистов по анализу данных в технологических компаниях часто задают вопросы именно по этим 30%.

Удивительно, но я не нашёл исчерпывающего источника по таким вопросам среднего уровня сложности, поэтому составил данное руководство.
Читать дальше →
Total votes 29: ↑27 and ↓2 +25
Views39.4K
Comments 17

Минкомсвязи предложило меры поддержки IT-отрасли

Legislation in ITIT-companies
Минкомсвязи России отправило в правительство письмо с перечнем предложений по поддержке российской ИТ-сферы, пострадавшей в результате вынужденных мер по борьбе с коронавирусом.

Ведомство предлагает следующие меры:

  • отсрочить до конца года уплату налогов на доходы сотрудников (с льготным погашением в течение трёх лет) для компаний, работающих в сфере информационных технологий;
  • отменить уплату страховых взносов в фонд оплаты труда;
  • снизить налог на прибыль с 20 до 12%
Читать дальше →
Total votes 11: ↑10 and ↓1 +9
Views2.9K
Comments 0

Sampler. Консольная утилита для визуализации результата любых shell команд

Open sourceProgrammingGoData visualizationDevOps

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


Sampler


Наблюдение за изменением состояния в базе данных, мониторинг размера очередей, телеметрия с удаленных серверов, запуск деплой скриптов и получение нотификации по завершению — конфигурируется за минуту простым YAML файлом.


Код доступен на гитхабе. Инструкции по установке — для Linux, macOS и (экспериментально) Windows.

Читать дальше →
Total votes 298: ↑297 and ↓1 +296
Views76.5K
Comments 54

Инструменты для разработчика Go: знакомимся с лейблами профайлера

Badoo corporate blogProgrammingDebuggingGo
Translation

DrawingПривет. Меня зовут Марко. Я системный программист в Badoo. Представляю вашему вниманию перевод поста замечательной rakyll о новой фиче в Go 1.9. Мне кажется, что лейблы будут очень полезны для профилирования ваших Go-программ. Мы в Badoo, например, используем аналогичную штуку для того, чтобы тегировать куски кода в наших программах на С. И если срабатывает таймер и в лог выводится стек-трейс, то в дополнение к нему мы выводим такой вот тег. В нем, например, может быть сказано, что мы обрабатывали фотографии пользователя с определенным UID. Это невероятно полезно, и я очень рад, что похожая возможность появилась и в Go.

Читать дальше →
Total votes 59: ↑58 and ↓1 +57
Views11.4K
Comments 0

Импровизированный считыватель штрих кодов для 1С через Telegram на Go

Instant MessagingProgrammingGoDevelopment of communication systems
Sandbox
Всем привет! Хочу поделиться тем, что возможно кому-то пригодится.

Захотелось, для разнообразия, что-нибудь несложное реализовать на Go, и тут параллельно были прочтены статьи на хабре про Telegram-ботов, а на работе проект по интеграции штрих-кодирования и 1С, ну вот и было решено совместить приятное с полезным и реализовать импровизированный считыватель штрих-кодов для тестирования и на пощупать как в 1С это работает.
Читать дальше →
Total votes 19: ↑12 and ↓7 +5
Views11.2K
Comments 11

Typegram — дзэн блог платформа

Open sourceGo

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


Базовые возможности:


Публикации, комментарии, избранное, подписки, уведомления, рейтинги, голосования.


Минималистичный, текстовый дизайн:

Читать дальше →
Total votes 50: ↑43 and ↓7 +36
Views12.2K
Comments 52

Information

Rating
5,654-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity