Valery's Mlog

Mindlog of a Freak

Archive for the ‘Windows’ Category

January 6th, 2012 by Valery Dachev

Bluetooth Mouse Problems in Windows 7

It’s been several years already since I bought my first Microsoft Bluetooth Notebook Mouse 5000 for my personal laptop (HP Compaq 8510w) and during all of this time it has been working flawlessly. Recently I decided to buy (the latest version of) the same mouse for my work laptop (HP ProBook 6550b) and that’s when the problems began – it used to stop working with or without being used, with old or new batteries, after a short or a long period – no pattern at all! The issue proved to be quite easy to fix but it took some time to solve. I hope this one will help save your laptop a few hits.
Read the rest of this entry »

June 22nd, 2011 by Valery Dachev

Prepare a USB Memory Stick to Install/Rescue Microsoft Windows 7

I wonder why Microsoft still haven’t made a tool to create a bootable USB memory stick from a Windows installation CD, especially in the netbooks era when having no CD-ROM device is quite normal. It’s my third time to install Microsoft Windows 7 from a USB memory stick and I guess I would need one if I need to boot Windows in rescue mode.

So here’s a note to myself on how to prepare a USB memory stick for installation quickly on Microsoft Windows…
Read the rest of this entry »

February 22nd, 2007 by Valery Dachev

MySQL: Reducing ibdata1

If you use the InnoDB storage engine for (some of) your MySQL tables, you’ve probably already came across a problem with its default configuration. As you may have noticed in your MySQL’s data directory (in Debian/Ubuntu – /var/lib/mysql) lies a file called ‘ibdata1′. It holds almost all the InnoDB data (it’s not a transaction log) of the MySQL instance and could get quite big. By default this file has a initial size of 10Mb and it automatically extends. Unfortunately, by design InnoDB data files cannot shrinked. That’s why DELETEs, TRUNCATEs, DROPs, etc. can’t will not reclaim the space used by the file. Instead any freed regions are marked as unused and can be used later. Theoretically speaking the file could reach the maximum size allowed by the filesystem if no limit is set in the my.cnf file (in Debian/Ubuntu it’s located in /etc/mysql/my.cnf). Guess what ? It’s not set by default. However you can configure your InnoDB engine as described MySQL’s Reference Manual. Additionally you can force the server to create an *.ibd for each newly created InnoDB table by using the ‘innodb_file_per_table‘ option (quite intuitive, huh ? :) ).

As mentioned above, you cannot shrink InnoDB data files. Additionally, you cannot make much changes in the settings of a InnoDB data file. So if you haven’t configured InnoDB properly right after the installation, you’ll probably have a pretty large ibdata1 file. There are three ways to reclaim your free space, but before doing so backup your whole MySQL data directory… just in case. And don’t forget to stop any services using MySQL databases.

In order to use the first two methods you should have a list of all InnoDB tables in your MySQL instance. You can easily create one if your MySQL version is 5.0+ by using the special database called ‘INFORMATION SCHEMA‘. Just invoke this query:

SELECT `TABLE_SCHEMA`,`TABLE_NAME` FROM TABLES WHERE ENGINE = ‘InnoDB’;

Changing Table Engines

  1. Invoke ‘ALTER TABLE `table_name` ENGINE=MyISAM‘ for each InnoDB table;
  2. Stop the MySQL server;
  3. Remove InnoDB data files;
  4. Make the appropriate changes in your my.cnf;
  5. Start the server again;
  6. Invoke ‘ALTER TABLE `table_name` ENGINE=InnoDB‘ for those tables again;

Note: Any foreign key information is lost when changing the engine to MyISAM. You should save the output of ‘SHOW CREATE TABLE `table_name`‘ for each of those tables and recreate the foreign keys manually. So, that method sucks ! :)

Dump InnoDB Tables

  1. Use mysqldump to dump all InnoDB tables, for example:

    mysqldump ––add-drop-table ––extended-insert ––disable-keys ––quick ‘db_name’ ––tables ‘tbl_name’ > ‘db_name.tbl_name.sql’

  2. Drop those tables using:

    SET FOREIGN_KEY_CHECKS=0;
    DROP TABLE db_name.tbl_name;
    DROP TABLE db_name1.tbl_name1;
    –– DROP other tables here…
    SET FOREIGN_KEY_CHECKS=1;

  3. Stop the MySQL server;
  4. Remove InnoDB data files;
  5. Make the appropriate changes in my.cnf;
  6. Start the MySQL server;
  7. Re-import the tables. You’d better get into the ‘mysql’ console and issue the following commands:

    SET FOREIGN_KEY_CHECKS=0;
    SOURCE db_name.tbl_name.sql;
    SOURCE db_name1.tbl_name1.sql;
    –– SOURCE other files here…
    SET FOREIGN_KEY_CHECKS=1;

Note: This method is quite tedious too as you have to keep track on all tables and all dumped files… Yeah, I don’t like it either.

Dump the Whole Database

In fact, this is the method I used to solve the problem. It requires much more space and time but it’s maybe the easiest one. So here it is:

  1. Dump all databases by calling:

    /usr/bin/mysqldump ––extended-insert ––all-databases ––add-drop-database ––disable-keys ––flush-privileges ––quick ––routines ––triggers > all-databases.sql

  2. Stop the MySQL server;
  3. Rename or remove (in case you’ve already backed it up) the MySQL data directory and create an empty one with the same name and permissions;
  4. Make the appropriate changes in my.cnf;
  5. Re-initialize the database with the following command (replace the ‘mysqld‘ with the login of the user your MySQL server runs as) (10x, Påven):

    sudo -u mysqld mysql_install_db

  6. Start the MySQL server;
  7. Get into the ‘mysql‘ console and type:

    SET FOREIGN_KEY_CHECKS=0;
    SOURCE all-databases.sql;
    SET FOREIGN_KEY_CHECKS=1;

  8. Restart the MySQL server. (10x, czaby)

At this point everything should be fine and you can test it by starting again the services that use MySQL. If not…

Troubleshoot Me :)

  1. Stop the MySQL server;
  2. Remove its data directory and put the backed up one (you’ve made a backup as mentioned above, haven’t you ?);
  3. Start the MySQL server again;
  4. Let me know what went wrong;

So… that’s it for today. Have fun ! :)

November 5th, 2006 by Valery Dachev

Chalga-Man

Благодарение на Julie Lerman (лектор на DevReach) разбрахме, че се издирва емблематичният български програмист Светлин “The Chalga-Man” Наков. След като е бил награден от президента на Република България, е забелязван и документиран нееднократно да пропива наградата и мята гюбеци под звуците на Манго Намбър Файв в някоя квартална кръчма, от където е докарал и прозвището си. Ако някой го забележи, да се обади незабавно в най-близката психиатрия. :P

April 16th, 2006 by Valery Dachev

Ден на Microsoft в СУ

Знаех си, че ще прибера поне някоя книжка от днешния семинар на Microsoft. Всъщност, освен с Assessing Network Security, се сдобих с Microsoft Visual Studio 2005 Professional Edition (наред с Standard Edition от предния семинар, който посетих), още едно копие на Microsoft SQL Server 2005 Standard Edition, както и още едно копие на MSDN Library. Така и не подариха един легален Windows XP ! :) За сметка на това си имам DVDта с февруарската бета-версия на Microsoft Windows Vista (за x86 и x64) и със spam-dvd с информация за Imagine Cup 2006. Имали бол, дали… :-P

Повечето лекции бяха зарибяващи. Снощи писах тук за AJAX и само в заключение споменах проекта Atlas (с който всъщност се запознах съвсем бегло преди няколко дни). Една от лекциите днес бе посветена на него. Очертава се той да бъде една голяма крачка за ASP.NET в посока Web 2.0. Учудваща лекота за работа и моментално превръщане на един съвсем обикновен сайт в значително по-интерактивен, при това без никакво познаване на JavaScript. Нещо подобно може да бъде намерено и сред компонентите на Telerik. Последните като че ли разучават възможностите за интегриране на Atlas в .NET Framework 2.0 имплементацията си…

Другата доста любопитна за мен лекция бе на Стефан Добрев и Деян Варчев посветена на LINQ – проект в ранен beta стадий, чиято цел е да унифицира и значително да олесни достъпа до данни съхранявани в обикновени колекции от обекти, SQL бази (DLinq), в XML файлове (XLinq)… Това става със значителни разширения в синтаксиса на C# и VB (както и компилаторите им). Част от нещата, които вероятно ще се появят в C# 3.0 и респективно в .NET Framework 3.0, са:

  • локални обекти от анонимен клас (зависещ от инициализацията на обекта);
  • разширяващи методи, които дават възможност за добавяне на статични методи към съществуващ клас, без той да бъде онаследяван;
  • ламбда-изрази;
  • инициализация на обекти и колекции без нужда от извикване на конструктор;
  • анонимни типове и възможност за създаването им с new;
  • масиви от имплицитно зададен тип (според инициализацията им);
  • не на последно място са query-изразите – SQL-подобни изрази за извличане на данни от различни източници;
  • неописаните в PDC 2005 Technology Preview изразни дървета;

Въобще множество нови заклинания оптимизиращи старите. Просто великолепно !

Иначе имаше представяне на възможностите на ISA Server 2006, Windows 2003, Windows Vista, WinFX… али-бали… всякакви неща, които (не мога да си изкривя душата) показват, че Microsoft дърпат напред. Този път нямаше запой ! :(

P.S. За пореден път оставам замислен за миродавността на аналогията между морското свинче и жената-програмист…

April 9th, 2006 by Valery Dachev

Windows XP and RDP Concurrent Connections

Бях си в Казанлък тези дни. Уви, само едната машина вкъщи взима Интернет по PPPoE и макар на същия switch да има още две машини (все вкъщи), се разразяват битки за компютър. Оказа се, че в моя случай Internet Connection Sharing не върши работа, тъй като настройките на машините се раздават от DHCP сървъра на доставчика и най-малкото ще стане мазао (да не говорим, че няма да се виждат и другите машини от мрежата). Мързеше ме да инсталирам външен софтуер от типа на WinRoute, WinProxy, WinМадафака и т.н.. За капак машината с Интернетя е laptop и е абсурд да си играя да търся USB мрежова карта. Накратко: “да са и*а и претенциозния”. Пък и не може например майка ми да работи ту на единия, ту на другия компютър и накрая да се чудиш кое къде е… Известно е принципно, че в Windows XP Professional (какъвто работи и на трите машини) може да работи само един потребител. Ако опита да влезе друг, сесията на първия се заключва. Чисто технически, не ми беше ясна причината двама души да не могат да работят едновременно, при положение, че явно е възможно в Small Business Server, който имаме в офиса.

След кратко ровичкане попаднах на този адрес. Старичко е, знам, но пък е полезно и не толкова известно. Накратко: оказах се прав – причината не е другаде, ами в EULA. Въпреки това от Microsoft са се изпуснали и в някакъв beta build на Service Pack 2 са изтървали версия на termsrv.dll, за който тези неща могат да бъдат конфигурирани. Хватката е той да бъде подменен. На адреса е описано как и е дадена за изтегляне съответната версия. За по-мързеливите, като мен, има и инсталатор, който да свърши черната работа. Има още малко, което трябва да се свърши (включване на “Fast User Switching” и редактиране на настройките с Group Policy Editor). Мързи ме да описвам цялата операция, след като я пише там… :) Междудругото, тези неща работят само за машини, които не са част от някой domain.

April 6th, 2006 by Valery Dachev

Link Prefetching

Разглеждах FAQ страницата за web-майстори на Google, когато попаднах на интересна технология наречена Link Prefetching, която Google използват. Накратко, тя дава възможност браузърът да бъде инструктиран да придърпа, когато не е зает, някои адреси, които има вероятност да бъдат посетени. Google го правят това за първите няколко резултата от извършеното търсене и в това има известна логика – докато разглеждам резултатите, дръпва някои от тях, цъкам и те се зареждат мигновено. Най-популярните браузъри, които го поддържат, са Firefox и Netscape 7.01+. Това може да се провери на този адрес.

Проблемът е, че опцията е включена по подразбиране във Firefox и може да изиграе много лоша шега на не малкото люде на трафик, а и на тези, които делят връзката си други хора (напр. в претрупан офис). Въпросът много кратко е дискутиран в страницата посветена на тази възможност и, лично на мен, аргументацията за включването и по подразбиране ми звучи меко казано нелепо. Доколкото тази функционалност активно се използва от Google, предварителното зареждане може да се извърши на всевъзможни сайтове. За такива потребители е препоръчително да изключат възможността. За съжаление най-лесният начин да стане това на този етап е да посетят адрес “about:config“, да намерят натройката network.prefetch-next и с двойно цъкане да променят стойността (последната колонка) от “true” на “false”. Друг вариант е инсталацията на едно от най-популярните разширение за Firefox напоследък – Fasterfox, в което тази настройка (и редица други) е изнесена (Tools -> Extensions -> Fasterfox -> Options -> Fasterfox -> Enable Enhances Prefetching).

UPDATE: Любопитно ми е, колко от pay-per-click системите проверяват за “X-moz: prefetch” хедър, защото това е един чудесен начин за симулиране на цъкания… :-P

October 6th, 2005 by Valery Dachev

Конфликт на портове

Симптомът:

Event Type:	Error
Event Source:	W3SVC
Event Category:	None
Event ID:	115
Date:		05.10.2005 ?.
Time:		23:01:48
User:		N/A
Computer:	EXODUS
Description:
The service could not bind instance 1.  The data is the error code.
For additional information specific to this message please visit the Microsoft Online Support site located at: http://www.microsoft.com/contentredirect.asp.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Data:
0000: 00002740

Източникът на това съобщение може да не е само W3SVR – понякога е и SMTPSVC. В първия случай някой от портовете на HTTP(S) server-а е зает (обикновено 80 или 443), а във втория – на SMTP (обикновено 25). Решението е да се засекат портовете, на които би трябвало да работи IIS, с тези, които се използват в момента. Последното може да се провери или с конзолния инструмент “netstat”, или с помощта на TcpView програмката (портовете маркирани като LISTENING). Единият вариант е да се човърка приложението, което ги използва, а другият – да се сменят портовете, на които би трябвало да използва IIS. При мен например проблемът беше със Skype и неговата (по неведоми причини включена) възможност да използва портовете 80 и 443 за входящи връзки.

October 6th, 2005 by Valery Dachev

Преинсталиране на COM+

Понякога се налага преинсталиране на COM+. Просто прави проблеми. Един от симптомите е гръм и трясък при опит при опит да се достъпи My Computer на Component Services snap-in в Microsoft Management Console. В Event Log изскача съобщение от типа на:

Event Type:	Error
Event Source:	Service Control Manager
Event Category:	None
Event ID:	7034
Date:		05.10.2005 г.
Time:		21:17:52
User:		N/A
Computer:	EXODUS
Description:
The COM+ System Application service terminated unexpectedly.  It has done this 5 time(s).

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

Та… как се решава този проблем: то типичния подход – преинсталация ! :) Информация как става това може да се намери тук и тук. При мен номерът мина. Мързи ме да превеждам…:)

September 29th, 2005 by Valery Dachev

IT Highlights

Отново нахвърляно…

Azureus. Наложи ми се тези дни да търся нещо в родните BitTorrent мрежи. Даже не помня какво. По принцип бягам от всякакви peer-to-peer хави. Някаква антипатия ме гони. Както и да е… това, което си намерих за Linux (а се оказа и за Windows) е Azureus. Написано на Java, свободно… чудесно просто. Снощи се присъединих към пиратското множество, като си изтеглих всички епизоди на “На всеки километър” (чието завръщане на екрана по някаква причина оплюват).

Proxifier. Нямам Интернет тия дни вкъщи по различни причини. Само достъп до HTTP прокси, върху което имам административен контрол. Отпуших му CONNECT заявките за всички портове. Остана само да прекарам нещата от там. Цъкам си по Windoze-а тия дни и нямам инсталирано локално прокси, през което да прекарам всички приложения (както съм направил под Linux), за да може само на едно да правя промяната. Тръгнах да карам приложение по приложение. Някои обаче не поддържат използване на HTTP прокси. След известно ръчкане из Интернет попаднах на Proxifier – прихваща всички изходящи връзки и ги прекарва от дадените прокси сървър(и) (SOCKS4/5, HTTP или HTTPS). Култ !

Дефрагментиране ? Абсолютно безуспешни опити – дефрагментацията запецва и до там. Ръчка нещо по диска, но никакъв ефект. Продължава да кърти даже известно време след спиране на самия дефрагментатор. Майната му. Записах към 20 диска и още ще има – освобождавам място и накрая ще изпразня диска – така ще го дефрагментирам.

.NET Framework. Вчера сериозно захапах Visual Studio-то. Разучавам C#, класовете в .NEТ framework, особено що се отнася до работата с бози от данни. Тръгнах даже персистентния клас, който ползвам в PHP приложенията си, да пренаписвам на C#, но DataGrids малко го обезсмислят. И все пак си е добро упражнение. Microsoft SharePoint Services 2003 нещо ми лазят по нервите. Днес ще се чете…

Switch to our mobile site