Val Petruchek

подписывайтесь, а то хуже будет!  

ПОДПИСЫВАЙТЕСЬ НА RSS

Раздача интернета одним компьютером другому

14.05.08 @ 20:15 — Software, Internet, Hardware

Подробней про поломку DHCP на винде.

Есть два компа: в одном две сетевухи, во втором — одна. В первый компьютер по первой сетевухе приходит интернет, по второй — уходит на второй компьютер. На обеих машинах установлен Windows XP.

На первом интерфейсе включен чекбокс “Разрешить другим пользователям сети использовать подключение к Интернету данного компьютера” (интернет почему-то с большой буквы).

После включения этой опции на втором интерфейсе первом компьютера автоматом устанавливается IP-адрес 192.168.0.1 с маской подсети 255.255.255.0.

192.168.0.1

На втором компьютере предлагается установить автоматическое получение IP-адреса. Устанавливаем по справке. Не работает.

Соединение создаётся, только второй компьютер получает автоматический адрес 169.254.254.72 с маской 255.255.0.0 — в результате компьютеры просто не видят друг друга.

На втором компьютере можно прописать IP-адрес вручную, как это советует майкрософт там же:

Примечание. Кроме того, имеется возможность назначить уникальный статический IP-адрес в диапазоне от 192.168.0.2 до 192.168.0.254. Например, возможно назначение следующей комбинации статического IP-адреса, маски подсети и шлюза по умолчанию:

IP-адрес 192.168.0.2
Маска подсети: 255.255.255.0
Шлюз по умолчанию: 192.168.0.1

Эффект тот же — в общем случае компьютеры друг друга не видят. Иногда видят — например если они связаны витой парой и первый компьютер физически включается в сеть после второго. Если второй после первого, то не видят, например вот так.

В данном же случае компьютеры связаны по wifi, и при жёстком прописывании IP-адреса на втором компьютере они тупо не пингуются, хоть wifi-соединение и создаётся.

Мне понятно, в чём причина проблем — DHCP на первом компьютере работает неправильно.

Но дальше этого понимания дело не идёт. Вроде бы эту багу пофиксили в первом сервис паке. Но я не понимаю, как посмотреть на настройки DHCP. Вроде бы вот так: HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{…}\

Мне видится единственное гарантированное решение этой баги: покупка роутера и подключение обоих компьютеров через него. Когда я столкнулся с этой проблемой, я в итоге решил её именно таким путём, который на поверку является самым дешёвым с точки зрения затраченного времени и его альтернативной стоимости.

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

Windows vs. Unix

14.05.08 @ 19:12 — Software

В виндоуз всё просто с самого начала: вставил сидюк и поехали. Всё просто до тех пор, пока что-то не поломается. Вот поломался DHCP. И всё, трындец — становится сложно. Где он хранит настройки, что он с ними делает, как их менять, чтобы починить — тёмная комната, надо найти чёрное нечто, которого возможно и нет, и что-то с ним проделать.

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

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

MFA Killer

12.05.08 @ 04:52 — Software, AdSense

MFA (Made For Ads) — сайты, сделанный специально для открутки рекламы, а не для посетителей.

В последнее время под MFA чаще понимается Made For Adsense, т.к. всё больше и больше откручиваемой вебмастерами рекламы обслуживается Google Adsense.

Апофеоз MFA — сайты, откручивающие Google Adsense рекламу и покупающие траффик через Google Adwords. Бизнес-модель у владельцев таких сайтов простая: купить траффик подешевле (1-2 цента максимум), продать подороже. При этом такие умельцы наносят прямой ущерб честным вебмастерам, зарабатывающих с помощью Google Adsense: MFAкеры перехватывают у них потенциально дорогие клики.

Google позволяет вебмастерам блокировать определённые сайты и не откручивать их рекламу. Беда в том, что длина чёрного списка ограничена, поэтому вебмастер не может брать списки MFA-сайтов для блокировки из интернета и элементарно добавлять их в чёрный список: очень быстро кончится место.

Для эффективной блокировки необходимо раздобыть список MFA-сайтов, работающих по вашим ключевым словам.

Как это сделать? Вручную кликать на все подряд сайты и проверять их говнистость нельзя: забанят. Adsense Tester слишком неудобен для такой задачи.

Мой земляк, Антон Угнич, разработал специальную программу, облегчающую процесс составления списков говносайтов для блокировки: MFA Killer.

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

Написана на Java.

“Каноническое” расположение скрипта (shared javascript)

23.04.08 @ 19:27 — JavaScript, Browsers

Вот один из способов, которым можно реализовать мою идею о загрузке javascript из локальной зоны браузера: добавление тегу script атрибута shared, обозначающего каноническое расположение библиотеки:

<script src=”http://my.edge.cached.startup.com/dojo-1.0.0.js” shared=”http://o.aolcdn.com/dojo/1.0.0/dojo/dojo.xd.js”></script>

Если в кеше браузере уже есть скрипт с uri, указанном в shared, то его можно будет не грузить.

Это — потенциальное дополнение к тегу script, которое может появиться в HTML5. Об этом рассказывает создатель JavaScript Brendan Eich (via Alex Moskalyuk).

CMS: Textareas

19.04.08 @ 22:35 — Programming, CMS

Основным способом ввода информации в CMS через веб являются элементы управления типа <textarea>.

Для удобства пользователей и увеличения скорости ввода информации эти контролы часто заменяют на WYSIWYG-редакторы (What You See Is What You Get).

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

Разработчикам же для внедрения WYSIWYG-редактора требуется установить на сервер сам редактор, настроить его и вставить в шаблон пару javascript строк для замены плоской <textarea> на неплоское поле на клиенте.

При этом разработчики часто совершают ошибку: внедрив WYSIWYG в свою CMS, они не дают пользователю возможности не использовать этот WYSIWYG.

Речь не идёт о тех клиентах, которые не поддерживаются WYSIWYGом — в них контрол выглядит старой плоской <textarea>. А вот если у пользователя нормальный клиент, но при этом, например, интернет по GPRSу, то бедный этот пользователь: чтобы добавить контент ему понадобится достаточно много времени и денег (WYSIWYG подгружает достаточно много дополнительных файлов: javascript, css, images).

WYSIWYG надо внедрять так, чтобы у пользователя всегда была возможность не пользоваться им. Переключение между WYSIWYGом и plain <textarea> должно происходить без перегрузки страницы.

При этом plain <textarea> не должна быть действительно plain: к ней необходимо прикрутить quicktags для гиков.

Из всех WYSIWYGов наиболее удобным является TinyMCE.

Панель задач

09.04.08 @ 01:53 — Software, Usability

Топовые stand-alone блоггеры обсуждает возможность перемещения панели задач в Windows (начал Илья Бирман, продолжил Дмитрий Смирнов). Я отметился в комментариях у обоих, напишу и здесь.

У меня панель задач висит слева последние лет 7, а может даже больше. На сегодня основных причин такого расположения две:

1. Я пользуюсь мониторами “нестандартной” ширины. Соответственно, места по горизонтали у меня гораздо больше, чем по вертикали. Банально: в один экран влазит больше контента — будь-то браузер или Microsoft Word. На ноуте, например, рабочее разрешение 1280х800 — для меня это «аж 1280» и «всего лишь 800». Вертикальные пиксели — в дефиците, горизонтальные — в избытке.

2. Я активно использую Quick Launch, у меня там порядка 50 программ (сгрупированных в ~30 иконок). При стандартном расположении панели задач Quick Launch с таким количеством иконок выглядит уродливо, да и пользоваться им не получается.

Несмотря на большое число объектов в быстром запуске я использую горячие клавиши тоже (всякие — и клавиатурные/ноутбучные, и Win+W для Wordа/и Win+Q для Q10, и Ctrl+Alt+F для Farа — гадский майкрософт заюзал Win+F для нафиг мне не нужного поиска). Стандартная панель быстрого запуска позволяет навешивать на иконки только хоткеи вида Ctrl+Alt+F, поэтому для Win+Q и прочих прелестей я использую бесплатную утилитку Free Launch Bar.

Отличная программа (спасибо товарищу Владу за наводку); её надо в обязательном порядке включать в состав дистрибутива “бесплатно делаем Windows человечнее” (наряду с FF/Operой и GomPlayerом). Кроме хоткеев она умеет делать, например, группировку по папкам с выпадающими менюшками и много чего ещё. Работает при этом именно как заместитель Quick Launchа, на тех же файлах.

Дмитрий Смирнов развивает поднятую тему и попрошает: какого хрена у панели задач опция „Закрепить панель задач“ не включена по умолчанию? Мне почему-то казалось, что эта опция по умолчанию включена.

Меня волнует другой вопрос: почему ширина панели задач, закреплённой слева, после каждого логоффа слетает в дефолтную, равную ширине трёх иконок в Quick Launch или четырёх иконок в System Tray? Я довольно долго пытался побороть это поведение системы, но так и не смог: это баг Windows XP. При такой ширине панели задач на моей кнопке “Пуск” не отображается слово “пуск”, отображается только лого майкрософта.

Идеальная для меня ширина панели задач (размещённой слева): 4 иконки в быстром запуске, 5 иконок в системном трее (над часами). При этой ширине на кнопке “Пуск” помещается как лого майкрософта, так и само слово “пуск”. Но эта ширина слетает после каждого выхода из системы. Побороть эту багу мне помог именно Free Launch Bar — он “сохраняет” ширину панели задач и восстанавливает её при каждом входе в систему.

Что касается головной боли у разработчиков, вынужденных учитывать разное положение панели задач: по-моему, Илья преувеличивает. Большинство программ не лезут на панель задач, они работают в или прямоугольнике “экран минус панель задач” (по-моему, у этого прямоугольника есть специальное название) или в полноэкранном режиме.

CMS: отношения между сущностями

27.03.08 @ 15:32 — Programming, CMS

Рассмотрим некую предметную область, в которой имеются две сущности: category и object. Теперь рассмотрим два типа отношений, которые могут между ними существовать: один-ко-многим и многие-ко-многим.

Отношение один-ко-многим означает, что объект может принадлежать только к одной категории. В реляционной модели данных это отношение представлется добавлением поля category_id в таблицу объектов. При этом можно с лёгкостью:
1) узнать, к какой категории относится объект;
2) получить список объектов, принадлежащих категории.

Отношение многие-ко-многим означает, что объект может находиться в нескольких категориях. В реляционной модели данных это отношение отражается при помощи дополнительной таблицы отношений с полями object_id, category_id. Каждая запись в этой таблице содержит информацию о том “факте”, что объект с ID = object_id находится в категории с ID = category_id.

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

Если же в предметной области нет необходимости получать информацию о том, какие объекты содержатся в категории, то можно не создавать эту дополнительную таблицу. В этом случае всё, что нам надо получать от этого отношения: список категорий, к которым принадлежит объект. Для этого в таблице объектов можно создать дополнительное поле category_ids, содержащее список ID категорий.

Формат этого списка может быть любым: ID с разделителями, bitmask, внутренний формат какого-нибудь языка (например, serialized array для PHP). Критерий к формату этого дополнительного поля один: удобство использования в CMS.

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

В идеале front-end CMS должен учитывать тот факт, что данные из этого дополнительного поля могут содержать ID категорий, уже несуществующих в системе, и обрабатывать их соответстенно.

Существует способ получить быстродействие без отказа от целостности данных: завести дополнительное поле не вместо дополнительной таблицы, а в дополнение к ней. Хранить в этом поле следует тоже самое — список ID категорий, к к которым принадлежит объект. В данном случае платой за быстродействие является приобретённая избыточность данных.

Чтобы эта избыточность не привела к противоречивости (когда в поле и в таблице хранятся несовпадающие ID категорий) необходимо поддерживать актуальность поля categoy_ids, которое в данном случае представляет из себя кэш данных из таблицы отношений.

MTP

27.03.08 @ 13:13 — Software, Usability

Как-то незаметно у меня обновился Windows (их интерфейс обновления раздражает меня в винде больше всего) и Windows Media Player проапгрейдился до 10 версии.

Мне вообще-то пофиг, какая версия у Windows Media Playerа, которым я всё равно не пользуюсь: музыка в winamp, видео в GOM. Я вообще не замечал этого обновления, пока не обнаружил, что не могу записать музыку на плеер (обычный player, который при подключении по USB виделся как Mass Storage Device, т.е. флешка) привычным образом (т.е. с помощью File Managerов).

Симптомы: при USB-подключении вместо того, чтобы быть опознаным в качестве флешки (Mass Storage Device) плеер опознаётся виндой именно как плеерMTP (Media Transfer Protocol) device.

После подключения плеер не появляется в списке съёмных дисков, autorun предлагает запустить Windows Media Player для записи файлов на него. Подозреваю, что записать можно только музыкальные форматы, т.е. при таком использовании плеер из флешко-плеера превращается в просто плеер с неудобным интерфейсом добавления музыки.

Бесит. И неудобство интерфейса немного бесит, но гораздо сильнее бесит явное программное ограничение функциональности: я-то знаю, что моё железо может быть не только плеером, но и файлохранилищем; более того — до обновления Windows прекрасно поддерживал эту функциональность.

Посылаем луч любви в Редмонд (штат Вашингтон, США) и быстренько сносим WPD10 — Windows Portable Devices for Media Player 10, которое нам мешает пользоваться плеером привычным образом.

Мне помогло выполнение вот этих вот команд (из DOS-сессии):
net stop UMWdf

RunDll32 advpack.dll,LaunchINFSection C:\WINDOWS\RegisteredPackages\{981FB688-E76B-4246-987B-92083185B90A}\WPD10.inf,DefaultUninstall

regsvr32 /u C:\WINDOWS\RegisteredPackages\{981FB688-E76B-4246-987B-92083185B90A}\wpdmtp.dll

regsvr32 /u C:\WINDOWS\RegisteredPackages\{981FB688-E76B-4246-987B-92083185B90A}\wpdmtpus.dll

regsvr32 /u C:\WINDOWS\RegisteredPackages\{981FB688-E76B-4246-987B-92083185B90A}\wpdconns.dll

C:\WINDOWS\RegisteredPackages\{981FB688-E76B-4246-987B-92083185B90A}>sc delete umwdf

Не уверен, что нужны именно все они, но они все вместе сработали — после перезагрузки плеер снова стал опознаваться системой как USB Mass Storage Device.

Если у вас не получается отрубить ненавистный WPD10, попробуйте почитать про борьбу с ним на этом форуме.

Псевдокомментаторы

17.03.08 @ 22:41 — Software, Spam, Blogging

Одновременно у Апача и Алекса М. прочитал про говнокомментаторов, которым платят 2 WMZ за 13 комментариев.

Этот блог находится в районе 4-5 страниц рейтинга standalone блогов, поэтому и ко мне периодически приходят такие роботяги.

Критерий, который я выработал за последний месяц-два, не очень работает (если ссылка ведёт на что-то неличное, то удаляем): отсеивать псевдочеловеческие псевдоблоги вручную лень.

В принципе, я давно сделал все ссылки комментаторов внутренними — с помощью скрипта-редиректора. Комментирующие умельцы, к сожалению, не сразу это замечают.

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

Это одна из причин, по которым я хочу слезть с WordPressа: в идеальной CMS каждый комментарий ведёт на профайл комментатора. В профайле комментатор указывает ссылку, которая публикуется без nofollow, noindex и редиректов: as is, ещё и жирным шрифтом. Тогда комментатору становится выгодно прокачивать свой профайл (т.е. писать комментарии и ставить ссылки на ресурс), а это полезно и владельцу ресурса, и самому комментатору.

Многопользовательский социальный WordPress

06.03.08 @ 22:03 — WordPress

Тут на базе WordPress MU (многопользовательский вордпресс) собрались делать что-то социальное.

Ну, вы представляете: популярный однопользовательский вордпресс убивает хостинг вплоть до отключения аккаунта за превышение server CPU (apazhe с его регулярными N/A тому примером).

Причём у однопользовательского вордпресса почти все запросы к базе — SELECT; INSERTить надо только комменты, которых по сравнению с просмотрами очень мало.

А в многопользовательском социальном вордпрессе (что-то вроде ЖеЖо/Facebook, видимо): комменты, френды, рейтинги и прочее вебдванольненькое.

В общем, многопользовательский социальный вордпресс будет killing app. Килять он будет сервера, на которых работает.

« Previous PageNext Page »   
Реклама::

 
Реклама::