Pull to refresh
9
0
Сергей @schebotar

User

Send message

Как работает хэширование

Level of difficultyMedium
Reading time12 min
Views69K

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

Хэш-функции фундаментальны и используются повсюду.

Но что же такое хэш-функции и как они работают?

В этом посте я собираюсь развенчать мифы вокруг этих функций. Мы начнём с простой хэш-функции, узнаем, как проверить, хороша ли хэш-функция, а затем рассмотрим реальный пример применения хэш-функции: хэш-таблицу.
Читать дальше →
Total votes 62: ↑59 and ↓3+70
Comments49

5 книг по Golang для начинающих разработчиков: на что стоит обратить внимание

Reading time3 min
Views12K

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

Читать далее
Total votes 11: ↑8 and ↓3+11
Comments3

Настройка BGP для обхода блокировок, версия 2, «не думать»

Reading time3 min
Views63K

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


Поэтому здесь я приведу сжатую пошаговую инструкцию, как обходить блокировки, если у вас есть:


  • линукс-машина (ubuntu) вне поля блокировок;
  • роутер Mikrotik, на который вы уже подняли VPN-туннель до этой линукс-машины;
  • настроенный NAT на этом туннеле, позволяющий вам работать через него;
  • желание.

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


Те, кто уже всё сделал по мотивам предыдущего поста, в этом полезной информации не почерпнут.

Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments112

Возвращаем 2007 год, или делаем Интернет без блокировок

Level of difficultyMedium
Reading time5 min
Views68K

Как известно, в 2007 году кроме того, что деревья были выше, а трава зеленей, еще и в Интернете не было особых ограничений - можно было открыть почти любой сайт и наслаждаться им. До ковровых блокировок Telegram оставалось ещё 10 лет... К сожалению, в наше время такой возможности уже нет. Причины тут всем известны, в частности, некоторые компании уже не предоставляют своих услуг в России.

Хорошо, что существует возможность в рамках домашней сети восстановить свободный Интернет таким, каким он был в 2007-м. Именно этим мы и займемся. Стоит отметить, что в 2007 году довольно часто можно было встретить подключения на скорости 64-128 Кб/с, а то и вовсе dial-up; Wi-Fi был редкостью, а мобильная связь - довольно дорогим удовольствием. Однако, эти особенности того времени мы постараемся не воспроизводить.

Представляю вашему вниманию Freeroute - простой маршрутизатор, который позволяет направлять трафик на разные шлюзы в зависимости от домена назначения. Free в названии, как водится, означает свободный, а не бесплатный.

Читать далее
Total votes 69: ↑65 and ↓4+76
Comments98

Основы Go: функции

Reading time10 min
Views7.9K

Автор статьи: Рустем Галиев

Сегодня мы рассмотрим, как писать и вызывать функции в Go. Мы также изучим, как правильно обрабатывать ошибки в функциях, и узнаем об использовании функций в качестве типов данных. Попутно мы будем использовать структуры управления if, for и switch в Go.

Читать далее
Total votes 14: ↑10 and ↓4+10
Comments5

Шпаргалка по SQL (postgres), которая выручает меня на собесах

Level of difficultyEasy
Reading time8 min
Views198K

Привет, Хабр!

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

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

Читать далее
Total votes 156: ↑149 and ↓7+177
Comments178

Обзор Top-3 Open Source игр на C# и ошибок в их коде

Level of difficultyEasy
Reading time8 min
Views7K

В мире много хороших игр, но совсем немногие открывают исходный код. В этой статье мы познакомимся, на мой взгляд, с тремя лучшими Open Source играми на C# и разберём наиболее интересные ошибки, найденные в их исходном коде.

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

Как делать резервные копии сайтов и серверов?

Level of difficultyEasy
Reading time5 min
Views8.2K

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

Читать далее
Total votes 4: ↑2 and ↓20
Comments11

Теорема об одурачивании людей или как не стоит верить уловкам маркетинга в безопасность приложений на примере Telegram

Level of difficultyEasy
Reading time8 min
Views40K

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

Читать далее
Total votes 69: ↑53 and ↓16+50
Comments153

Книга «README. Суровые реалии разработчиков»

Reading time17 min
Views7.7K
image Привет, Хаброжители!

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

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

Ключевые концепции и лучшие практики для начинающих разработчиков — то, чему вас не учили в университете!
Читать дальше →
Total votes 10: ↑8 and ↓2+9
Comments3

Schema.org своими руками: настраиваем микроразметку без программиста

Reading time11 min
Views96K
Schema.org своими руками: настраиваем микроразметку без программиста

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


Рассказываем о словаре и синтаксисе микроразметки, собрали несколько плагинов и инструментов для создания и проверки разметки, разобрали по шагам один из плагинов.

Читать дальше
Total votes 10: ↑6 and ↓4+7
Comments3

Погрузиться в Redis — материалы, которые помогут начать работу

Level of difficultyEasy
Reading time5 min
Views10K
image

Как начать работу с Redis командам, у которых мало опыта в администрировании СУБД? Можно попробовать создать кластеры Redis в облаке. Или же сначала «вкатиться» в тему и поближе познакомиться с экосистемой — на этот случай мы подготовили подборку литературы. В списке — свежие издания и классика, которую стоит прочитать каждому начинающему Redis-разработчику.

Кому будет интересно: например, вам нужна среда для разработки программ и приложений, или поддержки работы интернет-магазинов с их пиковыми нагрузками во время сезонных или тематических акций. Статья также пригодится компаниям с большим количеством офисов в разных регионах и командам, которым необходимо обрабатывать транзакции в режиме реального времени.
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments3

Книга «ASP.NET Core Security» в правильном переводе команды DotNetRu

Reading time4 min
Views5.9K

Сообщество DotNetRu совместно с издательством ДМК Пресс договорились на доработку и проверку перевода очередной книги. Напомним, что мы уже помогли выпустить три книги: «Управление памятью в .NET для профессионалов» Конрада Кокосы,  «ASP.NET Core в действии» Эндрю Лока и «EF Core в действии» Джона Смита. Издатель делает первоначальный перевод, а ребята из сообщества в качестве экспертов корректируют текст, придавая переводу оригинальный и непротиворечивый смысл.

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

Рады представить вам очередной результат совместных усилий: книга Кристиана Венца «Безопасность ASP.Net Core» в правильном переводе DotNetRu. В продолжении поста — впечатления о процессе перевода от непосредственных участников и промокод на скидку от издательства.

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

Wireshark — подробное руководство по началу использования

Level of difficultyMedium
Reading time8 min
Views199K

Wireshark – это широко распространённый инструмент для захвата и анализа сетевого трафика, который активно используется как для образовательных целей, так и для устранения неполадок на компьютере или в сети. Wireshark работает практически со всеми протоколами модели OSI, обладает понятным для обычного пользователя интерфейсом и удобной системой фильтрации данных. Помимо всего этого, программа является кроссплатформенной и поддерживает следующие операционные системы: Windows, Linux, Mac OS X, Solaris, FreeBSD, NetBSD, OpenBSD.

Читать далее
Total votes 32: ↑30 and ↓2+36
Comments21

Открытая библиотека для работы с документами Microsoft Word формата .docx в мире .Net в 2023 году: Wordroller

Level of difficultyEasy
Reading time2 min
Views7K

Свою предыдущую статью на Хабре я написал в 2016 году, и она была посвящена подборку команды стартапа. Примерно в это время я погрузился в историю создания собственного продукта и стало не до создания контента. Так получилось, что в 2020 году мне пришлось сделать свою реализацию библиотеки для создания, редактирования и индексирования документов формата Microsoft Word, стандартизированного как OOXML WordprocessingML и получившего в свое время расширение файла .docx. Именно ей и хотелось бы поделиться с сообществом.

Читать далее
Total votes 15: ↑14 and ↓1+15
Comments17

C# как замена VBA в Excel

Level of difficultyMedium
Reading time14 min
Views14K
Я довольно много пишу на C#, и это мне нравится. Время от времени мне хочется, чтобы можно было использовать C# внутри других приложений.

Думаю, одним из таких приложений, в которых хорошо приживётся C#, был бы Excel, этим языком можно было бы заменить VBA. Язык VBA уже немного отстаёт от времени, а Microsoft не планирует его апгрейдить. Вместо него — компания предлагает среду-песочницу для JavaScript под названием Office Scripts.

Я понимаю привлекательность JavaScript для веб-версии Excel, но не в качестве хорошей замены VBA.

Так как этим не собирается заниматься Microsoft, я решил, что могу попробовать сам. В конце концов, если Microsoft так увлечена JavaScript, маловероятно, что она выдавит меня с обширного рынка использования C# в Excel.

Итак, вот что я создал:

QueryStorm IDE, выполняющая запрос LINQ для таблицы Excel

«Это что, IDE языка C#, выполняющая запросы LINQ для таблиц Excel?» Именно. Всё так и есть.

Я назвал это QueryStorm. Моя работа над этим проектом началась ещё в 2014 году. Изначально у него имелась только поддержка SQL, и с тех пор я продолжал над ним работать, постепенно добавляя поддержку скриптинга на C#, пользовательских функций C#/Excel, поддержку NuGet, отладчик и даже магазин приложений!
Читать дальше →
Total votes 67: ↑66 and ↓1+86
Comments22

Bleeding-edge обход блокировок с полной маскировкой: настраиваем сервер и клиент XRay с XTLS-Reality быстро и просто

Level of difficultyEasy
Reading time11 min
Views468K

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

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

Кроме того, что этот протокол еще более устойчив к выявлению, приятным фактом будет и то, что настройка сервера XTLS-Reality гораздо проще, чем описанные ранее варианты - после предыдущих статей я получил довольно много комментариев типа "А что так сложно, нужен домен, нужны сертификаты, и куча всего" - теперь все будет гораздо проще.

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

Программы-клиенты для протоколов недетектируемого обхода блокировок сайтов: V2Ray/XRay, Clash, Sing-Box, и другие

Level of difficultyMedium
Reading time16 min
Views214K

В предыдущей статье “Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria и все-все-все” я рассказывал про прокси-протоколы. Теперь настало время рассказать про клиенты: консольные, GUI для десктопа и для мобильных платформ. 

Надеюсь, что эта статья вам окажется полезной, потому что, как выяснилось, найти хороший клиент даже для тех же V2Ray/XRay в наше время не так-то просто. Потому что большая часть того, что находится при поиске в интернете “в лоб” и даже в списках типа Awesome V2Ray - или уже неподдерживаемое, или довольно кривое, или не умеющее в актуальные версии и фичи (например, XTLS и uTLS), а самые жемчужины прячутся где-нибудь в глубинах Github’а и сторов.

Читать далее
Total votes 49: ↑48 and ↓1+56
Comments52

Обход блокировок: настройка сервера XRay для Shadowsocks-2022 и VLESS с XTLS-Vision, Websockets и фейковым веб-сайтом

Level of difficultyMedium
Reading time14 min
Views229K

Предыдущие статьи серии:

Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria и все-все-все
Программы-клиенты для протоколов недетектируемого обхода блокировок сайтов: V2Ray/XRay, Clash, Sing-Box, и другие

С протоколами разобрались, с клиентами разобрались, теперь наконец-то настало время рассказать о том, как же настроить свой личный прокси-сервер с современными протоколами для обхода блокировок. Мы будем настраивать сервер на базе XRay (который является форком известного V2Ray, и еще я немного упомяну Sing-Box) с протоколами Shadowsocks-2022 и VLESS с транспортом XTLS-Vision и фейковым веб-сайтом для защиты от выявления. И в качестве запасного варианта на том же сервере мы настроим fallback на VLESS+Websockets, чтобы была возможность работать через CDN типа Cloudflare, если вдруг IP-адрес вашего сервера попадет под блокировку. В конце я приведу настройки десктопных и мобильных клиентов для подключения ко всему этому.

Читать далее
Total votes 37: ↑35 and ↓2+42
Comments107

Information

Rating
Does not participate
Location
Россия
Registered
Activity

Specialization

Specialist
Git
Linux
Docker
OOP
C#
.NET
ASP.NET MVC
ASP.Net
Database