Обновить
39
0
xqz_me@xqz_me

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

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

Типографика и WPF — Рисуем красивый текст

Время на прочтение7 мин
Охват и читатели5.3K

Важно: этот подход устарел, теперь можно просто использовать DirectWrite и получать все плюшки OpenType. Пример конкретной реализации можно найти вот тут.



Введение


Как известно, в WPF есть достаточно мощная встроенная система типографики. К сожалению, эта система ориентирована в основном на работу с документами и, тем самым, все типографические изыски вроде поддержки OpenType невозможно использовать для какого-нибудь простого контрола вроде Label. Но, не смотря ни на что, есть все-таки возможность получить качественную отрисовку текста – просто нужно немного помучаться.
Читать дальше

О бедном Dispose замолвите слово

Время на прочтение3 мин
Охват и читатели3.6K
Немного про освобождение ресурсов в .Net.

предупреждение: текст ниже — просто пересказ своими словами давно известной информации, которая есть в сети на русском и английском языках.

Что делать, когда хочется освободить unmanaged ресурсы в .Net? Можно поместить код освобождения ресурсов в секцию finally и это будет самый простой способ. Не очень изящный, но зато гарантированно сработает и без всяких подводных камней:
DBConnection conn = new DBConnection();
try
{
 conn.Open();
 //...
}
finally
{
 conn.Close();
}


* This source code was highlighted with Source Code Highlighter.

Усложним задачу. Мы написали библиотечный класс, который работает с unmanaged ресурсами. По закону подлости (или больших чисел — как вам удобнее), пользоваться им, кроме гуру, будут еще и говнокодеры. Которые спокойно забудут вызвать метод для освобождения unmanaged ресурсов. А потом будут плеваться на криво написанную ВАМИ библиотеку.

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

Читать дальше →

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

Время на прочтение6 мин
Охват и читатели318K
image
В общих чертах теорию и процесс атаки хорошо описал юзер n3m0 в своих статьях «Атаки на беспроводные сети», поэтому я не буду заострять внимание на многих теоретических моментах.
Я же хочу описать самые простейшие способы обхода защиты, но более подробно.
Читать дальше →

Атаки на беспроводные сети. Часть 3. WPA

Время на прочтение2 мин
Охват и читатели37K
Эта статья, логическое продолжение этой и этой статей.
В третьей части цикла статей об атаках на беспроводные сети будут рассмотрены атаки на протокол, до последнего времени считавшийся достаточно безопасным — WPA.

Читать дальше

Атаки на беспроводные сети. Часть 2

Время на прочтение3 мин
Охват и читатели21K
Это продолжение предыдущей статьи, об атаках на беспроводные точки доступа с WEP-защитой.

Во второй части цикла статей о безопасности беспроводных сетей мы рассмотрим некоторые нетрадиционные атаки на WEP.

Читать дальше

Атаки на беспроводные сети. Часть 1

Время на прочтение5 мин
Охват и читатели72K
В прошлой статье о беспроводных сетях мы рассмотрели первый этап — сбор информации, или wardriving. Сейчас же, продемонстрируем несколько способов получения несанкционированного доступа к беспроводным сетям, а также рекомендации по защите от них.

Читать дальше

Рецепт: Как сделать зашифрованную USB флешку?

Время на прочтение4 мин
Охват и читатели155K
У каждого человека есть секреты. Личный дневник, пароль от банковского счета в Швейцарии, фотки укреплений вероятного противника, чертежи вечного двигателя, список любовниц, да мало ли что еще. Данные удобно хранить на USB флешке. Она маленькая, дешевая, емкая. Ее легко носить в кармане, просто спрятать или передать другому человеку. Но так же просто флешку потерять.

Задача: мне нужен USB флеш диск вся информация на котором зашифрованна. Когда я вставляю флешку в компьютер – она должна спрашивать пароль и без правильного пароля не расшифровываться. Флешка должна работать автономно, без установки на компьютер какого либо софта.
image
Берем любой доступный нам флеш диск и приступаем.
Читать дальше →

Компилятор выражений

Время на прочтение12 мин
Охват и читатели20K
Недавно у меня возникла необходимость в вычислении выражений. Выражение представлено в виде строки и может содержать имена переменных, целые числа, строковые константы и любые операции над ними.

Пример:
   выражение: «x + 10 == 5 * y / (1 + z*2)»;
   требуется уметь вычислять это выражение для любых значений x, y и z.

И конечно при этом надо учитывать приоритеты операторов.

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

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

Подробнее...

Тривиальные задачи по вёрстке

Время на прочтение4 мин
Охват и читатели60K
image

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

Читать дальше →

Частые ошибки программирования на Bash

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели102K
Качество скриптов, используемых для автоматизации и оптимизации работы системы, является залогом ее стабильности и долголетия, а также сохраняет время и нервы администратора этой системы. Несмотря на кажущуюся примитивность bash как языка программирования, он полон подводных камней и хитрых течений, способных значительно подпортить настроение как разработчику, так и администратору.

Большинство имеющихся руководств посвящено тому, как надо писать. Я же расскажу о том, как писать НЕ надо :-)

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

Поехали!

Создание заставок (splash screen) в .net 3.5 SP1

Время на прочтение5 мин
Охват и читатели24K
Если вы сталкивались с программированием в .net, то наверняка замечали, что при запуске программы, написанной с использованием WPF, долгое время ничего не происходит. Так продолжается секунд 10, а потом уже открывается главное окно приложения. Даже запуск пустого шаблона WPF приложения занимает около двух секунд.

Эта пауза вносит неопределенность в восприятие программы пользователем: запустилась программа или нет?

Решить эту проблему можно показав заставку сразу после запуска. Это даст физический отклик сразу после запуска приложения и создаст иллюзию более быстрой загрузки.

О том, как это сделать написано под катом.
Читать дальше →

Как зарегистрировать домен бесплатно

Время на прочтение2 мин
Охват и читатели152K
image
На удивление оказывается, что многие незнают о существовании зон, свободных для регистрации. Более того, многие платят за регистрацию доменов в этой зоне деньги — стандартная цена у известных регистраторов от 5 до 15 у.е. за то, что можно сделать самому бесплатно.

Вот какие домены можно зарегистрировать абсолютно бесплатно:
Украина
.net.ua, .od.ua, .org.ua, и множество вида регион.ua
Россия
.com.ru, .net.ru, org.ru, pp.ru, .msk.ru, spb.ru и множество остальных типа регион.ru

Ниже инструкция типа «домен бесплатно для чайников»

Читать дальше →

SSH для частого использования

Время на прочтение2 мин
Охват и читатели70K
Наверное, многие из читающих «Linux для всех» пользуются SSH. Я, например, администрирую большое количество UNIX-систем, и, чтобы быстро получить доступ к нужной машине, приходится использовать возможности протокола на уровне, отличном от примитивного.
Читать дальше →

jQuery для начинающих

Время на прочтение9 мин
Охват и читатели526K
jQuery Logo

jQuery — это замечательный JavaScript Framework, который подкупает своей простотой в понимании и удобством в использовании. Но изучение надо с чего-то начинать, и лично моё мнение — лучше всего начинать с наглядных примеров, и они далее…

Читать дальше →

«примеры эффективного использования GNU утилит в Linux»

Время на прочтение3 мин
Охват и читатели25K
Привет всему сообществу Хабра.
Это мой первый пост и, надеюсь, не последний. Поэтому неизбежны всяческие недочеты, баги и некоторая водянистость текста, так что прошу строго не судить :)
К написанию этого поста меня сподвиг топик «Консоль для новичка.» habrahabr.ru/blog/linux/46610.html, где ISVir поднял острую, на мой взгляд, тему — как доступным языком рассказать новичкам о консоли, не отпугнув их мнимой сверх-сложностью.

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

Итак, что мы имеем:

find — поиск файлов. позволяет искать файлы, каталоги, симлинки и другие файловые объекты. find Позволяет задать множество опций поиска таких как:
  • поиск по маске (в имени )
  • контроль глубины вложенности поиска
  • поиск определенных типов файлов(каталог, симлинки, сокеты)
  • поиск по времени создания/модификации файла
  • можно задать размер (от и до в диапазоне) файла
  • выполнение действий с каждым найденным файлом
в мане к find можно прочесть об остальных опциях и параметрах.

итак, с места в карьер — поиск всех файлов в каталоге /etc/, измененных за последние сутки:
Читать дальше →

css fix для различных браузеров

Время на прочтение2 мин
Охват и читатели12K
Представьте себе абстрактный разговор абстрактного заказчика с абстрактным верстальщиком.

— У тебя бага в менюшке, все наверх съехало, — говорит заказчик.
— Посмотрел во всех браузерах, нету! Ты в каком смотришь? — говорит верстальщик.
— В фаерфоксе.
— Нормально все там, — говорит верстальщик, просмотрев сайт во всех версиях фаерфокса.
— Осталось бага. Если это важно, то я с мака.

Читать дальше →

Резиновая верстка — линейная зависимость горизонтального положения DIV-ов

Время на прочтение2 мин
Охват и читатели13K
Задача: менять горизонтальное положение блочных элементов по линейной зависимости при изменении размера окна браузера.
Решение: термин «пропорциональность» подразумевает линейную зависимость двух параметров. Вспоминаем школьный курс геометрии: линейная зависимость — это прямая, её уравнение выглядит следующим образом: Y=aX+b. Для построения уравнения прямой необходимо и достаточно знать координаты двух точек, принадлежащих этой прямой. Если принять за Y горизонтальное положение блока, а за X — ширину окна, то задача сводится к определению параметров a и b.
Читать дальше →

Анимированое сравнение алгоритмов сортировки

Время на прочтение1 мин
Охват и читатели10K
На днях наткнулся на интересную страничку, позволяющую наглядно оценить различные алгоритмы сортировки на разных наборах данных.

(картинка Кликабельна)
Небольшое описание под катом...

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность