Category: компьютеры

Category was added automatically. Read all entries about "компьютеры".

nyaload

perspective correction UX: GIMP vs Photoshop.

GIMP (самый последний): (perspective tool) надо медитативно таскать четыре точки несколько минут, которые неочевидным образом влияют на стороны прямоугольника, который надо выпрямить. И дико тормозит при этом. Перед этим надо добавить хелперы над рисунком, которые помогают понять, где вертикаль, а где горизонталь (drag-n-drop с линеек над/сбоку). Выправив одну сторону - мы портим другую. При этом точки часто надо вытащить за пределы экрана, поэтому по ходу дела надо делать zoom out. Натурально, правда, я в текстовом и видео-туториале видел, что люди реально так делают. Сильно удивился, что разработчики не видят, как люди зря тратят своё время.

Photoshop (4-летней давности, CS6) : (perspective crop tool, там же где и обычный crop) указываем четыре точки исходного прямоугольника на фото, нажимаем "применить".

Такого в GIMP я не вижу, хотя именно это нужно для выправления фото документов или зданий. Даже если такая функциональность есть, то увы она недоступна для простых людей. Итого, на фотошоп я потратил 5 минут на просмотр видео-туториала (из которого мне нужно было 5 секунд, "где кнопка", а остальная часть видео - еще два способа коррекции 1, 2), на ГИМП - потратил полчаса, и не нашёл того что надо. Снова закрываю GIMP с планом "посмотреть через два года".

update: max630 нашёл нужную кнопку "corrective (backward)" для GIMP, но почему-то она у меня работает только на маленьких рисунках, а на больших - через минуту работы стирает слой, делая его прозрачным. update2: помог такой трюк, чтобы избежать стирания слоя - сначала выделить трансформируемую область прямоугольным выделением. Оно тогда и времени тратит меньше, не минуту, а полминуты.
nyaload

binary search

В книге "жемчужины программирования" сообщается, что невозможно написать binary search с первого раза.

На самом деле его невозможно написать с первого раза, если не осознаешь что такое инвариант цикла. Если осознаёшь - то скорее всего запросто напишешь (я вот уже в третий раз за год написал).

Если не осознаёшь инвариант цикла, то с большой вероятностью будет одна из ошибок:

* mid = (lo+hi)/2 или hi/2+lo/2 ? (и нет, дело не в overflow, эти формулы просто разные (1+3)/2 != 1/2 + 3/2 ).Collapse )

Как писать двоичный поиск чтобы он не бажил:
* Выбрать инвариант "если искомый элемент существует, то он в [lo, hi)", изначально выбрать lo,hi = 0, N.
* mid = lo+(hi-lo)/2 (при этом для кода верно утверждение "промежуток длиннее 1 всегда укоротится").
* Если ищем первый среди равных - то сравнение выглядит как key<=array[mid-1], если последний - key<array[mid]
* в зависимости от сравнения присваиваем mid в lo или hi (в любом случае, не mid-1).



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

Phillips head

Оказывается, проблему с неудобным USB-разъёмом решили ещё в 1930-x годах, когда придумали крестовую отвертку и крестовой шлиц (Phillips drive, Phillips head). Скошенные края отвертки - сделаны специально для того, чтобы легче было вставлять отвертку в шлиц.

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

Компьютерные разъёмы (у Apple) пока что доросли до обычной прямошлицевой отвертки (и ещё audio jack радует). И это при том, что нет задачи зацепления при вращении, и на придуманное в 1930х годах - уже истек давно патент.
nyaload

смотреть в hd 4k 60hz в хорошем качестве

Можно ли подключить монитор с большим разрешением к видеокарте у которой один HDMI порт и один display port? Конкретно, ASUS PB287Q (возможно возьму этот монитор) к Radeon HD7750 PowerColor Green (моя видеокарта)?

Если нет, то какие есть middle end (в игры не играю) видеокарты с пассивным охлаждением (или эквивалентно тихие), которые потянут монитор с большим разрешением? Или наоборот, какой монитор с большим разрешением можно воткнуть в мою видеокарту с одним dvi/hdmi/DP портом?

update, 30 Dec 2014, 16h: монитор приехал. Подключил через Display Port (не знаю, 1.2 или нет), 30hz. Поскроллил, помышкал, вроде 30hz для меня хоть и недостаток, но небольшой. Возможно 30hz это софтварная проблема, а не железная, буду ещё разбираться. Буквы в программах очень мелкие (у меня Win7).
update, 1 Jan 2015 2h: спасибо realsupport, оказалось для включения 60hz режима на максимальном разрешении достаточно в меню монитора переключить версию Display Port с 1.1 на 1.2.
nyaload

Атака на интерактивную сессию

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

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

upd: только подумал, как гугл уже предложил "ssh keystroke timing attack".
nyaload

Оставляйте ассерты в коде :)

Сегодня столкнулся с волшебством: программа с NDEBUG=1 (т.е. с отключённой проверкой ассертов) работает медленнее, процентов на 10

Начинаю комментировать по очереди assertы, нахожу тот, который ускоряет работу.

Меняю провеку assert(buf[n]== '\n') на volatile char _unused = buf[n] - и этот volatile ускоряет работу так же как assert. Переношу код из main в отдельную функцию - мистика исчезает. В чем дело (патерн ли доступа к памяти, выравнивание ли инструкций ли, рандомная кривизна компилятора, ещё что-то) не выяснял, мне было не очень важно.

Хорошая демонстрация того, что x86/c++ компилятор - непредсказуемый черный ящик, и что если важны проценты производительности - надо автоматизировать тесты производительности и запускать после каждой перекомпиляции бинарника, на куче разных конфигураций.

Код, что бы не бысть голословным ( процессор - corei7 3770k, компилятор - g++ 4.5.3, компиляция - "g++ -O3 -DNDEBUG=1" и "g++ -O3", glibc/OS - cygwin на Win7 , файл всегда в кеше и для каждой сборки делается несколько запусков для проверки стабильности измерения ), но скорее всего у других людей это не воспроизведётся. На Intel Xeon и настоящем линуксе не воспроизвелось. Программа итерирутся по строчкам файла (fgets, только в разы быстрей).
nyaload

lena.jpg - rule 34

Людям, которые делали что-то связанное с компьютерной графикой, знакома вот эта картинка:


Остальное - под катом.

Collapse )
nyaload

Трояны в мышках

Купил только что беспроводную клавиатуру a4tech. К ней еще прилагалась мышка. У мышки рядом с колесиком - кнопка "активировать трояна", которая нажимает Win+R, печатает ссылку на сайт ( www.win2.cn/g9/ ), и нажимает Enter. С сайта предлагается скачать какой-то софт весом 30 мегабайт со скростью 20кб/сек, который позволит выключить эту чудо-кнопку или настроить.

Пока что настроил кнопку на print screen, вроде вменяемо сделано, можно сразу стрелку нарисовать и обвести.
nyaload

vim: подсветка при поиске (hlsearch), убрать подсветку по esc

Удивляют меня вим и bash, что у них есть миллион дурацких флажков "не теряй данные", "не забывай команды при нажатии на крестик закрытия терминала", "раскрашивай вывод" ( 95% представителей homo sapiens умеет различать цвета ), "используй адекватную лаконичную информацию в доступных статус-барах", "следи сам за размером окошка терминала", "запоминай историю", "расставляй скобки самостоятельно", "подсвечивай не-вырви-глазно найденное", "не используй дефолтный динамик компьютера", "конкретно для make-файлов используй табы", "включи анду", "сделай так что бы русские буквы работали", ..., ...

И про эти флажки узнаёшь случайно. От товарищей, из блогов, из сборников "1001 совет для vim"

В vim можно сделать подсветку для поиска ( set hlsearch ), и инкрементальный поиск ( set incsearch ).

После включения подсветки поиска начинает дико раздражать то, что её невозможно убрать. Нужно или набрать команду :nohlsearch, или поискать несуществующую ерунду ( /asdfasdf ). После многих лет исследований люди придумали, как при помощи конфига убрать эту разражающую особеность:

:nnoremap <esc> :noh<return><esc>

Оригинальный пост который про это рассказывает: http://www.viemu.com/blog/2009/06/16/a-vim-and-viemu-mapping-you-really-cant-miss-never-type-noh-again/