суббота, 21 ноября 2009 г.

Купите нашу функцию...

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

Маркетинг просто переходит все мыслимые и не мыслимые границы. Сколько можно это терпеть нам потребителям их услуг? На плакатах, буклетах, в банерах, СМС рекламме всегда нам дают одну и туже сжатую, бесполезную информацию которая обрисованная одним красивым короткоим слогоном "Безлимитный интернет" и тонной мукулатуры с обезятельствами ползователя, которые вы должны прочитать, понять и принять.

Я задаю вопрос: "Сколько еще это будет продолжаться?"

Когда слова в рекламме наконец начнут отражать действительное положение вещей, а не быть ловким инструментом потоком легальной лжи со свех источников информации? Когда слогон "С нами быстрей" наконец будет объективен и мы точно будем знать принимая релкамный листок на что нам рассчитывать? Как облегчить потребителям, и рекламмодалеям взаимодействие не потеряв привыных моделей работы с аудиторией?

Ведь я не против смотреть на контекстную реклмму от гугл, не против получать полезные и выгодные предложения от производителей тратуарной плитки или комерческих предложений в сфере мобильных услуг. Только текущее положение вещей не позволяет объективно оценть предложение по двум-трем словам и принять решение выгодно оно или нет. И вопрос заключается в том, как же так сделать что бы мне как потребителю было все понятно об условиях договора только по первому предложению?

И я нашел выход из этой ситуации :)

Вся сложность заключется в том, что получая такой реклмный буклетик, я первым делом представляю груды мукулатуры, которые мне предстоит изучить что бы принять объектинвое решение. Вся информация в рекламном листке это всего лишь миф родившийся в восполенном мозгу пиарщика, который ни каким образом не относится к реальному положению вещей (и вооще он не трезв был когда это писал). Так как в большинстве случаяв условия договоров просто грабительские или на худой конец ни чем не лучше уже имеющихся. Все что вы рискуете получить, начиная разбераться  с новым "кормерческим" предложением - это потреять время и понять что вам это ненужно.

Так вот для облегчения этой работы я предлогаю на всех рекламных буклетах писать некоторое число, напирмер так: "Самый дешевый интернет [*3456/5]". Число в квардартных скобках это не сноска на договор, а отношение величины (или его обратная величина) всех сопутствующих материалов, документов, сносок и условий договора необходимых к прочтению (в словах) в соотношении с длинной данного слогона. Что бы исключить возможный перечень всех документов, в ключая и азбуку и школьным словарем необходимо вводить некоторые катергории относительной сложности документа, как в привиденном случае число 5 может означать среднее образование, или число 6 юридическое образование.

Естественным образом введение такой системы привидет к сокращению объема общего объема метарилов к изучению буклета (первое число), удлиление слогонов и их больше объетивности (первое число) и их упрощении к восприятию, уменьшению сложности материала (второе число)!

И потребители сразу оценив два числа смогут сказать, интересует их этот продукт или нет.  Скажем я не хочу читать больше 50 000 знаков для ознакомления с простыми решениями. И если содержимое буклета в словах длиной 100 слов в отношении к сопутствующей документации в 60 000 слов будет равно 600\5. Так я буду автоматически отбрасывать мелкие предложения в которых показатели выше 600\5 и читать показтель которых ниже :)

среда, 11 ноября 2009 г.

понедельник, 9 ноября 2009 г.

Snow Leopard USB Install

В сети можно найти довольно много материалов о том, как устновить новую операционную систему от Apple с помощью USB флешки. В большинстве инструкций (или во всех без исключения) необходимым компонентом является рабочая операционная система Mac OS X. То есть для того что бы выполнить указанную инструкцию по настройки USB stick на работу с Snow Leopard вам нужен рабочий компьютер с уже установленной операционной системой.

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

В таком случае куда возможней найти рабочий компьютер под управлением Windows или Linux машину, чем собственно компьютер под Mac OS X. Но к сожалению инструкции об настройки флешки под эти опреационные системы в сети нету.

Я решил восполнить данный недостаток и написать инструкцию настройки USB флеш для установки Snow Leopard из под Linux.

Для начала вам потребуется:
- Рабочая машина с Linux
- Образ Snow leopard в формате .iso
- Флешка размером минимум 8GB


Первым делом загрузитесь в Linux и запустите утилиту gparted. И дале выполните следующие шаги:

- инициализируйте диск с новой меткой разделов gpt (Device/Create Partition table).
- создайте 1 раздел 200 мегобайт с файловой системой fat32


- создайте 2 раздел под остальное место с файловой системой hfs+




- нажмите кнопку принять изменения.

Затем, правой кнопкой мышки измените флаги первого раздела с msftree на boot.





После чего можете приступать к следующему этапу - записи раздела с образа snow leopard.iso

Прежде чем начать запись раздела, вам необходимо определить где он на диске находится. Дело в том что формат диска с операционной системой Mac OS X не совсем стандартный образ. В нем записано два образа, первый с драйверами под Windows, а второй - установщик Mac OS X. Для того чтобы найти указанный рездел (смещение для него) необходимо использовать утилиту hexedit.

Открываем образ snowleopard командой hexedit snow leopard.iso и выполняем поиск hex-последовательности "482b0004". Для моего образа snow leopard билда 10A432 (Snow Leopard 10.6.0) смещения такие:

3DA91400   48 2B 00 04  00 00 01 00  31 30 2E 30  00 00 00 00  H+......10.0....
3DA91410   C6 9B F3 4E  C6 9C 6F 67  00 00 00 00  C6 9C 55 BE  ...N..og......U.

Что бы переместить указанную патицию прямо на патицию флешки выполняем следующую последовательность команд:

# /sbin/losetup -o 1034489856 /dev/loop0 snowleopard.iso
# dd if=/dev/loop0 of=/dev/sdb2 bs=5M


Число 1034489856 - это шестнацатеричное 3DA91000.
Устройства /dev/sdb2 - это второй рездел флеш диска созданнго через программу gparted.

Минут через десять команда dd выполнится и USB-stick готов для работы.


cat snow leopard.iso | md5
f303591a8cc124d68f10155b10696348

cat snow leopard.iso | shasum
9e92a6c8c0b166fd8ea6442ccb6d32025e349cbd  -

Snow Leopard 10.6 build 10A432 golden master


Ссылки по теме:

понедельник, 2 ноября 2009 г.

VirtualBox 3 raw access to hard drive

26.05.2010 update for backup gtp table

Как подключить реальный жесткий диск к VirtualBox 2.0 я уже писал раньше. В предыдущей версии к сожалению были проблемы работы с подключением жесткого диска из под OS X. В последней версии такая проблема была устранна.

Вот примеры использования:

Mac OS X:

Работать с реальым жестким диском не рекомендуется из под простого пользователя из за слижком больших прав на изменение данных. Поэтому будет лучше создать виртуальную машину из под учетной записи администратора, и уже специально для нее открыть доступ к жесткому диску. Для этого откройте консоль, и напишите sudo su, после чего VirtualBox для запуска менеджера виртуальных машин. Тем самым вы запустите VirtualBox под учетной записью администратора, что не позволит случайно изменить данные на жестком диске простым пользователям. Виртуальную машину лучше создайте под именем localhost, без каких либо дополнительных параметров, только на всякий случай создайте вируальный жесткий диск с параметрами по умолчанию (ни размер, ни имя менять не нужно).

Далее вам необходимо создать файл vmdk, открывающий доступ к жесткому диску для виртуальной машины. Для этого придется сделать несколько действий, так как в VB есть ошибка под номером 1461. Если в будущем ее исправят, то процедура создания vmdk диска упростится до следующей:

# sudo su
# VBoxManage internalcommands createrawvmdk -filename ~/Library/VirtualBox/HardDisks/localhost.vmdk -rawdisk /dev/disk0 -partitions 0,1,3,4


При создании диска учитывайте какие разделы своего жесткого диска вы хотели использовать под виртуальной машиной, но учтите: необходимо пропустить все партиции которые использует операционная система, по просту она заблокирует создание диска со смантированными партициями. В моем случае я игнорирую партицию номер 2 с установленной и запущенной Mac OS X. Для того что бы увидеть список партиций введите команду:

# VBoxManage internalcommands listpartitions -rawdisk /dev/disk0

VirtualBox Command Line Management Interface Version 3.0.10
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.

Number  Type   StartCHS       EndCHS      Size (MiB)  Start (Sect)
1       0xee  1023/254/63  1023/254/63           200            1
2       0xaf  1023/254/63  1023/254/63         40879       409640
3       0x83  1023/254/63  1023/254/63        395020     84557864
4       0x07  1023/254/63  1023/254/63         40631    893558872


Кроме того, Mac OS X частенько монтирует виндус раздел при старте системы, поэтому для успешной работы команды createrawvmdk вам придется его вручную отмонтировать.

Так как в настоящий момент ошибка 1461 не исправлена, то процедура создания vmdk файла несколько усложняется. Вы его просто напросто создадите руками. Для этого вызовите команду:

# gpt -r show /dev/disk0

gpt show: /dev/disk0: Suspicious MBR at sector 0
      start       size  index  contents
          0          1         MBR
          1          1         Pri GPT header
          2         32         Pri GPT table
         34          6        
         40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
     409640   83722224      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
   84131864     426000        
   84557864  809001008      3  GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
  893558872   83214256      4  GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
  976773128          7        
  976773135         32         Sec GPT table
  976773167          1         Sec GPT header

Далее используя эту таблицу мы видим физическое распределение секторов на диске (предыдущая команда VBoxManage internalcommands listpartitions показывала логические сектора). Далее выполните команду создания жесткого диска через VirtualBox, как показано в рабочем примере, но создающую не правильный жесткий диск из за ошибки 1461.

Вот пример части файла vmdk, который создала VirutualBox:

# Extent description
RW 1 FLAT "localhost-pt.vmdk"
RW 409639 FLAT "/dev/disk0s1"
RW 83722224 ZERO
RW 426000 ZERO
RW 809001008 FLAT "/dev/disk0s3"
RW 83214256 FLAT "/dev/disk0s4"
RW 40 ZERO

Как мы видим, первый сектор диска (загрузчик) помечан 1 сектором. И явно указывает на логическое разбиение диска, нам же нужно повторить физическую его структуру для этого меняем значения в секции # Extent description на следующие:

# Extent description
RW 40 FLAT "localhost-pt.vmdk"
RW 409600 FLAT "/dev/disk0s1"
RW 83722224 ZERO
RW 426000 ZERO
RW 809001008 FLAT "/dev/disk0s3"
RW 83214256 FLAT "/dev/disk0s4"
RW 40 FLAT "localhost-bt.vmdk" 0

Как не солжно догадатся, мы просуммировали длинну gpt информации о диске взятой из вывода команды gpt show (1 + 1 + 32 + 6) == 40. Далее, чуть чуть подкорректировали размер первого раздела, и оставили без изменения остальные значения. Так как они полностью совпадают со значениями из вывода gtp show утилиты.

В целом мы почти закончили. Нехватает только скопировать данные с нашего реального диска в файл раздела localhost-pt.vmdk. Делется это командой:

# dd if=/dev/disk0 of=localhost-pt.vmdk count=40 bs=512
# dd if=/dev/disk0 of=localhost-bt.vmdk skip=976773128 count=40 bs=512

После чего запускаем VirtualBox и монтируем наш vmdk жесткий диск вместо виртуального присоединенного к localhost.

# VirtualBox

Linux: 

Работа с родным жестим диском из под линукса схожа с работой из под OS X. Вам так же необходимо использовать две учетные записи из под пользователя и супер пользователя (root).

Создание образа диска делается следующей командой:

# VBoxManage internalcommands createrawvmdk -filename ~/.VirtualBox/HardDisks/localhost.vmdk -rawdisk /dev/sda



Далее необходимо создать вайл для запуска хост машины:

~/localhost.sh

#!/bin/bash

# монтирование папки с образами OS
gvfs-mount smb://mini.local/www

/sbin/sfdisk  -A4 /dev/sda
VBoxManage startvm localhost


И запускать его с помощью dbus-launch, обеспечив тем самым возможность монтирования файловой системы gvfs.

Windows XP

Работа из под Windows XP несколько проще, так как вам ненужно запускать отдельную учетую запись.

Для создание диска нажмите Win_key+R и выполните слудющую команду:

"C:\Program Files\Sun\xVM VirtualBox\VBoxManage" internalcommands createrawvmdk -filename "%USERPROFILE%\.VirtualBox\HardDisks\localhost.vmdk" -rawdisk \\.\PhysicalDrive0

Запуск виртуальной ос лучше осуществлять следующими запускающими файлами:

c:\soft\localhost.bat

diskpart /s localhost.txt
start "VB" "C:\Program Files\Sun\VirtualBox\VirtualBox"

c:\soft\localhost.txt

sel disk 0
sel part 3
act

Ссылки по теме: