» Archive for the 'PHP/MySQL' Category

Обновяване на част от текстова колона в MySQL

Sunday, July 13th, 2008 by Жоро

Днес се сблъсках с интересен казус. Как да обновя една колона като премахна първия и символ и на негово място добавя други два. Решението се оказа просто въпреки че ми отне околу 15тина минути да стигна до него. Дано е от помощ на някой. Ето го и примера:

UPDATE phonetable
SET preffix = CONCAT(’00′,SUBSTR(preffix, 2))
WHERE preffix LIKE ‘0359%’

Въпрос на браузър

Monday, May 26th, 2008 by Жоро

Днес се случи супер странен проблем със сайта на единия от клиентите ни. Качвайки го на техния сървър(supremehosting) се оказа че под IE, PNG картинките не се виждат. Странно, но факт. След 3-4 часа дебъгване на проблема и неуспешни опити решихме да пишем на поддръжката, колкото и да знаех че ще е безрезултатно, защото и в миналото си имах взимане-даване с тях и по този случай ми бяха влезнали в черния списък. Писахме следното:

Hello, we are having trouble using internet explorer on our web site. Every single png file is not loaded. Using any other browser is okay. On our previous hosting everything is working. We’ve been struggling with this for a couple of days now, and now we are out of ideas for fixing a problem that only occurs on this hosting (probably).

Получихме следния отговор:

This is a well known Internet explorer issues. I’m afraid that this has nothing to do with your site’s configuration or the one of the server. I have been experiencing big troubles with this as well. Al I have stumbled upon while seeking a solution to this was the following:

http://www.twinhelix.com/css/iepngfix/

А добро утро. Вече ползваме въпросния фикс, но .. безрезултатно. Веднага ги изтормозихме отново:

I’m afraid this is not the case with us (we’re already using a png fixer). As i mentioned the site was working on the previous hosting, no matter the browser. The problem appeared when we uploaded it to our new hosting (here).

Strange problem … i’m affraid we are at a dead end. If you could think of something else that might be the problem, please share with us.

А те ни отговориха с най-якия отговор който сме получавали от поддръжка на хостинг:

What I can suggest is to implement a warning on the web site, something like - "The web site is best previewed with Mozilla Firefox".

Ура. Нямаш IE, нямаш проблем. Имаш IE, имаш голям проблем и виждаш надпис ;)

Всъщност проблема се оказа в недоглеждане и забравен UTF8 BOM в единия от файловете което донякъде може да се счита и за наш проблем, обаче защо си работеше на стария сървър, а на SupremeHosting не ще, вече не знам. А пък защо проблема се състоеше в липсата на картинките(и то не на всички), още по- малко знам при положение че въобще не са свързани. А пък защо и само под IE се проявяваше …

Новите дрехи на царя

Sunday, April 20th, 2008 by Жоро

Ето че се постопли и реших че е крайно време за един бърз ъпдейт на Wordpress–а, както и да подбера нова “по-пролетна” темичка за външния му вид. Като намеря време в някой от следващите дни ще взема да я преведа.

Най-накрая

Friday, January 4th, 2008 by Жоро

След като последната година и половина, две PHP4 беше на доизживяване, най-накрая му сложиха брадвата. Пуснали са 4.4.8 и Дерик Ретанс съобщи че това ще е последния билд и повече 4 серията няма да се поддържа освен при особено критични проблеми. Това пък може само да ни радва тъй като така и не успях да убедя хостинг компаниите че ми е необходимо PHP5,  те постоянно се аргументираха че 4 си е супер тъй като е от по-отдавна и съответно са изчистени всички бъгове. Това разбира се не е така но кой те слуша и постоянно се налагаше да пишем мръсни хакове за да работят сайтовете. Сега се надявам че най-накрая ще им дойде ума в главата и ще направят така необходимия ъпгрейд, въпреки че преди няколко месеца учуден разбрах че Dom.bg все още карат на PHP 4.1.1,  с MySQL 3.23.58 които са излезли някъде към 2003. Иначе ще пия един студен чай в чест на края на 4та серия, служи ни добре, но вече си и личаха годинките.

Eclipse

Friday, January 4th, 2008 by Жоро

Когато за първи път чух за Eclipse IDE, ми се струваше нещо извънземно, бавно(Java) и супер ненужно. С времето обаче технологията напредна доста и в момента е основната система с която работим нацяло. Лично аз използвам базирани на Eclipse проекти за абсолютно всичко щом е свързано с развойна работа. От PHP, през HTML и Javascript, до Java, C/C++ и XML. Нямам идея как работи и защо, но съм забелязал че всички официално поддържани проекти са бавни, заемащи много памет но вършещи идиално своята работа(може и да съм свикнал просто) което заслужава моето уважение. Та да направя списък за езиците и кое какво къде може да бъде намерено за Eclipse или поне нещата за които знам аз:

