< HomePage
   <- Дневника

Архив за Юни, 2009

Понеделник, 15 Юни 2009
Кълнях се че няма да пиша софтуер, но отново пиша!!! НЕ на фрилансерите и фрилансерството!!!

Колкото и да се кълнях че няма повече да пиша какъвто и да е софтуер се оказа че не мога да си удържя на думата. Отново правя някакви напъни да пиша на PHP, и забелязвам че... нямам опит. Пиша много бавно, кода все едно че е лиснат с кофа по файловете. Няма стил. Прочетох 2 книги за защита на PHP кода от външни нападения и сега правя по 330 проверки от формите към базата, а след това от базата към апликейшъна, евентуално ако са ме ударили под кръста и са ми набили невалидни за апликейшъна данни.

Проблем!!! Голям проблем е това UTF-8!!! Толкова голям че ми изяжда 50% от времето за програмиране за да правя нещо в UTF-8 и да не се счупи кодировката!!! Само си представете среден или начинаеш хАмерикански програмист как програмира? Сяда на компютъра, няма да превключва на ден около 300 до 400 пъти клавиатурни подредби, няма да прави около 60-80 Backspace-а щото пише на "другия" език! След това няма да се занимава с кодировка на апликейщъна, на конекцията към базата данни и на самата база данни. Инсталирайте си LAMPP или WAMPP и да видите че веднага може правилно да пишете и обработвате "американски" език без никакви настройки. Абе на тях и BIG Mac-а им е биг...

Аййй сега да се преземим където сме, еле майко като почнат едни настройки, едно многобитово представяне на символи. То да беше само това ами ASCII символите в UTF-8 се представя еднобитово а кирилицата, китаицата са многобитови. Дето има един лаф:
- Като чуя за многоезикова поддръжка и се хващам за кубура...
То няма свършване!!!Хайде докато си оправите кодировките на различните взаимодействащи си софтуери не е кой знае какво. Но пак може да се забозите така яко че псувате като офчар, виждал съм женски които така псуват че не им излиза кирилицата че вий бедна фантазията за красноречието, то са майки, лели, бащи, чичовци и други, и то на български руски английски, и то мешано... Едно - имате MySQL или PosgreSQL, първо настройвате сървъра на UTF-8 а втората стъпка е когато правите базата и таблиците отново да са UTF-8!!! Трето и четвърто - настройвате PHP парсера на UTF-8 обаче не забравяйте да му кажете (това е четвъртото) транзакциите/конекциите към бабата данни да е UTF-8 щото много бързо у вас ще избуи каруцарксото в рода ви!!! Индианеца го настройвате на също на UTF-8. Опааа, не сме свършили, продължаваме!!! Казваме че HTML-а ни е UTF-8 . Ама това не е още края, трябва да си запишете файловете в UTF-8 без BOM. До тука привършваме с настройката на UTF-8 на уеб апликейшън, но пак може да сгомнясате всичко при FTP трансфера защото има text и binary mode трансфер. Абе програмист не се става от днес за утре!!!

Огнено-гневното ми изблогване е провокирано от възможността/невъзможността да реализирам едно действие под UTF-8 което под ASCII е елементарно!!! Защо е елементарно, 128 символа от ASCII на Американицата да ги обработвате с текущите около 400 до 600 функции за меляне на стрингове в PHP 5.2. От тях 20 до 30 функции са UTF-8 безпроблемни, останалите ще ви се изсерат като връбче на главата - без да се замислят.

Функция която изряpва стринг до определена дължина без да реже последната дума UTF-8 безопасна!!!

Функцията е реализирана на PHP 5.2 докато чакаме Ю-Те-еФ-ната версия 6. Значи имам стринг (гръцки, кирилица) и трябва да го огранича до 180 символа без да режа последната дума която е най-близо до 180 символ. Намерих функция от http://ov-consult.com/?p=40 която не реже последната дума

