Обновить
39

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

23
Подписчики
Отправить сообщение

Unsafe.AsSpan: Span<T> как замена указателям?

Время на прочтение16 мин
Охват и читатели11K


C# — невероятно гибкий язык. На нем можно писать не только бэкэнд или десктопные приложения. Я использую C# для работы, в том числе, и с научными данными, которые накладывают определенные требования на инструменты, доступные в языке. Хотя netcore захватывает повестку дня (учитывая, что после netstandard2.0 большинство фич как языков, так и рантайма, не бэк-портируются в netframework), я продолжаю работать и с легаси-проектами.


В этой статье я рассматриваю одно неочевидное (но, наверное, желаемое?) применение Span<T> и отличие реализации Span<T> в netframework и netcore из-за особенностей clr.

Добро пожаловать под кат

Свой mapper или немного про ExpressionTrees

Время на прочтение7 мин
Охват и читатели19K
image

Сегодня мы поговорим про то, как написать свой AutoMapper. Да, мне бы очень хотелось рассказать вам об этом, но я не смогу. Дело в том, что подобные решения очень большие, имеют историю проб и ошибок, а также прошли долгий путь применения. Я лишь могу дать понимание того, как это работает, дать отправную точку для тех, кто хотел бы разобраться с самим механизмом работы «мапперов». Можно даже сказать, что мы напишем свой велосипед.
Читать дальше →

Ключевое слово this в JavaScript. Полное* руководство

Время на прочтение6 мин
Охват и читатели48K
* скорее всего, я что-нибудь да упустил, но уверен, в комментариях мне это подскажут

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

image

Содержание.

  1. Введение
  2. Заблуждения о this
  3. Как определить значение this
Читать дальше →

Инструментарий для анализа и отладки .NET приложений

Время на прочтение6 мин
Охват и читатели24K

Заглянуть «под капот» кода или посмотреть на внутреннее устройство CLR можно с помощью множества инструментов. Этот пост родился из твита, и я должен поблагодарить всех, кто помог составить список подходящих инструментов. Если я пропустил какие-то из них, напишите в комментариях.


Во-первых, я должен упомянуть, что хороший отладчик уже присутствует в Visual Studio и VSCode. Также существует множество хороших (коммерческих) профилировщиков .NET и инструментов мониторинга приложений, на которые стоит взглянуть. Например, недавно я попробовал поработать с Codetrack и был впечатлён его возможностями.


Однако оставшийся пост посвящён инструментам для выполнения отдельных задач, которые позволят лучше понять, что происходит. Все инструменты имеют открытый исходный код.


Быстрый старт с WebComponents

Время на прочтение8 мин
Охват и читатели8.7K
Веб-компоненты это набор стандартов определяющих программные интерфейсы для организации компонентной архитектуры. Все они реализованы в современных версиях браузеров, т.е. не требуют подключения библиотек или транспиляторов кода, однако, если нужна совместимость например с Internet Explorer 11, то и библиотеки и транспиляторы использовать видимо все-таки придется.

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

Все эксперименты приводимые далее проверялись в Chrome и Firefox может быть даже не самых новых версий.
Читать дальше →

10 PostCSS плагинов, которые сэкономят время вашему верстальщику

Время на прочтение10 мин
Охват и читатели35K


У нас, у фронтендеров, есть такая категория инструментов, которые никак не решают стоящие перед нами задачи, а скорее влияют на сам процесс их решения. Изменяют его. Отношение к таким инструментам самое разное – начиная от мании в духе “давайте эту штуку пихать везде, это же так круто” и заканчивая отговорками вроде “раз не решает задачи бизнеса, значит оно нам не нужно”. Но, так или иначе, сегодня мы поговорим про PostCSS — один из таких инструментов.


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

Читать дальше →

Добро пожаловать в Кремниевую долину

Время на прочтение6 мин
Охват и читатели41K
image

Как я стала частью этой системы

Мне повезло, я живу в Кремниевой долине. Здесь я родилась, выросла и в настоящее время работаю продакт-менеджером в Google. Здесь отличная погода, низкий уровень преступности, и хорошее финансирование у школ. У взрослых есть хорошая непыльная работа, а детям открыты миллионы возможностей. Здесь люди наслаждаются суширрито по 15 долларов и запивают их 6-долларовым кофе третьей волны. Улицы заполнены теслами и беспилотными автомобилями.
Читать дальше →

12 концепций JavaScript, о которых нужно знать

Время на прочтение11 мин
Охват и читатели73K
JavaScript — это сложный язык. Если вы, на любом уровне, занимаетесь JavaScript-разработкой, это значит, что вам жизненно необходимо понимать базовые концепции этого языка. В материале, перевод которого мы сегодня публикуем, рассмотрены 12 важнейших концепций JavaScript. Конечно, JavaScript-разработчику нужно знать гораздо больше, но без того, о чём мы будем сегодня говорить, ему точно не обойтись.


Читать дальше →

