Pull to refresh
3
0
Send message

Управление временем в Java приложениях

Reading time8 min
Views11K

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

Читать далее
Total votes 25: ↑23 and ↓2+21
Comments13

Отказоустойчивая архитектура контентной платформы на 4 Тбит/с — опыт VK Видео

Reading time16 min
Views20K

Представьте идеальный мир с бесконечными ресурсами, в котором можно сколько угодно линейно масштабироваться под нагрузку: просто доставлять серверы, диски, видеокарты, как только потребуется больше мощностей. Звучит хорошо? Только оказывается, что когда серверов 5 000 и дисков 100 000, то несколько из них обязательно находятся в состоянии maintenance или repair, куда их привели обстоятельства непреодолимой силы. И главная задача здесь — обеспечить доступность сервиса в условиях постоянных сбоев. 

В статье разберём, как построить отказоустойчивую платформу, с какими неочевидными corner cases может столкнуться сервис с UGC-контентом, а ещё — как жить в реальном, а не идеальном мире и оптимизировать железо. Чтобы раздавать 4 Тбит/с можно, конечно, использовать 400 серверов по 10 Гбит/с, но гораздо интереснее грамотно всё потюнить и выжать 100 Гбит/с с Java-сервера.  

Читать далее
Total votes 59: ↑58 and ↓1+57
Comments15

70+ бесплатных инструментов для компьютерной криминалистики (форензики)

Reading time8 min
Views38K

Расследование инцидентов в области информационной безопасности не такая горячая тема, как пентесты, но эта научная и практическая дисциплина продолжает развиваться, во многом, благодаря Open Source-сообществу.

Давайте пройдемся по просторам GitHub и посмотрим, какие инструменты для сбора и анализа цифровых доказательств доступны всем желающим.

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

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

Почему наш стартап переехал с Flask на FastAPI

Reading time8 min
Views27K

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

Алекс Морозов, co-founder & CTO в компании Datafold, рассказал, как они переехали с Flask на FastAPI и поделился собственным опытом такого переезда. Это не только то, что пишут в документации, а конкретные проблемы, с которыми они столкнулись при переезде, и как они их обошли. На примерах посмотрим, что стоит сделать, а каких решений лучше избегать.

Читать далее
Total votes 24: ↑22 and ↓2+20
Comments8

OSINT для сбора информации о рекламных идентификаторах на сайтах

Reading time3 min
Views5K

Давайте поговорим об использовании уникальных рекламных идентификаторов на сайте и их применимости для использования в OSINT-исследованиях.

Рекламные идентификаторы прячутся в коде вебсайта. Чтобы их увидеть необходимо открыть код страницы (в Chrome - CTRL+U) и найти в нем их упоминание. Ключевые слова для поиска даны ниже, применительно к популярным рекламным площадкам:

AdSense: Pub- или ca-pub

Analytics: UA-

Amazon: &tag=

AddThis: #pubid / pubid

Metrika: mc.yandex / ym

Альтернативным средством обнаружения рекламных идентификаторов на сайте может стать использование таких сервисов:

https://themarkup.org/blacklight

https://urlscan.io/

https://www.spiderfoot.net/

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

http://www.spyonweb.com

https://analyzeid.com/

https://dnslytics.com/reverse-analytics 

https://intelx.io/tools?tab=analytics

https://intelx.io/tools?tab=adsense

Проиллюстрируем это на примере изучения сайта https://www.bleepingcomputer.com/, который имеет в коде страницы уникальный рекламный идентификатор Google Analytics UA-91740.

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

Подключение телеграм бота к гугл таблицам

Reading time4 min
Views80K

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

Читать далее
Total votes 29: ↑27 and ↓2+25
Comments19

Песочница для Nginx

Reading time5 min
Views9.4K

Как-то я болтала с приятелем о том, как было бы здорово, если бы был такой сайт-песочница, где бы можно было просто скопировать-вставить конфиг Nginx-а и протестировать его. И я поняла, что это не так уж сложно сделать, поэтому погрузилась в тему и сделала: nginx-playground.wizardzines.com.


screenshot

Читать дальше →
Total votes 16: ↑14 and ↓2+12
Comments21

