воскресенье, 28 сентября 2008 г.

Японский::Хирагана

Оптимисты учат английский.
Пессимисты зубрят китайский.
А реалисты осваивают автомат Калашникова...
И только японский... изучают для души!

Хира́гана (яп. 平仮名) — японская слоговая азбука, одна из составляющих японской письменности наряду с катаканой, кандзи, арабскими цифрами и ромадзи (латинским алфавитом). Хирагана и катакана вместе составляют систему каны, в которой один символ выражает одну мору. Знак каны может передавать гласный звук (например, а あ); сочетание согласного с последующей гласной (например, та た), либо назальный сонант н ん, который, в зависимости от контекста, может звучать как русские н, м, английский ng (IPA ŋ) или как французские назальные гласные.

Полезные ссылки в порядке уменьшения релевантности:
1. http://www.komi.com/japanese/
2. http://kanji.dersu.ru
3. http://nihongo.aikidoka.ru/
Словари: Yarxi и Jardic
Незаменимое: http://translate.google.ru
Читать дальше

воскресенье, 21 сентября 2008 г.

Kalyway MAC OS X 10.5.5 Update

У меня сейчас стоит Kalyway 10.5.3 Update на Kalyway 10.5.2 Intel.
Для последнего iPhone SDK for iPhone OS 2.1 (9M2517) (1.38 GB),
нужна система не ниже MAC OS X 10.5.4 . . .

1. Скачиваем MAC OS X 10.5.5 Combo Update(601MB)

2. Запускаем Terminal.app, пишу команды:
sudo -s
*Ввожу пароль*
while sleep 1; do rm -rf /System/Library/Extensions/AppleIntelCPUPowerManagement.kext; done

Консоль оставляем открытой.

3. Начинаем устанавливать скачанный MacOSXUpdCombo10.5.5.dmg (610MB) После окончания установки НЕ НАЖИМАЕМ перезагрузить.

4. В консоли нажимаем Ctrl+C для остановки цикла, а затем открываем файл "/System/InstallAtStartup/scripts/1" в текстовом редакторе. Находим там строку "/System/Library/Extensions/Dont Steal Mac OS X.kext" и заменяем ее на "/System/Library/Extensions/dsmos.kext". Сохраняем и жмём на перезагрузку в апдэйтере.

5. При первом запуске система не дойдет до GUI (графической оболочки), что-то поделает и перезагрузится. Во второй раз запускайте с параметром "-v". После того, как вы увидите рабочий стол, можно, для профилактики, обновить кеш фреймворков, в консоли пишем: "sudo update_prebinding -debug -force -root /"

У меня после обновления перестали работать тачпад, клаватура и сетевая карта. Щас вот ищу необходимые дрова . . .

1) Починил работу Marvell Yukon 88E8055
"IOPCISecondaryMath" = "0x10c11734"
2) PS/2 тачпад и клавиатуру тоже починил с помощью архива:
http://rapidshare.com/files/147454425/PS2_Batt_Working.zip.html
(целый день искал его . . . в итоге через бут двд права проставлял)

Читать дальше

пятница, 12 сентября 2008 г.

Загадка про сумму и произведение двух чисел.

Загадка:
Некто загадал двум мудрецам два натуральных числа, больших 1, сумма которых меньше 100. Мудрецу "С" Некто сообщил сумму загаданных чисел, мудрецу "П" - произведение.
Далее произошел следующий диалог:
а) "П": Я не знаю, что это за числа.
б) "С": Я заранее знал, что ты не знаешь, что это за числа.
в) "П": Теперь я знаю, что это за числа.
г) "С": Тогда и я знаю, что это за числа.

Какие числа загадал некто?
Читать дальше

четверг, 4 сентября 2008 г.

Оптимизация настроек Mozilla Firefox

Последние 4 года я пользуюсь браузером Mozilla Firefox, он меня полностью устраивает в плане скорости, удобности и потребления памяти. Но, случается, ни с того, ни с сего памяти он жрёт ОгОгО((( Бывает метров по 200-300, а то и более. Благодаря гибкости Firefox в его настройках возможно снизить потребление памяти и увеличить скорость работы на столько, на сколько это возможно.

1. Снизить поедание RAM-а, который используется для кэширования:
* Набрать “about:config” в адресной строке Firefox
* “browser.sessionhistory.max_total_viewer” = “0″

2. Увеличить скорость загрузки страницы:
* Набрать “about:config” в адресной строке Firefox
* “network.http.pipelining” = “true”
* “network.http.proxy.pipelining” = “true”
* “network.http.pipelining.maxrequests” = “30″ (30 запросов за раз)
* Создать New->Integer: “nglayout.initialpaint.delay” = “0″
* Создать New->Boolean: “network.dns.disableIPv6″ = “false”
* “content.notify.backoffcount” = “5″
* “plugin.expose_full_path” = “true”
* “ui.submenuDelay” = “0″ (ноль)

3. Снизить поедание RAM-а до 10МБ когда Firefox свёрнут:
* Набрать “about:config” в адресной строке Firefox
* Создать New->Boolean: “config.trim_on_minimize” = “true”
* Перезагрузить Firefox

Читать дальше

вторник, 2 сентября 2008 г.

Конвертер систем счисления

Решил написать простенькую программку - конвертер чисел в различные системы счисления. Скачать архив с программой и её и исходниками можно тут: QBase_sources.rar(10.4Кб). Сама программа написана на C++ с использованием кроссплатформенной графической библиотеки Qt.


Весь программный код описан ниже.

#include <QtGui/QApplication>
#include <QtGui/QMainWindow>
#include <QComboBox>
#include <QLineEdit>
#include <QHBoxLayout>
#include <QVBoxLayout>

class QBase : public QWidget
{
  Q_OBJECT
private:
  QComboBox *m_baseFrom, *m_baseTo;
  QLineEdit *m_inputNumber, *m_outputNumber;
public:
  QBase(QWidget *parent = 0, Qt::WFlags flags = 0);
  ~QBase();
private slots:
  void convert(const QString & text);
  void toConvert();
};

QBase::QBase(QWidget *parent, Qt::WFlags flags)
  : QWidget(parent, flags)
{
  QHBoxLayout *mainLayout = new QHBoxLayout(this);
  QVBoxLayout *leftLayout = new QVBoxLayout;
  QVBoxLayout *rightLayout = new QVBoxLayout;
  mainLayout->addLayout(leftLayout);
  mainLayout->addLayout(rightLayout);

  m_baseFrom = new QComboBox;
  leftLayout->addWidget(m_baseFrom);
  for (int i=2; i<=10; i++)
     m_baseFrom->addItem(QString("%1").arg(i));
  m_baseFrom->addItem("16");
  m_baseFrom->setCurrentIndex(8);

  m_baseTo = new QComboBox;
  rightLayout->addWidget(m_baseTo);
  for (int i=2; i<=10; i++)
     m_baseTo->addItem(QString("%1").arg(i));
  m_baseTo->addItem("16");
  m_baseTo->setCurrentIndex(9);

  m_inputNumber = new QLineEdit;
  leftLayout->addWidget(m_inputNumber);

  m_outputNumber = new QLineEdit;
  rightLayout->addWidget(m_outputNumber);
  m_outputNumber->setReadOnly(true);

  connect( m_inputNumber, SIGNAL(textChanged(QString)),
            this, SLOT(convert(QString)) );
  connect( m_baseFrom, SIGNAL(currentIndexChanged(int)),
            this, SLOT(toConvert()) );
  connect( m_baseTo, SIGNAL(currentIndexChanged(int)),
            this, SLOT(toConvert()) );

  m_inputNumber->setFocus(Qt::OtherFocusReason);
  setTabOrder(m_inputNumber, m_baseFrom);
  setTabOrder(m_baseFrom, m_baseTo);
  m_outputNumber->setFocusPolicy(Qt::NoFocus);
}

QBase::~QBase() {
  delete m_baseFrom;
  delete m_baseTo;
  delete m_inputNumber;
  delete m_outputNumber;
}

void QBase::convert(const QString & text) {
  bool b;
  int baseFrom = m_baseFrom->currentText().toInt(&b,10);
  int baseTo = m_baseTo->currentText().toInt(&b,10);
  QString str = QString("%1").arg(text.toInt(&b,baseFrom),0,baseTo);

  if (!m_inputNumber->text().length())
     m_outputNumber->setText("");
  else if (!b || (text[0]=='-') || (text[0]=='+'))
     m_outputNumber->setText("Invalid number");
  else
     m_outputNumber->setText(str);
}

void QBase::toConvert() {
  convert(m_inputNumber->text());
}

int main(int argc, char *argv[]) {
  QApplication a(argc, argv);
  QBase w;
  w.show();
  a.connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
  return a.exec();
}


* This source code was highlighted with Source Code Highlighter.


Если установлен интегратор Qt в MicroSoft Visual Studio, то распакуйте исходники из архива в одну папку, запустите Visual Studio и в меню выберите пункт "Qt"->"Open Solution from .pro File" и укажите путь к файлу QBase.pro. В этом случае Visual Studio сама создаст проект.


Читать дальше

Моддинг Win+R

Сегодня сделал небольшой моддинг своей винды. Модернизировал диалоговое окошко "Пуск->Выполнить...", также известное как Win+R.


Сделал это следующим образом:
1) Открыл файл c:\windows\system32\shell32.dll в программе Resource Hacker. Выбрал ресурс Shell32.dll:\Dialog\1003\1049 и поменял в нём код:
1003 DIALOGEX 0, 0, 227, 95
STYLE DS_FIXEDSYS | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Запуск программы"
LANGUAGE LANG_RUSSIAN, 0x1
FONT 8, "MS Shell Dlg"
{
CONTROL 160, 12297, STATIC, SS_ICON | WS_CHILD | WS_VISIBLE, 7, 11, 18, 20
CONTROL "Введите имя программы, папки, документа или ресурса Интернета, и Windows откроет их.", 12289, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 42, 11, 182, 18
CONTROL "&Открыть:", 12305, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 7, 39, 32, 8
CONTROL "", 12298, COMBOBOX, CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_DISABLENOSCROLL | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 42, 37, 177, 100
CONTROL "Запустить в отдельной области &памяти", 12306, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_TABSTOP, 42, 54, 183, 10
CONTROL "ОК", 1, BUTTON, BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 62, 70, 50, 14
CONTROL "Отмена", 2, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 116, 70, 50, 14
CONTROL "Об&зор...", 12288, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 170, 70, 50, 14
}

на код:
1003 DIALOGEX 0, 0, 237, 110
STYLE DS_FIXEDSYS | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Запуск программы"
LANGUAGE LANG_RUSSIAN, 0x1
FONT 8, "MS Shell Dlg"
{
CONTROL "\"taskmgr\" - Диспетчер задач\n\"regedit\" - Редактор реестра\n\"msconfig\" - Настройка системы\n\"services.msc\" - Список сервисов\n\"dcomcnfg\" - Служба компонентов\n\"compmgmt.msc\" - Управление ПК\n\"devmgmt.msc\" - Диспетчер утр-в\n\"wupdmgr\" - Обновление системы", 12289, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 5, 3, 118, 65
CONTROL "\"dxdiag\" - Ср-во диагностики\n\"eventvwr.msc\" - События\n\"dfrg.msc\" - Дефрагментация\n\"fsquirt\" - Bluetooth manager\n\"shutdown -a\" - Не выключать\n\"charmap\" - Таблица символов\n\"osk\" - Экранная клавиатура\n\"iexpress\" - IExpress 2.0", 12289, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 129, 3, 104, 65
CONTROL "&Открыть:", 12305, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 17, 74, 32, 8
CONTROL "", 12298, COMBOBOX, CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_DISABLENOSCROLL | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 52, 72, 177, 100
CONTROL "З", 12306, BUTTON, BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 24, 90, 20, 10
CONTROL "ОК", 1, BUTTON, BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 72, 90, 50, 14
CONTROL "Отмена", 2, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 126, 90, 50, 14
CONTROL "Об&зор...", 12288, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 180, 90, 50, 14
}

2) Действуя аналогично, изменил значения в файле c:\windows\system32\taskmgr.exe. Поменял значение строки taskmgr:\String Table\626\1049:
10002,  "Введите имя программы, папки, документа или ресурса Интернета, и Windows откроет их."

заменил на:
10002,  "\"taskmgr\" - Диспетчер задач\n\"regedit\" - Редактор реестра\n\"msconfig\" - Настройка системы\n\"services.msc\" - Список сервисов\n\"dcomcnfg\" - Служба компонентов\n\"compmgmt.msc\" - Управление ПК\n\"devmgmt.msc\" - Диспетчер утр-в\n\"wupdmgr\" - Обновление системы"

3) Загрузился с Live-CD (любая другая ОС) и подменил файлы c:\windows\system32\shell32.dll и c:\windows\system32\taskmgr.exe на новые, не забыв сделать резервные копии оригинальных файлов))

З.Ы.
И кстати, всё может вернуться назад когда вы обновите винду, а может и не вернуться . . .

Читать дальше

понедельник, 1 сентября 2008 г.

Первое сообщение

Сегодня, 1 сентября 2008 . . .
С началом нового учебного года решил завести этот блог. Ещё не знаю, что буду сюда писать. Но хочется что-нибудь полезное. Может это будут важные для меня новости, может какие-то программы, может просто ссылки. Жаль у гугла всё ещё нет файлового хранилища. Если нужно будет что-то выложить, наверно сделаю это на http://narod.yandex.ru/
Читать дальше