Pull to refresh
20.2
Karma
0
Rating
Сергей Б. @sergey-b

Пользователь

  • Followers 16
  • Following 8
  • Posts
  • Comments

Мото AGM аккумулятор: ввод в эксплуатацию

RUVDS.com corporate blog Popular science Energy and batteries Car Gadgets Transport

Привет, Хабр! Сегодня мы введём в эксплуатацию сухозаряженный мотоциклетный AGM аккумулятор. Данное руководство можно использовать и для обычных сухозаряженных кальциевых АКБ с жидким электролитом.

Заодно обсудим, чем отличаются разные типы свинцовых аккумуляторов, и как это сказывается на их применении. Как всегда, будут видео и показания приборов.
Узнать подробности
Total votes 61: ↑58 and ↓3 +55
Views 5.7K
Comments 4

OpenVPN, легкий перевыпуск корневого сертификата

System administration *IT Infrastructure *Network technologies *
Доброго времени суток. Предыстория такова: десять лет назад мной была поднята инфраструктура сети салонов сотовой связи, распределенная по области. В качестве учетного решения использовалась система 1С: Предприятие 7.7 в режиме распределенной базы данных. Для обмена данными использовалась обычная сетевая папка windows, доступ к которой осуществлялся через туннель OpenVPN. И вот как-то неделю назад полностью остановился обмен информацией между центром и периферией. Почему-то сразу закралась мысль — неужели прошло десять лет (именно на этот срок делался корневой сертификат). Анализ логов подтвердил проблему, схема отлично себя зарекомендовала за эти десять лет, но пришел срок. И что же теперь, генерировать заново весь объем клиентских и серверных ключей/сертификатов??? Нет, можно поступить немного проще…
Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Views 16K
Comments 9

OpenStack — разворачиваем «руками» Kilo

Virtualization *
Tutorial
Привет всем Хабралюдям!

В прошлой статье, я рассказывал о том, как можно быстро развернуть тестовую среду при помощи DevStack. В этой публикации я расскажу как развернуть своё «облако» OpenStack на двух машинах (Controller, Compute) в комплектации:
  • Keystone
  • Glance
  • Nova
  • Neutron
  • Cinder
  • Horizon


В общем-то эта система позволит нам запускать множество виртуальных машин (сколько позволит памяти и CPU на compute), создавать виртуальные сети, создавать виртуальные диски и подключать их к VM, ну и конечно управлять всем этим через удобный дашборд.

Осторожно! Много «портянок» со списком команд и конфигами!
Начнём!
Total votes 9: ↑8 and ↓1 +7
Views 62K
Comments 14

Заменить Object на var: что может пойти не так?

Programming *Java *

Недавно я столкнулся с ситуацией, что замена Object на var в программе на Java 10 приводит к исключению в процессе выполнения. Мне стало интересно, много ли разных способов добиться такого эффекта, и я обратился с этим вопросом к сообществу:



Оказалось, что добиться эффекта можно разными способами. Хотя все они несильно сложные, но на примере такой задачки интересно вспомнить о разных тонкостях языка. Давайте посмотрим, какие удалось найти способы.

Total votes 44: ↑43 and ↓1 +42
Views 9.8K
Comments 17

Практические задачи по Java — для курсов и прочих занятий

Java *

Практические задачи по Java — для курсов и прочих занятий


Несколько вводных слов


Последние несколько лет я читаю курс по программированию на Java. Со временем он менялся — то добавлялись, то выкидывались разные части, менялась последовательность тем, менялся подход к построению плана самих занятий, и так далее. То есть, курс совершенствовался. Одной из основных проблем, возникших при подготовке курса — это задачи. О них и пойдёт речь.

Дело в том, что каждое моё занятие состоит из двух частей. На первой я выступаю в роли лектора — рассказываю с примерами кода о какой-то новой теме (классы, наследование, дженерики и так далее). Вторая часть — практическая. Очевидно, что нет смысла просто рассуждать о программировании, надо программировать. Приоритет на занятиях — решение задач, то есть программирование чего-то как-то. Программирование на занятиях отличается от программирования дома, так как на занятиях можно задать вопрос, показать код, получить быструю оценку кода, комментарии по улучшению, исправлению написанного. Очень легко было найти задачи для самых первых занятий. Задачи на циклы, условные операторы, и ООП (к примеру, написать класс «Собака» или класс «Вектор»). Сервисы вроде leetcode позволяют даже проверить правильность решения таких задач сразу, онлайн. Но какие задачи дать студентам на занятии, которое было посвящено коллекциям? Потокам? А аннотациям? За несколько лет я придумал, или переработал несколько таких задач, и эта статья, по сути, является сборником этих задач (к некоторым задачам прилагается решение).
Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Views 350K
Comments 19

Моё разочарование в софте

Development for Android *Development for Linux *Development for Windows *Software
Translation

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


Я занимаюсь программированием уже 15 лет. Но в последнее время при разработке не принято думать об эффективности, простоте и совершенстве: вплоть до того, что мне становится грустно за свою карьеру и за IT-отрасль в целом.

Для примера, современные автомобили работают, скажем, на 98% от того, что физически позволяет нынешняя конструкция двигателя. Современная архитектура использует точно рассчитанное количество материала, чтобы выполнять свою функцию и оставаться в безопасности в данных условиях. Все самолёты сошлись к оптимальному размеру/форме/нагрузке и в основном выглядят одинаково.

Только в программном обеспечении считается нормальным, если программа работает на уровне 1% или даже 0,01% от возможной производительности. Ни у кого вроде нет возражений.
Total votes 505: ↑474 and ↓31 +443
Views 365K
Comments 2477

Шпаргалки Java программиста 9: Java SE — Шпаргалка для собеседований и повторений

Website development *Programming *Java *Development of mobile applications *Development for Android *
Tutorial
Данная статья в первую очередь предназначена для подготовки к собеседованиям на позицию Java разработчика (на самом деле, это шпаргалка, которую я писал для себя в течении многих лет, и повторяю при каждом новом поиске работы).

Предполагается. что вы знакомы с многими функциями из Java SE, поэтому в основном информация дается кратко. Конечно, можно использовать эту статью и просто для обучения основам Java SE платформы (но в этом случае, после чтения статьи вам скорее всего придется обратиться к другим источникам).

image

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

Внимание: я не буду касаться вопросов по самому языку Java (вроде для чего нужно слово final или чем overriding отличается от overloading), это потребует отдельной статьи, это вопросы именно по Java SE (6-9) платформе.
Читать дальше →
Total votes 30: ↑28 and ↓2 +26
Views 108K
Comments 10

Тест Джоэла как инструмент собеседуемого

JUG Ru Group corporate blog Website development *
Многие хабровачане наверняка знакомы с тестом Джоэла (перевод). Если в двух словах, Джоэл Спольски предлагает на основе выбранных им критериев оценить любому инженеру, насколько хороша его команда.

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

Допустим, эта часть Вам понравилась и Вы задумались о том, чтобы перейти в этот проект. Потенциально Вам с этими людьми работать следующие несколько лет (ну минимум — месяцев). Поэтому имеет смысл пораспрашивать о проекте поподробнее. А заодно и будущих сокомандников прощупать — что они за перцы? ;)

И вот тут выясняется, что вышеупомянутный тест Джоэла очень хорошо подходит для выяснения подробностей о проекте. С одной существенной оговоркой — тест составлен более двенадцати лет назад. За это время отрасль существенно шагнула вперёд. Поэтому вопросы имеет смысл слегка подкоррекировать с учётом этого факта.

Читать дальше →
Total votes 104: ↑86 and ↓18 +68
Views 60K
Comments 82

Как угнать весь трафик и всех клиентов из Яндекса имея только вебмастер?

Information Security *Website development *Search engines *Yandex API *Search engine optimization
Recovery mode
image

Я сейчас опубликую способ угона всего поискового трафика и всех клиентов любого сайта с помощью Яндекса за 5 минут без никаких знаний при наличии доступа к одному ТОЛЬКО Яндекс Вебмастеру. К сожалению, от этого могут пострадать владельцы сайтов, но я просто не вижу другого выхода. На данный момент техподдержка Яндекса просто закрывает глаза на проблему. Я не уверен, что о проблеме вообще известно менеджменту и идет ли информация дальше «Платонов» и потому я вынужден опубликовать эту уязвимость чтоб привлечь к ней внимание Яндекса как можно скорее и спасти как можно больше сайтов.
Читать дальше →
Total votes 132: ↑103 and ↓29 +74
Views 62K
Comments 142

Идеальный мавен. Часть 1

Java *DevOps *
Sandbox

Знаю, он не идеальный, но по крайней мере я попытаюсь рассказать, как его к этому приблизить.


В одну заметку всё не войдёт, поэтому сначала план:


  1. Постановка задачи — описание той конфигурации проектов с которой мы будем работать, целей и проблем
  2. Как настроить мавен для разработки в рамках нашей задачи
  3. Как настроить CI/CD (билды, релизы, деплоймент)
  4. Нерешенные проблемы

Задача


