Как стать автором
Обновить
-6
0

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

Отправить сообщение

О Thread и ThreadPool в .NET подробно (часть 1)

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

Эта текст покрывает ответы на некоторые совсем базовые вопросы и вместе с тем сразу погружает в проблематику получения ответа на вопрос: "как работать лучше? однопоточно, многопоточно или многопоточно, но на ThreadPool?". Ответ на этот вопрос может изначально показаться очень простым и понятным, однако реальность совершенно иная: всё как и везде сильно зависит от ситуации: от типа задачи, от её размера, от прочих условий, которые так просто в голову сами собой не придут.

А потому мы пройдёмся в первую очередь по IO-/CPU-bound операциям, стоимости создания потока, базовым основам работы пула потоков (но только основы), а далее -- углубимся в анализ чёрного ящика: от чего зависит производительность пула потоков? Каков объём работы приемлим для того чтобы в него планировать?

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

Также отмечу, что материал постепенно переходит от начального уровня сложности ? через ⚠️ средний уровень к ☠️ высокому, о чём вы сможете узнать по пиктограммам.

Погрузиться в знания
Всего голосов 25: ↑24 и ↓1+34
Комментарии11

Основы HTTPS, TLS, SSL. Создание собственных X.509 сертификатов. Пример настройки TLSv1.2 в Spring Boot

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

Привет, Хабр! В современном мире абсолютное большинство сайтов используют HTTPS (Google даже снижает рейтинг сайтов работающих по HTTP в поисковой выдаче), а подключение к различным системам происходит по протоколу TLS/SSL. Поэтому любой разработчик рано или поздно сталкивается с этими технологиями на практике. Данная статья призвана помочь разобраться, если вы совершенно не в курсе что это такое и как оно устроено. Мы разберем как работает соединение по протоколу TLS, как выпустить собственные сертификаты и настроем TLS в Spring Boot приложении. Поехали!

Читать далее
Всего голосов 16: ↑12 и ↓4+9
Комментарии12

5 причин использовать Linux в 2020 году

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


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

2020 год, как на него не взгляни, был странным, но для Linux он оказался продолжением обычного цикла разработки. В этой статье мы вспомним этот год и вкратце расскажем о том, что нужно знать о Linux в 2020 году.
Читать дальше →
Всего голосов 60: ↑29 и ↓31+12
Комментарии821

Android изнутри: сравнение Dalvik и ART

Время на прочтение6 мин
Количество просмотров36K
Привет, Хабр! Около полугода назад я публиковал подробный «гайд» по JVM. Пост, в целом, зашел, а в комментариях спросили, не планируется ли “чего-то по андроиду”. Наконец, у меня дошли руки.



В этом посте поговорим о среде выполнения в Android. В частности, я постараюсь кратко, но емко изложить, чем отличается ART и Dalvik, и как со временем улучшились средства разработки в Android. Тема явно не новая, но, надеюсь, придется кстати тем, кто только начинает вникать. Кому интересно — добро пожаловать под кат.
Читать дальше →
Всего голосов 14: ↑12 и ↓2+14
Комментарии14

Конференция QCon. Овладение хаосом: руководство Netflix для микросервисов. Часть 1

Время на прочтение8 мин
Количество просмотров5.9K
Джош Эванс рассказывает о хаотичном и ярком мире микросервисов Netflix, начиная с самых основ — анатомии микросервисов, проблем, связанных с распределенными системами и их преимуществ. Опираясь на этот фундамент, он исследует культурные, архитектурные и операционные методы, которые ведут к овладению микросервисами.

Около 15 лет назад моя мачеха, назовем ее Фрэнсис, стала чувствовать боль и слабость во всем теле, ей стало трудно стоять, и когда врачи в больнице немного привели ее в себя, у нее обнаружился паралич рук и ног. Это было ужасное испытание для нее и для нас, как оказалось, диагнозом стал синдром Гийона-Барре. Мне просто любопытно, кто-нибудь из вас слышал о такой болезни? О, довольно много людей! Надеюсь, вы получили эту информацию не из первых рук. Это аутоиммунное заболевание, острый полирадикулоневрит, при котором иммунная система человека поражает собственные периферические нервы.



