Пати Маес демонстира "Шесто Чувство", портативна, променяща играта технология:
Ако не разбирате, натиснете "View subtitles" и изберете "Bulgarian"
Ето как може да се разбере в коя страна е произведен съответния продукт (Гледат се първите три цифри от баркода):
Prefix | GS1 Country |
000 -- 019 | GS1 United States |
020 -- 029 | Restricted distribution (MO defined, usually for internal use) |
030 -- 039 | GS1 United States |
040 -- 049 | Restricted distribution (MO defined, usually for internal use) |
050 -- 059 | Coupons |
060 -- 139 | GS1 United States |
200 -- 299 | Restricted distribution (MO defined, usually for internal use) |
300 -- 379 | GS1 France |
380 | GS1 Bulgaria |
383 | GS1 Slovenia |
385 | GS1 Croatia |
387 | GS1 BIH (Bosnia-Herzegovina) |
400 -- 440 | GS1 Germany |
450 -- 459 &
490 -- 499 |
GS1 Japan |
460 -- 469 | GS1 Russia |
470 | GS1 Kurdistan |
471 | GS1 Taiwan |
474 | GS1 Estonia |
475 | GS1 Latvia |
476 | GS1 Azerbaijan |
477 | GS1 Lithuania |
478 | GS1 Uzbekistan |
479 | GS1 Sri Lanka |
480 | GS1 Philippines |
481 | GS1 Belarus |
482 | GS1 Ukraine |
484 | GS1 Moldova |
485 | GS1 Armenia |
486 | GS1 Georgia |
487 | GS1 Kazakhstan |
489 | GS1 Hong Kong |
500 -- 509 | GS1 UK |
520 | GS1 Greece |
528 | GS1 Lebanon |
529 | GS1 Cyprus |
530 | GS1 Albania |
531 | GS1 MAC (FYR Macedonia) |
535 | GS1 Malta |
539 | GS1 Ireland |
540 -- 549 | GS1 Belgium & Luxembourg |
560 | GS1 Portugal |
569 | GS1 Iceland |
570 -- 579 | GS1 Denmark |
590 | GS1 Poland |
594 | GS1 Romania |
599 | GS1 Hungary |
600 -- 601 | GS1 South Africa |
603 | GS1 Ghana |
608 | GS1 Bahrain |
609 | GS1 Mauritius |
611 | GS1 Morocco |
613 | GS1 Algeria |
616 | GS1 Kenya |
618 | GS1 Ivory Coast |
619 | GS1 Tunisia |
621 | GS1 Syria |
622 | GS1 Egypt |
624 | GS1 Libya |
625 | GS1 Jordan |
626 | GS1 Iran |
627 | GS1 Kuwait |
628 | GS1 Saudi Arabia |
629 | GS1 Emirates |
640 -- 649 | GS1 Finland |
690 -- 695 | GS1 China |
700 -- 709 | GS1 Norway |
729 | GS1 Israel |
730 -- 739 | GS1 Sweden |
740 | GS1 Guatemala |
741 | GS1 El Salvador |
742 | GS1 Honduras |
743 | GS1 Nicaragua |
744 | GS1 Costa Rica |
745 | GS1 Panama |
746 | GS1 Dominican Republic |
750 | GS1 Mexico |
754 -- 755 | GS1 Canada |
759 | GS1 Venezuela |
760 -- 769 | GS1 Switzerland |
770 | GS1 Colombia |
773 | GS1 Uruguay |
775 | GS1 Peru |
777 | GS1 Bolivia |
779 | GS1 Argentina |
780 | GS1 Chile |
784 | GS1 Paraguay |
786 | GS1 Ecuador |
789 -- 790 | GS1 Brazil |
800 -- 839 | GS1 Italy |
840 -- 849 | GS1 Spain |
850 | GS1 Cuba |
858 | GS1 Slovakia |
859 | GS1 Czech |
860 | GS1 YU (Serbia & Montenegro) |
865 | GS1 Mongolia |
867 | GS1 North Korea |
868 -- 869 | GS1 Turkey |
870 -- 879 | GS1 Netherlands |
880 | GS1 South Korea |
884 | GS1 Cambodia |
885 | GS1 Thailand |
888 | GS1 Singapore |
890 | GS1 India |
893 | GS1 Vietnam |
899 | GS1 Indonesia |
900 -- 919 | GS1 Austria |
930 -- 939 | GS1 Australia |
940 -- 949 | GS1 New Zealand |
950 | GS1 Global Office |
955 | GS1 Malaysia |
958 | GS1 Macau |
977 | Serial publications (ISSN) |
978 -- 979 | Bookland (ISBN) |
980 | Refund receipts |
981 -- 982 | Common Currency Coupons |
990 -- 999 | Coupons |
Идеята тук е когато имате сайт да не ви крадат снимките, но под крадат имам да ви зареждат снимките от вашият сайт с идеята да товарят вашата машина. Ето го решението което е супер просто за изпълнение, чрез htaccess (.htaccess):
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ -- [F]
Най- отдолу става ясно, че се мачват gif и jpg форматите т.е. може да се добавят или премахват още. Съответно mydomain.com е вашият домейн :)
Видях, че има хора които се затрудняват когато им се наложи да променят тип на колона в MySQL. Примерно един приятел направил таблица и колоната X е от тип varchar(500), но след време установява, че тази колона иска да бъде от тип "text", а не varchar. Той дъмпнал цялата таблица и ръчно заместил varchar(500) със "text" и всичко било наред, но това рационално ли е ? НЕ
Решението е:
Могат да се ползват два вида метода:
1. Alter table change
При първия метод се изисква да се въведе старо име на колона и ново:
ALTER TABLE t1 CHANGE a b INTEGER;
или
ALTER TABLE t1 CHANGE b b INTEGER;
2. Alter table modify (Аз лично бих използвал този метод):
ALTER TABLE t1 MODIFY b BIGINT NOT NULL;
Има вариант където колоната е ключова дума (примерно вместо b -> desc). По този начин ще изведе грешка и няма да промени името или типа на колоната. За да се направи промяна се добавя и таблицата т.е.
alter table t1 change tablica.b tablica.novo_ime text;
За повече информация тук: Mysql Reference Manual
Това е публикация за начинаещи web php разработчици :)(web и php , че и разработчик) :)
Пускате готов скрипт които вероятно не сте писали и ви излиза тази грешка:
Fatal error Call to undefined function imagecreatefromgif()
Отговорът на тази грешка е, че няма gd support за обработване на изображения. За целта го инсталираме(в случая deb базирано дистро):
apt-get install php5-gd
След това рестартираме apache:
/etc/init.d/apache2 restart
След това phpinfo() и виждате, че вътре вече има GD. Ето снимка:
Сега вече изпълнявате отново скритпа които даваше грешка и виждате, (че ви излиза друга грешка. Трябва да прочетете повече, шегувам се) че всичко е наред.
Предполагам на всеки ползващ MySQL му се е налагало да изведе дублираните редове от дадена колона в таблица. Идеята е, че колоната позволява записването на дублиращи редове , а ние искаме да ги изведем. За целта използваме having или ето го целият пример:
select gid,title,count(title) as cnt from super_info group by title having cnt > 1 order by cnt
Изход:
+------+-----------------------------------+-----+
| gid | title | cnt |
+------+-----------------------------------+-----+
| 1620 | Запис1 | 7 |
| 1175 | Запис2 | 7 |
| 1229 | Запис3 | 7 |
| 3637 | Запис4 | 8 |
| 1310 | Запис5 | 8 |
| 1806 | Запис6 | 8 |
| 6046 | Запис7 | 8 |
| 2137 | Запис8 | 8 |
| 1108 | Запис9 | 8 |
| 364 | Запис10 | 8 |
| 5085 | Запис11 | 10 |
| 498 | Запис12 | 10 |
Тук в изхода става ясно, че колоната "cnt" извежда броя повторения за съответния ред.
Това е инструмент за диагностика на DOCSIS кабелни модеми.
Изтегля информацията от модема в реално време и показва ключови параметри по отношение на мрежата. Инструмента е писан на С++ и работи на Linux и FreeBSD.
Сваляне: http://sourceforge.net/projects/cmdiag/
Официална страница: http://sourceforge.net/projects/cmdiag/
Картинки: http://sourceforge.net/project/screenshots.php?group_id=212972
Лиценз: GPL
Имах проблеми при компилирането на cmdiag версия 0.2
При изпълнение на make получавах следната грешка:
traffic:/tmp/cmdiag-0.2# make
g++ -Wall -O2 -c cmdiag.cpp
cmdiag.cpp:12:21: error: ncurses.h: Няма такъв файл или директория
cmdiag.cpp: In function 'int main(int, char**)':
cmdiag.cpp:28: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:29: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:30: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:31: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:33: error: 'initscr' was not declared in this scope
cmdiag.cpp:34: error: 'cbreak' was not declared in this scope
cmdiag.cpp:35: error: 'noecho' was not declared in this scope
cmdiag.cpp:36: error: 'stdscr' was not declared in this scope
cmdiag.cpp:36: error: 'TRUE' was not declared in this scope
cmdiag.cpp:36: error: 'keypad' was not declared in this scope
cmdiag.cpp:37: error: 'start_color' was not declared in this scope
cmdiag.cpp:38: error: 'curs_set' was not declared in this scope
cmdiag.cpp:40: error: 'A_BOLD' was not declared in this scope
cmdiag.cpp:40: error: 'attron' was not declared in this scope
cmdiag.cpp:41: error: 'mvwaddstr' was not declared in this scope
cmdiag.cpp:42: error: 'attroff' was not declared in this scope
cmdiag.cpp:45: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:45: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:115: error: 'refresh' was not declared in this scope
cmdiag.cpp:210: error: 'mvaddnstr' was not declared in this scope
cmdiag.cpp:211: error: 'strstr' was not declared in this scope
cmdiag.cpp:272: error: 'endwin' was not declared in this scope
make: *** [cmdiag.o] Error 1
Проблемът е, че няма ncurses-dev за целта го инсталиране: apt-get install libncurses5-dev и изпълняваме отново "make clean && make"
Отново получаваме грешна, но от друг характер, а именно:
traffic:/tmp/cmdiag-0.2# make clean && make
rm -f *.o
rm -f cmdiag
rm -f *.*~
g++ -Wall -O2 -c cmdiag.cpp
cmdiag.cpp: In function 'int main(int, char**)':
cmdiag.cpp:28: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:29: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:30: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:31: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:45: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:45: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:211: error: 'strstr' was not declared in this scope
make: *** [cmdiag.o] Error 1
Тази грешка е причинена от това, че във файл cmdiag.cpp липсва хедъра string.h за целта добавяме в cmdiag.cpp :
#include <string.h>
След това изпълняваме отново "make clean && make" и всичко се компилира точно и вече имаме cmdiag
Няма какво да пояснявам повече. Преди време бях видял някъде тази функция и бях останал доволен накрая от нея и затова мисля да я споделя тук:
function check_email_address($email) {
// First, we check that there's one @ symbol,
// and that the lengths are right.
if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
// Email invalid because wrong number of characters
// in one section or wrong number of @ symbols.
return false;
}
// Split it into sections to make life easier
$email_array = explode("@", $email);
$local_array = explode(".", $email_array[0]);
for ($i = 0; $i < sizeof($local_array); $i++) {
if
(!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&
.'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$",
$local_array[$i])) {
return false;
}
}
// Check if domain is IP. If not,
// it should be valid domain name
if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) {
$domain_array = explode(".", $email_array[1]);
if (sizeof($domain_array) < 2) {
return false; // Not enough parts to domain
}
for ($i = 0; $i < sizeof($domain_array); $i++) {
if
(!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|
.([A-Za-z0-9]+))$",
$domain_array[$i])) {
return false;
}
}
}
return true;
}
Както всеки ползващ MySQL се почувствах длъжен макар и с малко закъснение да напиша кратка публикация понеже се изписа доста вече по този въпрос.
На кратко: Oracle ще закупуват SUN, а както знаете MySQL е част от SUN, респективно MySQL като конкурент на Oracle може доста сериозно да пострада.
Изпратихте ли писмо-молба до Европейската комисия!? Ето ви повече информация къде и какво да изпратите-> ТУК
Официален сайт на създателя на MySQL: Michael "Monty" Widenius
Връзка към кампанията "Да спасим MySQL": Michael "Monty" Widenius
Ето няколко линка с повече информация на български: dkolov.log. bg, bogomil.info, technews.bg
Да се надяваме, че Европейската комисия ще помогне.