Итак, начнем с постановки задачи. Предположим у нас есть группа людей (компания, фирма, кружок), которые разрабатывают проекты на Java. При этом у них есть как проекты с открытым кодом (OSS), так и проекты с закрытым кодом. Проекты, назовём их внутренние, разрабатываются независимо друг от друга, но между ними есть зависимости. Что хочется:


  • Централизованное управление зависимостями на внешние библиотеки
  • OSS проекты в центральном мавен репозитории
  • Закрытые проекты в своём мавен репозитории.
  • «Простой» релиз внутренних проектов с обновлением зависимости в зависимых проектах.
  • Максимальная автоматизация всех хотелок.
Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Views 26K
Comments 36

Идеальный мавен. Часть 2: структура проекта

Java *DevOps *
Tutorial

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

Читать дальше →
Total votes 4: ↑4 and ↓0 +4
Views 17K
Comments 9

Пора убить C#

Website development *JavaScript *.NET *
Sandbox
image

Давайте будем честны, и смиримся с рядом фактов:

1. У нас есть определенный рынок в России и только 5% задач из этого рынка нуждаются в высокой производительности, вся основная нагрузка всегда будет лежать на базе данных.

2. Мы живем в 2017 году и иметь 4-8гб оперативной памяти считается разумным минимумом для пользователя, если человек использует Nokia 3310, то глупо жаловаться на неработоспособность Yandex карт.

3. 90 — 95% задач на нашем рынке, это примитивные приложения по типу:

  • Получить данные
  • Отправить данные
  • Отредактировать данные
  • Визуализировать данные.
  • Посчитать данные

4. Конечная цель бизнеса — это деньги, помните, что мы пишем код не для себя, а для решения проблем бизнеса.
Читать дальше →
Total votes 124: ↑23 and ↓101 -78
Views 62K
Comments 148

Как не надо писать на Хабр: Антирейтинг 2017

Cloud4Y corporate blog Open data *Research and forecasts in IT Web analytics *Reading room


Обсуждая результаты анализа статей за 2017 год, мы пришли к выводу, что нам и другим хабровчанам интересны не только лучшие публикации, но также любопытно было бы узнать какие статьи и комментарии были худшими. Сегодня мы публикуем антирейтинг публикаций и комментариев на Хабрахабре в 2017-ом. Сделано это потому, что на чужом негативном опыте можно многому научиться, оставить эти ошибки в уходящем и не повторять их в новом году. Других целей этот пост не несёт, просьба отнестись к этому с пониманием.
Читать дальше →
Total votes 74: ↑66 and ↓8 +58
Views 38K
Comments 65

Как мы создавали менеджер паролей со стойкой криптографией и мастер-паролем. Опыт команды Яндекс.Браузера

Яндекс corporate blog Information Security *Cryptography *Browsers Development for Windows *
Как ни странно, но только 1% пользователей браузера используют специализированные расширения для хранения паролей (LastPass, KeePass, 1Password, ...). Безопасность паролей всех остальных пользователей зависит от браузера. Cегодня мы расскажем читателям Хабрахабра, почему наша команда отказалась от архитектуры защиты паролей из проекта Chromium и как разработала собственный менеджер паролей, который уже тестируется в бете. Вы также узнаете, как мы решили проблему сброса мастер-пароля без расшифровки самих паролей.



С точки зрения безопасности, на каждом сайта рекомендуется использовать свой уникальный пароль. Если злоумышленники украдут один пароль, то только к одному сайту они и получат доступ. Проблема в том, что запомнить десятки надёжных паролей очень сложно. Кто-то честно придумывает новые пароли и записывает их руками в блокнот (а потом теряет вместе с ним же), другие – используют один и тот же пароль на всех сайтах. Трудно сказать, какой из этих вариантов хуже. Решением проблемы для миллионов обычных пользователей может быть встроенный в браузер менеджер паролей, но его эффективность зависит от того, насколько он прост и надёжен. И в этих вопросах у предыдущего решения были пробелы, о которых мы и расскажем ниже.

Читать дальше →
Total votes 87: ↑85 and ↓2 +83
Views 39K
Comments 178

Как мы Raiffeisen Online создавали…

Райффайзенбанк corporate blog JavaScript *Java *System Analysis and Design *Designing and refactoring *

Интернет-банк уже давно превратился из роскоши в must have для любого уважающего себя банка. Излишне говорить, что приложение должно не просто быть, а должно быть надёжным, удобным и приятным в использовании. В одной статье не получится рассказать обо всех аспектах нашего интернет-банка Raiffeisen Online, но зато я расскажу о нашем опыте создания новой версии, его архитектуре и трудностях, с которыми столкнулась команда. Возможно, кому-то наш опыт поможет сэкономить время и усилия.
Читать дальше →
Total votes 37: ↑34 and ↓3 +31
Views 18K
Comments 84

Вы уволили самого талантливого сотрудника. Надеюсь, теперь вы довольны

Development Management *Project management *Start-up development Product Management *Personnel Management *
Translation
Недавно довелось прочитать статью под названием «Мы уволили самого талантливого сотрудника. Это лучшее решение, которое мы когда-либо делали». [Очень популярная статья, которая получила массу положительных оценок на Medium — прим. пер.]

Давайте присядем, вы и я. Нужно поговорить. Если вы не читали статью по ссылке, то уделите 10–15 минут и прочитайте, впитайте её целиком.

Готовы? Отлично. Теперь разберём этот текст, потому что он значит гораздо больше, чем там написано. Если вы прочитали статью, то понимаете, что автор описывает проблемного сотрудника под вымышленным именем «Рик». Рик — это местный гений с огромным количеством знаний в предметной области, он входит в состав ключевых разработчиков продукта.

На первый взгляд, это история о технаре, который возомнил себя божьим даром для компании. Он решил, что руководители должны поклоняться земле, по которой он ходит и быть благодарны за одно его присутствие, а руководство вышвырнуло его пинком за дверь, потому что его репутация обналичивала чеки, за которые талант не мог заплатить.
Читать дальше →
Total votes 310: ↑300 and ↓10 +290
Views 159K
Comments 430

Пару слов о неминуемом повороте в развитии IT-отрасли

Development Management *Community management *Venture investment IT career
В связи с тем, что относительно большая (и очень громкая) часть IT живёт в очередном пузыре доткомов (теперь уже стартапов), у некоторых представителей этого племени, а в особенности у всяких евангелистов и даже HR появилась иллюзия следующего свойства.

Мол, какой-то девайс, фреймворк или способ работы резко поднимает успешность предприятия. Например, «мы все используем MacBook, и у нас уже третий раунд инвестиций». Или «мы решили открыть travel-агентство, и нанимаем только тех программистов, которые не вылезают из путешествий; мы хотим, чтобы все сотрудники разделяли наши ценности, и у нас уже оборот 100 млн долларов». Или «как только мы внедрили React + Vue + Angular, наши дела пошли в гору, и нас купил Google». И так далее.

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

image
Читать дальше →
Total votes 164: ↑149 and ↓15 +134
Views 71K
Comments 329

К чёрту мотивацию, вам нужна дисциплина

GTD *
Translation
Если вы желаете что-то сделать, то есть два способа этого достичь.

Первый, более распространённый и в значительной мере неправильный вариант — попытаться мотивировать себя.

Второй, весьма непопулярный, но абсолютно правильный выбор — воспитание дисциплины.

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

В чём же разница?
Читать дальше →
Total votes 62: ↑53 and ↓9 +44
Views 90K
Comments 62

История успеха «Яндекс.Почты» с PostgreSQL

High performance *Oracle *PostgreSQL *System Analysis and Design *SQL *


Владимир Бородин (на «Хабре» dev1ant), системный администратор группы эксплуатации систем хранения данных в «Яндекс.Почте», знакомит со сложностями миграции крупного проекта с Oracle Database на PostgreSQL. Это — расшифровка доклада с конференции HighLoad++ 2016.

Всем привет! Меня зовут Вова, сегодня я буду рассказывать про базы данных «Яндекс.Почты».

Сначала несколько фактов, которые будут иметь значение в будущем. «Яндекс.Почта» — сервис достаточно старый: он был запущен в 2000 году, и потому мы накопили много legacy. У нас — как это принято и модно говорить — вполне себе highload-сервис, больше 10 миллионов пользователей в сутки, какие-то сотни миллионов всего. В бэкенд нам прилетает более 200 тысяч запросов в секунду в пике. Мы складываем более 150 миллионов писем в сутки, прошедших проверки на спам и вирусы. Суммарный объём писем за все 16 лет — больше 20 петабайт.

О чем пойдет речь? О том, как мы перевезли метаданные из Oracle в PostgreSQL. Метаданных там не петабайты — их чуть больше трехсот терабайт. В базы влетает более 250 тысяч запросов в секунду. Надо иметь в виду, что это маленькие OLTP-запросы, по большей части чтение (80%).

Это — не первая наша попытка избавиться от Oracle. В начале нулевых была попытка переехать на MySQL, она провалилась. В 2007 или 2008 была попытка написать что-то своё, она тоже провалилась. В обоих случаях был провал не столько по технически причинам, сколько по организационным.
Total votes 113: ↑111 and ↓2 +109
Views 49K
Comments 120

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity