Pull to refresh
0
0
Ярослав Рыбалка @YarikRock

Android Developer

Send message

Подслушиваем в AD

Reading time3 min
Views47K

Введение
Я только недавно столкнулся с виндовыми доменами (Active Directory) и познаю много нового и удивительного. Так уж получилось, что значительное количество пользователей в домене организации имеют права локальных админов (технические специалисты, программисты и другие) (ведь не редко так бывает?). Но последствия от этого колоссальны. В данной статье мы рассмотрим как можно подслушивать звуки (разговоры, переговоры) на удаленных машинах.
Читать дальше →
Total votes 99: ↑80 and ↓19+61
Comments82

Пишем свою ОС: Выпуск 1

Reading time6 min
Views266K
Данный цикл статей посвящён низкоуровневому программированию, то есть архитектуре компьютера, устройству операционных систем, программированию на языке ассемблера и смежным областям. Пока что написанием занимаются два хабраюзера — iley и pehat. Для многих старшеклассников, студентов, да и профессиональных программистов эти темы оказываются весьма сложными при обучении. Существует много литературы и курсов, посвящённых низкоуровневому программированию, но по ним сложно составить полную и всеохватывающую картину. Сложно, прочитав одну-две книги по ассемблеру и операционным системам, хотя бы в общих чертах представить, как же на самом деле работает эта сложная система из железа, кремния и множества программ — компьютер.

Каждый решает проблему обучения по-своему. Кто-то читает много литературы, кто-то старается поскорее перейти к практике и разбираться по ходу дела, кто-то пытается объяснять друзьям всё, что сам изучает. А мы решили совместить эти подходы. Итак, в этом курсе статей мы будем шаг за шагом демонстрировать, как пишется простая операционная система. Статьи будут носить обзорный характер, то есть в них не будет исчерпывающих теоретических сведений, однако мы будем всегда стараться предоставить ссылки на хорошие теоретические материалы и ответить на все возникающие вопросы. Чёткого плана у нас нет, так что многие важные решения будут приниматься по ходу дела, с учётом ваших отзывов.
Читать дальше →
Total votes 293: ↑282 and ↓11+271
Comments223

Начинаем работать с Drupal: полное практическое руководство (часть 1)

Reading time17 min
Views200K
Здравствуйте!

Выношу на суд хабраобщества перевод замечательной статьи Getting Started with Drupal: A Comprehensive Hands-On Guide. Данный материал является незаменимым руководством для начинающих друпальщиков, поскольку в нем рассматриваются не только установка и базовые принципы, но и два из «трех китов» Друпал-сайтостроения — Views и CCK. Самое приятное, что вся статья посвящена практическому созданию полезного сайта (доски объявлений). Право, во времена Друпала 4.7, когда я только начинал с ним знакомиться, о таких подробных и внятных руководствах можно было только мечтать.
Читать дальше →
Total votes 102: ↑92 and ↓10+82
Comments26

Начинаем работать с Drupal: полное практическое руководство (часть 2)

Reading time6 min
Views32K
Продолжение первой части.

Создадим страницу вакансий с помощью модуля Views

Хотя вы и можете самостоятельно писать запросы к базе данных для чтения содержимого, дело это долгое и сложное, даже с учетом мощного API Друпала.
Для построения страницы со списком вакансий мы задействуем Views — модуль, позволяющий извлекать содержимое из базы данных вообще без написания кода.
Попросту говоря, Views — это пользовательский интерфейс построения MySQL-запросов. Views — это невероятно мощный модуль, но порой его бывает трудно освоить начинающим пользователям. Лучший способ разобраться с Views — немного с ним поиграть, чем мы сейчас и займемся.
Читать дальше →
Total votes 89: ↑79 and ↓10+69
Comments24

Внутри MP3. А как оно всё устроено?

Reading time5 min
Views104K


Однажды мне понадобилось решить простенькую (как мне тогда казалось) задачу – в PHP-скрипте узнать длительность mp3-файла. Я слышал о ID3 тегах и сразу подумал, что информация о длительности хранится либо в тегах, либо в заголовках mp3-файла. Поверхностные поиски в интернете показали что за пару-тройку минут решить эту задачу не получится. Поскольку от природы я довольно любопытен а время не поджимало — решил не использовать сторонние инструменты а разобраться в одном из самых популярных форматов самостоятельно.

Если Вам интересно, что там внутри – добро пожаловать под кат (трафик).
Читать дальше →
Total votes 230: ↑219 and ↓11+208
Comments55

Декодирование JPEG для чайников

Reading time9 min
Views271K

[FF D8]


Вам когда-нибудь хотелось узнать как устроен jpg-файл? Сейчас разберемся! Прогревайте ваш любимый компилятор и hex-редактор, будем декодировать это:


Jpeg file in hex editor


Специально взял рисунок поменьше. Это знакомый, но сильно пережатый favicon Гугла: Google favicon


Последующее описание упрощено, и приведенная информация не полная, но зато потом будет легко понять спецификацию.


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


[FF D8] — маркер начала. Он всегда находится в начале всех jpg-файлов.


Следом идут байты [FF FE]. Это маркер, означающий начало секции с комментарием. Следующие 2 байта [00 04] — длина секции (включая эти 2 байта). Значит в следующих двух [3A 29] — сам комментарий. Это коды символов ":" и ")", т.е. обычного смайлика. Вы можете увидеть его в первой строке правой части hex-редактора.

Читать дальше →
Total votes 412: ↑407 and ↓5+402
Comments140

speedtest.net via C++

Reading time10 min
Views6.6K
Весь нижеприведенный код — выдержка из одного моего недавнего проекта, в рамках которого было необходимо определять скорость download и upload. Изобретать велосипед было неохота, посему возникло желание воспользоваться сервисом www.speedtest.net, как наиболее уважаемым и работоспособным из сервисов такого типа. Впрочем, как показала практика, он оказался вполне недружелюбным и некий велосипед таки пришлось изобрести.

Итак, добро пожаловать под кат.
Total votes 32: ↑26 and ↓6+20
Comments17

Механизмы безопасности в Linux

Reading time5 min
Views30K
В данной статье я проведу краткий экскурс в наиболее распространенные средства, связанные с безопасностью Linux. Информация предоставлена в сжатом виде, и если какое-то средство вас заинтересует, можно пройтись по ссылкам и прочитать более подробно. По заявкам пользователей некоторые механизмы можно будет рассмотреть более подробно в последующих статьях.

Будут рассмотрены следующие средства: POSIX ACL, sudo, chroot, PAM, SELinux, AppArmor, PolicyKit. Виртуализация, хотя и относится в какой-то мере к средствам безопасности, рассматриваться не будет, тем более что это отдельная обширная тема.
Читать дальше →
Total votes 107: ↑90 and ↓17+73
Comments51

Сложный пароль в запоминании не нуждается

Reading time5 min
Views49K
Все пароли для разных ресурсов должны быть длинными, сложными, личными и не похожими.

image

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

Я запомнить точно не смогу. Я даже четырёхзначные PIN-коды пластиковых карт забываю на следующий день. Можно пароли записать и в самый нужный момент потерять всё, что копилось многие годы. А если у Вас паранойя? Вам же придётся Ваш шифроблокнот положить в банковскую ячейку. Но ведь Вы забудете очередную парольку от очередной бронированной дверки почти сразу.

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

Нам понадобятся всего три вещи.
1. «Волшебная» табличка (о ней дальше) с помощью которой мы и будем создавать пароли,
2. Индивидуальная ключевая фраза,
3. Название ресурса для которого мы будем создавать пароль.

И больше ничего. Заинтригованы?

Читать дальше →
Total votes 149: ↑88 and ↓61+27
Comments101

QML — новый подход к построению GUI

Reading time3 min
Views11K
Традиционно все десктопные приложения пишутся на императивных языках программирования, этот подход прост и понятен, куда проще описать последовательность действий для решения той или иной задачи, нежели поставить задачу в понятной для машины форме, но когда речь заходит о проектировании внешнего вида и поведения, возникают сложности.
Веб дизайнеры же привыкли описывать, как должно выглядеть веб приложение, то есть ставить задачу, а не по пунктам описывать её решение, такой подход называется декларативным, он удобен, но к сожалению в традиционных приложениях до сих пор господствует именно императивный подход. Есть конечно дизайнеры форм, но они лишь позволяют в общих чертах обрисовать внешний вид приложения, но совершенно не способны описать его поведение. Для решения это проблемы в Qt Software был предложен новый проект Declarative User Interface и в рамках него новый язык разметки:

Встречаем QML


Это новый язык разметки, позволяющий описывать не только внешний вид, но и поведение ваших приложений. Он очень прост и обладает json образным синтаксисом, немного сближающим его html5, что думаю очень придется по душе веб-дизайнерам, да и программистам тоже. А в перспективе это наконец позволит полностью разделить внутреннюю логику работы приложения и его внешнее поведение, в результате чего будет наконец решена извечная проблема, когда программист занимается ещё и внешним видом приложения, потому, как дизайнерам слишком сложно было вникнуть в программирование.
Хотите прикоснуться?
Total votes 45: ↑37 and ↓8+29
Comments64

Библиотека Qwt: как построить график функции на плоскости?

Reading time8 min
Views38K
Скриншот простейшей программы, демонстрирующей использование виджетов Qwt
Уже пять лет я не пишу приложения с GUI, потому предложение зав. кафедрой подготовить для его лекции программу, строящую некие графики, поначалу меня несколько расстроило.

Как настоящий программист я решил найти самый легкий (и полезный для саморазвития) путь.
А именно, это задание оказалось хорошим поводом для того, чтобы познакомиться с Qt и библиотекой Qwt. Заодно я узнал, что приложения с GUI, оказываются, могут быть кроссплатформенными, а их код не менее элегантным, чем у приложений с «интерфейсом в стиле Unix™».

Итак, Qwt — библиотека виджетов для программирования приложений, имеющих техническую направленность. Она содержит набор виджетов, представляющих собой всевозможные слайдеры и дисковые «номеронабиратели», виджеты для построение гистограмм. Но здесь я расскажу, как Qwt применить для построения самых обычных двумерных графиков функций вида y = f(x).

Дальше в данной заметке
  • приводится ссылка на исходный код моего простейшего примера (+ исполняемые файлы) и инструкция по его компиляции;
  • рассказывается, как же в этом примере всё устроено;
  • для новичков описывается компиляция и установка Qwt.

Читать дальше →
Total votes 51: ↑41 and ↓10+31
Comments41

Open API

Reading time1 min
Views65K
Команда «ВКонтакте» так и не ушла на выходные, чтобы вслед за Merchant API успеть запустить еще один важный сервис для разработчиков — Open API. Благодаря VK Open API, любые внешние сайты теперь имеют возможность производить у себя авторизацию наших пользователей.



Читать дальше →
Total votes 464: ↑293.5 and ↓170.5+123
Comments312

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity