Pull to refresh
0
0.1

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

Send message

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

Reading time18 min
Views67K
Публикую на Хабр оригинал статьи, перевод которой размещен в блоге Codingsight.
Вторая часть доступна здесь

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

Chrome Headless против cloudflare JS challenge

Level of difficultyMedium
Reading time41 min
Views21K

Автоматизация сбора информации с различных ресурсов - обычная задача для людей разных сфер деятельности. Жаль, что не всегда бывает достаточно сделать простой GET запрос и разобрать полученный html. Веб-сайты, с которых собираются данные, принимают защитные меры для предотвращения автоматизированных запросов. Одной из таких мер является использование cloudflare. Сегодня мы посмотрим, как cloudflare выявляет ботов через javascript и коснёмся темы деобфускации скриптов.

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

Создание пакета NuGet для библиотеки с платформозависимым API

Level of difficultyMedium
Reading time13 min
Views7.2K

Когда речь заходит о создании .NET библиотеки, части API которой являются платформозависимыми, приходится думать, как всё это оформить в NuGet пакет, да так, чтобы установленная из пакета библиотека работала в разных сценариях (.NET Framework, .NET Core, self-contained app и т.д.). К сожалению, в сети сложно найти инструкцию, которая бы шаг за шагом показывала, как выполнить эту задачу. Данная статья призвана быть такой инструкцией.

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

Создание .NET библиотеки от А до Я

Level of difficultyMedium
Reading time32 min
Views16K

Думаете о создании .NET библиотеки, но не знаете, в какую сторону двигаться? Уже разрабатываете нечто подобное, но хочется открыть для себя что-то новое? Ищете варианты расширить автоматизацию? Не знаете, что делать с пользователями?

Надеюсь, данная статья поможет ответить на эти и другие вопросы. На примере своей библиотеки с открытым исходным кодом – DryWetMIDI – рассмотрим различные аспекты создания подобных проектов. И хотя речь будет идти про .NET/C#, уверен, многое применимо и к другим популярным платформам и языкам программирования.

Читать далее
Total votes 53: ↑52 and ↓1+51
Comments13

Как научиться учиться с помощью второго мозга. 4 инструмента, 3 апгрейда и 3 ошибки

Reading time8 min
Views26K

Новички которые слышат про методику Zettelkasten более чем в половине случаев считают что могут прокачать свой процесс обучения с ее помощью. Обычно речь идет про программирование.

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

Читать далее
Total votes 10: ↑9 and ↓1+8
Comments2

Интерпретация summary из statsmodels для линейной регрессии

Reading time7 min
Views16K

Узнал я о линейной регрессии после того, как встретил деревья, нейронные сети. Когда мы с другом повторно изобретали велосипед, обучая с нуля word2vec и использовали логистическую регрессию с векторами из обученной модели для задачи NER – я активно кричал о том, что линейная регрессия – прошлый век, никому она уже совсем не нужна.

Да, проблема была в том, что я совсем не разобрался в вопросе и полез в бой. Но практику в универе нужно было как-то закрывать.
После семестра мат. статистики ко мне пришло прозрение.

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

Как химику-1С-нику найти работу в Европе с релокацией. Пьеса в четырех действиях

Reading time7 min
Views22K

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

Читать далее
Total votes 55: ↑49 and ↓6+43
Comments77

Школы юнит-тестирования

Reading time9 min
Views13K

Существуют две основные школы юнит-тестирования: классическая (ее также называют школой Детройта, или Чикаго) и лондонская (ее также называют мокистской школой, от слова mock).

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

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

С чем кушать Irregular Selectivity в MSSQL и не только

Reading time5 min
Views6.6K

Недавно мне пришлось объяснять это нашим братьям меньшим на работе, и я решил написать текст, который может пригодиться. В конце вы найдете ссылку на полезный скрипт для MSSQL, а также Postgres и MySQL.

В идеальном мире, если в таблице миллион записей, а разных значений например всего 100K, то на каждое значение приходится по 10 записей. Но что делать, если в список ваших значений затесалось особое значение, например, NULL, пробел или 'n/a'? Для SQL optimizier это головная боль. Для вас тоже.

Картинка иллюстрирует людей со значением 'n/a' в поле SSN

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments19

Бесплатные Oracle Cloud серверы и Mikrotik — Site-to-Site VPN

Reading time7 min
Views40K

Предоставление бесплатных серверов от малопопулярного облачного провайдера - это не новость. А новость в том, что теперь Oracle, вдобавок к двум едва живым бесплатным x86_64 серверам, открывает доступ к мощностям на ARM64 - для всех, даром, и пусть никто не уйдет обиженным!© Предложение по ARM значительно более производительное, чем на традиционных процессорах. Добавляя к этому отсальные бесплатные "плюшки", я задаюсь вопросом: а зачем я до сих пор плачу за VPS и держу собственный серверок в подвале?! Все это можно выкинуть если удастся надежно и безопасно связать дата центр с домашней сетью.

Читать далее
Total votes 23: ↑20 and ↓3+17
Comments104

Bare-metal kubernetes-кластер на своём локальном компьютере

Reading time8 min
Views27K

Привет, я Кирилл Шаталаев, инженер инфраструктуры и автоматизации в X5 Tech.

Я в курсе, что статей на эту тему достаточно, в том числе и на Habr. И когда у меня возникла задача поднять кластер, я их все перечитал. Где-то очень подробно рассказывается, как ставить виртуалки с убунтой на Windows под virtualbox, и очень скудно про сам кубер. Где-то досконально описано, как это всё круто можно провернуть с terraform в Яндекс.Облаке. Где-то про сам kubespray скупо пару слов, зато куча скриншотов прометея с кибаной.

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

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

Интеграция PostgreSQL с MS SQL Server для тех, кто желает побыстрее и поглубже

Reading time8 min
Views29K

Недавно на хабре уже было опубликовано описание интеграции PostgreSQL и MSSQL. Но, деталей там категорически не хватало. Посему, цели сей публикации следующие:

  • расширить и углубить общедоступную информацию о FDW для MSSQL называемом tds_fdw: рассказать о разнице в мажорных версиях и описать базовые проблемы совместимости;
  • рассказать о возможностях оптимизации запросов, использующих внешние таблицы;
  • затронуть тему кэширования внешних данных в материализованных представлениях;
  • сказать пару слов об экзотических подходах к интеграции PostgreSQL и MSSQL.

Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments0

Гугл финанс перестал транслировать данные российских акций — что делать? (UPD: починили)

Reading time4 min
Views59K

С 5 июня 2021 года сайт гугла, и самое главное гугл таблицы - перестали отдавать данные с Московской биржи. 

При попытке получить любые котировки с префиксом MCX, например для Сбербанка, формулой из гугл таблиц =GOOGLEFINANCE("MCX:SBER") теперь всегда возвращается результат #N/A.

А при поиске любой российской бумаги на сайте Google находятся любые рынки, кроме Московской биржи.

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

Google Finance давай, до свидания!
Total votes 23: ↑22 and ↓1+21
Comments31

Как я выучил английский

Reading time5 min
Views72K

Знакомые говорят, что история мотивирующая и надо её публиковать. Ну вот.

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

15 мешков картошки. Всё началось с них. Моя деревенская семья всегда выращивала картошку, взрослые продавали потом. В какой-то момент отец показал мне на мешки и сказал: «Иди продавать к магазину, 50% твои.» Уже через неделю у меня впервые в жизни были свободные деньги, достаточные, чтобы пойти на курсы.

На курсах объяснили, что через will выражается будущее время, «have + 3-я форма глагола» значит, что действие имело место ранее заданной расчётной точки, а вот ещё Present Perfect Continuous есть. В провинции до Интернета это было сопоставимо по масштабам с библейским раздвиганием воды – наконец появилась возможность учить самостоятельно.

Вскоре переехал в столицу и получил дополнительную мотивацию: в Москве как-то всё про английский, всё вокруг него. После нескольких месяцев выживания и работы на трёх работах жизнь устаканилась, пора было браться за язык всерьёз.