256 строчек голого C++: пишем трассировщик лучей с нуля за несколько часов

Время на прочтение8 мин
Охват и читатели160K
Публикую очередную главу из моего курса лекций по компьютерной графике (вот тут можно читать оригинал на русском, хотя английская версия новее). На сей раз тема разговора — отрисовка сцен при помощи трассировки лучей. Как обычно, я стараюсь избегать сторонних библиотек, так как это заставляет студентов заглянуть под капот.

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

Внимание: просто рассматривать мой код, равно как и просто читать эту статью с чашкой чая в руке, смысла не имеет. Эта статья рассчитана на то, что вы возьмётесь за клавиатуру и напишете ваш собственный движок. Он наверняка будет лучше моего. Ну или просто смените язык программирования!

Итак, сегодня я покажу, как отрисовывать подобные картинки:


Читать дальше →

Как усилить защищенность веб-приложений при помощи HTTP заголовков

Время на прочтение18 мин
Охват и читатели34K
image

Это третья часть серии по веб-безопасности: вторая часть была «Web Security: введение в HTTP», первая "Как работают браузеры — введение в безопасность веб-приложений".

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

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

Я у мамы алготрейдер: ищем бесплатные фреймворки для тестирования гипотез и запуска в боевом режиме (Python)

Время на прочтение9 мин
Охват и читатели18K
Допустим, вы имели какое-то отношение к фондовому рынку раньше. Или, не имея такового, увлеклись горячей (но в последние месяцы уже заметно похолодевшей....) темой криптовалют. Также предположим, что вы пошли еще дальше и решили, что «ручное управление» полетами уже неэффективно и надо бы автоматизировать свои светлые идеи и превратить мартышкин труд в нечто более технологичное. Ровно на этом моменте начинаются вопросы, которые я хотел бы обсудить в статье, а именно: есть ли готовое решение для бэктестинга торговых идей (бесплатное желательно), где взять исторические данные (в идеале бесплатно), а также что с этим всем потом делать, т.е. какие существуют решения для боевого запуска автоматизированных торговых систем, успешно проверенных на бэктесте? Примечание первое и второе: статья написана для Python-based библиотек и систем, как дела с доступностью для других языков судить не могу; в приоритете — зарубежные рынки и/или криптовалюты, относительно применимости к фондовому рынку РФ судить также не берусь.

image
Читать дальше →

Сам себе devops или настраиваем Nginx прокси для Apache Tomcat на Ubuntu за 5 минут c https и firewall'ом

Время на прочтение3 мин
Охват и читатели28K


Я не админ, но иногда возникают задачи, которые проще (и интереснее) решать самому чем кому-то делегировать.

Изредка у нас появляется необходимость «поднять» servlet контейнер (чаще всего Apache Tomcat) и настроить для него проксирование, ssl termination (а проще говоря https) и все это прикрыть firewall'ом (оставив наружу только ssh и http/https).

Так получилось, что за последнюю неделю я эту задачу решал трижды (так стали звезды, а до этого — года два назад) и этот опыт трансформировался в сей небольшой опус.
Читать дальше →

Клонируем бесконтактную карту с помощью мобильного приложения

Время на прочтение16 мин
Охват и читатели187K
Всегда было интересно посмотреть, что происходит у банковской карточки под «капотом». Как реализуется протокол общения банковской карточки и POS-терминала, как это работает и насколько это безопасно. Такая возможность предстала передо мной, когда я проходил стажировку в компании Digital Security. В результате при разборе одной известной уязвимости EMV карт в MagStripe-режиме, было решено реализовать мобильное приложение, которые способно общаться с терминалом по бесконтактному интерфейсу, с использованием своих команд и подробным разбором запросов и ответов. А также попробовать реализовать способ клонирования карт MasterCard в режиме MagStripe.

В этой статье я постараюсь описать, что такое EMV-карта, как она работает и как используя Android можно попытаться клонировать вашу MasterCard карту.

«There are some things money can't buy. For everything else, there's MasterCard»

Что такое EMV карта?


EMV — это международный стандарт для банковских карт с чипом. В разработке этого стандарта принимали участия Europay + MasterCard + VISA, отсюда и название. Попробуем разобраться, как же все таки карта общается с POS-терминалом по бесконтактному интерфейсу.
Читать дальше →

Квантовый переключатель в стиле Шредингера

Время на прочтение8 мин
Охват и читатели7.2K


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

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

Прыжок в облако. Строим бюджетное решение для интернета вещей на NodeMCU + Azure IoT Hub

Время на прочтение14 мин
Охват и читатели12K

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


Читать дальше →

Новые возможности FLProg – ESP8266 как контроллер, а не модем

Время на прочтение4 мин
Охват и читатели34K


Источник

Добрый день.

Я уже очень давно не рассказывал о своем проекте FLProg. Последний пост был ещё на Geektimes.
Пора исправить это безобразие. С этого поста я начинаю серию уроков по использованию новых возможностей программы.

Если Вы не знакомы с проектом, можно посмотреть его историю в блоге.

Сейчас на сайте программы ведётся тестирование предрелизовой версии с номером 3.1.4. Начиная с версии 3.1, в программе появилась поддержка контроллеров ESP8266 как полноценного контроллера.

Квантовая запутанность для чайников

Время на прочтение4 мин
Охват и читатели25K
В обсуждениях недавней темы я заметил несколько сообщений, от людей, которые думают, что «физики договорились» о существовании суперпозиции. Что это просто удобная математическая/физическая модель, не имеющая под собой реальных экспериментов, доказывающих нахождение квантов в суперпозиции. Что кванты, на самом деле находятся всегда в конкретных позициях, а проведение эксперимента, лишь обнаруживает эти позиции. Некоторое время это было спором и у физиков, пока в 1964 году Джон Стюарт Белл не сформулировал свою известную теорему Белла(неравенства Белла), которая в последствии была улучшена другими учеными и неоднократно проверена экспериментально. Для желающих ознакомиться непосредственно с его теоремой, я советую пропустить эту статью, и сразу перейти к прочтению книг, ссылки на которые даны ниже, и в комментариях. Для понимания ее основ не требуются глубокие познания физики и математики. Для тех же, кому даже статья в Википедии кажется сложной для понимания, я приведу довольно упрощенную аналогию.

Для простоты, скажем, у кванта есть некоторые 3 характеристики: A, B и C, которые могут принимать значения 1 или 0. Возьмем два запутанных кванта, таких, что:
1) Если при измерении у первого кванта одной из характеристик мы получаем 1, то у другого кванта, эта же характеристика при измерении будет равна 0.
2) Если мы выбираем для сравнения характеристику случайным образом, то в половине случаев мы получаем одинаковые значения, а в половине — разные. (!)

Сперва кажется что выполнить эти два условия очень легко, написав простенькую программу мы можем смоделировать эту ситуацию. НО! Давайте просто проверим это статистически, программно, кто как хочет и может, пусть проведет свое собственное исследование: Поставит такой эксперимент: Создаст N заранее определенных пар троек значений: (1,0,1)-(0,1,0); (1,1,0)-(0,0,1)… итп, далее построит модель, которая будет удовлетворять обоим вышеуказанным пунктам.

Окажется, что это не только непросто сделать, но и в принципе невозможно. Если мы с такими исходными данными будем измерять одинаковые параметры, мы будем получать противоположные значения. Что понятно и согласуется с пунктом 1. Но вот если, мы будем измерять случайные параметры, то противоположные значения у нас будут появляться в более чем 50% случаев. Что противоречит пункту 2.
Читать дальше →

Учимся быть фуллстек разработчиками. Пишем приложение на React/Redux/Webpack/ASP.NET Core 2.0/EF Core

Время на прочтение23 мин
Охват и читатели109K
Ни для кого не секрет, что .net сейчас используется в большинстве случаев как инструмент бэкенд разработки, а в клиентской разработке последние лет 5 правит js сообщество с своей экосистемой и инструментами для разработки. Это все безобразие с каждым годом усиливает пропасть между фронтэндом и бэкендом, и планка вхождения в область становится все выше и выше, разработчики начинают делиться на два лагеря и уходит такое понятие как фуллстек.

Да, под Node.js можно написать сервер, но для бэковой разработки, все же, .net бесспорный лидер. На js, на мой взгляд, очень сложно написать гибкий и легко поддерживаемый бэкенд, хотя возможно многие со мной и не согласятся.

Давайте ударим автопробегом по бездорожью попытаемся вопреки всему этому написать SPA приложение с бэком на .net core и клиентом на js, из инструментов разработки будем использовать горячо любимую Visual Studio.

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

Как создать свой первый безопасный веб-сервер, готовый к продуктиву

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

Для прогона тестов мы будем использовать Amazon EC2, но можно взять и Amazon LightSail, Digital Ocean, Vultr или другой сервис. Все они конфигурируются одинаково, так что выбирайте тот, который вам по душе.


Читать дальше →

Мелкосерийное производство электроники в Китае, личный опыт непрофессионала

Время на прочтение5 мин
Охват и читатели45K
Занимаясь электроникой «для души» и не претендуя на лавры «профессионала» и «специалиста» тем не менее иногда удается создать что-то интересное не только для себя, но и для других. И тут неизбежно встает вопрос об изготовлении мелкой серии. Про заказ печатных плат уже много раз писали, многие пробовали и, в принципе, тут все более менее понятно, что и как. Первая партия запаяна, прошита и отдана счастливым владельцам, все хорошо. Внезапно выясняется, что нужно сделать еще пару десятков плат, а времени сидеть по вечерам с пинцетом и феном особенно и нет, да и глаза жалко. Настал момент сделать следующий шаг — попробовать сервис PCBA (PCB Assembly).

image
Читать дальше →

Информация

В рейтинге
4 907-й
Зарегистрирован
Активность