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

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

Отправить сообщение

Делаем приватный монитор из старого LCD монитора

Время на прочтение2 мин
Количество просмотров971K


Вы наконец-то можете сделать кое-что со своим старым LCD монитором, который завалялся у Вас в гараже. Превратите его в шпионский монитор! Для всех вокруг он будет выглядеть просто белым экраном, но не для Вас, потому что у Вас будут специальные «волшебные» очки.

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

Читать дальше →
Всего голосов 1484: ↑1466 и ↓18+1448
Комментарии327

Ненужные HTTP-заголовки

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

Большинство разработчиков знают о важных и нужных HTTP-заголовках. Самые известные — Content-Type и Content-Length, это почти универсальные хедеры. Но в последнее время для повышения безопасности начали использоваться заголовки вроде Content-Security-Policy и Strict-Transport-Security, а для повышения производительности — Link rel=preload. Несмотря на широкую поддержку в браузерах, лишь немногие их используют.

В то же время есть много чрезвычайно популярных заголовков, которые вообще не новые и не очень полезные. Мы можем это доказать с помощью HTTP Archive, проекта под управлением Google и спонсируемого Fastly, который каждый месяц при помощи WebPageTest скачивает 500 000 сайтов и выкладывает результаты в BigQuery.
Читать дальше →
Всего голосов 33: ↑32 и ↓1+31
Комментарии11

.NET Core 2.1 Global Tools

Время на прочтение7 мин
Количество просмотров18K

Пару недель назад вышел .NET Core 2.1 RC1. Это первая версия SDK, где есть фича под названием "Глобальные утилиты .NET Core" (".NET Core Global Tools"). Она дает простой способ создания кросс-платформенных консольных утилит.



Мы познакомимся с основами использования .NET Core Global Tools и кратко посмотрим, что внутри. А еще вы можете скачать .NET Core 2.1 SDK и попробовать написать собственный пример.

Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии16

Как предпринимателю сдать отчётность по УСН

Время на прочтение3 мин
Количество просмотров5.5K


До конца срока сдачи отчётности по УСН осталась ровно одна неделя. В этой статье мы расскажем, как ИП сдать отчётность по УСН, что в неё входит, а также как сформировать декларацию по УСН бесплатно на нашем сайте.

Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии28

Концепции распределенной архитектуры, с которыми я познакомился при построении крупной системы платежей

Время на прочтение12 мин
Количество просмотров35K
Я присоединился к Uber два года назад в качестве мобильного разработчика, имеющего некоторый опыт разработки бекенда. Здесь я занимался разработкой функционала платежей в приложении — и по ходу дела переписал само приложение. После чего я перешёл в менеджмент разработчиков и возглавил саму команду. Благодаря этому я смог гораздо ближе познакомиться с бэкендом, поскольку моя команда несёт ответственность за многие системы нашего бэкенда, позволяющие осуществлять платежи.

До моей работы в Uber у меня не было опыта работы с распределёнными системами. Я получил традиционное образование в Computer Science, после чего с десяток лет занимался full-stack разработкой. Поэтому, пусть я и мог рисовать различные диаграммы и рассуждать о компромиссах (tradeoffs) в системах, к тому моменту я недостаточно хорошо понимал и воспринимал концепции распределённости — такие, например, как согласованность (consistency), доступность (availability) или идемпотентность (idempotency).

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

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

Итак, давайте приступим к нашему погружению в SLA, согласованность, долговечность данных, сохранность сообщений, идемпотентность и некоторые другие вещи, которые мне потребовалось выучить на своей новой работе.
Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии2

Что делать, если память подводит

Время на прочтение14 мин
Количество просмотров19K
Привет, GT! Оперативная память – это как деньги. Или как свободное время. Ну, в смысле, расходится на все подряд и всегда ее не хватает. В общем, здесь действует то же правило: чем больше – тем лучше. И даже если ваш ПК довольно средненький по ТТХ, с оперативкой, например, на 8 гигабайт, то переход на 12 гигабайт такой же средненькой памяти скрасит вам жизнь весьма ощутимо. А вообще, в плане памяти есть два основных способа сделать так, чтобы использование компьютера приносило максимум радости:

  1. Оптимизировать саму ОС, чтобы уже имеющаяся на борту память расходовалась оптимально в рамках привычных пользователю сценариев.
  2. Докупить себе в ПК правильных плашек, нарастив память до нужного объема.



Но обо всем по порядку.
Читать дальше →
Всего голосов 25: ↑19 и ↓6+13
Комментарии55

Конференция DEFCON 23. «Как я сбивал назойливый дрон соседского ребёнка». Майкл Робинсон

Время на прочтение19 мин
Количество просмотров45K
Большое спасибо за то, что пришли меня послушать! То, о чём я буду говорить, отличается от выступлений предыдущих спикеров. Сначала я хочу поблагодарить людей, которые помогали мне в подготовке этого выступления. Некоторые из них смогли тут присутствовать, некоторые нет. Это Алан Митчел, Рон МакГайер, Крис Тейлор и Кэти Херитадж и ещё несколько человек, которые захотели сохранить анонимность, поэтому их имена напечатаны на этой картинке чёрным цветом.



Мой сосед меня реально достал, а его ребёнок достал меня вдвойне! Меня раздражают его… сопли, можете заменить «сопли» более подходящим словом из четырёх букв! Но самая большая проблема возникла, когда у соседского парня появилось вот это – квадрокоптер с видеокамерой.



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



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

Я стал искать варианты адекватного ответа. Может быть, это?
Всего голосов 76: ↑68 и ↓8+60
Комментарии54

MobileNet: меньше, быстрее, точнее

Время на прочтение5 мин
Количество просмотров57K
Если пять лет назад нейронная сеть считалась «тяжеловесным» алгоритмом, требующим железа, специально предназначенного для высоконагруженных вычислений, то сегодня уже никого не удивить глубокими сетями, работающими прямо на мобильном телефоне.

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

В этой статье мы поговорим о MobileNet, передовой архитектуре сверточной сети, позволяющей делать всё это и намного больше.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии5

Как выпустить самоподписанный SSL сертификат и заставить ваш браузер доверять ему

Время на прочтение3 мин
Количество просмотров257K


Все крупные сайты давно перешли на протокол https. Тенденция продолжается, и многие наши клиенты хотят, чтобы их сайт работал по защищенному протоколу. А если разрабатывается backend для мобильного приложения, то https обязателен. Например, Apple требует, чтобы обмен данными сервера с приложением велся по безопасному протоколу. Это требование введено с конца 2016 года.

На production нет проблем с сертификатами. Обычно хостинг провайдер предоставляет удобный интерфейс для подключения сертификата. Выпуск сертификата тоже дело не сложное. Но во время работы над проектом каждый разработчик должен позаботиться о сертификате сам.
В этой статье я расскажу, как выпустить самоподписанный SSL сертификат и заставить браузер доверять ему.
Читать дальше →
Всего голосов 52: ↑41 и ↓11+30
Комментарии51

Прокачиваем производительность C# с Федерико Луисом

Время на прочтение19 мин
Количество просмотров25K

Сегодня мы поговорим о производительности в C#, о способах прокачать её до неузнаваемости. Задача этой статьи — продемонстрировать такие способы повышения производительности, которые, при необходимости, вы смогли бы использовать самостоятельно. Однако эти методики не являются универсальными — вы не сможете использовать их в качестве общего решения любой задачи. Они хороши при наличии вполне конкретных сценариев использования, о которых пойдет речь ниже.


В качестве прототипа статьи был выбран доклад Федерико Луиса, основателя компании Corvalius (они занимаются R&D). Работая над движком базы данных для одного из клиентов, они посвятили около четырёх лет задачам оптимизации. Такое количество времени требуется для того, чтобы применить разного рода техники и достичь хороших показателей оптимизации. Требуется выявить все проблемы и узкие места, проследить поведение софта в соответствии со всеми имеющимися метриками и так далее. Примеры из этой статьи основаны на работе над RavenDB 4.0 (известная NoSQL база для .NET), которую компания Федерико тюнила до уровня наносекунд во всевозможных сложных кейсах.


Все примеры, которые встретятся вам в ходе рассказа (плюс некоторые дополнительные), доступны в специальном репозитории на GitHub.


Осторожно, трафик! В этом посте присутствует огромное количество картинок — слайдов и скриншотов с видео в формате 720p. На слайдах присутствует важный для понимания статьи код.

Читать дальше →
Всего голосов 46: ↑41 и ↓5+36
Комментарии0

Залезаем во внутреннее хранилище Android M

Время на прочтение3 мин
Количество просмотров31K

В Android 6.0 ввели функцию, позволяющую отформатировать карту памяти так, чтобы она являлась не отдельным хранилищем, а придатком ко внутренней памяти. Это позволяет избежать путаницы с двумя хранилищами данных, особенно при ручной установке некоторых не всегда честно купленных крупных приложений, поставляемых по частям. Однако есть один нюанс: при этом всём нам наглухо блокируют доступ к карте напрямую. Хочешь что-то передать на устройство — используй MTP со всеми вытекающими, вроде скорости передачи файлов, сравнимой с прогулочным шагом контуженной черепахи. Карту теперь не только к ПК через кабель напрямую нельзя подключить: её и из выключенного телефона через кардридер просто так не смонтируешь, ведь она отформатирована в нечто неизвестное ни науке, ни нашим компьютерам.


Но ведь правила созданы для того, чтобы их нарушать? Давайте попробуем обойти это бессовестное ограничение.

Читать дальше →
Всего голосов 36: ↑36 и ↓0+36
Комментарии61

REST API Best Practices

Время на прочтение7 мин
Количество просмотров421K
Привет, Хабр! Представляю вашему вниманию перевод статьи "REST API Best Practices" автора Krishna Srinivasan.

REST становится общим подходом для представления сервисов окружающему миру. Причина его популярности заключается в его простоте, легкости использования, доступе через HTTP и другие. Существует неправильное представление о том, что все данные, доступные через сеть, считаются REST, но это не так. В этой статье я собираюсь объяснить вам некоторые best practices, которые вы должны всегда помнить при реализации собственного REST приложения. Я бы хотел услышать ваш опыт в REST приложениях, поэтому если вы знаете best practies, которые не упомянуты в этой статье, пожалуйста, поделитесь с нами в комментариях.

Disclamer: все best practies основаны на моем личном опыте. Если вы имеете другое мнение, не стесняйтесь отправлять его мне на email, и мы обсудим его.

Здесь представлен список best practices, которые будут обсуждаться в этой статье:

1. Конечные точки в URL – имя существительное, не глагол
2. Множественное число
3. Документация
4. Версия вашего приложения
5. Пагинация
6. Использование SSL
7. HTTP методы
8. Эффективное использование кодов ответов HTTP
Читать далее
Всего голосов 55: ↑48 и ↓7+41
Комментарии195

Система отопления многоквартирного дома. Ликбез с примерами

Время на прочтение6 мин
Количество просмотров212K
Всем привет! Меня зовут Виктор и это мой первый пост на Гиктаймс, прошу не судить строго. Сам по жизни я веб-программист, но помимо прочего, я еще и член правления ТСЖ, и посему активно занимаюсь вопросами ЖКХ. ЖКХ в России застряло в 80х годах прошлого столетия, хотя технологии ЖКХ давным давно ушли вперед. Если сообщество будет не против, буду периодически делиться с Вами практическими мыслями и информацией по теме ЖКХ, что и как можно сделать, чтобы хотя бы в рамках своего дома сдвинуть ситуацию с мертвой точки.
Читать дальше →
Всего голосов 80: ↑80 и ↓0+80
Комментарии395

Как и зачем переходить от сервис-ориентированной архитектуры к микросервисам

Время на прочтение7 мин
Количество просмотров34K
Здравствуйте, меня зовут Алексей, я главный IT-архитектор банка «Ренессанс Кредит». Лет десять назад мы, как и многие компании, ускорили свое развитие благодаря сервис-ориентированной архитектуре (SOA). Но со временем требования к архитектуре менялись, и к данной парадигме стали возникать серьезные вопросы. В конце концов мы решили перейти от интеграционной шины ESB к микросервисам. На нашем примере я расскажу, почему стоит задуматься об эффективности SOA и что можно предпринять, если эта модель вас тоже не устраивает.


Читать дальше →
Всего голосов 43: ↑32 и ↓11+21
Комментарии54

Расшифровка сохранённых паролей в MS SQL Server

Время на прочтение3 мин
Количество просмотров35K
Давным-давно, в далёкой галактике, пред-предыдущий администратор вашего SQL Server задал в нём linked server, используя специально для этой цели созданный аккаунт со сгенерированным паролем. Теперь вам с этим линком нужно что-то сделать, например перенести его на другой SQL Server; но просто так это не сделать, потому что никто не знает пароля от того аккаунта. Знакомая ситуация?

Хотя MSSQL не хранит пароли для своих аккаунтов, а хранит только их хэши, — с linked server-ами так не получится, потому что для успешной аутентикации перед внешним сервером нужно обладать паролем в открытом виде. Пароли для linked server-ов хранятся в зашифрованном виде в таблице master.sys.syslnklgns:



Но не всё так просто.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии8

Актуальная ОС для старого ПК или нетбука

Время на прочтение4 мин
Количество просмотров319K
image

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


Пока я обдумывал что делать со своим старьём (а завалялись у меня Samsung NC10 и Asus U5F) попался мне на просторах сети вот такой текст. Разумеющим английский мысль, надеюсь, ясна. А для остальных, вполне очевидная идея заключается в том, чтобы заменить на старом ПК операционную систему на менее требовательную, но при этом вполне актуальную. Затем такой компьютер можно отдать детям для простеньких игрушек, бабушке для скайпа, маме для web-серфинга или даже использовать самому.

Читать дальше →
Всего голосов 30: ↑26 и ↓4+22
Комментарии285

Защита ASP.NET приложений от взлома

Время на прочтение13 мин
Количество просмотров29K

ASP.NET MVC — не самый хайповый, но довольно популярный стек в среде веб-разработчиков. С точки зрения (анти)хакера, его стандартная функциональность дает тебе кое-какой базовый уровень безопасности, но для предохранения от абсолютного большинства хакерских трюков нужна дополнительная защита. В этой статье мы рассмотрим основы, которые должен знать о безопасности ASP.NET-разработчик (будь то Core, MVC, MVC Razor или Web Forms).


Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии11

Yargy-парсер и библиотека Natasha. Извлечения структурированной информации из текстов на русском языке

Время на прочтение12 мин
Количество просмотров83K
В 2020 году библиотека Natasha значительно обновилась, на Хабре опубликована статья про актуальную версию. Чтобы использовать инструменты, описанные в этом тексте, установите старую версию библиотеки pip install natasha<1 yargy<0.13.

Раздел про Yargy-парсер актуален и сейчас.


Есть стандартная задача извлечения именованных сущностей из текста (NER). На входе текст, на выходе структурированные, нормализованные объекты, например, с именами, адресами, датами:



Задача старая и хорошо изученная, для английского языка существует масса коммерческих и открытых решений: Spacy, Stanford NER, OpenNLP, NLTK, MITIE, Google Natural Language API, ParallelDots, Aylien, Rosette, TextRazor. Для русского тоже есть хорошие решения, но они в основном закрытые: DaData, Pullenti, Abbyy Infoextractor, Dictum, Eureka, Promt, RCO, AOT, Ahunter. Из открытого мне известен только Томита-парсер и свежий Deepmipt NER.

Я занимаюсь анализом данных, задача обработки текстов одна из самых частых. На практике оказывается, что, например, извлечь имена из русского текста совсем непросто. Есть готовое решение в Томита-парсере, но там неудобная интеграция с Python. Недавно появилось решение от ребят из iPavlov, но там имена не приводятся к нормальной форме. Для извлечения, например, адресов («ул. 8 Марта, д.4», «Ленинский проезд, 15») открытых решений мне не известно, есть pypostal, но он чтобы парсить адреса, а не искать их в тексте. C нестандартными задачами типа извлечения ссылок на нормативные акты («ст. 11 ГК РФ», «п. 1 ст. 6 Закона № 122-ФЗ») вообще непонятно, что делать.

Год назад Дима Веселов начал проект Natasha. С тех пор код был значительно доработан. Natasha была использована в нескольких крупных проектах. Сейчас мы готовы рассказать о ней пользователям Хабра.
Natasha — это аналог Томита-парсера для Python (Yargy-парсер) плюс набор готовых правил для извлечения имён, адресов, дат, сумм денег и других сущностей.
В статье показано, как использовать готовые правила из Natasha и, самое главное, как добавлять свои с помощью Yargy-парсера.
Читать дальше →
Всего голосов 87: ↑86 и ↓1+85
Комментарии33

Исследование БД и СУБД с помощью T-SQL

Время на прочтение15 мин
Количество просмотров12K

Предисловие


Приветствую вновь тебя, уважаемый читатель Хабра!

Когда свои реализованные идеи, опыт, а также всю ту информацию, что не дает покоя, оформляешь в публикации, рано или поздно приходит логическая точка всему ранее написанному потоку информации. Эта статья будет отличаться от всех ранее опубликованных мною своей нестрогостью и более свободным стилем изложения текста, а также она завершит изложение всего моего накопленного опыта по MS SQL Server.

Данная статья является дополнением к статье Исследуем базы данных с помощью T-SQL, а также вкратце рассказывает о созданной базе данных по администрированию SRV и о проектах-утилитах, которые предназначены помочь в работе DBA MS SQL Server.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии8

Три аспекта оптимизации (БД и ПО)

Время на прочтение31 мин
Количество просмотров64K

Предисловие


Довольно часто пользователи, разработчики, администраторы и т д СУБД MS SQL Server встречаются с проблемами производительности БД или СУБД в целом.

В данной статье будут даны общие рекомендации по настройке оптимизации как БД, так и всей СУБД в целом. Также будут даны основные рекомендации по взаимодействию приложения .NET и MS SQL Server. Будут даны примеры решения на большинство из приведенных ниже рекомендаций.

В данной статье не будут рассматриваться оптимизация аппаратных ресурсов, самой ОС и использование разных встроенных фич для СУБД и ОС в целом, т к это заняло бы целую книгу.
Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии81
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность