blog wiki
 

My Google Reader

24/10/2009

Я очень ленив. И как всякий ленивец, я очень люблю маленькие ништяки, которые позволяют мне делать поменьше, а получать побольше. А так как от 10 до 16 часов в день я провожу за компьютером, именно комповых оптимизаций у меня набралось достаточное количество.

Одной из таких находок стала технология RSS. Именно она мне позволила не слоняться по куче сайтов, а открывать окно одной программы и видеть там все интересные новости за прошлый час день. Я стараюсь затащить в RSS все, что читаю более менее постоянно — ЖЖ, Хабрахабр,  (эх жаль, Фейсбук отключил трансляцию ньюсфида),  оповещения из сервисов, о выходе новых продуктов (email2rss), новости о выходе новых альбомов любимых групп и т.д. и т.п.

Сначала я пользовался различными десктопными приложениями. RSSBandit, RSSOwl… Первый глючил, второй тормозил… Поэтому, едва открыв для себя Google Reader, влюбился сразу, горячо и надолго. Красивый интерфейс, фиды, доступные из любого места, скорость и удобство. Если оценить количество времени, которое я провожу в интернете, то больше всего времени я провожу за google reader. Но вот что в определенное место начало меня убивать, так это то, сколько тратится свободного места (особенно по вертикали). Только посмотрите, сколько свободного места съедает лого, поиск, кнопка “добавить подписку”:

Untitled picture2_c

У меня на ноутбуке по вертикали всего 800 пикселей. Очччень большой процент ссобщений просто не вмещался в экран. Но тут в  процессе работы я наткнулся на интересное разрешение для FF: Better GReader. Наряду с некоторыми бесполезностями оно предлагает на выбор несколько скинов для гугль ридера, в том числе Absolutely Compact, с ним стало почти то что нужно, но, на мой взгляд, автор перестарался в угоду минималистичности:

Untitled picture1_c

Ну зачем было убирать панель ссылок наверху экрана? А менять шрифт и размер заголовок статей? И панель поиска в этом варианте выглядит как-то куце и одиноко.

Мне нужно всего пару вещей. Убрать лого, кнопку “добавить подписку” и перенести панель поиска. К сожалению, ни один из скриптов такой функциональности не предлагал. Пришлось взять в руки шашку GreaseMonkey. За пару вечеров и с помощью друзей родился скрипт, который я назвал My Google Reader. Он делает именно три перечисленные вещи и только их. Вот как выглядит Google Reader в моем варианте:

Untitled picture3_c

Если вам понравился этот вариант, то процедура установки очень проста:

  • Кликните add to firefox чтобы установить GreaseMonkey
  • Кликните install чтобы установить скрипт My Google Reader

Вот и все. Надеюсь что был немного полезен. )


Filed under:

Идеальный NAS своими руками, или собираем mini-ITX сервер с 4 HDD

27/08/2009

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

Предпосылки

Сначала немного об инфраструктуре. У нас в семье не приветствуются большие и громоздкие десктопы, в которые можно набить кучу винтов и таким образом получить достаточно дискового пространства. Мы с женой живем на ноутбуках двух-трехлетней давности, с винтами стандартной для тех времен емкости в 60 Gb. С таким пространством особо не разгуляешься, а тем не менее торренты качать хочется. Второй проблемой в закачке торрентов является нежелание оставлять ноуты включенными на ночь, все-таки шумят, сволочи. Вот и начали подумывать о выделенной качалке, причем в то время очень хотелось чтобы решение было по возможности подешевле.
Таким образом, в требованиях к гипотетическому девайсу вырисовалось:

  • Достаточный объем
  • Бесшумность
  • Дешевизна

Первым решением стала (и мы достаточно долго им пользовались) связка из роутера wl500gP с прошивкой Олега и внешний винт в USB боксе. Для роутера существуют достаточно продвинутые “качалки” практически для всех сетей: torrents, eMule, etc. Шумовые характеристики тоже были на высоте: винта в боксе практически не слышно, роутер же бесшумен абсолютно. Но в процессе обнаружились и некоторые недостатки, а именно:

  • Производительность USB интерфейса роутера все-таки оставляет желать лучшего, в среднем 2 мегабайта в секунду.
  • Объем одного винта в USB не так уже велик.
  • Надежность такого решения тоже не идеальна.

А тут один хороший человек взял и подарил мне три 750Gb винта. И вот настало время читать обзоры.

Рынок

Естественно, я внимательно прочитал все которые смог найти обзоры про NASы на хабре и в сети.
С учетом наличия у меня трех 3,5” винтов картинка вырисовылась не такая уж радужная, моя родная жаба нутром восставала против необходимости отдать порядка тысячи долларов просто за “коробку для винтов”.
В процессе маркетингового исследования были рассмотрены:
Synology:
Cube Station CS 407e, цена порядка 13000-18000 р по яндекс-маркету, CPU на уровне моего роутера 266MHz, 64bit@133, with floating point, Memory: 64MB, в общем, кастрированный девайс.
Disk Station DS409+, цена по яндекс-маркету порядка 25000, тут уже нормальный процессор 1,2 Ghz, 256MB памяти.
Также можно было посмотреть на уже упомянутый Бумбурумом Thecus n4100pro, который стоит порядка 20000 и построен embedded CPU AMD Geode (спецификацию на сайте обнаружить не удалось), но суммы в любом случае получались для меня достаточно внушительными, и я начал искать альтернативы.
А почему бы не собрать такой NAS самому, на основе платформы mini-ITX? Спросил у знающих людей, а не существует ли в природе mini-ITX корпус, вмещающий три или более 3,5” HDD?  Мне достаточно быстро подсказали, что такой есть: Chenbro ES-34069.

1 2 3

К сожалению, ни одного аналога я не нашел, сколько не бродил по miniITX.com и сайтам продавцов на eBay. Корпус тогда продавался только в одном месте в Москве — в Традиции за 9500. Дороговато, но прикинув, что в сумме получаются те же 9500 + 4000 мать на атоме + 1000 память = получается 14000-15000, что уже гораздо интереснее, чем 25. Плюс — стандартная x86 платформа и никаких ограничений в плане возможности использования операционных систем.

Выбор платформы

Следующим выбором стал выбор платформы для материнской платы.

Я собирался купить одну из матерей на Atom+ION платформе, например одну из матерей ZOTAC IonTX-, и сэкономить на процессоре, но столкнулся с некоторыми неприятностями. Все те же знающие люди подкинули сравнение производительности процессоров платформ Atom, VIA Nano и процессорами Intel Celeron. Вот он: http://www.fcenter.ru/online.shtml?articles/hardware/processors/25048

Приведу только одну картинку, показывающую общую производительность процессоров Intel Atom:

Так, а если не атом, то что?
Тепловыделение “полноценных” процессоров Intel начиналось с 65W. Было ощущение, что греться они будут очень сильно в моем не самом просторном корпусе. И опять приходит подсказка. У AMD есть набор экономичных процессоров Athlon X2 4450e, 4850e и 5050e c тепловыделением 45w под Socket AM2+. А найду ли я мать под этот сокет? Да еще с 4 SATA портами?

Я нашел несколько подходящих на первый взгляд матерей:

Облом же заключается в том, что ни одной из них нет в России.

Абсолютным фаворитом выглядит первый номер. 6 sata портов, чипсет RS780MN, но… она до сих пор на сайте Coming Soon, а исследование проходило в июне.  Что же остается? Альбатрон вызвал серьезные сомнения как производитель, уж больно его ругали знакомые. Про Jetway я до этого вообще ничего не слышал, но доводом за него стало, что он наряду с Zotac, Via, Nexus и MSI входит в список производителей на сайте mini-itx.com. Смотрим:
Jetway NC81-LF — чипсет AMD 780G + SB700, видео ATI Radeon HD3200, 1 IDE + 4 SATA, 2 Gigabit LAN, WiFi!. И за все порядка 190$, но к сожалению в тот момент я не смог купить. Никто из “продавцов” в Россию тогда ее не вез.
Выбор остановился на Jetway JNC62K-LF, чипсет MCP78S, видео Nvidia 8200, 1 IDE + 4 SATA, 2 gigabit LAN, 160$, в итоге купил на eBay вот у этого продавца.

Логистика

Таким образом, с конфигом вроде определились:

  • Корпус  Chenbro ES34069 180W, 9500 в Традиции
  • Материнская плата Jetway JNC62K-LF — приехала c eBay, 6300 вместе с доставкой (на самом деле в следующий раз я сильно подумаю о покупке, потому что коробка с матерью выглядела так, как будто по ней ходили. Но обошлось: плата выдержала.)
  • Процессор, любой из троицы 4450e, 4850e, 5050e, я взял 4850e, порядка 3000,
  • Память — 2Гб одноканальная планка DDR 800 Samsung, 900 р на савеле

Дополнительный внутренний 2,5′ PATA винт, на котором стоит система, был безжалостно выковырян из переносного Transcend Storejet + переходник 40pin то 44pin — 300 р на савеле
Итого: 20000

Но если сравнивать с “готовыми” NAS, то этот девайс является более универсальным, более мощным с точки зрения CPU и памяти, допускает апгрейд и вместо проприетарного ПО предполагает установку ОС общего назначения: хоть Windows, хоть Linux, хоть Freenas. Производительность CPU и встроенной графики позволяет использовать его в роли медиацентра (в корпусе предусмотрено крепление для IRDA приемника), а наличие на борту двух разъемов LAN – в качестве роутера. Короче, вариантов масса. )

Если нужно погонять тесты на производительность, объсните, какие и как, сделаю. )

Фотографии

Ну и несколько фотографий получившегося девайса:

IMG_4644 IMG_4618 IMG_4622 IMG_4624 IMG_4630


Filed under:

XP tweaks: переносим временные файлы и кэш на ramdisk

08/05/2008

Вдохновленный вот этим комментарием, я решил по-быстрому реализовать задуманное.
Итак, берем реализацию rramdisk, про которую сам автор говорит:

There are plenty of Ramdisk driver and software available, such as RamDisk9xME, RAMDiskXP, RAMDiskSE and RAMDiskVE from Cenatek, RamDisk and RamDisk Plus from SuperSpeed, RAMDisk Enterprise Lite and Full version plus 64 MB limited free RAMDiskbased on Microsoft Ramdisk below from QSoft, and Ramdisk.sys driver for Windows 2000 from Microsoft published under KB257405. However, most of these Ramdisk drivers either is not free, or limit in its functionality especially on the size on RAM-disk. Some not even support Windows Vista.
The following freeware RRamdisk.sys, originally written by Gavotte based on Microsoft’s Ramdisk.sys, and later being added a GUI interface by lyh728 is not only free to use, it also stable, doesn’t have size limitation, supports popular FAT16,FAT32, NTFS filesystems, and supports Windows 2000 operating system and above including Vista.

Устанавливаем. Процесс достаточно прост и понятен. Запускаем rramdisk.exe, устанавливаем атрибуты:

ecnvuTw5a7

В моем случае я выбрал размер диска 128 Мб (у меня 1 Гб ОЗУ), все остальное оставил как есть.
Далее задача — перенести на ramdisk наиболее часто используемые временные файлы.

Пути системных переменных %TMP% и %TEMP%

  • Правой кнопкой щелкаем по My Computer -> Properties -> Advanced
  • Щелкаем по кнопке Environment Variables
  • Удаляем наверху User variables for User – %TMP% и %TEMP% (эти значения оверрайдят системные)
  • Меняем системные переменные %TMP% и %TEMP% на R:\Temp, у меня получилось вот так:

6HQ5CVtZVa

  • Перезагружаемся, видим свой диск R и папочку TEMP в нем.

Temporary Internet Files

  • Запускаем IE, идем в Tools -> Internet Options -> General
  • В среднем разделе Temporary Internet Files нажимаем самую правую кнопку Settings
  • Там нажимаем Move Folder, выбираем R:\Temporary Internet Files, нажимаем применить. Я выбрал ограничение, равное половине диска R.
  • IE переносит папку, попросит перелогиниться, чтобы завершить процесс.

Firefox Cache

По умолчанию FF хранит кэш в папке %Local Settings%\Application Data\Mozilla\Firefox\Profiles, но это поведение можно изменить через about:config:

  • запускаем FF, в адресной строке вводим about:config
  • кликаем в любом месте правой кнопкой, выбираем New -> String в качестве имени параметра задаем browser.cache.disk.parent_directory, в качестве значения — путь к папке где будет храниться кэш. У меня это r:\Application Data\firefox
  • Перезапускаем FF

Microsoft OneNote Cache

Самые неоднозначный, на мой взгляд, шаг. Я активно пользуюсь этой программой, даже сейчас эти строки пишу в ней. : )

  • Запускаем OneNote, идем в Tools -> Options -> Save
  • Внизу, в разделе Cache File Location нажимаем кнопку Modify и выбираем новый путь. У меня это R:\Application Data\OneNote
  • Перезапускаем OneNote

Может это конечно, самовнушение, но мне показалось что после всех манипуляций UI стал откликаться побыстрее.

Тем не менее, нужно понимать и возможные минусы, что

  • Кэш браузеров каждую перезагрузку будет удаляться, что приведет к расходу дополнительного траффика.
  • Возможны приключения в случае неожиданного отключения питания/перезагрузки. У меня на ноуте это не так страшно, но тем не менее.

Напоследок, текущее состояние диска R:, после полудня активной работы:

 R:\>dir
  Volume in drive R is RamDisk
  Volume Serial Number is 1234-5678 

  Directory of R:\

 01.01.2003  00:00    79 Mb           Application Data
 08.05.2008  12:29     5 Mb           TEMP
 08.05.2008  12:52     2 Mb           Temporary Internet Files
                0 File(s)              0 bytes
                3 Dir(s)      41 787 392 bytes free

 R:\>

Filed under:

XP tweaks: подключаем профиль пользователя отдельным виртуальным диском

06/05/2008

Сразу оговоримся, что речь идет о Windows XP.
Мне всегда была неудобна структура папок в файловых диалогах, которую предлагала XP по умолчанию. Посудите сами:

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

 C:\>subst z: "%userprofile%" 

и перенести структуру папок на диск Z:


  Directory of Z:\

 09.05.2008  13:37    <DIR>          .
 09.05.2008  13:37    <DIR>          ..
 06.02.2008  18:32    <DIR>          Archive
 09.02.2008  20:04    <DIR>          Bluetooth Software
 06.02.2008  18:33    <DIR>          Contacts
 12.05.2008  00:33    <DIR>          Desktop
 11.05.2008  23:04    <DIR>          Documents
 26.02.2008  14:12    <DIR>          eBooks
 06.02.2008  18:46    <DIR>          Favorites
 12.05.2008  00:57    <DIR>          Incoming
 06.02.2008  18:50    <DIR>          Links
 04.05.2008  13:30    <DIR>          Music
 06.02.2008  19:24    <DIR>          Phone Browser
 06.02.2008  19:33    <DIR>          Pictures
 06.05.2008  08:55    <DIR>          Program Files
 11.02.2008  18:14    <DIR>          Settings
 06.02.2008  19:34    <DIR>          Start Menu
 05.05.2008  11:09    <DIR>          Temp
 06.02.2008  19:51    <DIR>          Video
                0 File(s)              0 bytes
               19 Dir(s)   8 807 768 064 bytes free

 Z:\>

Такая структура обладает следующими преимуществами:

  • Более подходит к совместной работе на одном компьютере (личные данные находятся на личном логическом диске и отделены от системных).
  • Лучше подходит для бэкапа и восстановления системы. Просто скопируйте папку Z: в любое другое место. Обратите внимание на папку Z:\Program Files. В нее установлены portable версии основных используемых программ: Firefox, Miranda, Foobar2000 etc. В случае переустановки ОС/экцессов восстановить работающую конфигурацию можно просто смапив профиль на диск Z: и скопировав туда данные из бэкапа.

Но у виртуального диска, созданного командой subst, есть и пара недостатков:

  • он не является “полноценным” диском с точки зрения системы. Несколько раз я сталкивался с отказом Windows Installer устанавливать программу на диск Z:
  • он не является постоянным диском, при каждом новом запуске системы его приходится мапить заново.

И если первый недостаток достаточно легко обходится заданием пути через c:\documents and settings\…, то второй до недавнего времени был достаточно раздрающим, так как приводил к тому, что программы на диске Z: нельзя было добавлять в автозагрузку, ярлыки, указывающие на диск Z: на рабочем столе, пока он не смапится, выглядели неизвестными файлами и так далее. Не очень критично, но неприятно. Было какое-то подсознательное чувство, что в windows есть более удобный инструмент, чем допотопная досовская команда subst.  И я его нашел. : )
Александр Телятников в своей статье описывает механизм создания persistent subst drives.
Если вкратце, то можно создать ветке реестра [HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices] строковое переменную с именем, соответствующим букве диска и значением, указывающим на место на диске, куда должен мапиться виртуальный диск. В моем случае это выглядит так:

то такой диск ничем не будет отличаться от созданного командой subst, только не иметь вышеуказанных недостатков.

Понравилось?
А следующий раз я расскажу про практическое использование junctions :)


Filed under:

Hardware IDs

22/01/2007

Бывало у вас, что ОС не находила драйвера устройств? А когда устройств было несколько?
И болталось тогда в Device Manager что-нибудь типа “unknown system device”. И как понять, что именно это за устройство?
После установки висты у меня образовалось два таких девайса: “unknown ethernet controller” и “unknown base device”. Пришлось заглянуть глазками в Details->Properties. В Device Description ничего интересного не было, а вот Hardware IDs – уже интереснее. Но почему их несколько?
Погуглив фразу “hardware ids” наткнулся на статью, по прочтению которой все стало ясно:

A hardware ID is a vendor-defined identification string that Setup uses to match a device to an INF file. In most cases, a device has associated with it a list of hardware IDs. (However, there are exceptions − see Identifiers for 1394 Devices). The first hardware ID in the list should be the device ID, and the remaining IDs should be listed in order of decreasing suitability.

В свою очередь, в процессе поиска моего ethernet контроллера по device id выяснилось, что у меня не Intel PRO/Wireless 2200BG, а hp w400 на чипе Atheros. : )
Вот так. Извините, если открыл Америку.


Filed under:

Айтишное

16/01/2007

Есть такая единица длины в IT – U, unit. 1U=1,75 дюйма. В ней измеряется толщина аппаратуры, устанавливаемой в шкафы, и высота шкафов, в которые устанавливается аппаратура. Говорят о 42U-шкафах, 1U и 2U-серверах и т.п.
Теперь внимание.
На Руси длина измерялась в аршинах, четвертях и вершках. Аршин = 4 четверти = 16 вершков. Как обычно, аршины везде были разные, но потом пришел Петр I и все унифицировал. Он указал считать аршин равным 28 английским дюймам.
Уже поняли? Нет? 28/16=1,75. Вершок равен U.
Оригинал неизвестен.


Filed under:

Hacking into DLink DSM-320RD

10/01/2007

Только что завершил хак своего медиаплеера. :)
Для начала пришлось включить telnet. Это делается c помощью некоторых махинаций:

  • выключить плеер
  • выполнить:
    # ping -c 1 -i 60 192.168.0.111 && echo 'cp /usr/sbin/utelnetd /tmp/telnetd.new && /tmp/telnetd.new -p 24 -l /bin/sh -d' | nc 192.168.0.111 23
  • включить плеер
  • последовательно запускать вышеприведенную команду, пока не получится.

У меня получилось раза с 5го :)
Для запуска команды нужна unix based операционка, причем knoppix на моем ноуте почему-то не стартует, для дела пришлось “пожертвовать” ноутом жены. (Спасибо! :))
Ну, а получив telnet, далее все оказалось делом техники : )
На флешку была сброшена прошивка DSM320RD_2006.12.06-1032__1.04, флешка вставлена в плеер, после чего командой

# ./update_firm -f /tmp/usb2/DSM320RD_2006.12.06-1032__1.04

прошивка была обновлена до 1.04
Впечатления самые положительные: все “неприятности”, которые омрачали пользование замечательной железкой, оказались поправлены.
Так что мы все такие довольные. : )
PS: в принципе, эти действия лишают гарантии, но мы ведь им не скажем, правда? : )


Filed under:

ASUS WL-500gP vs DLink DI-724P+

10/12/2006

Не сказать, что мне надоел до чертиков текущий домашний зверек – DLink DI-724P+, но пару несколько неприятных глюков у него есть:

  • При изменении конфигурации после перезагрузки имеет тенденцию “теряться” WiFi покрытие. Лечится просто – перезагрузкой по питанию. Учитывая, что роутер стоит далеко под кроватью – неприятно.
  • Самая неприятная фича, что заставила думать о замене – его неумение при включенном VPN маршутизировать локальный траффик мимо туннеля. Приводило к тому, что при попытке что-то скачать с локальных фтпшников или из DC++ – отваливался интернет.

А тут брательник решил брать себе какой-то домашний роутер. Решение пришло само собой: за символическую сумму я отдаю ему свой, а себе подыскиваю что-нибудь более-менее меня устраивающее.
Претендентов собственно было всего два (про 3COM я узнал только позднее): Linksys WRT54GL и ASUS WL-500g, но увидев в где-то на сайте Linksys фразу, что он не позволяет маршрутизировать локальный траффик мимо туннеля при поднятом VPN, я остановился на WL-500g. Когда начал читать обзоры, понял – мое.
2 USB 2.0 порта, к которым можно подключить USB винт, камеру, все что угодно.
Но основной плюс у него внутри – Linux, давно хотел его пощупать, но руки не доходили.
Вчера мы с Димоном отправились на Водный, чтобы купить зверюшку в местном Нео-Торге. Зверюшка оказалась за 3280, вместо обещанных на price.ru 2600. Решение пришло само собой: берем, но в случае если не подойдет, возвращаем. (И обязательно вернем во вторник, а купим за 2570 в Санрайзе :)
Руки дошли попробовать только вечером. Сначала зверушка разочаровала: ни в какую не хотела поднимать VPN. Пришлось поменять прошивку на альтернативную с сайта wl500g.info. И тут все встало на свои места: доступ на роутер по ssl/ssh, возможность установки дополнительных пакетов, а главное – возможность настройки маршрутизации. Короче по функционалу, зверушка на голову выше 724Р+ за примерно такие же деньги (за 724-й я отдал 2000 р). Ну и конечно же, радует возможность покопаться в Linux’е.
Еще из мельком увиденного: он позволяет перепрограммировать любой из LAN портов в WAN и поднять линки до двух (трех?) провайдеров. : )
Ну а мне интересно найти клиента eMule и качать по ночам, выключая ноуты.
Отдельное спасибо , от которого я впервые услышал про WL-500g. :)


Filed under:

Picasa 2 + XSLT или как постить в ЖЖ фотки с превьюшками

11/12/2005

Вот здесь я обещал рассказать о технологии публикации картинок в ЖЖ с приятными превьюшками.
Половина дела: Picasa 2, приятная утилитка от Google для управления фотографиями. Она умеет экспортировать выбранные фотографии в виде веб-страницы (шаблон XML), автоматически меняя их размер и создавая приятные превьюшки. На выходе получаются две папочки и index.xml:
\images
\thumbnails
index.xml
Написав простенькую xslt:

<?xml version=”1.0″ encoding=”windows-1251″ ?>

<xsl:stylesheet version=”1.0″
    xmlns:xsl=”http://www.w3.org/1999/XSL/Transform” >
  <xsl:output method=”html” omit-xml-declaration=”yes” indent=”no” />

    <xsl:param name=”link”>YOUR URL HERE</xsl:param>
 
  <xsl:template match=”/”>
    <xsl:for-each select=”album/images/image”>
      <a>
          <xsl:attribute name=”href”>
            <xsl:value-of select=”$link”/>
            <xsl:value-of select=”normalize-space(itemLargeImage)” />
          </xsl:attribute>
          <img border=’0′>
            <xsl:attribute name=”src”>
              <xsl:value-of select=”$link” />
              <xsl:value-of select=”normalize-space(itemThumbnailImage)” />
            </xsl:attribute>
          </img>
        </a>
      <xsl:text disable-output-escaping=”yes” >#xD;#xA;</xsl:text>
      </xsl:for-each>
  </xsl:template>

</xsl:stylesheet>

Остается только загрузить картинки на сервер и вставить ссылки в пост в ЖЖ.


Filed under:

Picasa + XSLT

Picasa и XSLT рулят неимоверно. Чуть позже или завтра опишу технологию.
Каждая картинка кликабельна.

Димон в своем амплуа:

А тут мы решили с ним сочку попить:

Чем бы дитя не тешилось, лишь бы своих не нарожало:


Filed under:
Next Page »