Типичные ошибки архитектора, или Как перестать бояться и полюбить RFC

Reading time8 min
Views24K

Всем привет! С вами Женя, разработчик Dodo Engineering и один из ведущих подкаста «Читаем вместе». Он посвящен IT-книгам. В каждом сезоне мы планируем читать и разбирать одну книгу. Уже подходит к концу первый сезон, который мы посвятили книге Fundamentals of Software Architecture. Она написана архитекторами для архитекторов, но разработчикам, особенно тем, которые интересуются, как создавать работающие системы, тоже может быть очень интересна и полезна.

Глава про архитектурные решения сильно нас зацепила, потому что в своей работе мы напрямую столкнулись с описанными в ней проблемами. 

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

Знакомо? Нам тоже. Но мы смогли победить эти проблемы.

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

Читать далее
Total votes 38: ↑37 and ↓1+36
Comments5

Как оценить Soft Skills на собеседовании и помочь разработчику их развить

Reading time13 min
Views36K

Довольно очевидно, что junior-разработчику и тимлиду требуется сильно различающийся набор навыков. И если в случае hard skills всё уже миллион раз проанализировано и посчитано, то о необходимом наборе soft skills в зависимости от должности мы можем только понимать на уровне ощущений и здравого смысла. 

Более того, в нашей индустрии не принято говорить после собеседования, что кандидату отказано из-за его уровня soft skills, хотя мы даже не пытаемся конкретизировать, что конкретно в нём нас не устраивает. Вы наверняка слышали или сами употребляли фразы вроде «просто человек странный», «почему-то не нравится» или «чувствуем, что он не вольется в команду». Но почему? Что на самом деле с ним не так?

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

Читать далее
Total votes 30: ↑27 and ↓3+24
Comments18

Подчищаем за собой: учимся удалять данные с HDD и SSD

Reading time17 min
Views99K

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

Читать далее
Total votes 27: ↑25 and ↓2+23
Comments84

Nginx. О чем не пишут в книгах

Reading time9 min
Views45K

Эта статья родилась случайно. Слоняясь по книжному фестивалю и наблюдая, как дочка пытает консультантов, заставляя их искать Иэна Стюарта, мой глаз зацепился за знакомые буквы на обложке: "Nginx".

Надо же, на полках нашлось целых три книги - не полистать их было бы преступлением. Первая, вторая, третья... Ощущение, будто что-то не так. Ну вроде страниц много, текст связный, но каково содержание? Установка nginx, список переменных и модулей, а дальше docker, ansible. Открываем вторую: wget, лимиты запросов и памяти, балансировка, kubernetes, AWS. Третья: GeoIP, авторизация, потоковое вещание, puppet, Azure. Ребята, а где про то, как вообще работает nginx? На кого рассчитаны ваши книги? На состоявшегося админа, который и так знает архитектуру этого веб-сервера? Да он вроде с базовыми настройками и сам справится. На новичка, который не знает как пользоваться wget? Вы уверены, что ему знание о существовании ngx_http_degradation_module и тем паче "облака" важнее порядка прохождения запроса?

Итак. О чем не пишут в книгах.
(здесь и дальше мы говорим только о NGX_HTTP_)

Фазы обработки запроса
Total votes 86: ↑86 and ↓0+86
Comments11

Риски IT-компаний при работе с самозанятыми

Reading time9 min
Views11K

Кто такие самозанятые?

Понятия “самозанятые” в законодательстве нет. Под “самозанятыми” обычно понимают граждан:

1. получающих доход от самостоятельной деятельности;

2. состоящих на учете в качестве плательщика налога на профессиональный доход.

Налог на профессиональный доход - это специальный налоговый режим, который был введен в 2018 году Законом № 422-ФЗ. По закону плательщиками налога на профессиональный доход могут быть физические лица и индивидуальные предприниматели. 

Суть данного налогового режима: самозанятый самостоятельно платит налог с дохода, полученного от своей деятельности, в размере:

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments15

Хорошие новости для тех, кто всё ещё использует row-level локи в PostgreSQL

Reading time10 min
Views9.6K

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

Источник изображения

Читать далее
Total votes 21: ↑19 and ↓2+17
Comments6

Apache Camel и Spring Boot

