Pull to refresh
2
0
Вениамин Лыткин @Epsil0neR

User

Send message

Ошибки и подозрительные места в исходниках .NET 6

Reading time19 min
Views13K

0903_NET6_ru/image1.png


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

Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments4

Senior Engineer в поисках работы. Как я прошел 15 технических собеседований и что я об этом думаю

Reading time13 min
Views49K
Продолжение истории о том, как я проходил собеседования в разные компании на разные позиции. В этот раз закроем несколько вопросов и комментариев касательно первой части и продолжим говорить о тестовых заданиях и технических собеседованиях.

К моему удивлению, предыдущая статья о собеседованиях с рекрутерами и HR вызвала неожиданный интерес: более 100 000 просмотров по всем источникам. Я получил кучу положительного фидбека в личку, мне написали бывшие коллеги, которых я последний раз видел лет 5 назад; героини некоторых историй; парень, которому я несколько недель назад продавал системник через OLX (аналог Slando, — прим. пер.); барабанщик с которым мы в прошлом году играли метал в гараже, и, как это ни странно, довольно много рекрутеров, которые поинтересовались моими мыслями касательно тех или иных аспектов собеседований и найма. 250 человек зачем-то добавились ко мне в LinkedIn :).
Читать дальше →
Total votes 41: ↑35 and ↓6+29
Comments105

Один Вк бот, один С# и апельсин

Reading time3 min
Views12K
Продолжая свои эксперименты с “умным” домом, ради забавы я решил добавить группу в Вк для управления некоторыми его характеристиками. Для данной статьи конкретизируем задачу: попробуем написать на языке с# простого бота, который будет отвечать от имени сообщества в вк, и рассмотрим, как быстро его запустить на arm32 (в моем случае на orange pi zero).


Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments9

Антисобеседования

Reading time11 min
Views142K
Я побывал на многих плохих собеседованиях, и в качестве кандидата и в качестве ведущего, и в качестве наблюдателя. В результате сформулировался крайне субъективный набор заметок о том, как стоит и как не стоит проводить собеседование разработчиков.


Собеседование — это экзамен


Ведущий — строгий учитель, а кандидат — студент. Классический сеттинг. Обычно проходит так. Спросили откуда ты, что ты, и потом пошло техническое собеседование.

Начинается с простых вопросов на раскачку, примерно таких:
Читать дальше →
Total votes 221: ↑206 and ↓15+191
Comments677

Как работает JS: веб push-уведомления

Reading time10 min
Views78K
[Советуем почитать] Другие 19 частей цикла
Часть 1: Обзор движка, механизмов времени выполнения, стека вызовов
Часть 2: О внутреннем устройстве V8 и оптимизации кода
Часть 3: Управление памятью, четыре вида утечек памяти и борьба с ними
Часть 4: Цикл событий, асинхронность и пять способов улучшения кода с помощью async / await
Часть 5: WebSocket и HTTP/2+SSE. Что выбрать?
Часть 6: Особенности и сфера применения WebAssembly
Часть 7: Веб-воркеры и пять сценариев их использования
Часть 8: Сервис-воркеры
Часть 9: Веб push-уведомления
Часть 10: Отслеживание изменений в DOM с помощью MutationObserver
Часть 11: Движки рендеринга веб-страниц и советы по оптимизации их производительности
Часть 12: Сетевая подсистема браузеров, оптимизация её производительности и безопасности
Часть 12: Сетевая подсистема браузеров, оптимизация её производительности и безопасности
Часть 13: Анимация средствами CSS и JavaScript
Часть 14: Как работает JS: абстрактные синтаксические деревья, парсинг и его оптимизация
Часть 15: Как работает JS: классы и наследование, транспиляция в Babel и TypeScript
Часть 16: Как работает JS: системы хранения данных
Часть 17: Как работает JS: технология Shadow DOM и веб-компоненты
Часть 18: Как работает JS: WebRTC и механизмы P2P-коммуникаций
Часть 19: Как работает JS: пользовательские элементы

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



Сложилось так, что push-уведомления, весьма распространённые в мире мобильных приложений, довольно поздно добрались до веба, хотя они являются одной из тех возможностей, которыми хотели бы пользоваться многие разработчики.
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments6

Рассказ о том, как я ворую номера кредиток и пароли у посетителей ваших сайтов

Reading time11 min
Views167K
Продолжение: Рассказ о том, как не дать мне украсть номера кредиток и пароли у посетителей ваших сайтов
Представляем вам перевод статьи человека, который несколько лет воровал имена пользователей, пароли и номера кредитных карт с различных сайтов.


То, о чём я хочу рассказать, было на самом деле. Или, может быть, моя история лишь основана на реальных событиях. А возможно всё это — выдумка.

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

В результате, скрепя сердце, я решил выложить всё начистоту и рассказать всему миру о том, как я в последние несколько лет воровал имена пользователей, пароли и номера кредитных карт с самых разных сайтов. Возможно, вы — администратор или разработчик одного из них.
Читать дальше →
Total votes 319: ↑312 and ↓7+305
Comments325

Service Workers. Инструкция по применению

Reading time9 min
Views132K


Количество выходов в интернет с мобильных устройств ежегодно растёт на 2-4% в год. Качество связи не успевает за такими темпами. Как итог, даже самое лучшее веб-приложение обеспечит ужасный опыт, если пользователь не сможет его загрузить.

Проблема в том, что до сих пор нет хорошего механизма управления кэшем ресурсов и результатов сетевых запросов. В своей статье я хочу рассказать как Service Worker (SW) может помочь в решении этой задачи. Объясню в формате рецептов — какие элементы и в какой пропорции смешать, чтобы получить нужный результат, исходя из задачи и требований.
Поехали!
Total votes 57: ↑57 and ↓0+57
Comments40

Назови мне свою зарплату, и я скажу кто ты

Reading time6 min
Views151K
Эта статья родилась в качестве ответа на вот эту вот статью. А именно на вот этот пункт:
«Правило Лебедева» — никто внутри компании не должен знать, сколько получает другой. Не соблюдает ваш зам — увольняйте; не соблюдает профессионал — увольняйте; вы сами обмолвились — с этого момента работать у вас никто не будет, получать зарплату будут, а работать — нет. Будут выполнять письменно сказанное, но буквально понятое. Если профессионал получает много — это хорошо. Если об этом знают другие, они исследуют, а не говно ли он как человек.
Читать дальше →
Total votes 233: ↑205 and ↓28+177
Comments748

Google Chrome Extensions: быстрый переводчик своими руками

Reading time7 min
Views18K
image

Недавно заметил, что пусть мой английский не так уж и плох, я всё равно довольно часто отвлекаюсь на перевод отдельных незнакомых слов. И так как мне надоело каждый раз тратить на это свое время я решил написать расширение-переводчик. Можно сказать:
Но такие уже есть!
Да, есть, но, во-первых, я раньше не писал расширения для браузеров и хотел попробовать, во-вторых, создавать что-то самому всегда веселее чем пользоваться готовым. Так что кому это интересно так же как и мне — добро пожаловать под кат.
Читать дальше →
Total votes 26: ↑21 and ↓5+16
Comments24

Electron: от мотивации до публикации

Reading time11 min
Views40K

— Хотел бы я иметь приложение, которое умеет что-то такое, что мне надо. Жаль такого нет.
— А почему бы тебе его самому не написать?
— Это сложно, мне потребуется куча времени, чтобы понять теорию, приступить к практике и, скорее всего, ничего хорошего не выйдет. А вообще я frontend-разработчик и привык к HTML, CSS и JS. Этот стек не позволяет писать десктопные приложения.
— Electron!

Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments46

Сравнение скорости Inter-VNET, VNET-to-VNET VPN и VNET Peering в Microsoft Azure

Reading time3 min
Views3K
В августе мы уже обсуждали public preview нового функционала Microsoft Azure — VNET Peering. С тех пор VNET Peering вышел в GA и пришло время посмотреть на него пристальнее. Действительно, любопытно было бы узнать насколько отличается скорость передачи данных в виртуальных сетях Azure, при разных способах их организации.

Например, отличается ли скорость внутри одной подсети и между разными подсетями в одном VNET? Снижает ли скорость переход в другой VNET через Peer? А через VNET-to-VNET VPN?



Я провёл небольшой эксперимент на эту тему, чтобы проверить полезность и эффективность VNET Peering и приглашаю под кат ознакомиться с его результатами.
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments2

Ваш язык программирования — отстой

Reading time54 min
Views139K
1 Почему JavaScript отстой
• 1.1 Плохая конструкция
• 1.2 Система типов
• 1.3 Плохие функции
• 1.4 Отсутствующие функции
• 1.5 DOM
2 Почему Lua отстой
3 Почему PHP отстой
• 3.1 Исправлено в поддерживаемых в настоящее время версиях
4 Почему Perl 5 отстой
5 Почему Python отстой
• 5.1 Исправлено в Python 3
6 Почему Ruby отстой
7 Почему Flex/ActionScript отстой
8 Почему скриптовые языки отстой
9 Почему C отстой
10 Почему C++ отстой
11 Почему .NET отстой
12 Почему C# отстой
13 Почему VB.NET отстой
15 Почему Objective-C отстой
16 Почему Java отстой
• 16.1 Синтаксис
• 16.2 Исправлено в Java 7 (2011)
• 16.3 Модель
• 16.4 Библиотека
• 16.5 Обсуждение
17 Почему Backbase отстой
18 Почему XML отстой
19 Почему отстой XSLT/XPath
20 Почему CSS отстой
• 20.1 Исправлено в CSS3
21 Почему Scala отстой
22 Почему Haskell отстой
23 Почему Closure отстой
24 Почему Go отстой
• 24.1 Базовые средства программирования (базовый язык)
• 24.2 Взаимосовместимость
• 24.3 Стандартная библиотека
• 24.4 Набор инструментальных средств
• 24.5 Сообщество
25 Почему Rust отстой
• 25.1 Безопасность
• 25.2 Синтаксис
• 25.3 Конструкция API и система типов
• 25.4 Сообщество
• 25.5 Набор инструментальных средств

Почему JavaScript отстой