PHP:

Eclipse PHP development tools(включва Web Tools Platform) - http://www.eclipse.org/pdt/

Zend Studio Client for Eclipse(codename Neon) - http://www.zend.com/en/products/studio/Eclipse/

HTML, XML:

Web Tools Platform - http://download.eclipse.org/webtools/downloads/

Javascript:

Aptana Studio - http://www.aptana.com/

C++:

C/C++ Development Tools - http://www.eclipse.org/cdt/downloads.php

Subversion:

Subclipse - http://subclipse.tigris.org/

Братушките

Tuesday, November 27th, 2007 by Жоро

Братята руснаци ми проведоха нагледен урок “Как да докараме екип програмисти и преводачи до нервна криза за 2 седмици”. Въпросната фирма направо ми разби представите за комуникации, изисквания и дребнавост които имах. Повече никога няма да се оплаквам от задания, дребни грешчици и криви полувинчати отговори - просто за 2 седмици гадовете ни скъсиха живота на нас с колежката в Бургас най-малко с 10тина години и ни пречупиха напълно. Ето как се провежда въпросния урок стъпка по стъпка:

1. Искаме да ни пратите вашите данни, ето използвайте тази схема, то и това не е точно схема, ама горе долу така да изглежда…

Правим

2. Абе то хубаво ама сега сложете и речник към данните че да знаем типовете и да можем да си ги добавим. Ето един примерен речник, който ползваме. Променете го според вашите данни.

Правим

3. Хубаво ама данните не трябва да са в UTF-8, ние работим с Windows-1251 стандарта. Можете ли да ни ги дадете в този charset.

Правим

4. Идиално, обаче гледаме че в речника сте писали ID 14, вие не сте с това ID, ние сме ви сложили ID 25. Променете го

Правим

5. Супер, обаче и речника е в лош енкодинг, сложете го на CP1251

Правим ама защо не казахте първия път, при това вие ни го пратихте в UTF8

6. Браво, обаче имате много невалидни данни, много от имотите сте ги писали с тип 0. Такъв тип в речника няма, типа който използвате трябва да го има в речника.

Гррр, правим

7. Аааааа не, не можете да си добавяте типове в речника, трябва да са точно тези 7 типа които първоначално ви дадохме, не можете да си добавяте други.

Хардкодваме всичко към 1 щом не попада във вашите данни. Това трябва да реши проблемите най-накрая.

8. Добре е вече, сега всички данни във feed-а са коректни, само че в речника е останал допълнителния тип който сте добавили, махнете го оттам.

Добре, махаме, но какво като го има, нали не се използва никаде, едва ли правите 1:1 мапване на типовете

9. Сега обаче има друг проблем, забелязахме че имате html тагове из съдържанието. Предполагаме че ги въвеждате през HTML редактор, трябва информацията която получаваме да не съдържа HTML тагове.

OK. Махаме, но можеше да кажете в началото…

10. Добре, но забелязахме че имате много nbsp из кода, не трябва да има такива, заменете ги с празни места

ОК. ОК!!!!!

11. Ама трябваше да махнете освен nbsp , всички ndash и другите специални символи, защо не сте ги махнали, казахме без никакви HTML тагове.

ГРРРРРРРРРРРРРРРРРРРРРР. Ето ви го без никакво форматиране и никакви специални символи. Доколко HTML таговете са специални символи

12. Хубаво ама логото което сте оказали е в друг размер от този който ни трябва, не ни ли казахме че ни трябва в X по Y пиксела

Ето ви го в размера който ви трябва, щом не можете да си го оразмерите

13. Името на файла, с който сте кръстили XML feed-а не е добро, променете го на 025.xml.

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

14. Ама feed-а е доста обемен, можете ли да ни го архивирате.

Добреееееее ето ви го

15. Ама не със zip, направете ни го в gz, по лесно се обработва на нашия сървър.

Ето ви го в г*з

16. Добре е сега, но архивирайте и речника

Олееее ще ги избия само да ми паднат пред погледа.

17. Името на речника не е добро… сменете го на ….

………………………

Има ли смисъл да продалжавам да обяснявам.. май няма край, пък и мразя да коментирам работата си тук, щото после се получават неприятни последствия, въпреки че този път не издържах…

Малък трик с MySQL

Saturday, September 8th, 2007 by Жоро

Днес ми се наложи да мисля как да изтрия повтарящите се записи в една таблица, която от известно време наливаме записите от една друга през половината свят използвайки сървиси. Проблема е че разбира се в другата такова нещо като UNIQUE не са и чували(ах тези PHP програмисти), а за да не нарушим цялостта на таблицата трябваше да ги налеем така както са пък после да му мислим какво да ги правим повтарящите се, както и другите недоразумения които съпътстваха import-ването на информация. Но този ден дойде и беше време да мисля какво правим с повтарящите се записи, които не бяха много, но клиентите не искаха да се повтарят. Така че трябваше да измисля някакъв сравнително лесен начин да се справя с проблема. Ето и съвсем краткото решение за триене на повтарящи се записи в една не много добре направена база данни:

DELETE FROM tbl_data WHERE id=
(
SELECT id
FROM tbl_data
GROUP BY ref_no
HAVING count( id ) >1
)

Проблем в Safari

Monday, August 13th, 2007 by Жоро

Тази вечер ми се наложи да портвам едно JS приложение под Safari(всичките машини на клиента са Apple Mac или MacBook) и използват Safari. Колкото и да е стандартен(W3C) техния браузър и колкото и красиво да рендва страничките, отново се намериха недомислици в JS рендера - въпреки че е с милиони класи над този на IE. Явно по необясними причини са изключили от списъка с позволените думи “length”. Аз често използвам тази променлива за да си изчислявам дали дължините са ми в определени граници(за скролери и странициране например) и съответно трябваше да променя кода на 10-12 места където го използвах. Това е малка цена за постигане на съвместимост, кофтито е че изгубих 3 часа докато открия проблема - първоначално прегледах презентационния код и най-вече td.innerHTML, с който има проблеми интерпретатора на IE(и който е в огромни количества в скрипта), но проблема се оказа в странното решение на Apple. Сега удовлетворен мога да легна да дремна 2 часа като награда.

Обновяване

Saturday, August 11th, 2007 by Жоро

Днес беше ден за обновяване на PHP библиотеките които ползвам. Не че самостоятелно бих се нахвърлил да подобрявам неща които ползвам и ми вършат добра работа, но така или иначе се наложи да тръгна да търся алтернативи, след като прекарах околу 2 часа с дебъгване на един доста сложен PHP/JS/JSON скрипт. Първо се оказа че Prototype-а на сървъра е стара версия и не поддържа JSON(те го въведоха в 1.5.1). След това си намерих грешка в скрипта за генериране на масивите - просто нямаше начин да не се объркам в отвратителната комбинация от масиви, хеш таблици, масиви, хеш таблици, роднина, полицай, роднина, полицай… Накрая се оказа че библиотеката ми за JSON(FastJSON) не се справя с въпросната крива комбинация и тъй като използвах последната версия беше явно че трябва да се търси алтернатива. Та така стигнах до Services_JSON от PEAR репозиторито което се справяше идиално с всякакви JSON стрингове, дори такива генерирани от FastJSON(самия FastJSON не се справяше с тях при сложни хеш таблици). Единственото кофти е че в момента трябва да използвам старите библиотеки наравно с новите защото ако тръгна да обновявам файл след файл из целия меко казано огромен проект…
А както бях тръгнал с обновленията си обнових и PHPто до 5.2.2, библиотеката за PDF/FDF както и Smarty-то. Сега остава да ги разхвърлям по сървърите.

Странности с Javascript и XML

Friday, April 6th, 2007 by Жоро

От доста време насам съм се отказал да следя логиката в интерпретирането на някои части от Джаваскрипт в Интернет експлорер пък било то и в актуалната версия 7. Просто някои неща работят точно както си искат, но такова нещо като това последното което ми се случи, просто няма обяснение. Пиша си поредния Джаваскрипт който би трябвало да взима картинки през Аякс/Прототайп и да ги показва на екрана с ефект от Скриптакюлъс, докато в един прекрасен момент под интернет експлорер всичко спря да работи. Дебъгвам аз правя струвам, няма братче, не ще и не ще. Накрая се принудих и почнах по дъртия начин с alert след alert на всеки ред. Стигнах до следния извод: Интернет експлорер е педераст, не просто педераст а супер педераст. Просто няма начин следния код да работи така:

var a = 5;

var b = 3;

alert(a); -> връща 5

alert(b); -> връща 3

a=b; -> присвоява 3 на а

alert(a); -> вместо очакваното 3, връща ‘http://localhost/3′ ?!?

Гледам да нямам някакви присвояваня други, някакви други щуротий, нямам, просто интернет експлорер е педераст. Псувах, псувах, без особен ефект, но накрая си написах една компенсираща функцийка която да оправя проблема. Само не можах да разбера защо се получава, но както споменах по горе, вече няма смисъл и да се питам, някои неща просто са така както са. За жалост…

Blogged with Flock

SEO

Sunday, March 11th, 2007 by Жоро

Днес реших да си направя един нов експеримент с блога. Да му приложа оптимизация за търсачките. Дали има ефект, ще разберем след няколко дни. Междувременно започвам да пиша много по активно, отчасти виновно за това е новото ми приложение играчка: BloGTK което някой ако се реши да му направи порт на QT, ще съм му ужасно благодарен.

ShowStash

Sunday, December 24th, 2006 by Жоро

Весо с малка помощ от мен завърши ShowStash.com проекта. Целта беше да се изгради RSS поток за новите епизоди. Самия сайт съдържа връзки към онлайн видео sharing сайтове които имат качени новите серии на доста сериали. Общо взето е пълен с доста връзки към различни сайтове и горе долу полезен сайт, когато сте изпуснали някоя серия на любим сериал. Oще веднъж ми се затвърди мнението че да поддържаш чужд код, особено ако е написан от човек който се учи на PHP, е 3 пъти по трудно отколкото да го напишеш отново. Проекта не мина без редовното псуване на оригиналния програмист.

Open ClipArt Library

Tuesday, December 12th, 2006 by Жоро

Днес докато си обновявах любимия ми OpenOffice се натъкнах на много интересния проект за отворена галерия с картинки които да си слагаме в документите. Свалям аз от официалния сайт: http://www.openclipart.org/, за жалост се оказа че не може да се използва с OpenOffice тъй като няма импортен филтър за SVG изображения а именно това е формата който са избрали от OpenClipArt Library. След малко ровене из FAQ на въпросния сайт открих че има няколко начина да се справим с проблема. Единия който не ми хареса е да си ги конвертираме ръчно към каквото искаме използвайки Inkskape или GIMP. Другия по удачния е да се използва импорния филтър който можем да намерим тук: http://www.ipd.uka.de/~hauma/svg-import/. За жалост проекта е в много ранна фаза и далеч не е перфектен, но е достатъчно добър. Свалям аз слагам обаче нещо пак не ми разпознава SVG като графичен формат. Видях че на същата страница беше добавен и batch-converter който реших да използвам. Написах едно много кратко скриптче на PHP, което да ми свърши работа при конвертирането на цялата файлова структура на OpenClipArt Library и след околу 2 часа чакане(и няколко пъти убиване на java процеса тъй като беше забил) бях свършил с конвертирането към доста по понятния за OpenOffice ODG формат. Качвам тук скрипчето заедно с текущата версия на конвертора, ако случайно на някой му е полезна. Ще обновявам скриптчето като излизат нови версии на конвертора, за да може да се държи малко по стабилно.

SVG 2 ODG Converter

DesORRD

Monday, December 11th, 2006 by Жоро

Завършихме проекта DesORRD. Самия проект си е оригинална разработка на Иво, въпреки че след като той се изгуби в последно време, се наложи да поема част от товара на проекта - самата поддръжка и доизкусуряването на някои неща. Самия проект е стандартна ORRD система, или иначе казано интегрирана система за управление на материалите и ресурсите които се използват за изследвания в някакви насоки. Проекта е за университета в Бъфало, мисля че в крайна сметка се получи нелошо уеб приложение(имам си някои неща които да пооправя като остане време но..). Добавям го към страницата проекти. Самото приложение е изградено отново върху модифицирана версия на LightCMS Framework-а - което само може да говори за лекотата на поддръжка на кода.

SugarCRM

Monday, December 4th, 2006 by Жоро

Тази нощ се занимавах с инсталирането и разгадаването на един многообещаващ CRM(Client relationship management) проект. Общо взето такъв софтуер е необходим в абсолютно всяка компания, било то малка или голяма, без значение на дейността с която се занимава. Да поддържаш знанията за клиентите си подредени е едно от най-важните неща. Всеки който е имал повече от 5 клиента знае колко трудно е да се ориентира в даден момент точно какво и с кой е говорил и защо, да не говорим какъв ад настава когато се опиташ да намериш визитката на клиента X, за да се свържеш с него във връзка с нещо важно относно вашите взаимоотношения. CRM системите спомагат да се избегнат тези проблеми. Може би една от най-добрите ако не и най-добрата такава система е въпросната SugarCRM. Тя е свободен софтуер, но въпреки предубедеността ми към такъв софтуер изобщо не е зле, дори напротив - работи перфектно, бърз и е невероятно лесна и интиутивна за употреба. С малко занимавка по настройките дори успях да я пригодя и за Groupware софтуер и по този начин убих с един куршум два заека - тъй като по принцип се бях спрял на едно друго решение - eGroupware, но то не ми хареса въобще - накрая излезе че CRM системата е по-добър groupware отколкото самия groupware suite.

Read the rest of this entry »