• Векторные иконки в WPF - как получить?

    @tex0
    Если вам нужно отобразить векторную иконку в своём приложении:

    Берёте векторное изображение (svg), открываете его IE, нажимаете печать, печатаете через Microsoft XPS Document Writer. Далее сохраняете этот документ (IE предложит сохранение). После этого меняете у полученного XPS файла расширение на .zip. Распаковываете этот zip-архив, идёте там в папку "Documents\1\Pages\" и находите файл с расширением .fpage (обычно это файл "1.fpage")
    Открываете файл любым текстовым редактором (файл не отформатирован. Для удобства я открываю эти файлы через плагин view у TotalCommander (клавиша F3 по умолчанию)) и увидите там Path-ы. Вот они вам и нужны. Какие именно - на ощупь определяйте (обычно нужные стоят вначале файла)

    Чтобы проверить (XAML):
    <Border>
        <ContentControl>
            <ContentControl.ContentTemplate>
                <Viewbox >
                    <Grid>
                        <Path Data="%строка описания%" Fill="%цвет%"/>
                        <Path Data="%строка описания%" Fill="%цвет%"/>
                        ...
                        <Path Data="%строка описания%" Fill="%цвет%"/>
                    </Grid>
                </Viewbox>
            </ContentControl.ContentTemplate>
        </ContentControl>
    </Border>
    Ответ написан
    Комментировать
  • Как вывести наличные с Payoneer с наименьшими потерями?

    opium
    @opium
    Просто люблю качественно работать
    Идешь в банкома т который выдает доллары , снимаешь доллары и потом идешь меняешь в обменнике.
    Ответ написан
    2 комментария
  • Как при помощи триггера в WPF изменить картинку в дочернем элементе ListBox?

    artem_b89
    @artem_b89
    Сетевой бездельник
    Попробуйте так
    <Image Width="22"
                                   Height="22"
                                   Margin="5"
                                    >
                                <Image.Style>
                                    <Style>
                                        <Style.Triggers>
                                            <DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ListBoxItem}}" Value="true">
                                                <Setter Property="Image.Source" Value="../Images/play2.png"/>
                                            </DataTrigger>
                                            <DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ListBoxItem}}" Value="false">
                                                <Setter Property="Image.Source" Value="../Images/play.png"/>
                                            </DataTrigger>
                                        </Style.Triggers>
                                    </Style>                                
                                </Image.Style>
                            </Image>
    Ответ написан
    Комментировать
  • Как реализовать плавную прокрутку в ListView (WPF)?

    Nipheris
    @Nipheris Куратор тега C#
    stackoverflow.com/questions/1033841/is-it-possible...

    Годится для небольшого количества элементов. Пропишите у ListView: ScrollViewer.CanContentScroll="False"
    Ответ написан
    Комментировать
  • Какой компонент WPF лучше всего использовать для реализации анкеты (чтобы была доступна привязка данных)?

    @Sumor
    В WPF любому элементу можно указать DataContext, который передаётся потомкам.
    Поэтому вы можете назначить объект вашей анкеты свойству DataContext любому контейнеру: Canvas, Grid, StackPanel и любому другому. И во всех потомках вы можете использовать простую привязку к свойствам этого элемента. Примерно так:
    <StackPanel DataContext="{x:Static local:MyClass.MyFirstAnketa}">
      <TextBox Text="{Binding Name}" />
      <TextBox Text="{Binding DateBirthday}" />
    </StackPanel>
    Ответ написан
    1 комментарий
  • Как настроить переброс интернет-трафика из локальной сети на прокси-сервер во внешней сети на Windows Server 2003?

    oia
    @oia
    а зачем руками прописывать GPO тебе в помощь
    Ответ написан
    Комментировать
  • Как настроить переброс интернет-трафика из локальной сети на прокси-сервер во внешней сети на Windows Server 2003?

    edinorog
    @edinorog
    Троллей не кормить!
    Прозрачный прокси. Дальше гугл в помощь )
    Ответ написан
    Комментировать
  • Что нужно знать, чтобы стать хакером?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Ей, хе хей!

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

    Хакер - это не тот, кто взламывает, ломает. Ближе всего, конечно, определение, как хулиган. Но тоже не совсем верное. Это скорее безбашенный человек, который не знает слова "невозможно" и пытается докопаться до порой недокапываемого. Но к тому же, он весьма просвещён в области Computer Science (понимает, когда есть смысл, а когда нет смысла вскрывать RSA и подобное). К тому же он далеко не профан в схемотехнике: паяльник держит ровно, мозг может выдать схемку, а руки всё ровно сотворить.

    В общем хакер - это тот парень, кто без ума от компьютерной техники. Конечно, в современном мире это слово искажено, не без успеха небезызвестного Кевина Митника (можете почитать "Искусство обмана" с комментариями Митника).

    Теперь о том, что собственно хакеры делают. Они исследуют. Исследуют новое и, возможно, не очень важное. Но весьма и весьма интересное. Если Вам не интересно, почему виртуалиция кода очень крута и зачем в Windows до сих пор литеральное монтирование дисков, то возможно стезя хакера не Ваша. Научиться этому всему можно, но вряд ли Вам это будет интересно.

    Многие мои знакомые узнавали об устройстве компьютера едва ли не сами, методом проб и ошибок. Запомните это: на границе исследованного этот метод, пожалуй, единственный. Больше ничего нет просто потому что никто ничего не продумал.

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

    Кевин Митник - хакер информационной безопасности
    Джон Кармак - хакер трёхмерной графики
    Джулиан Ассанж - хакер информационной безопасности
    Линус Торвальдс - хакер just for fun'а

    Есть ещё много реально крутых хакеров. Если Ваш путь - информационная безопасность, то вот небольшой roadway: в первую очередь следует изучить теорию чисел, разобраться в криптографии, потом разобраться в сетевых технологиях (здесь очень много всего: от iptables до сетевых интерфейсов как в софте, так и в железе), наконец потом немного драйверов, userland'а и kerneland'а: как работает ОС, где слабые места. В перерывах кормим себя web'ом: apache, ngix и прочая сетевая утварь; также изучаем багрепорты и те дыры, которые уже были найдены когда-то, пытаемся найти и то, как они были найдены, в каких обстоятельствах.

    Проникаемся всей этой атмосферой. Порой вытворяем безумное. Нет, не пытаясь получить премию Дарвина, скорее пытаемся решить задачу тысячелетия и/или взломать пентагон.
    Ответ написан
    3 комментария
  • Вы в браузере набрали адрес сайта, нажали Enter. Расскажите максимально подробно о технических процессах происходящих далее?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Действительно, уважаемый. Это слишком. Вряд ли я затрону все тонкости, но попробую наметить примерный путь:

    0) Пользователь вбивает в адресную строку браузера адрес сайта (нажимая клавиши на клавиатуре, которые замыкают определённую дорожку в матрице, по которой происходит определение нажатой клавиши, что через шину USB в какой-то момент передастся OS, где это поймает HID-драйвер и вызовет определённое прерывание, что OS передаст как событие/или_ещё_как в программу, которая вызовет соотвествующую функцию из API менеджера окон, которая изменит содержимое строки и в результате когда-то будет перерисован UI-элемент, а если нажат был Enter, то начнётся следующее).
    1) Браузер вытащит из input'а строку с запросом и посмотрит, похоже ли это на адрес. Если да, то добавит недостающие уточнения (например, http или file протокол, порт и подобные довольно стандартные вещи). Если нет - то скорее всего создаст запрос в поисковую систему, установленную по умолчанию (я более не буду опускаться до таких бессмысленных деталей, как вызовы API-функций, иначе я буду набирать это сообщение ОЧЕНЬ долго). В любом случае на выходе мы по сути получим URL, который надо загрузить. Протокол file:// мы рассматривать не будем, ftp далеко не везде есть, https:// на не хватит вечности, так что остановимся на http, который по сути есть tcp/ip по умолчанию на 80 порту с определённым форматом общения.
    2) Окей, url есть. Теперь нам нужен адрес, к которому обращаться. Так как http это tcp/ip - нам нужен ip адрес. Здесь нам помогают dns-сервера. Обычно, нормальный провайдер устанавливает у себя кэш-сервера dns, которые не обращаются по стопицот раз за vk.com к ответственному серверу com-зоны. Давайте не будем отвлекаться на то, как происходит там общение, если что - вот (вики тем хороша, что часто содержит внизу релевантные ссылки). Скажу лишь то, что на выходе мы получаем ip адрес(а).
    3) Имея адрес мы можем запросить страницу. Собственно, всё что после первого слэша - это как-бы параметры для http-сервера: какую именно страницу запрашивать, он всё же не телепат. Конечно, можно было бы немного схитрить и отправить читать про tcp/ip, но ведь существует и shared-hosting. Ограничемся лишь его упоминанием. Собственно, по полученному адресу отправляется GET запрос, который и обрабатывает сервер, находящийся по полученному IP-адресу.
    4) Сервер же, получив адрес, начинает распарсивать строку, медленно вытягивая нужные данные из баз-данных и настроек, выполняются сотни скриптов, иногда делается ещё не одна сотня различных запросов на другие сервера (здесь и разного вида метрики и разного вида HADOOP и т.д.). Пройдя сквозь скрипты и темплейторы в самом конце мы получаем html-страницу, готовую к употреблению. Её-то сервер и отправит в ответе (после заголовков, конечно).
    5) Вот и началось самое интересное. Получив html страницу браузер начинает жутко надругаться над CPU, HDD и GPU, попутно сжирая тонны RAM и мусоря в swap. Виной всему нереальные для полного соблюдения стандарты от небезызвестной w3c.org. Для облегчения многие делают костыли, вроде webkit, а некоторые и вовсе забивают на него и пилят свой стандарт с преферансом и картёжницами (впрочем, в последнее время становиться лучше). Здесь снова начинаются сотни вызовов API ОС, windows manager'а и прочих библиотек, вроде boost, qt или libpng. В ходе работы в RAM строится макет, по которому потом строится нечто вроде PDF (тоже сильно векторный), что, потом, обрабатываясь быстрыми шейдерами на GPU, выдаётся на экран. Опять же, многое пропущено, но вряд ли кому-либо, кроме парня в свитере с оленями, действительно интересно, как работает GDI, DirectX или OpenGL.
    6) Ах да, мы же забыли про тысячи js-скриптов, миллионы картинок и анимации с котиками, а также о таких дополнительных плюшках, как flash-player или java-weblets. В кратце, что js, то и flash и java - это виртуалка, со специальной архитектурой. Они, виртуалки, конечно разные (хотя flash и js довольно похожи, ещё бы - ECMAScript один и тот же). JS - самый интегрированный внутрь браузера, он же и самый медленный чисто визуально (ибо последние два имеют доступ к быстрому GPU), хотя самый быстрый в попугаях. Второй постепенно вымирает и представляет из себя, так же как и третий специальную shared-библиотеку, о которой браузер как-нибудь узнал и которой скармливает специальное содержимое помечанное специальным тегом html. Третий уже почти умер и встречается лишь изредка или в каком-нибудь энтерпрайзед со страшным legacy-базой. Ну здесь из сылок разве только гугл. Ибо сколько всего - даже не сообразишь. Да и вообще, эта тема ещё скучнее GDI, DirectX и OpenGL и к свитеру с оленями требуются ещё очки с толстенными стёклами, дающие стопицот к терпению и задроству над матаном. Если в кратце, то в случае JS, всё что было загружено в память и не думает выгружаться и формирует этакое дерево - DOM, над которым с помощью специального API и происходят модификации. При этом, перед тем как исполниться, весь JS-код компилируется, в нативный для VM байт-код. То же самое в общем-то и со вторым и третьим, разве только они не имеют доступа к DOM и организовать его - дело тех ещё костылей. Ах да, забыл ещё про Silverlight (или как оно там пишется), который сдох, не успев родиться. Так же как и Java, жив в серьёзном энтерпрайзе, не поскупившийся не "дешёвую" поддержку MS.
    7) Ну... А дальше пользователь нажимает на нужную гиперссылку и всё по новой.

    За кадром остались такие костыли, как ajax, websockets и прочая асинхронная ересь. С ней всё в миллионы раз сложнее. И к очкам со свитером потребуется ещё и... а чёрт их знает, что они там ещё носят. Ну да ладно, я искренне завидую тем парням (и девушкам), которые разбираются во всей этой машине. Целиком. Ибо это лишь верхушка айсберга. Разбавленная не лучшей памятью и ужасным гуглом.

    P.S. Не бейте сильно за грамматические и синтаксические ошибки. Спеллчекер приказал долго жить, да и 5 утра как никак.

    UPDATE
    На хабр выложили неплохой перевод дающий некоторое представление, как браузер ругается над памятью и процессором. Хотя и весьма поверхностное,
    Ответ написан
    26 комментариев