MCP
Показаны сообщения с ярлыком софт. Показать все сообщения
Показаны сообщения с ярлыком софт. Показать все сообщения

суббота, 30 января 2010 г.

Windows 7 Language Pack/MUI

Решил тут поставить русский MUI для системы, посмотреть что изменится (есть подозрения, что будет получше с поиском по-русски, возможно в мелочах тоже по-приятнее). И обнаружил, что в принципе, скачать это можно и бесплатно, но ISO занимает 2 с лишним гигабайта и включает в себя все языки. Может быть, я всего-лишь плохо искал, но когда качаешь ISO, не очень понятно, что получишь в конце. В конце же я получил много ненужного.

Реально при этом русский Language Pack занимает всего 70Mb (!!!). Так что я решил, что в принципе, не повредит выложить его отдельно, чтобы не выкачивать всё. Заодно решил и английский добавить для тех, у кого русская система.

Выложить решил на SkyDrive, ибо там всё хорошо со скоростью и доступностью, правда максимальный размер 50Mb, так что пришлось бить на две части.

Итак, по-пунктам:
  1. Данный MUI или Language Pack (я запутался как их называть) подходит для любой Windows 7 и любого Windows Server 2008 R2 (и это меня радует)
  2. Перед скачиванием найдите и прочитайте лицензию, убедитесь что вы ничего не нарушаете и что вам никто ничего не должен
  3.  После скачивания распакуйте всё в какую-нибудь папку, чтобы в конце получилось что-то типа langPackFolder/ru-ru/lp.cab (или en-us, смотря что вам надо)
  4. Далее заходите в Панель Управления, Региональные настройки, выбираете Добавить/удалить языки и там выбираете вашу папку langPack 
Ну и самое важное, ссылки:
Русский:  часть 1, часть 2
English: part 1, part 2

Update: Меня тут поправили, что для Windows 7 Ultimate — language pack можно скачать через апдейты, а для других, как я понимаю и не получится. Так что мой пост больше относится к серверным версиям и случаю, когда с интернетом всё плохо, так что 70Mb проще скачать заранее из другого места.

пятница, 8 января 2010 г.

Бекап системы через виртуалку

Есть люди, которые переставляют операционку раз в месяц. Я к ним не отношусь, и предыдущая система у меня жила около 6 лет (может даже больше, хвосты идут с 2001-ого года). И апгрейдить я её решил из-за того, что уже пора.  Надо двигаться дальше и разбираться в новых технологиях.

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

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

Собственно, о том, как всё это сделать, я и расскажу, возможно это вам пригодится. Заодно, это будет полезно на работе, если вы хотите переделать сервер в виртуальную машину, чтобы потом его было легко перемещать между физическими компьютерами и избавиться от проблем с железом (умер физический сервер, поднимаем виртуалку на другом, а этот не торопясь восстанавливаем без давления коллег достающих фразой "ничего не работает"). Кстати, на работе для виртуалок рекомендую использовать Microsoft Hyper-V Server, он бесплатный, т.е. не надо дополнительно платить за лицензию на хостовую систему. Т.е. всё просто замечательно в этом плане.

Для дома же, думаю проще использовать VirtualPC или VirtualBOX. Они тоже бесплатные, и неплохо работают. VirtualBOX более навороченный и поддерживает виртуальные жёсткие диски больше 127Gb. В тоже время, в Windows 7, VirtualPC уже встроен (для работы XP Mode), так что он как бы "роднее", поэтому выбор за вами. В любом случае, попробовать можно оба варианта и остановиться на более подходящем.

Итак, приступим.

0. Оцениваем размер свободного места для бекапа. Лучше, чтобы было места в количестве размера диска C: Если же нет такого объёма, но вам хочется это сделать, то прочитайте до конца и подумайте, сколько вам нужно освободить.

1. Берём программу Disk2vhd от Марка Руссиновича и делаем образ диска C: (остальные диски можно будет потом подключить как сетевые, но если у вас достаточно места, и хотите надёжный бекап, можно сделать образ всего).

Делать образ можно хоть на тот же самый диск, но естественно, для производительности нужно на другой. Программа сразу говорит необходимый объём места с учётом только занятого места. Т.е. если у вас диск C имеет объём 500Gb, но при этом занято только 20Gb, то только 20Gb и потребуется. 

2. После изготовления образа, создаём в VirtualPC или VirtualBOX виртуальную машину, подцепляем к ней диск (если диск больше чем 127Gb, то используйте VirtualPC аккуратно, он плохо поддерживает большие диски), и смотрим на клон вашей системы только в отдельном окне. Зрелище потрясающее.

2а. Если система не поднялась с первого раза, то могут быть следующие проблемы:

  • Проблема с файловой системой, которая почему-то некорректно создалась. Придётся лечить всякими утилитами для восстановления разделов (например TestDisk). Для удобства, можете поднять отдельную систему на виртуалке, подцепить к ней этот проблемный образ и его чинить.
  • Проблемы с загрузкой, когда система не может загрузиться. Тут неплохо помогает загрузочный диск (вам достаточно иметь ISO с ним) от Vista или Windows 7. Запускаете Startup Repair и он может подлечить некоторые проблемы
  • Проблема с загрузкой виртуальной системы (синий экран, перезагрузки). Тут уже всё хуже, пробуем грузиться в Safe Mode, или делаем жёсткий Repair с установочного диска. (когда создаёте образ, можете поиграться еще с галочкой Fix HAL).

И помните, что на данном этапе, если вы что-то совсем разломаете, вы всегда можете начать всё сначала, и попробовать снова.

3. Когда виртуальная система заработала, можно удалить явно ненужные программы и файлы (для экономии места), сделать дефрагментацию, взять программу SDelete, запустить её с ключом -z (забить нулями свободное место). После этого на физической системе взять VirtualPC и сжать образ для экономии места. Но, можете этого и не делать, или сделать потом, когда будет новая система.

Вот и всё. Теперь у вас есть виртуалка со старой системой, которая будет работать на любом компьютере. Т.е. мы отвязались от железа и можем приступать к установке новой. После установки, поднимаем виртуалку и не торопясь переносим настройки из старой системы, в новую.

Несколько слов, про установку Windows 7 или Vista:

  • Чтобы полностью избавиться от старой системы без форматирования жёсткого диска при загрузке в Setup нажимаем Shift-F10, открывается консоль, там переименовываем или удаляем следующие папки: Documents And Settings (в XP), Users (в Vista), Program Files, Windows. Всё, у нас больше нет старой системы. Т.е. установка не будет лавировать между ними записывая новые данные, а просто установится чистой и блестящей. При этом, если что-то пойдёт не так, переименовываем папки обратно и возвращаем всё как было.
  • Если Windows откажется ставится на данный жёсткий диск, про причине его "неправильности", с помощью сторонних утилит выделяем вначале диска 100Mb, для личных нужд Windows. Эти 100Mb при загрузке система автоматически возьмёт себе и создаст там маленький образ для восстановления системы
  • Если не хочется ставить систему с диска, можно поставить с флешки. Для этого достаточно взять бесплатную программу Windows 7 USB/DVD Tool и она сама всё сделает (как вариант, можно попробовать UNetbootin — она больше для автоматического создания Linux-образов, но думаю и для этого подойдет)
  • После установки, можно для большинства программ перенести настройки с помощью копирования старых из Documents And Settings в новые Users (только следите за путями, если они абсолютные)

Ну вот и всё. У вас есть новая система и рабочая старая. При этом, если с новой что-то случится, вы можете с чистой совестью всё установить заново, при этом у вас всегда будет готовая и настроенная старая. Свежую же систему апгрейдить ещё проще. У Microsoft'а появились неплохие утилиты для бекапа настроек и миграции, так что можно всё сделать ещё проще. С другой стороны, при оборачивании старой системы в виртуалку, мы всегда оставляем пути отхода, на случай, если что-то пойдёт не так и мы всё сломаем. Так что, это хоть и немного дольше, и требует много места, зато обеспечивает сохранность данных.

вторник, 27 октября 2009 г.

Калькулятор размеров мониторов

Я как-то давно написал простенькую страничку, которая по введённой диагонали монитора и разрешению выдаёт его физический размер, dpi и соотношение сторон. Вещь на самом деле очень полезная и интересная, можно узнать, например, что:

  1. Монитор в 22" с разрешением 1920х1080 имеет по вертикали практически такой же размер как и обычная 17"-ка (1280х1024)
  2. Sony Vaio P имеет безумное разрешение в 1600x768, что даёт 222 dpi, что в 2.3 раза меньше стандартной точки (!!) Другими словами, в комплект должна идти лупа
  3. Ноутбуки в 15.4" обычно имеют разрешение 1280х800 что близко к классическим 96dpi (98 если точно)
  4. и многое другое

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

Пользуйтесь.

Изменение буквы системного диска в Windows

Раз уж сегодня начал активно писать в блог, то продолжу.  На этот раз не про конкурс, а небольшая заметка про то, как изменить букву диска в Windows, в случаях когда стандартными средствами (Управление Дисками) это не получается (нельзя, запрещено и так далее, в том же духе).

Стандартная ситуация, это когда при установке Windows не на основной диск система оказывается на диске D:, вместо диска C: и изменить это не получается, ибо диск системный и вообще загрузочный. Иногда подобное желание бывает и позднее (например системный диск X: а хочется сделать Y:).

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

Итак, всё просто. Открываем реестр, смотрим следующую ветку:

HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices

Дальше находим ключ \DosDevices\X: — где X, это имя диска, которое нужно сменить. Ну и меняем на то, что нужно.  Потом перегружаемся и наслаждаемся жизнью или ловим проблемы с тем, что ничего не работает.

А теперь информация о том, как быстро сделать бекап, на случай поломки в данном случае. Для этого надо сделать несколько всего действий:

  1. Загрузиться из другой системы. Если её нет под рукой, замечательно подходит установочный диск от Висты или свежее. Вместо установки выбираем Recovery и открываем командную строку. Если у вас есть Far, то можете ж
    80;ть припеваючи на данном шаге.  Если нет, то работайте в консоли.
  2. Копируем все файлы (чтобы проще было) из Windows\System32\Config в любую другую подходящую папку. Там хранится реестр и журнал событий.
  3. Для надёжности копируем Documents And Settings\ntuser.dat — реестр для конкретного пользователя (в Висте и Семерке путь немного другой: Users)

Собственно, на этом всё. Для восстановления нужно проделать те же действия, только скопировать обратно. В частности, этот способ часто помогает, если нужно переустановить Windows на такой же, по причине фатального сбоя. Это поможет восстановить реестр и может быть даже всё заработает. Но очень опасный способ (с другой стороны уже всё сломано, можно и попробовать починить).

пятница, 23 октября 2009 г.

RDC vs RAdmin/VNC

Иногда бывает нужно зайти удалённо на свой компьютер. С одной стороны стандартный RDP рулит, но он обычно создаёт новую сессию, так что получается две запущенные сессии — локальная и удалённая. А это весьма раздражает, ибо заводится весь авторан, да и задача часто бывает именно посмотреть что в конкретно творится, а не просто завести сессию.

Так что обычно для этого приходится использовать RAdmin или какой-нить VNC. У них есть хороший побочный эффект, что человек может работать за компьютером, а другие смотреть на это дело. Но когда нужно подключиться самому к себе, это часто мешает (неприятно, когда коллеги по работе могут смотреть чем ты сейчас занимаешься, а ты их не видишь и даже не знаешь про это ).

Но есть простое решение с RDP, которое многие не знают, но тем не менее, оно сделано именно для таких ситуаций — залогиниться именно в локальную сессию удалённо. Делается это просто, запускается клиент с соответствующим ключом:

mstsc /console

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

mstsc /admin

Работает он также как и предыдущий.

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

среда, 5 августа 2009 г.

Как заполнить поле в базе рандомными значениями

Небольшая напоминалка для себя на будущее, возможно кому и пригодится.

Для тестов иногда бывает необходимо заполнить поле в базе какими-нибудь левыми значениями. Проблема в том, что обычная функция RAND() при апдейте возвращает одно и тоже значение, ибо оптимизатор её оптимизирует. Собственно, из этого есть выход, заключается он в том, что в RAND() надо передавать рандомный seed в качестве параметра. Вариантов несколько, я использую такой:

UPDATE Table SET Field=RAND(abs(convert(varbinary, newid()) % 65536))*1000 

1000 — это максимальное значение в поле (точнее 999). Т.к. точность не требуется, особо над распределением не заморачивался. Пользуйтесь, если вдруг пригодится.

вторник, 28 июля 2009 г.

Windows Live Sync

По совету хорошего человека решил попробовать данную программу. Соответственно хочу поделиться краткими впечатлениями о её использовании.

Для начала, что она умеет:

  1. Выбирать папки для синхронизации и синхронизировать их между любым разумным количеством компьютеров. Т.е. вы просто кидаете туда файлы, а через некоторое время на другом компьютере они появляются.
  2. Синхронизировать файлы по запросу. В этом случае на другом компьютере появится заглушка с расширением p2p, при попытке открытия которой, будет скачан файл
  3. Загружать любые файлы с любого вашего компьютера через браузер (если разрешено).  Т.е. если вы дома забыли важный файл, теперь можно просто его снянуть через эту службу (раньше я использовал RDC/VNC для подключения к домашнему, и дальше вытягивал файлы).
  4. Расшаривать некоторые папки между выбранными пользователями. Т.е. нельзя расшарить папку для "всех" или для определённой группы. Можно только ввести email человека, которому нужно дать доступ к папке.

Теперь о том, как она это делает:

  • Необходимо залогиниться в Windows Live
  • Программа попытается открыть какой-нибудь из следующих портов: 80, 443, 6571, 8000 для того, чтобы другие компьютеры подключались напрямую к этому и забирали файлы
  • Используется шифрованное peer-to-peer соединение. Т.е. ваши файлы никуда не уходят. Сервер используется только как главное звено для обнаружения соседей.
  • Как я понял, если программа н;е смогла открыть порты, то синхронизация будет работать только в одну сторону, или же очень плохо.
  • Детали синхронизации не выяснял. Похоже файлы синхронизируются целиком. Коллизии тоже пока не рассматривал, не думаю что это очень принципиально для простого использования. Я для сложного всегда лучше самому всё протестировать, а не слушать чужое мнение.  

В общем, весьма неплохо. Конечно, хотелось бы ручного выбора портов, ибо у меня есть некоторое количество компьютеров за NAT-ом, и хотелось бы использовать синхронизацию между ними. А с учётом того, что практически доступно всего 2 порта (вы думаете у программиста есть бездействующие 80-ый и 443-ий порт? ). Так что для этого она не очень хорошо подходит.

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

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

Также, очень смущает то, что нет привязки к SkyDrive, хотя дизайн на сайтах похож, и вообще, это очень хорошо напрашивается в качестве онлайн-службы для бекапов. Ладно, можно и поискать программы, делающие из SkyDrive виртуальный локальный диск,  возможно Gladinet хорошо подойдет для этого. Кроме того, не рекомендуется синхронизировать pst-файлы и базы данных, ибо они хорошо меняются и обещают ошибки из-за этого.

Теперь о других подобных службах, я нашёл DropBox и Syncplicity. Как я понял, они пускают синхронизацию через свой сервер и хранят там файлы. Т.е. могут использоваться в качестве простенького Source Control'а, да и пофункциональнее будут. Но в них есть ограничение на объем доступной шары. после этого хотят абонентскую плату. Тут же никаких ограничений нет и файлы никуда не ходят. Да и в плане безопасности Майкрософту можно доверять (тапками не кидаться, но Майкрософту в этом плане я доверяю гораздо больше чем большинству других сервисов).

Ну, в общем-то и всё. Собственно писать про этот сервис особо нечего, он работает или не работает, никаких сложностей. Весит установочный файл всего 1.4 Мегабайта, берётся с соответствующего сайта и в принципе, может использоваться on-demand. Т.е. поставили на одном компьютере и забыли. Потом вспомнили, поставили на другом, настроили всё в браузере и давай синхронизировать. Теперь даже не нужна флешка для того, чтобы всё своё носить с собой. Можно выложить в папку и иметь на всех компьютерах одно и тоже. Лишь бы был интернет.

пятница, 19 июня 2009 г.

Прокачиваем мышь 3

Продолжение. вторая часть, первая часть.

Решил всё-таки довести затею до конца, и доделать программу, хоть до какого-то состояния.

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


  • Нажать пятую и покрутить колесо — изменить громкость

  • Нажать пятую и среднюю — пуск/пауза

  • Нажать пятую и левую — предыдущая песня

  • Нажать пятую и правую — следующая песня


Это как бы наиболее понятные и очевидные вещи, но осталось незадействованным движение, но что туда повесить? У меня мыслей хватило только на простенькие Gestures, которые тоже эмулируют соответствующие кнопки:

  • Нажать пятую и сдвинуть влево — назад (например для браузера)

  • Нажать пятую и сдвинуть вправо — вперед

  • Нажать пятую и сдвинуть вверх — стоп (для браузера)

  • Нажать пятую и сдвинуть вниз — обновить (для браузера)


Т.е. простенькое управление браузером, для того, чтобы можно было безболезненно отказаться от четвёртой и пятой кнопки для тех, кто использует их в качестве Back/Forward в браузере. Теперь это можно делать с помощью gestures .

На этом я планирую всё-таки успокоиться и прекратить мучать мышь . Соответственно для всех желающих даю ссылку:
mouseExtender

В архиве есть версия для 64-х бит, есть версия которая изменяет только логику скролла без всех остальных действий, и версия которая использует вместо четвёртой — правую кнопку мышки + Ctrl (но она только для когда посмотреть хочется, а четвёртой кнопки нету, качество работы не гарантируется).



ЗЫ: Постепенно буду доводить до относительного ума остальные проекты, которые в полуподвешенном состоянии и которыми пользуется 3-4 человека и выкладывать их сюда, чтобы пользовалось ими 5-6 .

пятница, 24 апреля 2009 г.

Прокачиваем мышь 2

Продолжение предыдущего поста.

Креатив продолжился, и я понял, что незадействованы было движение мыши, при нажатой четвёртой кнопке. После небольшого brainstorm'а, оказалось что это действие замечательно подходит для перетаскивания окон. За любую часть! Без захвата фокуса!

Другими словами, сидите вы работаете, сзади торчит окно, и хотите вы его подвинуть, чтобы увидеть нужную информацию, но переключаться с текущего не хочется. Зажимаете четвёртую кнопку на том окне, и тащите его куда надо. Красота.

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

Из интересных моментов при написании данной программы, было замечено, что некоторые программы не реагируют на команду закрытия (WM_CLOSE), зато реагируют на команду вида "тебе на крестик нажали" (WM_SYSCOMMAND), даже если у них нет крестика.


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

среда, 22 апреля 2009 г.

Прокачиваем мышь

Давно я не писал тут, ну да ладно. Не до умных технических постов было. А тут появился повод.

Повод случился вчера, когда я решил поправить функциональность стандартных драйверов Майкрософта для мышки. Вообще, на это всё меня натолкнула программа моего коллеги Vista Keys Extender. Программа весьма интересная, наверняка кому-нить будет полезная, ибо позволяет управлять окнами с клавиатуры "как в семёрке".

Но я для управления окнами уже давно использую мышку. А именно, одну из боковых кнопок (которая по дефолту "Back") переназначаю на сворачивание окна. Весьма удобная вещь для меня, — посмотрел окно, мгновенно свернул, пошёл работать дальше. Очень полезно для всякой почты/миранды и прочего, чего не требуется для постоянной работы, а является своего рода "попапами".

В стандартных драйверах мне сильно не нравились две вещи:

  • Сворачивается активное окно, а не то, над которым мышка
  • Проблемы с программами, написанными на Delphi (там очень оригинальная концепция окон, из-за чего они сворачиваются совершенно безумно, как MDI).

Это я поправил, повесив собственный хук на нажатие данной кнопки, а дальше задумался. Собственно, почему кнопки мыши практически не используются как модификаторы? Т.е. нажатие одной, за редкими исключениями никак не влияет на другую? Дальше пошёл креатив, и появились следующие комбинации, начинающиеся с того, что нужно нажать четвёртую кнопку, и:

  • Отпустить: свернётся окно, находящееся под курсором
  • Покрутить колесо вниз: развёрнутое окно станет нормальным, нормальное — свернётся.
  • Покрутить колесо вверх: нормальное — развёрнется. Логично продолжить про свёрнутое, но его ведь нет . Так что нечему разворачиваться. Хотя в определённых ситуациях всё будет. Я постарался.
  • Нажать правую кнопку: свернутся все окна
  • Нажать левую: закроется текущее
  • Нажать среднюю: компьютер заблокируется

Дальше я ещё не придумал, завёл практически всё что можно на данную функцию. Конечно, остался ещё горизонтальный скроллинг, который можно завести на сдвиг окон, но он встроен только в Висту. А в XP он эмулируется драйверами. Т.е. работать будет не везде. Правда лучше чем ничего, надо будет это ещё обдумать.  

К чему я написал весь этот пост? Ну конечно же, похвастаться, как же без этого. Но также хочу обратить внимание на то, что была бы идея, а реализовать её можно просто и получить от этого удовольствие и удобство. Да и то, что мышка совершенно не используется по максимуму. На всё это у меня ушло всего пара часов, не больше. Часть времени при этом я просто потратил на идеи, а не на написание кода. Но за два часа сделать полезную, хотя бы для себя, вещь — это уже хорошо.


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

пятница, 20 марта 2009 г.

Немного расчётов про Оперу

По статистике в мире доля Оперы 0.7%. В России 31%.

Берём калькулятор в руки и считаем. Получаем, что если Оперой пользуются только в России, то в России находится всего 2.2% пользователей всего интернета.

Берём статистику, например из Википедии. Получаем, что пользователей интернета в России 2.4% от общего количества. Получаем маленькую нестыковочку. 

Ещё раз в цифрах. В России пользуются Оперой 38 000 000 * 31% = 12 920 000 человек. В мире же пользуются Оперой "всего" 1 581 571 589 * 0.7% = 11 071 000.

Другими словами, в России есть почти 2 млн. человек, которые пользуются двумя Операми, и это с учётом того, что больше в мире ей никто не пользуется.

Сдаётся мне, что кто-то пизд лукавит в статистике. И я очень сомневаюсь, что это делают в России.

среда, 18 марта 2009 г.

Opera Turbo

Ну вот, стоило сделать свою версию сжимающей прокси (кстати, большинство удалось побороть за 10 минут, оказалось, что была бага, которую я правил-правил и не доправил), как норвежцы прочитали мой пост и сделали Opera Turbo.

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

Вообще, думаю что в Опере нашли ту самую killing-feature, которая позволит им прорекламироваться. Не думаю, что кто-то ещё сможет провернуть подобное. Возможно только Гугл с хромом, но не думаю, что им это нужно будет.




Эх, чтобы ещё такого сделать, чтобы в Опере тут же реализовали в 10 раз лучше...

пятница, 6 марта 2009 г.

Proxy

Жизнь течёт, изменяется, но по-прежнему сохраняется потребность в проксе, хотя казалось бы, интернет шустреет, и зачем оно таки надо?  

Достаточно давно, когда интернет у меня был практически только по диалапу (на работе, правда более или менее приличный, но не шустрый), я написал какую-то безумную проксю с совершенно извращённым кешированием. А именно, она кешировала все картинки намертво, CSS и JavaScript, вроде бы тоже. Страничики тоже кешировались, но слава богу обновлялись, иногда.  Как результат, было удобно смотреть сайты в браузере без интернета (ибо раз нельзя достучаться, результат выдавался из кеша), да и трафик был слегка меньше.

Естественно, всё слегка глючило, кеш портился, да много чего было. Но тогда я разобрался в принципах работы HTTP через прокси, написал свою файловую систему для кеша, проработал механизмы блокировки URL'ов с баннерами. Часть из всего этого пригодилась в дальнейших проектах. Да и урощённый движок прокси тоже активно использовался в одном из них.

На этом можно было бы и закончить, но совершенно недавно я понял, что таки старые наработки ещё пригодятся. Дело в том, что интернет дома развился до неузнаваемости, у меня появился отдельный компьютер, который является сервером и круглосуточно сидит в сети и делает своё маленькое грязное дело.  На работе же, с интернетом всё не так радужно. В результате, после подкинутой идеи, я за пару часиков практически с нуля (используя старые наработки в качестве напоминалок, как надо и как не надо делать) написал сжимающий прокси. Т.е. идея совершенно банальная: на работе есть прокси "клиент", который связывается с прокси "сервером" отдавая ему запросы и получая ответы (которые уже "сервер" скачивает из интернета). И вот эта передача уже идёт запакованная.

Потом, конечно, пошли доработки, в которых я выяснил, что встроенное в .NET сжатие GZip — это унылое говно, которое использовать нужно только по необходимости. В других же случаях гораздо лучше использовать #ziplib, мало того, что жмёт на порядок лучше, так ещё и работает быстрее! Кто там говорил, что в Майкрософте воруют код? Да ничего подобного! Если бы они это делали, они бы не написали такой отстой. Сжатие BZip2 было реализовано, но исключено по причине того, что оно раз в 10 медленнее GZip (точнее Deflate, но это уже тонкости структуры результирующего потока), а результаты в большинстве случаев не лучше. LZMA (7z) — результаты давал ненамного лучше, то скорость у него вообще отвратительная. Были ещё варианты сжатия по заранее заданному словарю, но пока на них забил из-за сложностей в реализации (хотя прирост сжатия должен быть весьма и весьма хорош). Добавил простенькое кеширование, чтобы не перегружать заново некоторые страницы (они реально перегружаются, но если результат такой же, то он не отправляется). Также сделал повторное использование TCP-соединений, чтобы уменьшить их количество и соответственно трафик.

Результаты оказались в принципе достаточно неплохие. Сжатие в зависимости от условий использования вполне может составлять 50% (в принципе, при некоторых сценариях и все 35% от исходного объёма). Заодно выяснил, что некоторые серверы плюют на робкие попытки прокси попросить закрывать соединение после отсылки данных (пришлось закрывать самостоятельно). Ну и конечно, всё периодически глючит, как же без этого.

К чему я это пишу? А к тому, чтобы похвастаться, да и узнать, а вдруг кому-нибудь это будет интересно. Могу отдать, вплоть до исходников. Может и поправите ошибки.  Поэтому и не выкладываю программу сразу. Ибо реально есть ещё проблемы, с которыми можно жить, но лучше не стоит.

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

пятница, 27 февраля 2009 г.

Ribbon Calculator

Моей любимой шуткой про Windows 7 было то, что у неё калькулятор с ribbon-интерфейсом.  Это было почти правдой, с учётом того, что что  WordPad и Paint с ним, родимым. Но оказалось, что я был недалёк от истины, и таки есть проекты нужного калькулятора:Стырено с хабра.

воскресенье, 15 февраля 2009 г.

UltraBuffer

Это картинка из Nero. Интересная вещь. Эта картинка означает что включена особая технология, которая позволяет дополнительно кешировать данные. Вроде бы всё хорошо, но практически любому программисту понятно, что реализовать такую возможность можно за 10 минут (чтобы нарисовать картинку и поместить её на форму, понадобится больше времени, а чтобы добавить вкладку в настройки, ещё больше). Т.е. имеем, фичу, реализуемую за 10 минут, выпячиваемую напоказ, и заброшенную фиг знает сколько времени.

Что значит заброшенную? А то, что максимальный размер 80 мегабайт, и рекомендуется чтобы это было не более 40% оперативной памяти.  Т.е. максимальный объём этого "кеша" можно получить уже при 256 Мегабайтах оперативной памяти. Когда были такие компьютеры? А сколько сейчас  этой самой памяти ест Nero? И на сколько секунд хватит этого кеша, если случатся проблемы с чтением?

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

Вывод? А хрен его знает, какой вывод.  Странные они. Движутся в совершенно непонятном для меня направлении. Записать болванку — чёрт ногу сломит.  Я даже не вижу смысла воровать данный продукт (я пользуюсь бандловыми версиями).

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