Reading time12 min
Views19K

Apache Camel — это фреймворк для интеграции приложений и эффективного взаимодействия между различными системами, с чем приходится часто сталкиваться в любой корпоративной инфраструктуре. Apache Camel позволяет разработчику сосредоточиться на логике процессов, не переводя данные в канонический формат, так как Camel поддерживает более 80 API для реализации различных протоколов и типов данных. Таким образом, разработчику — то есть вам — достаточно просто знать, как Camel соединяет все вместе. В этой статье мы по шагам рассмотрим, как интегрировать Apache Camel и Spring Boot.

Но прежде чем обратиться к примеру со средой Spring Boot, разберемся с основными понятиями и терминами Camel.

Читать далее
Total votes 9: ↑7 and ↓2+5
Comments0

Личный сервер shadowsocks за 10 минут без затрат

Reading time3 min
Views230K

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

Приятной особенностью такого метода развёртывания shadowsocks является то, что он не требует больших технических познаний. И настройка клиентов shadowsocks крайне проста: вся конфигурация происходит сканированием QR-кода или одной URL-строкой.

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

Apache Kafka: основы технологии

Reading time9 min
Views360K

У Kafka есть множество способов применения, и у каждого способа есть свои особенности. В этой статье разберём, чем Kafka отличается от популярных систем обмена сообщениями; рассмотрим, как Kafka хранит данные и обеспечивает гарантию сохранности; поймём, как записываются и читаются данные.


Статья подготовлена на основе открытого занятия из видеокурса по Apache Kafka. Авторы — Анатолий Солдатов, Lead Engineer в Авито, и Александр Миронов, Infrastructure Engineer в Stripe. Базовые темы курса доступны на Youtube.

Total votes 29: ↑29 and ↓0+29
Comments10

Домашний DPI, или как бороться с провайдером его же методами

Reading time16 min
Views238K

Долгое время я терпел ограничения РосКомНадзора и соответствующие действия провайдеров по различным ограничениям доступа к сайтам - но с определённого момента устал, и начал думать как бы сделать так, чтобы было и удобно, и быстро, и при этом с минимумом заморочек после настройки... Хочу оговориться, что цель анонимизации не ставилась.

Вообще, эта проблема имеет несколько решений... Но я решил бороться с провайдером их же методом.

...При помощи NGINX!
Total votes 246: ↑245 and ↓1+244
Comments187

Хватит отдавать Гуглу ваши данные. Десять альтернатив для Google Analytics

Reading time7 min
Views20K


4 сентября 1998 года Сергей Брин и Ларри Пейдж основали компанию Google. На заре своего существования Google представляла собой «фирму одного продукта», притом продукт получился настолько крутым и классным, что быстро пошатнул рыночные позиции конкурентов. Однако перенесемся на 23 года вперед. Современный Google — это уже давно не поисковая система. Вернее, не только поисковая система. Это огромная транснациональная и очень эффективная рекламная платформа, целый завод по производству денег, использующий в качестве сырья пользовательские данные. Но стоит ли делиться с этой платформой теми самыми данными? На этот счет есть разные мнения.
Читать дальше →
Total votes 34: ↑32 and ↓2+30
Comments22

Изучаем ELK. Часть II — Установка Kibana и Logstash

Reading time13 min
Views56K

В предыдущей статье была описана процедура установки Elasticsearch и настройка кластера. В этой статье будет рассмотрена процедура установки Kibana и Logstash, а также настройка их для работы с кластером Elasticsearch.

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

Настраиваем домашний почтовый сервер и уходим с «бесплатной» почты

Reading time15 min
Views309K

С каждым годом рекламы в интернете становится все больше, а подают ее с каждым разом все навязчивее. Дошло уже до почты: реклама в интерфейсе почтового ящика выглядит как первое непрочитанное письмо, которое машинально хочется открыть. Я не против рекламы, особенно когда она в тему и не сбивает с толку. Но маскировать её под непрочитанное письмо ‒ это перебор. Чувствуется, что следующим шагом рекламу начнут вставлять прямо в тело письма.

Читать далее
Total votes 108: ↑100 and ↓8+92
Comments338
1
23 ...

Information

Rating
Does not participate
Registered
Activity