Учтите, что некоторые положения относятся не к самому JavaScript, а к программным интерфейсам веб-приложений (https://developer.mozilla.org/en/docs/Web/API).

Плохая конструкция

• Каждый скрипт исполняется в едином глобальном пространстве имён, доступ в которое возможен в браузерах с оконным объектом.
• Camel-регистр никуда не годится:

XMLHttpRequest
HTMLHRElement

Читать дальше →
Total votes 314: ↑167 and ↓147+20
Comments353

Делаем очередную .io-игру

Reading time10 min
Views39K


Так называемые .io-игры — это браузерные massively multiplayer action-игры, в которых множество людей борются с излишками свободного времени. Massively multiplayer — это значит, что игра представляет собой многопользовательскую массовку из большого количества (сотен+) игроков, играющих в общей локации. Существует мнение, что все началось с игры Agar.io (клетки в чашке Петри). Другими успешными примерами можно назвать Slither.io (змейки) и Diep.io (танчики). Если верить статистике, то каждый день в эти игры играют миллионы игроков. Сегодня существуют десятки различных .io-игр, большинство из которых можно найти, загуглив по запросу «io games list».


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


Читать дальше →
Total votes 35: ↑30 and ↓5+25
Comments46

TextBlock с подсветкой текста (WPF)

Reading time13 min
Views13K
Привет Хабр! Я создал контрол на основе TextBlock с возможностью подсветки текста. Для начала приведу пример его использования, затем опишу, как он создавался.

Пример использования контрола
<local:HighlightTextBlock TextWrapping="Wrap">
    <local:HighlightTextBlock.HighlightRules>
        <local:HighlightRule HightlightedText="{Binding Filter, Source={x:Reference thisWindow}}">
            <local:HighlightRule.Highlights>
                <local:HighlightBackgroung Brush="Yellow"/>
                <local:HighlightForeground Brush="Black"/>
            </local:HighlightRule.Highlights>
        </local:HighlightRule>
    </local:HighlightTextBlock.HighlightRules>
    <Run FontWeight="Bold">Property:</Run>
    <Run Text="{Binding Property}"/>
</local:HighlightTextBlock>


Начало разработки


Потребовалось мне подсветить текст в TextBlock, введенный в строку поиска. На первый взгляд задача показалась простой. Пришло в голову разделить текст на 3 элемента Run, которые бы передавали в конвертер весь текст, строку поиска и свое положение (1/2/3). Средний Run имеет Backgroung.

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

Была еще мысль формировать Xaml «на лету», парсить его при помощи XamlReader и кидать в TextBlock. Но эта мысль тоже сразу отвалилась, потому что попахивает.

Следующей (и окончательной) идеей стало создать систему правил подсветки и прикрутить ее к TextBlock. Тут 2 варианта: свой контрол с блэкджеком и девочками на основе TextBlock или AttachedProperty. После недолгих раздумий, я решил, что все таки лучше создать отдельный контрол, потому что функционал подсветки может наложить некоторые ограничения на функциональность самого TextBlock, а разруливать это проще, если от него унаследоваться.
Читать дальше →
Total votes 9: ↑7 and ↓2+5
Comments14

«Мониторинг производительности .NET-приложений: подходы и инструменты», — интервью с Диной Гольдштейн

Reading time7 min
Views12K


Не всегда разрабатываемое решение работает с приемлемой производительностью. Особенно для заказчика. И если предложение докупить памяти и поднять системные требования не срабатывает (у меня ни разу не получалось), приходится браться за оптимизацию. И для этого у нас есть не только StopWatch: об инструментах, которые позволяют понять, где искать, куда лезть в первую очередь, каких результатов ждать, работая над перфомансом приложения, поговорили с прекрасной девушкой, отличным специалистом и докладчиком конференции DotNext 2016 Moscow — Диной Гольдштейн.

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

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

Думы о web-API. часть первая

Reading time6 min
Views12K
В один прекрасный момент, в процессе создания очередного веб-сервиса, я решил собрать все свои знания и размышления на тему проектирования web-API для обслуживания нужд клиентских приложений и оформить их в виде статьи или серии статей. Разумеется, мой опыт не претендует на абсолют, и конструктивная критика и дополнения более чем приветствуются.

Чтиво получилось больше философское, нежели техническое, но и для любителей технической части здесь будет над чем поразмыслить. Сомневаюсь, что скажу в этой статье что-то принципиально новое, то, о чем вы никогда не слышали, не читали и о чем не думали сами. Просто попытаюсь уложить все в единую систему, в первую очередь в своей собственной голове, а это уже дорогого стоит. Тем не менее, буду рад, если мои измышления будут вам полезны в вашей практике. Итак, поехали.
Читать дальше →
Total votes 18: ↑15 and ↓3+12
Comments9

Самые продаваемые игры в истории

Reading time8 min
Views101K
Есть ли идеальный рецепт, который позволяет выпустить на рынок превосходную игру и продать её в рекордных количествах? Судя по самым продаваемым играм в истории — нет. Здесь мы поговорим и о шутерах от первого лица Battlefield и Call of Duty, и о мире-конструкторе Minecraft, и о симуляторе убийства проституток GTA V.

А теперь загадка: какая игра была самой продаваемой в истории? Уверен, большинство из вас легко с ней справится. Но ответ всё равно в конце статьи.


Total votes 30: ↑21 and ↓9+12
Comments80

Работа с Facebook API из приложений UWP

Reading time4 min
Views12K

Люди, как правило, существа очень забывчивые. Для того чтобы не заставлять пользователей запоминать новый пароль при регистрации в вашем приложении UWP, можно использовать аккаунты сторонних платформ. При этом, можно не заставляя заполнять длиннющие анкеты получить доступ к какой-либо полезной информации и характеристикам пользователя. О том, что публикация контента в социальных сетях повышает конверсию даже и упоминать не буду, это и так понятно. Если хотите разобраться, как работать с самой пока что популярной сетью в мире из C#/XAML приложений UWP, не куря мануалы, то добро пожаловать под кат.
Читать под cut-ом
Total votes 17: ↑16 and ↓1+15
Comments0

Как перестать бояться и полюбить end-to-end шифрование

Reading time8 min
Views19K

Привет, Хабр!
В комментариях к нашему первому посту народ требовал хлеба и зрелищ кода и «success story». И если с первым у нас все более-менее нормально, то со вторым чего-то, как-то не складывается пока. Мы, знаете ли, люди все молодые, успехи у нас достаточно скромные, в баскетбол вот неплохо играем. Одним словом, сегодня мы пока просто немного покодим и раскажем о реализации end-to-end шифрования с использованием наших сервисов. А «success story»? Какие наши годы, будут еще в нашем блоге эти самые success stories.
Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments9

Запускаем Xamarin.Forms на Windows 7

Reading time3 min
Views12K
Xamarin.Forms достаточно интересный и перспективный фреймворк, который сейчас активно развивается и позволяет достаточно быстро получить кроссплатформенное приложение. По умолчанию Xamarin.Forms поддерживает 5 платформ, а именно: Android, iOS, WP, WinRT, UWP.

Несмотря на то, что Microsoft старается активно пересадить своих пользователей на Windows 10, на сегодняшний день Windows 7 все еще очень распространен во многих организациях, и возникает необходимость портирования/разработки приложения под Windows 7.
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments5

Information

Rating
Does not participate
Location
Клайпеда, Литва, Литва
Registered
Activity