Интересен проблем с USB флашка

Днес на моя началник в компанията в която работя му се наложи да копира файл 6 GB на флашка 8 GB обаче не успя :). Като ми каза се сетих, че файловете системи най- вероятни са различни т.е.  на флашките по подразбиране е FAT32, а на неговата система- Windows XP най- често хората слагат NTFS. Разцъках и видях, че на флашката може да се променя файловата система. Промених я и всичко се оправи. Единственото неудобствно е, че сега когато се извършва някакво действие с флашката трябва да бъде премахната ръчно чрез "safely remove hardware", а не както преди да става напълно автоматично (слагаш, вадиш и това е ) :).
Забелязах, че на български не видях добро обяснение на проблема и неговото решение и реших да напиша една малка публикация с доста снимки (снимките са от google.bg). Публикацията може да бъде намерена в kakvo.org: http://www.kakvo.org/statia/4/flashka-s-fajlova-sistema-ntfs

Надявам се статията да бъде полезна 🙂

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Оптимизиране на mysql таблицата на kakvo.org

Вчера посещенията на kakvo.org  надхвърлиха 11 000 и машината клекна. Клекна до толкова, че mysqld и apache2 заеха 100% и дори не можеш да се логнеш в машината нормално, а след известно време(20 сек.). За целта първата и най- основна част от решаването на този проблем е оптимизирането на mysql и apache2. След няколко огледа и мъки в натоварената машина забелязах, че полетата за "превод от" и "превод на" са тип "text" и не са индекси. В този случай когато се търси конкретен превод със заявка "… where превод от='търсен превод' " отнема 1.2 сек. и сериозно натоварва машината. Мислех 100 часа 😛 и реших да добавя едно поле "превод_md5" char(32) в което да пиша md5 на "превод от" и което ще бъде index. По този начин когато се търси превод не се изпълнява старата заявка където се търси самият превод, а новата в която се търси md5 на превода. Благодарение на уникалните и индексирани md5 хешове на таблицата, заявките се оптимизираха до заветните 00.00 сек. за изпълнение, а употребата на MySQL падна до 10%. Сега машината е във война с племето на Apache, но пък за сметка на това е в съюз със ордена на MySQL. Започвам да мисля още 100 часа как да подобря дипломатическите отношения на машината с племето на Apache.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Кратък стих :) за оптимизиране на apache2

Наложи ми се днес да оптимизирам една машинка, че доста се понатовари. Ето примерни стойности:
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
StartServers 10
MinSpareServers 10
MaxSpareServers 15
MaxClients 200
MaxRequestsPerChild 1000

С новите стойности от 20% cpu падна на 3%.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Конвертиране на mysql таблица от MyISAM към InnoDB

Днес реших да прехвърля една база от MyISAM в InnoDB и при прехвърляното получих следната грешка:
mysql> alter table pcdict_words ENGINE = InnoDB;
ERROR 1214 (HY000): The used table type doesn't support FULLTEXT indexes

Това се получава защото в таблицата имам няколко индекса "Fulltext". Преди да прехвърлим
към InnoDB трябва да видим които са Fulltext индексите и да ги премахнем. За да видим индексите се изпълнява
следната команда:
mysql> SHOW CREATE TABLE pcdict_words\G
*************************** 1. row ***************************
Table: pcdict_words
Create Table: CREATE TABLE `pcdict_words` (

FULLTEXT KEY `worde` (`a`),
FULLTEXT KEY `description` (`d`),

) ENGINE=MyISAM AUTO_INCREMENT=3217 DEFAULT CHARSET=cp1251
1 row in set (0.00 sec)

Сега ще премахнем двата индекса Fulltext със следните команди:
alter table pcdict_words drop index `word`;
alter table pcdict_words drop index `description`;

Сега отново конвертираме от MyIsam към InnoDB :
mysql> alter table pcdict_words ENGINE = InnoDB;
Query OK, 3203 rows affected (0.54 sec)
Records: 3203  Duplicates: 0  Warnings: 0

Voila 🙂

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Създаване на PDF с кирилица от php като входа е html

Идеята е даден текст и таблица да бъдат съхранени в pdf . За целта използвам fpdf (http://fpdf.org/) и всичко е наред, но една част от задачата е информацията която ще се вкарва да бъде HTML т.е. пример "<table><tr><td>test</td><td>test1</td></tr></table>" Така вместо да се създава pdf файла на по- ниско ниво се използва едно допълнито апи html2pdf -> http://html2pdf.spipu.net/ . Всичко супер, но реших да ползвам cyrillic text на cp1251 енкодинг и имаше проблем. Поиграх с html2pdf,  но нищо не се получи тогава реших ръчно да си добавя кирилизирани фотнове.  Преди да се добавят трябва да бъдат създадени като се ползва една тулка: ttf2pt1 пример "ttf2pt1 -a times.ttf times" и след това да вкарвате генерирания файл "times.afm" в DIR "makefont" и вътре в makefont.php изпълнявате създаването на фонта за html2pdf или пример "MakeFont('times.ttf','times.afm','cp1251');". След това се създават "times.php и times.z" като тези фонтове ги добавяте в DIR ../font/ .  След това трябва да ги добавите ръчно и да ги използвате за поставената цел 🙂

Редактирам по- долния файл. Ръчно поставям:

Файл: html2pdf/html2pdf.class.php

Преди:

function AddFont($family, $style=", $file=")
{
$this->pdf->AddFont($family, $style, $file);
}
След:

function AddFont($family, $style=", $file=")
{
$this->pdf->AddFont($family, $style, $file);
$this->pdf->AddFont('times',",'times.php');
$this->pdf->AddFont('times','B','timesb.php');
$this->pdf->AddFont('times','I','timesi.php');
$this->pdf->AddFont('times','BI','timesbi.php');
}

Сега един html файл мога с един ред да го направя pdf и по- конкретно на енкодинг cp1251. Идеята е лесно и бързо създаване на отчети, генериране на фактури, договори и други документи.

Пример за html файл -> pdf:
<?php

echo "<table style='width:100%;'><tr><td style='width:50%'><img src='images/test/logo_tuv.png' align='left'></td><td style='width:50%'><img src='images/test/logo_nikosltd.png' align='right'></td></tr></table><div style='font-family:comic;'>Тест -1251 :)</div>";

$content = ob_get_clean();
require_once(dirname(__FILE__).'/include/html2pdf/html2pdf.class.php');
$html2pdf = new HTML2PDF('P','A4','en');
$html2pdf->AddFont('times',",'times.php');
$html2pdf->WriteHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output();
?>

Пример: Имаше голяма заинтересованост за пример на тази публикация и затова ето го и него: Пример

PS: Междо другото докато цъках с това fpdf забелязах, че и Joomla го ползват (просто информативно).

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Купони за намаление в Godaddy.com

Днес получих един email от Godaddy с промоционален код или купон за намаление 10% в Godaddy. Купона е: " gdbb994" . Аз лично ползвам и един друг които ми изпратиха когато се записах в maillist-а им. Кода е "welcome10" и отново предоставя намаление от 10%.

Ето снимка :

Купони за намаление в Godaddy.com
Купони за намаление в Godaddy.com
VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Очевидно Wisdom.bg са коректни

Преди време или по- точно през юли 2008 година започнах да ползвам услугите на Wisdom.bg.  Главната идея беше да се тества възможността за внедряване на системата за смс разплащан в kakvo.org. От месец Юли до месец Септември направих необходимата сумата за изплащане- 50,52 лв. и на 01.11.2008 година реших да извършва изплащане на сумата. През месец Октомври не беше възможно за изплащане понеже плащането е с един месец назад заради "предварителна сума, предстои начисляване на фрауд" и още един месец забавяне заради самото изплащане на сумата, т.е. ако започнете кампания от 1 юли до 31 август ще можете да си получите сумата в най- добрия случай през месец октомври защото докато тече месец септември се начислява фрауд за месец август и реалното плащане е през октомври. Друг важен факт е, че ако имате сума за изплащане: 50.52 лв. и сте физическо лице ще ви бъде спрян процент(~10%) т.е. реално ще получите: 42,94 лв. без данък.

Крайното мнение е, че Wisdom.bg са коректни с отчитането на броя смс-и и извършени разплащания, но за да си получите паричките трябва да имате търпение.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Firefox забива когато затворите вече отворен pdf файл

Случвало ли ви се е да ви забие Firfox когато отворите един pdf и после решите да го затворите.  Днес реших да опиша с няколко изречения как се решава този "проблем". Укажете pdf да се изтегли и после отвори с Acrobat вместо да ползва Acrobat in Firefox :

Меню: Tools-> Options->Applications
Навсякъде в секция "Content type" където е "Adobe Acrobat *" трябва за action да укажете "Use Adobe Acrobat 6.0/7.0.."

Ето снимка:

Настройки за отваряне на pdf
Настройки за отваряне на pdf

И Firefox вече не забива.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Вашият Google Calendar и как да получавате БЕЗПЛАТНО sms за всяко събитие

Днес във връзка с един приятел Biks които поиска мнения за негов нов проект един съфорумец от webmasterbg.org [wbg] спомена интереснa възможност в Google Calendar.

Както се досещат всички в Google Calendar може да описвате своите събития и като цяло да го ползвате за органайзер. Методите за известяване са следните: email,popup прозорец и тук идва интересното "чрез sms" т.е. ако имате известие за предстоящо събитие(по подразбиране е 10 мин преди събитието) получавате SMS с напомняне.
Условията за ползване на тази услуга са да бъдете регистрирани в Google Calendar и да добавите своя gsm номер. След като го добавите ще получите потвърдителен код с които се идентифицирате. Следващото и последно нещо което трябва да направите е да укажете методите, чрез които искате да  бъдете известявани т.е. да добавите и sms известяване. Тествано е на mtel.

Направих тест дали изпраща sms и го получих до 5 секунди след popup-a които излиза. Съобщенията също поддържат и кирилица.

Много интересна услуга позволяваща да се използва много сериозен спектър от идеи.

PS: Умишлено в заглавието на публикацията съм написал с големи букви "БЕЗПЛАТНО" за да предизвика внимание. Все пак БЕЗПЛАТНО е дума която кара на повечето хора да им греят очичките като звездици. Не пиша блога за хората, но взимам впредвид факта, че и други хора го четат.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Добавих още един банер на kakvo.org от easytrader- Част Втора

Това е част втора на предната публикация за новия банер на kakvo.org (Добавих още един банер на kakvo.org от easytrader).
Статистиката показва, че (втората статистика е за един ден, не ми се чакат три дни)
1. Старо положение- средно по 80- 110 клика на ден
2. Ново положение- средно по 200 клика на ден.

Очевидно и логично е по принцип да има и има успех. Сега ще пробвам още нещо, а именно да добавя един хоризонтален банер които да излиза само при превод на текст. Този тест ще бъде минимум за 3 дни. Хайде след няколко дни ще коментирам какви са наблюденията ми.

Снимка на новите банери в kakvo.org- Тест N1 и N
Снимка на новите банери в kakvo.org- Тест N1 и N2
VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Личен Блог на Мартин Петров