Pull to refresh
36
0.4

User

Send message

Self-contained дистрибуция .NET Core приложений

Reading time3 min
Views31K

Если вы вдруг пропустили, то .NET теперь open source, а .NET Core это бесплатный, open source, кроссплатформенный фреймворк, который вы можете скачать и запустить за время <10 минут. Вы можете получить его на Mac, Windows и на пол-дюжине Unix-ов с сайта dot.net Попробуйте его вместе с бесплатной, кроссплатформенной Visual Studio Code и вы будете писать на C# и F# всегда и везде.
Читать дальше →

9 секретов ASP.NET Core

Reading time5 min
Views38K
Совсем недавно мы обновили ASP.NET Core до версии 2.1. Один из создателей платформы, наш коллега Дэвид Фоулер поделился некоторыми её полезными особенностями, о которых мало кто знает. Кроме того, помимо 9 секретных фич ASP.NET Core, под катом вы найдете и список основных нововведений со всеми полезными ссылками. Присоединяйтесь!

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

Ловкость рук и никакого мошенничества: практические советы по ускоренному обучению дизайну для разработчиков

Reading time6 min
Views52K
Улучшаем дизайн проекта с помощью тактически грамотных действий, а не таланта.

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

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

Легко опустить руки и сказать: «Я никогда не смогу сделать это должным образом, я не художник!», Но, оказывается, есть уйма ловких приёмов, которые вы сможете использовать, чтобы поднять свою работу на другой уровень, не имея опыта в графическом дизайне.

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

1. Для создания иерархии используем цвет и вес вместо размера



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

Эксплуатация уязвимостей eXternal Entity XML (XXE)

Reading time8 min
Views39K

В ходе работ по тестированию на проникновение мы можем столкнуться с уязвимостью, которая позволяет нам выполнять атаки XML eXternal Entity (XXE) Injection. XXE Инъекция — это тип атаки на приложение, которое анализирует ввод XML. Хотя это относительно эзотерическая уязвимость по сравнению с другими векторными атаками веб-приложений, например, Cross-Site Request Forgery (CSRF), мы максимально используем эту уязвимость, когда она появляется, поскольку она может привести к извлечению конфиденциальных данных и даже к удаленному исполнению кода (RCE). В статье мы рассмотрим настройку уязвимого PHP-сервера, эксплуатируя уязвимость вручную, а затем перейдем к удобному инструменту под названием XXEInjector, чтобы автоматизировать этот процесс.
Читать дальше →

+500 бесплатных инструментов для запуска вашего стартапа в 2017 году

Reading time40 min
Views156K


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

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

Итак, мы нашли в интернете бесплатные и условно-бесплатные инструменты для роста вашего бизнеса. Когда они дадут вам желаемый результат, вы можете оформить платную подписку.
Читать дальше →

Самый большой социальный проект в мире

Reading time5 min
Views20K


Его охват сравним с Twitter, но в России о нём почти ничего не знают. Он не приносит чистой прибыли, но помогает экономить миллионы долларов. Проект был запущен, чтобы помочь 400 миллионам людей, и был реализован небольшой командой из 160 человек, многие из которых работали на добровольных началах. Это всё AADHAAR – индийская биометрическая идентификационная система, содержащая данные более чем миллиарда человек: десять миллиардов шаблонов отпечатков пальцев, два миллиарда шаблонов радужки глаза и миллиард фотографий.
Читать дальше →

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

Reading time16 min
Views10K


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


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

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

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

Reading time7 min
Views17K
image

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

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

Reading time6 min
Views44K
* скорее всего, я что-нибудь да упустил, но уверен, в комментариях мне это подскажут

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

image

Содержание.

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

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

Reading time6 min
Views23K

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


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


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


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

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

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

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

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

Reading time10 min
Views32K


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


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

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

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

Reading time6 min
Views41K
image

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

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

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

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


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

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

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

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

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

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


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

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

Reading time18 min
Views33K
image

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

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

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

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

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

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

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

Reading time3 min
Views26K


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

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

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

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

Reading time16 min
Views165K
Всегда было интересно посмотреть, что происходит у банковской карточки под «капотом». Как реализуется протокол общения банковской карточки и 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-терминалом по бесконтактному интерфейсу.
Читать дальше →

Information

Rating
3,118-th
Registered
Activity