function short_text($text,$length) // Изпращат се два параметъра към функцията, текста и максималната дължина
{ 
	$maxTextLenght=$length;
	$aspace=" ";
	if(strlen($text) > $maxTextLenght ) 
	{
		$text = substr(trim($text),0,$maxTextLenght);
		$text = substr($text,0,strlen($text)-strpos(strrev($text),$aspace));
		$text = $text.'…'; // При наличие на текст по-дълъг зададен в $length, накрая ще се покаже това което сте декларирали тук
	}
	return $text;
}
Обаче ако подадете UTF-8 не работи!!!

Продължавам да търся и намирам на http://web-tourist.net/login/login/view.php?st=2473 в коментарите от 26th June, 15:02 на Plamenator следния код:

function excerpt( $feed, $length )
{
	if (mb_strlen($feed, 'UTF-8')>$length)
	{
		$feed = mb_substr($feed, 0, $length, 'UTF-8' ) . '...';
		return $feed;
	}
}
Почвам да чета и да се опитвам да заместя обикновенните функции с mb_ такива. И почвам, в изходната функция имам:
strlen - mb_strlen
substr - mb_substr
strrev - function utf8_strrev в коментарите на http://bg2.php.net/manual/en/function.strrev.php от дата 21-Dec-2006 06:38 на carmel.alex at gmail.com
strpos - mb_strpos - http://bg.php.net/mb_strpos
strlen - mb_strlen
substr - mb_substr
и ги заместваме упорито една след друга!!! Ето и самата function utf8_strrev:
function utf8_strrev($str, $reverse_numbers = true)
{
    $pattern = $reverse_numbers ? '/./us' : '/(\d+)?./us';
    preg_match_all($pattern, $str, $ar);
    return join('',array_reverse($ar[0]));
}
И като ги заместих една след друга в най-горната функция получих следния грозен код който се надявам че би трябвало да работи
function short_text($text,$length)
{
	$maxTextLenght=$length;
	$aspace=" ";
	if(mb_strlen($text, 'UTF-8') > $maxTextLenght ) 
	{
		$text = mb_substr($text, 0, $maxTextLenght, 'UTF-8');
		 preg_match_all('/./us', $text, $ar);
		$text1 = join('',array_reverse($ar[0]));
		
		$text = mb_substr($text, 0, mb_strlen($text, 'UTF-8')-mb_strpos($text1, $aspace, 0, 'UTF-8'), 'UTF-8');
		$text = $text.'...';
	}
	return $text;
}
и я извиквам с:
$des = trim($row["des"]);
$des = str_replace("\t", " ", $des);
$des = str_replace("\n", " ", $des);
$des = str_replace("\r", " ", $des);
if (empty($des))
{
	//echo "дескрипшъна е празен"; header ("Location: http://localhost:8101/"); echo "empty";
	exit;
}
if (!preg_match("#^[\s\-_,’.!?)(0-9A-Za-zА-Яа-я]+$#u", $des)) // !preg_match( "#^[- _0-9a-zа-я]+$#i",    !ereg("^[- _,.!0-9A-Za-zА-Яа-я]+$",
{
	//echo $des;
	//echo " грешка";
	exit;
}
var_dump($des); // дъмповете ми са за тестване
$des = short_text($des, 180);	
var_dump($des); // дъмповете ми са за тестване
print $des;
Фрилансер не може да го накарате да направи горното за 20 лева или 15$!!!

Function which cuts string to a certain length without cutting the last word - UTF-8 safe!!!

Function is implemented in PHP 5.2 while waiting for UTF-8 version 6 of PHP. So I have a string (Greek, Cyrillic, Chinese) and we have to limit to 180 characters, with no cut to the last word that is closest to 180 character. I found a function at http://ov-consult.com/?p=40 which not cut the last word

function short_text($text,$length) // Изпращат се два параметъра към функцията, текста и максималната дължина
{ 
	$maxTextLenght=$length;
	$aspace=" ";
	if(strlen($text) > $maxTextLenght ) 
	{
		$text = substr(trim($text),0,$maxTextLenght);
		$text = substr($text,0,strlen($text)-strpos(strrev($text),$aspace));
		$text = $text.'…'; // При наличие на текст по-дълъг зададен в $length, накрая ще се покаже това което сте декларирали тук
	}
	return $text;
}
However, if you submit the UTF-8 string it does not work!

