Pull to refresh
1
0
Антон Шапеткин @ANTPro

Программист

Send message

10 лучших инструментов для разработки и администрирования MySQL

Reading time6 min
Views725K
Многие компании создают различные многофункциональные приложения для облегчения управления, разработки и администрирования баз данных.

Большинство реляционных баз данных, за исключением MS Access, состоят из двух отдельных компонентов: «back-end», где хранятся данные и «front-end» — пользовательский интерфейс для взаимодействия с данными. Этот тип конструкции достаточно умный, так как он распараллеливает двухуровневую модель программирования, которая отделяет слой данных от пользовательского интерфейса и позволяет сконцентрировать рынок ПО непосредственно на улучшении своих продуктов. Эта модель открывает двери для третьих сторон, которые создают свои приложения для взаимодействия с различными базами данных.

В Интернете каждый может найти много продуктов для разработки и администрирования баз данных MySQL. Мы решили собрать 10 самых популярных инструментов в одной статье, чтобы вы смогли сэкономить свое время.
Читать дальше →
Total votes 64: ↑61 and ↓3+58
Comments67

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

Reading time2 min
Views976K


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

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

Читать дальше →
Total votes 1486: ↑1468 and ↓18+1450
Comments327

Приложения для приема цифрового телевещания средствами DirectShow

Reading time8 min
Views3.7K
Приложение написано под ОС Windows7, DirectX 9, модель тюнера – AverTV Duo Hybrid PCI-E2, язык C#

Microsoft TV Technologies Internals. В этой статье описан граф для приема цифрового телевещания, а также фильтры, которые используются при постороении графа.

Для создания приложения необходимо:
1. Построить граф.
В своем графе я использую следующие фильтры:
• Microsoft DVB-T Network Provider
• AVerMedia 716x BDA DVBT Tuner (в зависимости от вашей модели Тюнера)
• AVerMedia 716x BDA Digital Capture (в зависимости от вашей модели Тюнера)
• MPEG2 Demultiplexer
• BDA MPEG2 Transport Information Filter
• MPEG-2 Sections and Tables
• Microsoft DTV-DVD Video Decoder
• Video Mixing Renderer 9
Читать дальше →
Total votes 27: ↑22 and ↓5+17
Comments16

Гарантии безопасности исключений

Reading time11 min
Views19K
Ошибки в обработке ошибок являются наиболее распространенным источником ошибок

Бредня, пришедшая в голову при написании этой статьи

Основные баталии по поводу того, что лучше использовать при программировании на C# – исключения или коды возврата для обработки, ушли в далекое прошлое (*), но до сих пор не утихают баталии другого рода: да, хорошо, мы остановились на обработке исключений, но как же нам их обрабатывать «правильно»?

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

Существует множество «за» и «против» такого способа перехвата и обработки исключений, но сегодня я хочу рассмотреть несколько другую тему. А именно тему обеспечения согласованного состояния приложения в свете возникновения исключения – три уровня безопасности исключений.
Читать дальше →
Total votes 50: ↑45 and ↓5+40
Comments41

.NET Частичка правды о размещении объектов на Run-time

Reading time5 min
Views6.6K
Как известно, в .NET память делится на две категории: стек (Stack) и управляемая куча (managed heap, далее просто куча). На стеке располагается ссылка(ObjectRef) на объект (ObjectInstance), который, в свою очередь, располагается в куче.

В данной статье речь пойдет о расположении объекта в куче.

Предполагается, что у читателя имеются знания о:
1. stack
2. managed heap
3. GC
4. Слабые ссылки (weak references)
Читать дальше →
Total votes 39: ↑32 and ↓7+25
Comments22

Синхронные движки RTS и история рассинхронизаций

Reading time7 min
Views9K
Случалось ли Вам играть в игру вроде StarCraft или Supreme Commander и получать сообщение об ошибке вроде “Обнаружена рассинхронизация”, за которым следует закрытие игры? Хотите узнать отчего так происходит? Это наследие архитектуры игрового движка, часто используемой стратегиями в реальном времени.1

Мой опыт в этой области происходит из работы с движком Supreme Commander в студии Gas Powered Games. В период бета тестирования в Starcraft и Warcraft 3 тоже были проблемы с синхронизацией, так что можно сказать что в целом они работают так же. Для простоты я буду говорить именно о движке Supreme Commander. Нахождение сходства с другими играми оставлю как упражнение для читателя :)
Читать дальше →
Total votes 118: ↑113 and ↓5+108
Comments56

Подбор паролей к WPA/WPA2 с использованием видеокарты

Reading time6 min
Views202K
Привет, Хабр!
Сегодня я расскажу и покажу вам, как можно использовать всю мощность ваших видеокарт для игр перебора паролей к Wi-Fi. Как-то не комильфо в наше время использовать только процессорные мощности под эти задачи (в частности aircrack-ng), когда в 80% компьютеров есть видеокарта. Поэтому разумно использовать всю потенциальную мощность ваших систем. А именно, речь пойдет о замечательной программе pyrit.
Читать дальше →
Total votes 166: ↑149 and ↓17+132
Comments61

Атака на беспроводные сети. Чуть меньше теории и чуть больше практики

Reading time6 min
Views313K
image
В общих чертах теорию и процесс атаки хорошо описал юзер n3m0 в своих статьях «Атаки на беспроводные сети», поэтому я не буду заострять внимание на многих теоретических моментах.
Я же хочу описать самые простейшие способы обхода защиты, но более подробно.
Читать дальше →
Total votes 199: ↑189 and ↓10+179
Comments103

.NET Micro Framework: кратко о портировании

Reading time6 min
Views9.6K
Прошлая статья вызвала определенный интерес. Было задано много различных вопросов, но основная их часть коснулась портирования. Эта тема достойна отдельной полноценной книги и коротко осветить ее непросто. Но я попробую.
Читать дальше →
Total votes 38: ↑30 and ↓8+22
Comments18

Работа со структурами в C#

Reading time13 min
Views142K
По следам недавнего топика «Обработка больших объемов данных в памяти на C#» представляю перевод упоминавшейся там статьи о структурах.

Структуры являются фундаментальными типами данных в C# и большинстве других современных языках программирования. По своей сути структуры просты, но вы можете удивиться, насколько быстро работа с ними может стать сложной. Чаще всего проблемы возникают, если вы должны работать со структурами, созданными в других языках и сохраненными на диске или полученными в результате вызова функций из библиотек или COM-объектов. В этой статье я подразумеваю, что вы знакомы с понятием структуры, умеете определять их и владеете базовыми навыками работы со структурами. Предполагается, что вы имеете представление о том, как вызывать API функции с использованием p/Invoke, а также что такое маршалинг. В случае неуверенности в своих знаниях вы можете обратиться к документации.
Множество техник, описанных в данной статье, могут быть расширены и применены к любым типам данных.
Читать дальше →
Total votes 96: ↑82 and ↓14+68
Comments11

Текстовый анализатор: распознавание авторства (начало)

Reading time10 min
Views10K

Добрый день, уважаемые хабражители. Я давно хотел опубликовать под GPL-лицензией свой «Текстовый анализатор» ([1]). Наконец, дошли руки. «Текстовый анализатор» — это исследовательский проект, который я разрабатывал три года на 3, 4 и 5-м курсах университета. Главная цель была: создать алгоритм распознавания авторства текста, используя нейросети Хэмминга или Хопфилда. Идея была такова: эти нейросистемы распознают образы, а к задаче распознавания образов можно свести задачу выявления авторства. Для этого необходимо по каждому тексту собрать статистику, и чем больше разных критериев, тем лучше: частотный анализ букв, анализ длин слов/предложений/абзацев, частотный анализ двухбуквенных сочетаний, и так далее. Нейросистема могла бы выявить, характеристики каких текстов наиболее сходны. Работы было — вал. Много кода, хитрые алгоритмы, ООП, паттерны проектирования. Помимо основной задачи я так же реализовал ещё одно ноу-хау: «Карту благозвучия». По задумке, такая карта должна показывать все плохо и хорошо звучащие места, выделяя их цветом. Критерии оценки благозвучия должны задаваться каким-то универсальным образом, например, правилами. Для этой цели я даже разработал специальный графический язык, RRL (Resounding Rules Language). Работы было — вал. Много кода, хитрые алгоритмы, ООП, паттерны проектирования. В итоге получилась большая и сложная программа, правда, с неприглядным интерфейсом. С этим проектом я даже выиграл в конкурсе дипломных работ, получил 1 и 3 места на университетских конференциях, а так же 2 место на международной научно-практической.

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

(У статьи есть продолжение и окончание.)

Структура статьи:
  1. Анализ авторства
  2. Знакомство с кодом
  3. Внутренности TAuthoringAnalyser и хранение текстов
  4. Разбиение на уровни конечным автоматом на стратегиях
  5. Сбор частотных характеристик
  6. Нейросеть Хэмминга и анализ авторства

Дополнительные материалы:
  • Исходники проекта «Текстовый анализатор» (Borland C++ Builder 6.0)
  • Тестирование нейросистемы Хэмминга в Excel'е ([xls])
  • Таблица переходов для КА, разбивающего текст на уровни ([xls])
  • Расчет благозвучия отдельных букв ([xls])
  • Презентация дипломного проекта «Текстовый анализатор» ([ppt])
  • Презентация проекта «Карта благозвучия» ([ppt])
  • Все эти материалы в сжатом виде ([zip], [7z], [rar])

Читать дальше →
Total votes 54: ↑49 and ↓5+44
Comments5

Новые уязвимости доступа к файлам в PHP

Reading time8 min
Views30K
Какой-нибудь год назад все просто с ума сходили от Error-based MySQL, а unserialize казался чем-то сложным и не встречающимся в реальной жизни. Теперь это уже классические техники. Что уж говорить о таких динозаврах как нуль-байт в инклудах, на смену которому пришел file name truncated. Исследователи постоянно что-то раскапывают, придумывают, а тем временем уже выходят новые версии интерпретаторов, движков, а с ними – новые баги разработчиков.
По сути, есть три метода найти уязвимость: смекалка (когда исследователь придумывает какой-нибудь трюк и проверяет, работает ли он на практике), анализ исходного кода и фаззинг. Об одном интересном китайском фаззинге и его развитии с моей стороны я и хочу рассказать.

Список функций и результаты проверки
Читать дальше →
Total votes 138: ↑122 and ↓16+106
Comments52

Обзор C# библиотек для работы с PDF

Reading time5 min
Views170K
topic image
На написание данной статьи меня подтолкнул топик HTML в PDF, правда по причине того, что он посвящен языку php, лично мне он был мало полезен, т.к. весь опыт работы с php у меня сводился в переводе нескольких скриптов на C#, поэтому я решил сделать небольшой обзор того, что доступно для работы с pdf по средствам языка C#.

Ко мне в список попало 7 библиотек, о которых я скажу несколько слов, а для самой популярной (судя по ответам на stackoverflow), я напишу, как с помощью неё сделать простейший документ. Сразу скажу, что это iTextSharp и работа с ней будет описана в конце статьи.
Читать дальше →
Total votes 87: ↑77 and ↓10+67
Comments24

Алгоритм «diamond-square» для построения фрактальных ландшафтов

Reading time12 min
Views117K
Карта игры Minecraft, созданная с помощью приложения CartographДумаю, многие знакомы с весьма необычной игрой Minecraft (справа — пример сгенерированной в ней карты), в которой игрок находится на (практически) бесконечной поверхности Земли и может исследовать окружающий мир с минимальными ограничениями.

Как же автору игры, Notch'у, удалось добиться подобного сходства его случайных «миров» с земными просторами? В этом топике я как раз и рассмотрю один из способов построить искусственный ландшафт такого рода (и вскользь упомяну пару других способов), а также расскажу о моем небольшом усовершенствовании этого алгоритма, позволяющем значительно увеличивать размеры ландшафта без заметных потерь в производительности.

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

Читать дальше →
Total votes 148: ↑147 and ↓1+146
Comments58

Реверс-инжиниринг обфусцированной сборки .NET

Reading time4 min
Views24K

Вступление


В этой статье я хочу поделиться с уважаемым хабраобществом своим опытом анализа и модификации обфусцированной .NET сборки на примере COMET-библиотеки PokeIn.

Reverse Engineering

Несколько дней назад я заинтересовался COMET решениями для ASP.NET и нашел несколько интересных библиотек, среди которых некогда бывшая бесплатной PokeIn. Очевидно она пользовалась некоторой популярностью, так как авторы перевели ее из разряда open source в платную. На сайте бибилиотеки есть возможность скачать бесплатную версию с некоторыми ограничениями, среди которых, пожалуй, самое важное — это ограничение в 10 одновременных соединений. С ним мы и будем бороться.
Читать дальше →
Total votes 65: ↑58 and ↓7+51
Comments19

Инъекции MSIL кода в стороннюю сборку при помощи Mono.Cecil. Реализация принципов АОП в NET

Reading time12 min
Views19K

Введение


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

Многие .NET разработчики знают, что для доступа к объектам чужой сборки можно использовать Reflection. С помощью типов из System.Reflection мы можем получить доступ ко многим объектам .NET сборки, просмотреть их метаданные, и даже использовать те объекты, доступ к которым ограничен (например, private методы чужого класса). Но использование Reflection имеет свои ограничения и главная причина этому — данные, с котороми вы работаете через Reflection, все еще считаются кодом. Таким образом, вы, к примеру, можете получить CodeAccessSecurity exception, если сборка, к которой вы пытаетесь применить Reflection, запрещает это. По этой же причине Reflection работает довольно медленно. Но наиболее важным для данной статьи является то, что стандартный Reflection не позволяет изменять существующие сборки, только генерировать и сохранять новые.

Mono.Cecil


Качественно иной подход предлагает бесплатная библиотека с открытым исходным кодом Mono.Cecil. Главное отличие подхода Mono.Cecil от подхода Reflection в том, что данная библиотка работает с NET сборкой как с потоком байт. При загрузке сборки, Mono.Cecil разбирает PE заголовок, CLR заголовок, MSIL код классов и методов и т.д. работая напрямую с потоком байтов, представляющим сборку. Таким образом, с помощью данной библиотеки можно как угодно (в пределах предусмотренного) изменять имеющуюся сборку.
Читать дальше →
Total votes 49: ↑45 and ↓4+41
Comments14

Как обмануть NET.Reflector

Reading time3 min
Views15K
Сегодня я задумался о том, как обфускаторы скрывают код методов от утилит деобфускации вроде NET.Reflector. Как ни странно, но я не нашел в интернете никакой полезной информации по этому вопросу (возможно, плохо искал) и поэтому пришлось провести маленькое исследования самостоятельно. Под катом краткая заметка о результатах. В примере кода будет снова использоваться Mono.Cecil и генерация кода, так что не забудьте прочитать мою первую статью.

Читать дальше →
Total votes 63: ↑55 and ↓8+47
Comments28

Hg Init: Часть 1. Переобучение для пользователей Subversion

Reading time9 min
Views123K
Hg Init: Учебное пособие по Mercurial.


Mercurial — это современная распределенная система контроля версий с открытым кодом. Эта система — заманчивая замена для более ранних систем вроде Subversion. В этом простом учебном пособии в шести частях Джоэль Спольски (Joel Spolsky) рассказывает о ключевых принципах Mercurial.

Если вы использовали Subversion, то Mercurial будет непонятным. Эта часть рассказывает о главных отличиях при работе с Mercurial. Если вы никогда не использовали Subversion, то можете просто пропустить эту часть.

Часть 1. Переобучение для пользователей Subversion


В каком же я был смятении, когда программисты в моей компании решили сменить Subversion на Mercurial!

Для начала, я начал приводить всевозможные тупые причины, по которым нам не надо ничего менять. «Мы должны хранить репозиторий на центральном сервере, так безопаснее», — сказал я. Знаете что? Я был неправ. При работе с Mercurial у каждого разработчика на жестком диске хранится полная копия репозитория. Это, на самом деле, безопаснее. В любом случае, почти в каждой команде, использующей Mercurial, центральный репозиторий тоже существует. И вы можете делать резервное копирование этого репозитория со всей необходимой одержимостью. А еще можете устроить трехступенчатую защиту с Сайлонами, Штурмовиками и прелестными лабрадудлами или что там требует ваш IT-отдел.

Читать дальше →
Total votes 119: ↑116 and ↓3+113
Comments125

Регистрация своей фирмы собственными руками, туду-лист

Reading time12 min
Views51K
Дисклаймер: описываю только свой личный опыт и мнения автора могут не совпадать с мнением автора. Статья огромная, читать много.

Пишу эту статью, и представляю себе тебя, читателя Хабра, которой в обеденный перерыв залез почитать что-нибудь для развития. А этот читатель, т.е. ты (да, не отворачивай глаза от букв, именно ты) давно наслышан, что своё дело – это круто. И, может быть, как раз не хватало лёгкого пинка, чтобы выйти из зоны будничного комфорта и что-нибудь, да предпринять.

Эта статья адресована тем, кто уже «на грани». Она почти лишена философии и туманных ссылок, просто тупо туду-лист. Бери и делай. Намеренно избавляю тебя от объяснений, зачем молодому проекту нужна госрегистрация, такая ли уж это свобода – быть собственником и от куда взять деньги на госпошлину. Статья адресована московским стартаперам, гео-патчи от других городов приветствуются в комментариях.
Будем считать, что с формой собственности определились — это ООО и упрощенка 6%. Если кому нужно ИП – там проще, справишься и без этой статьи.

Для создания фирмы необходимо:

Минимальный реквизит для создания своей компании
Подробности под кОтом.
Total votes 372: ↑351 and ↓21+330
Comments248

Используем Unmanaged С++ код в .NET программах

Reading time7 min
Views7.1K
image

Сегодня я (как, наверное, и многие другие программисты), все больше использую в своих разработках платформу .NET и язык C#, но все еще остаются уголки где оправдано применение C++. Это создает необходимость их интеграции.

Зачем?

  • В C++ код целесообразно выносить алгоритмы, критичные к производительности
  • В C++ код целесообразно выносить части, связанные с защитой приложения
  • Много старого кода написано на C++, и переписывать его весь — не лучшее решение
Это лишь основные причины, список далеко не полон. Но раз есть необходимость, значит есть решения.

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

Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments7

Information

Rating
Does not participate
Location
Сыктывкар, Коми, Россия
Date of birth
Registered
Activity

Specialization

Software Developer, Backend Developer
Middle
C#
.NET
Docker
CI/CD