Обычно эту болезнь провоцирует какой-то внешний фактор, но интересно в ней то, что антитела атакуют непосредственно миелиновую оболочку аксона так, что повреждают ее по всей длине нерва, и его сигналы становятся очень рассеянными. Поэтому можно логично объяснить все симптомы боли, слабости и паралич, понимая, что происходит с нервной системой. Хорошие новости состоят в том, что это заболевание можно вылечить либо через плазмаферез, когда кровь фильтруется вне вашего тела, либо с помощью антительной терапии.
Всего голосов 17: ↑17 и ↓0+17
Комментарии0

Как и по каким причинам провалились мои первые 5 стартапов

Время на прочтение6 мин
Количество просмотров8.3K
До того, как Loki.ai стал финансово устойчивой компанией, я потерпел неудачу с первыми 5 стартапами за 5 лет.

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

Я запустил свой первый «бизнес» когда я еще учился в школе в 2009 году. Я занимался продажей футболок и доход нашей команды составлял 25 000 долларов. Но несмотря на доход, нам так и не удавалось получить какую-либо прибыль. В свои 17 лет я почему то стал считать, что разобрался в том, как делается бизнес. Но позже я понял, что продавать на площадках, где вы не пользуетесь популярностью и известностью, далеко не тоже самое что продавать футболки друзьям в школе. Это был мой самый первый опыт.

С момента окончания школы я запустил 6 стартапов и с треском провалился в 5 из них.

image

Все 5 неудач имели разные причины. Но уроки, которые я извлек из них, помогли на шестой попытке сделать то, что долго не удавалось (3 года и более).
Читать дальше →
Всего голосов 6: ↑4 и ↓2+4
Комментарии11

Модульность в Java 9

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

Основным нововведением Java 9 было именно введение модульности. Про эту фичу было много разговоров, дата релиза несколько раз переносилась, чтобы допилить все должным образом. В этом посте речь пойдет о том, что дает механизм модулей, и чего полезного Java 9 принесла в целом. Основой для поста послужил доклад моего коллеги — Сергея Малькевича.



Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии3

Процесс компиляции программ на C++

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

Цель данной статьи:


В данной статье я хочу рассказать о том, как происходит компиляция программ, написанных на языке C++, и описать каждый этап компиляции. Я не преследую цель рассказать обо всем подробно в деталях, а только дать общее видение. Также данная статья — это необходимое введение перед следующей статьей про статические и динамические библиотеки, так как процесс компиляции крайне важен для понимания перед дальнейшим повествованием о библиотеках.

Читать дальше →
Всего голосов 35: ↑26 и ↓9+26
Комментарии29

Async/await в C#: концепция, внутреннее устройство, полезные приемы

Время на прочтение24 мин
Количество просмотров220K
Доброго времени суток. В этот раз поговорим на тему, в которой начинал разбираться каждый уважающий себя адепт языка C# — асинхронное программирование с использованием Task или, в простонародье, async/await. Microsoft проделали хорошую работу — ведь для того, чтобы использовать асинхронность в большинстве случаев нужно лишь знание синтаксиса и никаких других подробностей. Но если лезть вглубь, тема довольно объемная и сложная. Ее излагали многие, каждый в своем стиле. Есть очень много классных статей по этой теме, но все равно существует масса заблуждений вокруг нее. Постараемся исправить положение и разжевать материал настолько, насколько это возможно, не жертвуя ни глубиной, ни пониманием.


Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Комментарии27

Опыт переезда iOS Developer в Германию по визе на поиск работы

Время на прочтение10 мин
Количество просмотров17K
Добрый день, дорогой читатель!

В этом посте я бы хотел рассказать о том, как я переехал в Германию, в Берлин, как нашел работу и получил Голубую Карту, и какие подводные могут ожидать людей, решивших повторить мой путь. Я надеюсь, что моя статья будет полезна тебе, если ты хочешь получить новый, интересный, профессиональный IT-опыт.

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