В 7 лет, не имея доступа к детской литературе, читал дома всё, что попадалось, вплоть до русской классики. За счёт этого удалось нехило прокачать язык, ну как минимум письменную речь. Как-то в продлёнке мне навешали два третьеклассника, и меня же ещё поругали «за драку»! Помню, как, продолжая реветь, лежал прямо на полу и писал развёрнутое официальное обращение к учителям и ученикам школы: «…потому что вы – Козлы! Козлы с большой буквы потому, что это ваше имя.» Вручил воспитательнице продлёнки и засим удалился. Все ближайшие дни трясся от страха: в те времена назвать учителей «козлами»…

Читать далее
Total votes 37: ↑10 and ↓27-17
Comments32

Когда расходы — это не расходы, как верно понимать финансовые данные по компании

Reading time3 min
Views6.2K

В финансах существует большая разница между “расходами” в финансовом смысле и “расходами” в бытовом. Финансисты разделяют понятия расходов и расходования денежных средств. Расходами называются события, которые:


  1. Являются тратой денег или у вас появляются обязательства по их уплате.
  2. Относятся к текущему финансовому периоду.
  3. Относятся к использованию ресурсов компанией.

При этом расходом денежных средств является фактическая операция списания средств со счета или кассы. И такое списание не всегда может означать расходы(в обозначенном смысле) для компании. Например:


  1. Вы дали в долг. Списание есть, это не расход (у вас не появилось обязательств, наоборот, должны вам), а превращение денег в актив — долг, который должны вернуть.
  2. Вы купили сервер. Т.к. Сервер штука долгосрочного функционирования, то расходы на него нельзя отнести только к текущему финансовому периоду, поэтому сумма расходов на сервер не является полностью расходами этого периода. Расходы на сервер считаются в составе т.н. амортизации — оценки износа оборудования, степени, с который вы “употребили” сервер в текущем периоде.
Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments16

Чек-лист тестирования требований

Reading time7 min
Views124K

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

Вот только на что обращать внимание при тестировании? Есть набор основных характеристик, которыми должна обладать хорошая документация:

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

Бесплатное решение для создания программного гибрида SSD и HDD на домашнем ПК Windows Tiered Storage Spaces

Reading time4 min
Views30K

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

Сегодня я хотел бы рассказать про создание программного гибридного локального диска SSD и HDD на настольной версии Windows и его тестирование. Впервые я заинтересовался этой технологией когда купил себе новый процессор от Ryzen и прочитал статью про AMD StoreMI, но к сожалению поддержка данного продукта прекратилась, а покупать FuzeDrive или PrimoCache не хотелось. 

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

Начало работы с Windows Terminal

Reading time5 min
Views30K
Привет, Хабр! Сегодня делимся гайдом по началу работы с Windows Terminal. Да, поскольку он о начале работы с инструментом, в основном в материале описываются какие-то базовые моменты. Но я думаю, что и профессионалы смогут подчерпнуть для себя что-то полезное, как минимум из списка полезных ссылок в конце статьи. Заглядывайте под кат!

Читать дальше →
Total votes 16: ↑13 and ↓3+10
Comments9

BLE под микроскопом

Reading time6 min
Views95K
image

BLE под микроскопом. Часть 1

часть 2, часть 3
В мире существует большое разнообразие способов передачи информации «по воздуху». В последнее время всё большую популярность обретает формат BLE. Сегодня мы рассмотрим особенности этого протокола и поговорим о том, почему же он так востребован в современном мире. Так же мы рассмотрим средства разработки и особенности работы вспомогательных приложений на windows, android от фирмы Nordic.
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments35

Как я укололся китайской вакциной

Reading time9 min
Views139K

В мире сейчас ведется несколько клинических исследований вакцин от коронавируса. В России, кроме «Спутника V» разработали «ЭпиВакКорона» и другие, но мне встретилась онлайн реклама участия в третьей фазе исследования вакцины китайской компании Cansino. И я пошел сдаваться китайцам на опыты, не дожидаясь встречи с вирусом.

Читать далее
Total votes 167: ↑153 and ↓14+139
Comments564
1
23 ...

Information

Rating
3,329-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity