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

Adsence тестирует управление рекламой из аккаунта

Чулан
Не заметил особого ажиотажа, да и вообще новостей на эту тему, но как писали на Проблоггере со ссылкой на официальный блог адсенса: «AdSense Introduce ServerSide Ad Management», что на русский можно перевести как «Adsence представляет управление рекламой на стороне сервера».
Читать дальше →
Всего голосов 6: ↑5 и ↓1 +4
Просмотры 596
Комментарии 3

Отправить POST через file_get_contents()

PHP *
Чтобы получить содержимое веб-страницы все с удовольствием используют file_get_contents(), например file_get_contents('http://www.habrahabr.ru/'). Но я уже давно наблюдаю, что, как дело доходит до того, чтобы отправить POST, разработчики используют либо CURL, либо открывают сокеты. Я не считаю, что это плохо или что не надо так делать, просто для решения простых задач можно использовать простые решения.

Я и сам так раньше делал, пока на наткнулся на понятие контекстов потоковых операций в PHP. Контекст позволяет передать дополнительные параметры потоковому обработчику. Для http например, можно сконфигурировать POST-запрос или передать дополнительные заголовки.

file_get_contents() принимает 3 параметром «контекст», который собственно и конфигурирует сам запрос.
Ниже пример такого запроса или RTFM

Читать дальше →
Всего голосов 97: ↑89 и ↓8 +81
Просмотры 84K
Комментарии 71

Разновидности TeX

LaTeX *
Из песочницы

Введение


Я не нашёл упоминаний на хабре про xetex, lualatex которые в кратком, сжатом виде рассказывали о том что это такое. Поэтому таким образом появилась данная идея: написать кратко об основных системах вёрcтки. И так начинаем по порядку.
Читать дальше →
Всего голосов 29: ↑23 и ↓6 +17
Просмотры 13K
Комментарии 16

Новые хабы. Какие нужны мне и какие нужны всем?

Habr
Сделав свой первый пост, получивший для меня инвайт, я решил, что буду писать по посту в неделю, но не срослось. Причем несколько раз именно из-за того, что к выбранной теме не нашлось подходящих хабов. И что делать? Мои компетенции и интересующие вопросы лежат на стыке менеджмента и маркетинга интернет-рекламных технологий (при этом не самой рекламы, а именно технологий) и с какой-то стороны я с гордостью считаю себя «техническим человеком». Но поделиться в профессиональной среде не могу просто потому, что не нашлось хабов. Ну что же, будем искать обходные пути =)

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

Читать дальше →
Всего голосов 11: ↑4 и ↓7 -3
Просмотры 2.1K
Комментарии 6

Изучаем net/context в Go

Программирование *Go *
Туториал
Не секрет, что основная ниша использования Go это сетевые сервисы: всевозможные серверы, бекенды, микросервисы, распределенные базы данных и файловые хранилища. Такой класс программ очень активно использует сетевые запросы, весь необходимый функционал для которых есть в стандартной библиотеке, но один аспект разработки сетевых архитектур остается для многих темным пятном — контексты запросов. В этой статье я хочу рассмотреть этот аспект повнимательней и показать, какой это мощный и важный инструмент.


Читать дальше →
Всего голосов 26: ↑23 и ↓3 +20
Просмотры 58K
Комментарии 8

Параллельное выполнение тестов с учетом контекста с использованием Visual Studio 2015 Update 1

Блог компании Microsoft Разработка веб-сайтов *Тестирование IT-систем *Visual Studio *
Перевод
Visual Studio 2015 с обновлением 1 включает в себя ряд улучшений и исправлений. В этой публикации мы сконцентрируем внимание на двух улучшениях, способных существенно повысить общую производительность разработки ПО.

Параллельное выполнение тестов


Тестовое ядро Visual Studio 2015 Update 1 способно параллельно выполнять тестовые сборки, что существенно повышает производительность тестирования. По умолчанию этот режим отключен, поэтому Вам необходимо включить его.

Система параллельно выполняет тестовые сборки на указанном вами количестве ядер — вплоть до всех ядер вашего компьютера. Разумеется, при наличии единственного тестового проекта это не дает никаких преимуществ. Данное решение предназначено для проектов значительного масштаба. Оно не зависит от типа используемой тестовой платформы и работает с MSTest, NUnit 2, NUnit 3 и XUnit. Этот механизм полностью независим от поддержки параллелизма базовой платформой.
Продолжить чтение
Всего голосов 18: ↑15 и ↓3 +12
Просмотры 10K
Комментарии 8

Golang и эволюция взаимодействия с базами данных

Go *
Из песочницы

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


  • Снижение связности приложения, работающего с базой данных
  • Журналирование запросов в отладочном режиме
  • Работа с репликами

Статья построена на основании пакета github.com/adverax/echo/database/sql. Семантика использования этого пакета максимально приближена к стандартному пакету database/sql, поэтому не думаю, что при его использовании у кого-нибудь возникнут проблемы.

Читать дальше →
Всего голосов 19: ↑13 и ↓6 +7
Просмотры 17K
Комментарии 4

Довольно вычурные «Начала» Евклида в TeX-е

LaTeX *


«какая-то странная антикварная х██ня, написанная ирландским кулибиным в 1847 ну, хорошо, что и такая бывает, конечно» Миша Вербицкий

В 16-м году мне на глаза попались «Начала» Евклида в интерпретации Оливера Бирна. Фишка этой книги в том, что вместо буквенных обозначений навроде «треугольник ABC» там прямо в текст помещаются миниатюры частей построения, то есть, например, картинка с соответствующим треугольником. Насколько сделать такую книгу, как можно представить, было адовой работой в середине XIX века, настолько же легко, с правильными инструментами, это должно бы быть теперь. И, в общем, решил я в этом убедиться наверняка.
Читать дальше →
Всего голосов 136: ↑136 и ↓0 +136
Просмотры 16K
Комментарии 47

Fancy Euclid's “Elements” in TeX

LaTeX *
Перевод


In 2016, I came across Oliver Byrne's “The first six books of the Elements of Euclid.” The main feature of this book is that instead of ordinary letter designations such as “triangle ABC,” it employs inclusions of miniature pictures directly in the text, that is, for example, an image of a triangle. As difficult as it probably was in the XIX century, as easy, with the right tools, it should be to make such a book nowadays. And so I decided to find out by myself whether that's the case.
Read more →
Всего голосов 35: ↑34 и ↓1 +33
Просмотры 26K
Комментарии 2

Использование Context API в React для создания глобальной темы приложения

ReactJS *
Из песочницы
Привет, это мой первый пост на Хабр. Надеюсь, Вам будет интересно.

Итак, я хочу начать серию постов, напрямую или косвенно касающихся создания ui-kit.

image

Задача данного поста: Найти решение контроля темы приложения, компоненты которого выполнены в React.js. Будем использовать две глобальные темы — dark и light.

В данном примере я буду использовать модуль create-react-context, для создания контекста.
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 6.2K
Комментарии 8

Использование Context API в React для создания адаптивного дизайна приложения

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

image
Читать дальше →
Всего голосов 8: ↑6 и ↓2 +4
Просмотры 3.6K
Комментарии 10

CRUD операции с Entities в DialogFlow (C#)

.NET *ASP *API *Google API *C# *
Recovery mode

Вступление


Совсем недавно я начал работу над новым проектом, который включал в себя работу с уже достаточно известным сервисом (AI) от Google — DialogFlow. Суть заключалась в том, что у нас был бот (Telegram) который работал с API нескольких сайтов, а сам же DialogFlow помогал нам структурировать само общение с человеком, для чего он в принципе и создавался. Нужно сказать, что статья предназначена для людей, которые только начали знакомство с сервисом или уже имеют небольшой опыт, так далее возможны термины: Intent, Context, Action, Event ну и то ради чего мы и собрались — Entities. Надеюсь, что статья будет полезна тем, кто немного не понял как именно через код можно проделывать CRUD операции с Entities.

Entities в DialogFlow


В DialogFlow Entities представляют собой некие сущности, которые состоят из ReferenceValue и Synonyms. Что-то похожее на ключ-значение, только с той разницей, что синонимов может быть много, и чем их больше — тем лучше, поскольку это «упрощает боту жизнь» и ему легче понять о каком значении идет сейчас речь, а поставленная галочка на Fuzzy matching поможет боту еще и понимать о чём идет речь, даже если вы упустили одну букву или другой символ. Выглядит это примерно так:

Москва — москва, Москва, Мсква…

Заканчивая короткий экскурс, хотел бы добавить, что именно с Entity происходит очень много всякой возни. Я конечно же не уменьшаю значение интентов и так далее, но факт остается фактом.
Читать дальше
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 3K
Комментарии 2

Почему появились асинхронные веб-сервера?

Блог компании OTUS Высокая производительность *Анализ и проектирование систем **nix *Промышленное программирование *
Всем привет. На связи Владислав Родин. В настоящее время я являюсь руководителем курса «Архитектор высоких нагрузок» в OTUS, а также преподаю на курсах, посвященных архитектуре ПО.

Помимо преподавания, как вы могли заметить, я занимаюсь написанием авторского материала для блога OTUS на хабре и сегодняшнюю статью хочу приурочить к запуску курса «Администратор Linux», на который прямо сейчас открыт набор.





Введение


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

К сожалению, мне не удалось найти ни одного материала, позволяющего восстановить разом все причинно-следственные связи в эволюции веб-серверов. Так возникла идея написания этой статьи, которая, как я надеюсь, станет таким материалом.
Читать дальше →
Всего голосов 13: ↑10 и ↓3 +7
Просмотры 7.3K
Комментарии 6

Какие возможности предоставляет Spring для кастомизации своего поведения

Блог компании OTUS Разработка веб-сайтов *Программирование *Java *Промышленное программирование *
Всем привет. На связи Владислав Родин. В настоящее время я являюсь руководителем курса «Архитектор высоких нагрузок» в OTUS, а также преподаю на курсах, посвященных архитектуре ПО.

Помимо преподавания, я занимаюсь написанием авторского материала для блога OTUS на хабре и сегодняшнюю статью хочу приурочить к запуску курса «Разработчик на Spring Framework», на который прямо сейчас открыт набор.




Введение


С точки зрения читателя код приложения, использующего Spring, выглядит достаточно просто: объявляются некоторые bean'ы, классы размечаются аннотациями, а дальше bean'ы inject'ятся куда нужно, все прекрасно работает. Но у пытливого читателя возникает вопрос: «А как это работает? Что происходит?». В этой статье мы попытаемся ответить на данный вопрос, но только не ради удовлетворения праздного любопытства.

Spring framework известен тем, что он является достаточно гибким и предоставляет возможности для настройки поведения framework'а. Также Spring «изобилует» рядом достаточно интересных правил на применение некоторых аннотаций (например, Transactional). Для того, чтобы понять смысл этих правил, уметь их выводить, а также понимать что и как можно настраивать в Spring'е, необходимо понять несколько принципов работы того, что находится у Spring'а под капотом. Как известно, знание нескольких принципов освобождает от знания множества фактов. Я предлагаю ознакомиться с этими принципами ниже, если вы их, конечно, еще не знаете.
Читать дальше →
Всего голосов 16: ↑15 и ↓1 +14
Просмотры 3.9K
Комментарии 2

Почему контекст не является «инструментом для управления состоянием»

Разработка веб-сайтов *JavaScript *Программирование *ReactJS *
Перевод


TL;DR


Context и Redux — это одно и тоже?

Нет. Это разные инструменты, делающие разные вещи и используемые в разных целях.

Является ли контекст инструментом «управления состоянием»?

Нет. Контекст — это форма внедрения зависимостей (dependency injection). Это транспортный механизм, который ничем не управляет. Любое «управление состоянием» осуществляется вручную, как правило, с помощью хуков useState()/useReducer().

Являются ли Context и useReducer() заменой Redux?

Нет. Они в чем-то похожи и частично пересекаются, но сильно отличаются в плане возможностей.

Когда следует использовать контекст?

Когда вы хотите сделать некоторые данные доступными для нескольких компонентов, но не хотите передавать эти данные в виде пропов на каждом уровне дерева компонентов.

Когда следует использовать Context и useReducer()?

Когда вам требуется управление состоянием умеренно сложного компонента в определенной части приложения.

Когда следует использовать Redux?

Redux наиболее полезен в следующих случаях:

  • Большое количество компонентов с состояниями, в которых используются одни и те же данные
  • Состояние приложение часто обновляется
  • Сложная логика обновления состояния
  • Приложение имеет среднюю или большую кодовую базу и над ним работает много людей
  • Вы хотите знать когда, почему и как обновляется состояние приложения и иметь возможность визуализировать эти изменения
  • Вам требуются более мощные возможности по управлению побочными эффектами, стабильностью (постоянством) и сериализацией данных

Читать дальше →
Всего голосов 10: ↑8 и ↓2 +6
Просмотры 16K
Комментарии 86

Dependency Injection в React — максимально просто

Разработка веб-сайтов *JavaScript *Проектирование и рефакторинг *ReactJS *TypeScript *

В интернете немало публикаций на тему реализации Dependency Injection (далее - DI) в React, также существует немало сторонних npm-пакетов, таких как inversify-react, react-simple-di и других. Но, по моему мнению, DI настолько просто реализуется средствами самого React, без дополнительных выкрутасов и boilerplate-кода, что никакая сторонняя библиотека во многих случаях попросту не нужна. В данной небольшой статье я постараюсь обосновать это свое мнение. Примеры кода будут приведены на TypeScript.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 8.3K
Комментарии 24

Blogged Answers: (почти) полное руководство по особенностям рендеринга в React. Часть 1

Блог компании OTUS Программирование *ReactJS *
Перевод

Подробности о том, как происходит рендеринг в React и как влияет на рендеринг применение контекста.

Я часто сталкиваюсь с недопониманием относительно того, как, почему и когда React повторно рендерит компоненты и каким образом применение контекста и React-Redux влияет на время и объем повторного рендеринга. С десяток раз понабивав на клавиатуре различные вариации ответов на эти вопросы, я подумал, что имеет смысл составить одно общее пояснение и при каждом удобном случае ссылаться на него. Учтите, что вся собранная здесь информация уже гуляет по сети и рассматривалась в ряде других замечательных статей и публикаций в блогах. Некоторые из них перечислены в качестве справки в конце оригинальной публикации, в разделе Further Information. Собрать разрозненные сведения в единую картину бывает нелегко, поэтому я надеюсь, что моя статья поможет кому-то разобраться в теме.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Просмотры 9.9K
Комментарии 3

Blogged Answers: (почти) полное руководство по особенностям рендеринга в React. Часть 2

Блог компании OTUS Программирование *ReactJS *
Перевод

Первую часть публикации читайте здесь.

Как описано на странице «Согласование» в официальной документации, React пытается эффективно выполнять повторный рендеринг, по возможности повторно используя существующее дерево компонентов и структуру DOM. Если заставить React отрендерить тот же самый тип компонента или HTML-узел в том же месте дерева, React повторно использует имеющееся представление и при необходимости актуализирует его, вместо того чтобы перестраивать его с нуля. Это значит, что React будет поддерживать жизнеспособность экземпляров компонента до тех пор, пока вы будете запрашивать рендеринг этого типа компонента в том же самом месте. Для классовых компонентов повторно используется тот же самый реальный экземпляр вашего компонента. У функционального компонента нет такого же «настоящего» экземпляра, как у классового, но мы можем рассматривать <MyFunctionComponent /> как некий аналог «экземпляра» в том смысле, что «компонент этого типа отображается в этом месте и по-прежнему существует».

Читать далее
Всего голосов 4: ↑2 и ↓2 0
Просмотры 2.8K
Комментарии 0

Blogged Answers: (почти) полное руководство по особенностям рендеринга в React. Часть 3

Блог компании OTUS Программирование *ReactJS *
Перевод

Context API — это механизм React, позволяющий передать одно пользовательское значение в поддерево компонентов. Любой компонент внутри определенного <MyContext.Provider> может прочитать значение из этого экземпляра контекста, не прибегая к непосредственной передаче значения в качестве пропа через каждый промежуточный компонент.

Контекст не является инструментом управления состоянием. Разработчику необходимо самостоятельно управлять значениями, передаваемыми в контекст. Обычно в этих целях данные хранятся в состоянии компонента React, и на основании этих данных конструируются значения контекста.

Читать далее
Всего голосов 3: ↑2 и ↓1 +1
Просмотры 2.3K
Комментарии 1

Универсальный компонент для графиков на React + D3.js

Блог компании HeadHunter ReactJS *

Распространенная проблема: создается какой-нибудь “универсальный” компонент, и вдруг в него нужно добавить что-то, что совершенно не влезает в текущую реализацию. Проще написать новый. Именно так и случилось, когда мы рисовали графики на React с использованием библиотеки D3. 

В этой статье:  

📌 Типичные технические и бизнес-требования к графикам

📌 Различные способы передачи данных в React компонентах. От решения "в лоб" до постепенного улучшения

Читать
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 4.2K
Комментарии 3
1