Keep searching I found at http://web-tourist.net/login/login/view.php?st=2473 in comments from 26th June, 15:02 to Plamenator following code:
function excerpt( $feed, $length )
{
	if (mb_strlen($feed, 'UTF-8')>$length)
	{
		$feed = mb_substr($feed, 0, $length, 'UTF-8' ) . '...';
		return $feed;
	}
}
I started to read and try to replace the ordinary functions with same but mb_ functions:
strlen - mb_strlen
substr - mb_substr
strrev - function utf8_strrev in comments at http://bg2.php.net/manual/en/function.strrev.php from date 21-Dec-2006 06:38 of carmel.alex-at-gmail.com
strpos - mb_strpos - http://bg.php.net/mb_strpos
strlen - mb_strlen
substr - mb_substr
and replace them one after another hard! Here is the function itself utf8_strrev:
function utf8_strrev($str, $reverse_numbers = true)
{
    $pattern = $reverse_numbers ? '/./us' : '/(\d+)?./us';
    preg_match_all($pattern, $str, $ar);
    return join('',array_reverse($ar[0]));
}
And I replace them one after another in the top function! After that I made ugly code that hopefully should work:
function short_text($text,$length)
{
	$maxTextLenght=$length;
	$aspace=" ";
	if(mb_strlen($text, 'UTF-8') > $maxTextLenght ) 
	{
		$text = mb_substr($text, 0, $maxTextLenght, 'UTF-8');
		 preg_match_all('/./us', $text, $ar);
		$text1 = join('',array_reverse($ar[0]));
		
		$text = mb_substr($text, 0, mb_strlen($text, 'UTF-8')-mb_strpos($text1, $aspace, 0, 'UTF-8'), 'UTF-8');
		$text = $text.'...';
	}
	return $text;
}
And call function short_text with following code:
$des = trim($row["des"]);
$des = str_replace("\t", " ", $des);
$des = str_replace("\n", " ", $des);
$des = str_replace("\r", " ", $des);
if (empty($des))
{
	//echo "description is empty"; header ("Location: http://localhost:8101/"); echo "empty";
	exit;
}
if (!preg_match("#^[\s\-_,’.!?)(0-9A-Za-zА-Яа-я]+$#u", $des)) // !preg_match( "#^[- _0-9a-zа-я]+$#i",    !ereg("^[- _,.!0-9A-Za-zА-Яа-я]+$",
{
	//echo $des;
	//echo " error";
	exit;
}
var_dump($des); // dump for test, you MUST remove it!
$des = short_text($des, 180);	
var_dump($des); // dump for test, you MUST remove it!
print $des;
Frilanser can not make this above for 20 Euro or $ 15!

Дневник / Blog: http://www.karatebulgaria.com/alex
За коментари / For comments: http://www.karatebulgaria.com/alex/addcomment.php/2009-06-15#add

[ Добави коментар ]
Събота, 20 Юни 2009
Търся софтуер за генериране на (html форми, php обработката им и пъхане на данните в database)

Поздрави на всички съботно

Питането ми е такова, търся софтуер за rapid или step by step за: генериране на "html форми, php обработката им и пъхане на данните в database"

Досега съм ползвал няколко пъти http://www.webformgenerator.com/ което е JAVA приложение но има ограничения че не може да join-ва и да прави подзаявки (или аз не знам как става стози софт).

Предварително ви благодаря за мненията ви.

Дневник: http://www.karatebulgaria.com/alex
За коментари: http://www.karatebulgaria.com/alex/addcomment.php/2009-06-20#add

[ Коментари: 1 / Добави коментар ]
Коментари

Привет,

това което ще ти свърши работа е Qcube - http://qcu.be. - заслужава си един, че и два погледа :)

Написа Nikolai (email) на 07-Mar-2010 14:10


Понеделник, 22 Юни 2009
TIOBE Programming Community Index for June 2009

Заглавито е директно преписано от http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html с подзаглавие: JavaScript никога не е бил толкова популярен.

TIOBE - е съставила Юнска класация на популярността на езиците за програмиране. Таз класация е обновявана ежемесечно и се основава на броя на професионалните програмисти, организирани курсове, доставчици на услуги (разбирай програмистки услуги). Най-популярните търсачки като Google, AltaVista, Yahoo!, Wikipedia и YouTube са използвани за калкулиране на оценките в класацията. Забележете че класацията на TIOBE не е за най-добрия език за програмиране или език на който най-много редове код са написани.

Класацията може да бъде използвана за да се провери дали вашите програмистки способности са все още актуални или да вземете стратегическо решение за това какъв език да използвате ако започвате да пишете нов софтуер. Ха, стига толкова съм преписвал, ето ви класацията:

Позиция
Юни 2009
Позиция
Юни 2008
Изменение на позициятаЕзик за програмиранеРейтинг
Юни 2009
Изменение
Юни 2008
Статус
1 1 Java 20.147% -0.74%   A
2 2 C 16.779% +1.27%   A
3 3 C++ 10.594% -0.21%   A
4 4 PHP 9.675% -0.53%   A
5 5 (Visual) Basic 7.943% -1.84%   A
6 7 Python 4.756% -0.14%   A
7 8 C# 4.536% +0.48%   A
8 9 JavaScript 4.021% +1.09%   A
9 6 Perl 3.909% -1.64%   A
10 10 Ruby 2.629% -0.01%   A
11 11 Delphi 2.182% +0.16%   A
12 14 PL/SQL 0.879% +0.12%   A
13 26 RPG (OS/400) 0.778% +0.53%   A--
14 13 SAS 0.759% -0.16%   A
15 15 Pascal 0.759% +0.16%   A
16 27 ABAP 0.726% +0.49%   A--
17 12 D 0.620% -0.83%   A--
18 16 Lisp/Scheme 0.607% +0.17%   B
19 19 Lua 0.557% +0.19%   B
20 23 MATLAB 0.527% +0.26%   B

Други "програмистки" езици

Целия списък на всички 50 езика за програмиране е в таблицата по-долу. Този преглед на езиците е неофициален, защото може да има случай в който ние (те от TIOBE) да сме изпуснали някой език.

PositionProgramming LanguageRatings
21 ActionScript 0.444%
22 Logo 0.403%
23 COBOL 0.397%
24 Fortran 0.374%
25 Ada 0.370%
26 FoxPro/xBase 0.369%
27 PowerShell 0.299%
28 Scratch 0.252%
29 Prolog 0.216%
30 Scala 0.208%
31 Haskell 0.205%
32 LabVIEW 0.193%
33 Erlang 0.176%
34 ML 0.173%
35 Transact-SQL 0.172%
36 Groovy 0.152%
37 Caml/F# 0.149%
38 Smalltalk 0.148%
39 Forth 0.148%
40 Awk 0.140%
41 Focus 0.138%
42 Tcl/Tk 0.132%
43 NXT-G 0.131%
44 Alice 0.129%
45 Objective-C 0.123%
46 J 0.117%
47 APL 0.115%
48 CL (OS/400) 0.110%
49 VHDL 0.105%
50 Bourne shell 0.101%

Предварително ви благодаря за мненията ви.

Дневник: http://www.karatebulgaria.com/alex
За коментари: http://www.karatebulgaria.com/alex/addcomment.php/2009-06-22#add

[ Добави коментар ]
Петък, 26 Юни 2009
Почина Майкъл Джексън

Няма по-велик от него!!! С 17 Грами-та той е най-успешния, най-познаваемия, най- най-. Няма втори като него!

Беше на точното място, по точното време!

Нито Елвис Пресли, нито Битълс, нито Металика са успели да превземат сърцата и умовете на толкова хора както Майкъл Джексън. Всеки един от тях може да е направил революция по своемо, но Майкъл Джексън беше този който завладя целия свят!

След като видях Металика на живо исках да видя и Майкъл Джексън в Лондон но уви!

One life is not enough.
Един живот не е достатъчен.

Michael Jackson Thiller

Предварително ви благодаря за мненията ви.

Дневник: http://www.karatebulgaria.com/alex
За коментари: http://www.karatebulgaria.com/alex/addcomment.php/2009-06-26#add

[ Добави коментар ]
Valid XHTML 1.0! Valid CSS!