Почему именно виза на поиск работы, а не Голубая Карта сразу? Как уже было сказано, самое главное — время.

26 февраля 2018 я подал комплект документов на визу и 28 февраля виза уже была на руках. А 15 марта 2018 вылетел в Берлин. Виза выдается на 6 месяцев беспрерывного пребывания на территории Германии.

В добавок ко времени, появляется возможность увидеть будущего работодателя в живую, что также хорошо и для работодателя, когда он видит тебя. И как итог, нашел работу за 2 недели с момента прилета в Берлин.

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

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

Но обо всем по порядку.
Читать дальше →
Всего голосов 44: ↑38 и ↓6+32
Комментарии236

Оптимизация загрузки JavaScript-кода в Wikipedia

Время на прочтение5 мин
Количество просмотров7.6K
Автор материала, перевод которого мы сегодня публикуем, говорит, что он, в середине сентября 2019, наконец-то завершил проект, которым занимался уже год. Целью этого проекта было сокращение размеров манифеста, необходимого для инициализации асинхронного JavaScript-конвейера Wikipedia. А именно, размер манифеста составлял 36 Кб. Его нужно было уместить в менее чем 28 Кб, что соответствует двум 14-килобайтным фрагментам последовательности интернет-пакетов.

Результатом этого проекта стала ежедневная экономия 4.3 терабайт трафика.


Сначала размер манифеста превышал 36 Кб, а после оптимизации его размер стал меньше 28 Кб

На графике показано постепенное уменьшение размеров манифеста. Речь идёт о сжатых данных (то есть это — чистая нагрузка на сеть, которую создаёт передача этих данных с сервера в браузер).
Читать дальше →
Всего голосов 37: ↑37 и ↓0+37
Комментарии8

Путь от хирургии к геймдеву или первый опыт мобильной разработки на Unity

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

Зачем, кому и от кого


Всем привет! Меня зовут Анатолий. Я хочу рассказать историю о наших первых шагах в геймдеве, чтобы поделиться пусть и небольшим, но всё же опытом. Зачем? Потому что всего 6 месяцев назад сам искал подобные публикации, перечитывал и выписывал советы. Надеюсь, что и мой пост даст начинающим разработчикам полезную информацию, кого-то подтолкнёт к разработке, а кого-то, возможно, и наоборот. Не думаю, что разбирающиеся в теме люди найдут для себя что-то интересное, но для новичков или желающих ими стать статья определенно может стать полезной. Я расскажу весь путь от возникновения идеи, до публикации готового приложения в Google Play. В общем, поехали!

Внимание: будьте бдительны — лонгрид! Если не хотите много читать — выжимка из практических советов и ссылок в конце статьи.
Читать дальше →
Всего голосов 21: ↑17 и ↓4+13
Комментарии30

Современный подход к конкурентности в Android: корутины в Kotlin

Время на прочтение10 мин
Количество просмотров25K
Привет, Хабр!

Напоминаем, что у нас уже открыт предзаказ на долгожданную книгу о языке Kotlin из знаменитой серии Big Nerd Ranch Guides. Сегодня мы решили предложить вашему вниманию перевод статьи, рассказывающей о корутинах Kotlin и о правильной работе с потоками в Android. Тема обсуждается очень активно, поэтому для полноты картины также рекомендуем посмотреть эту статью с Хабра и этот подробный пост из блога компании Axmor Software.
Читать дальше →
Всего голосов 14: ↑11 и ↓3+8
Комментарии29

.NET: Инструменты для работы с многопоточностью и асинхронностью. Часть 1

Время на прочтение18 мин
Количество просмотров69K
Публикую на Хабр оригинал статьи, перевод которой размещен в блоге Codingsight.
Вторая часть доступна здесь

Необходимость делать что-то асинхронно, не дожидаясь результат здесь и сейчас, или разделять большую работу между несколькими выполняющими ее единицами была и до появления компьютеров. С их появлением такая необходимость стала очень ощутимой. Сейчас, в 2019, набирая эту статью на ноутбуке с 8 ядерным процессором Intel Core, на котором параллельно этому работает не одна сотня процессов, а потоков и того больше. Рядом, лежит уже немного потрепанный, купленный пару лет назад телефон, у него на борту 8 ядерный процессор. На тематических ресурсах полно статей и видео, где их авторы восхищаются флагманскими смартфонами этого года куда ставят 16ти-ядерные процессоры. MS Azure предоставляет менее чем за 20$/час виртуальную машину со 128 ядерным процессором и 2 TB RAM. К сожалению невозможно извлечь максимум и обуздать эту мощь не умея управлять взаимодействием потоков.
Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии5

Web Security: введение в HTTP

Время на прочтение11 мин
Количество просмотров40K
HTTP — вещь прекрасная: протокол, который просуществовал более 20 лет без особых изменений.

image

Это вторая часть серии по веб-безопасности: первая часть была «Как работают браузеры».

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

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

При обсуждении HTTP, тем не менее, мы всегда должны различать семантику и техническую реализацию, поскольку это два совершенно разных аспекта работы HTTP.
Читать дальше →
Всего голосов 20: ↑16 и ↓4+12
Комментарии12

Как работает Android, часть 4

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


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

Читать дальше →
Всего голосов 51: ↑51 и ↓0+51
Комментарии25

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

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

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


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

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

Только в программном обеспечении считается нормальным, если программа работает на уровне 1% или даже 0,01% от возможной производительности. Ни у кого вроде нет возражений.
Всего голосов 505: ↑474 и ↓31+443
Комментарии2474

Графическая среда Linux без единого разрыва

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

TL;DR — Если ваше графическое окружение Linux во время просмотра видео, сеанса игры или прокрутки интерактивной веб страницы не успевает вовремя обновлять картинку целиком, то тогда для вас имеет смысл установить последнюю стабильную версию ядра ≥ 4.10.


Давным давно, то есть несколько лет назад каждая реализация протокола X11 предполагала смену режима видео напрямую, поперек батьки кернела. Затем появился KMS (kernel mode setting) и эта важная функция перешла к ядру. Но остались некоторые шероховатости. Атомарная смена режима является дальнейшим улучшением механизма KMS.


Для чего нужны атомарные операции KMS? Главным образом для того, чтобы избежать вот таких моментов.




Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии14

О работе в Германии

Время на прочтение12 мин
Количество просмотров72K
В этой статье я расскажу о том как собственно работается в Германии, какие коллеги попадаются, какие комбинации проворачивают немецкие корпорации, для грамотного распиливания бабла. Комбинаций, которым многим нашим чиновникам стоило бы поучиться.

К сожалению я никогда не работал на маленьких фирмах, поэтому будем считать, что все это относится к большим компаниям. О себе могу сказать лишь то, что я работал уже на 6-ти различных AG и прошел в Германии абсолютно все стадии эволюции: полугодовая практика на Daimler, работа Werkstudent’ом(Студенческая работа программистом), Junior, Middle, Senior.

Также, когда закончится вода, я расскажу о реальных зарплатах, ожиданиях, а также затрону тему мусора, которое льется из многих статей и видео, о работе программистом в германии. Большинство из того что вы можете увидеть и найти на youtube о работе разработчиком в Германии это рассказы людей, которые или пару лет находятся здесь, или вообще здесь никогда не были, или просто находятся в каком-то сказочном неадеквате.

А начну я с коллег которые вам будут встречаться везде — легкие русофобы.
Читать дальше →
Всего голосов 99: ↑65 и ↓34+31
Комментарии459

GitHub превращается… превращается GitHub… в элегантный Windows 95

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


В Твиттере какое-то время назад запостили шутку в честь приобретения Майкрософтом ГитХаба — страницу сайта, перестилизованную в стиле Windows 98. Я решил, что шутка слишком хороша, чтобы оставаться шуткой.

Давайте перекрасим GitHub!
Всего голосов 206: ↑202 и ↓4+198
Комментарии82
1

Информация

В рейтинге
3 886-й
Откуда
Warszawa, Mazowieckie, Польша
Дата рождения
Зарегистрирован
Активность