Интересна демонстрация за "Шесто Чувство", портативна, променяща играта технология

Пати Маес демонстира "Шесто Чувство", портативна, променяща играта технология:

Ако не разбирате, натиснете "View subtitles" и изберете "Bulgarian"

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

Списък с баркодове

Ето как може да се разбере в коя страна е произведен съответния продукт (Гледат се първите три цифри от баркода):

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
VN:F [1.9.22_1171]
Rating: 4.4/5 (32 votes cast)
VN:F [1.9.22_1171]
Rating: +12 (from 30 votes)

Как да не ви крадат снимките от сайта

Идеята тук е когато имате сайт да не ви крадат снимките, но под крадат имам да ви зареждат снимките от вашият сайт с идеята да товарят вашата машина. Ето го решението което е супер просто за изпълнение, чрез htaccess (.htaccess):

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ -- [F]

Най- отдолу става ясно, че се мачват gif и jpg форматите т.е. може да се добавят или премахват още. Съответно mydomain.com е вашият домейн :)

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

Редактиране на MySQL тип чрез alter table

Видях, че има хора които се затрудняват когато им се наложи да променят тип на колона в 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

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

php грешка: undefined function imagecreatefromgif

Това е публикация за начинаещи 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. Ето снимка:

Сега вече изпълнявате отново скритпа които даваше грешка и виждате, (че ви излиза друга грешка. Трябва да прочетете повече, шегувам се) че всичко е наред.

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

Предполагам на всеки ползващ 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" извежда броя повторения за съответния ред.

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

Компилиране на cmdiag

Това е инструмент за диагностика на 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

Ето снимка на cmdiag:

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

Функция на php за валидиране на email адреси

Няма какво да пояснявам повече. Преди време бях видял някъде тази функция и бях останал доволен накрая от нея и затова мисля да я споделя тук:

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;
}

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

Премахване паролата на Windows

Днес вечерта мисля да направя видео демонстрация как се премахва паролата на потребител в Windows NT/2k/XP/Vista. Идеята е, че ако си забравите паролата и неможете да си влезете в профила не е необходимо да преинсталирате целия Windows, а просто да я премахнете :) .

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

Да спасим MySQL

Както всеки ползващ MySQL се почувствах длъжен макар и с малко закъснение да напиша кратка публикация понеже се изписа доста вече по този въпрос.

На кратко: Oracle ще закупуват SUN, а както знаете MySQL е част от SUN, респективно MySQL като конкурент на Oracle може доста сериозно да пострада.

Изпратихте ли писмо-молба до Европейската комисия!? Ето ви повече информация къде и какво да изпратите-> ТУК

Официален сайт на създателя на MySQL: Michael "Monty" Widenius
Връзка към кампанията "Да спасим MySQL": Michael "Monty" Widenius
Ето няколко линка с повече информация на български: dkolov.log. bgbogomil.info, technews.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)

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