Category Archives: Web

Web

Избиране на всички потребители във Facebook

Идеята е когато искате да изпратите някои хубава фен страница на приятелите си, а не ви се цъка на всеки по отделно. Тук идва на помощ това скриптче, което прави това(едно от 8918181 -те такива) :)-  Invite all Facebook Friends

Ето и снимка на разширението:

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

При Chrome менажирането на разширенията става по два начина:
1. В адрес бара се въвежда следния адрес: chrome://extensions/
2. Втория вариант е от бутона "Tools" -> "Extensions"

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

Прост DHS Bookmark Creator

Идеята на това просто php скриптче, е да направи Bookmark Folder с линкове от file.txt.

<?php
//DHS Bookmark Creator by amri

$links="links.txt";//Fail s linkowe
$bookmark="bookmark_links.html";//Kraen rezultat
$bookmark_title="DHS Bookmark- Links";//Zaglawie na bookmark

$fh = fopen($bookmark, 'w') or die("can't open file");
$head="<!DOCTYPE NETSCAPE-Bookmark-file-1>\n<META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=UTF-8'>
<TITLE>Bookmarks</TITLE>\n<H1>Bookmarks Menu</H1>\n<DT><H3>$bookmark_title</H3><DL><p>\n";
fwrite($fh, $head);

$mFile = file("$links");
foreach ($mFile as $line_num => $line)
{
$line=trim("$line");
$writeline="<DT><A HREF='$line'>$line</A>\n";
fwrite($fh, $writeline);
}

$foot="</DL><p>";
fwrite($fh, $foot);
?>

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

Rss Finder- GreaseMonkey скрипт

Едно малко скриптче на GreaseMonkey което чеква за (RSS|Feed) във линковете и в (title|alt) на снимките:

mon:/tmp# cat 123.user.js
// ==UserScript==
// @name          Feed Finder
// @namespace     http://mpetrov.net
// @description   Script to Find RSS Feed on every page
// @include       *
// @exclude       http://www.exclude.com*
// ==/UserScript==

(function () {

for(var i=0;i<document.getElementsByTagName("a").length;i++)
{
if (  ((document.getElementsByTagName("a")[i].childNodes[0].nodeValue)).match(/rss|feed/gi))
{
document.getElementsByTagName("a")[i].setAttribute("style","border:20px solid red;");
};

if (  (document.getElementsByTagName("a")[i].getAttribute("href")).match(/rss|feed/gi) )
{
document.getElementsByTagName("a")[i].setAttribute("style","border:20px solid red;");
}
};

for(var i=0;i<document.getElementsByTagName("img").length;i++)
{
if (  (document.getElementsByTagName("img")[i].getAttribute("alt")).match(/rss|feed/gi) )
{
document.getElementsByTagName("img")[i].setAttribute("style","border:20px solid red;");
}
if (  (document.getElementsByTagName("img")[i].getAttribute("title")).match(/rss|feed/gi) )
{
document.getElementsByTagName("img")[i].setAttribute("style","border:20px solid red;");
}
};
})();

PS: За толкова отделено време такъв резултат :P . Ако някои желае да направи подобрения може да изпрати кода за да го добавя.

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 Event Scheduler в MySQL >= 5.1.12

В тази публикация ще покажа как се ползва "MySQL Event Scheduler"- създаване на events.

Какво ме провокира да напиша тази публикация ?
-- Видях, че един съфорумец от webmasterbg.org се нуждае от помощ по въпроса и реших да я напиша с идеята да бъде полезна на повече хора.

Част 1(Подготвяне на "MySQL Event Scheduler")

Преди да се използва "MySQL Event Scheduler" ще се наложи проверка версията на MySQL, понеже "MySQL Event Scheduler" се поддържа от версия 5.1.12 и по- нови.

mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 5.1.38    |
+-----------+
1 row in set (0,04 sec)

Вижда се, че тази версия поддържа MySQL Event Scheduler и сега остава да се провери дали е активиран.

mysql> SHOW VARIABLES LIKE 'event_scheduler';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | OFF   |
+-----------------+-------+
1 row in set (0,00 sec)

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

SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;

Респективно за да бъде деактивиран

SET GLOBAL event_scheduler = OFF;
SET @@global.event_scheduler = OFF;
SET GLOBAL event_scheduler = 0;
SET @@global.event_scheduler = 0;

За да не се налага изпълняване на по- горните редове ще бъде активиран директно от my.cnf

event_scheduler=ON

и да се деактивира:

event_scheduler=DISABLED

Необходимо е да се провери дали MySQL Scheduler е активен със следната заявка:

mysql> SHOW VARIABLES LIKE 'event_scheduler';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | ON    |
+-----------------+-------+
1 row in set (0,00 sec)

Част 2 (Пример за създаване на event в "MySQL Event Scheduler")

След като става ясно, че е активен е необходимо да се премине към следващата част от публикацията, а именно създаване на таблица и event.

Ще се използва тестова база "test" и създаване на тестова таблица "t1" като се добави един ред "произволен запис" в нея.

use test;

CREATE TABLE `t1` (
`id` int(11) NOT NULL,
`weight` int(11) NOT NULL,
`query` varchar(3072) NOT NULL,
`group_id` int(11) DEFAULT NULL,
KEY `query` (`query`) )
ENGINE=myisam DEFAULT CHARSET=latin1;

Добавя се фиктивен ред в таблицата "t1":

insert into t1 (weight,query,group_id) values ('1','mysql rulz','1');

Сега вече ще се направи event в които да се укаже, че таблицата "t1" ще бъде изтривана или truncate ежедневно.

CREATE event event_test on schedule every 1 day do truncate test.t1;

Ето подобен пример, но за 1 минута(по- лесен за тестване на цялата публикация)
CREATE event event_test on schedule every 1 minute do truncate test.t1;

След 1 ден таблицата "t1" ще бъде изтрита.

Добра информация е да се знае как се изтрива event. Ето го и начина:

mysql> drop event event_test;
Query OK, 0 rows affected (0,00 sec)

Част 3 (Мониторинг на event  "MySQL Event Scheduler")

От тук може да се види по- подробна инфо за този schedule

select * from information_schema.events \G

*************************** 1. row ***************************
EVENT_CATALOG: NULL
EVENT_SCHEMA: test
EVENT_NAME: event_test
DEFINER: root@localhost
TIME_ZONE: SYSTEM
EVENT_BODY: SQL
EVENT_DEFINITION: truncate test.t1
EVENT_TYPE: RECURRING
EXECUTE_AT: NULL
INTERVAL_VALUE: 1
INTERVAL_FIELD: DAY
SQL_MODE:
STARTS: 2010-10-02 11:27:23
ENDS: NULL
STATUS: ENABLED
ON_COMPLETION: NOT PRESERVE
CREATED: 2010-10-02 11:27:23
LAST_ALTERED: 2010-10-02 11:27:23
LAST_EXECUTED: 2010-10-02 11:27:23
EVENT_COMMENT:
ORIGINATOR: 0
CHARACTER_SET_CLIENT: latin1
COLLATION_CONNECTION: latin1_swedish_ci
DATABASE_COLLATION: latin1_swedish_ci
1 row in set (0,00 sec)

Ето няколко решения за какво може да е полезно това:

1. Имате таблица с IP адресите на вашите посетители за деня.
2. Правите дневни калкулации в таблици които е необходимо да се нулират в края на деня.

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- Спиране на duplicate key erros при insert на доста стойности

Идеята е да се спести ресурс като се направи един INSERT с доста стойности в место нормалния метод с INSERT за всяка стойност. Тук обаче има подробност, че при INSERT на5 стойности(на пример) и едната е дублирана излиза грешка което пречи на останалите 4 да бъдат записани.

Решенията които се сещам са следните:

1. Проверява се които са налични и така се прави INSERT само на новите
2. Прави се insert но със INSERT IGNORE.

Пример за решение 2:

Без употреба на INSERT IGNORE:

mysql> insert into tags_basic (date_add,time_add,tag) VALUES ('2010-09-27','16:09:43','tag1'),('2010-09-27','16:09:43','tag2'),('2010-09-27','16:09:43','tag3'),('2010-09-27','16:09:43','tag5');
ERROR 1062 (23000): Duplicate entry 'tag1' for key 2

С употреба на INSERT IGNORE:

mysql> insert ignore into mtable (date_add,time_add,tag) VALUES ('2010-09-27','16:09:43','tag1'),('2010-09-27','16:09:43','tag2'),('2010-09-27','16:09:43','tag3'),('2010-09-27','16:09:43','tag5');
Query OK, 1 row affected (0.01 sec)
Records: 4  Duplicates: 3  Warnings: 0

На мен лично ми допада метод 2 понеже не се изискват допълнителни select заявки и калкулации в php/perl или каквото е там.

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

Лесно поставяне на Facebook бутон Like за всеки

Идеята на този метод е да не е необходимо умение в уеб програмирането. Стандартно когато се добавя facebook бутон Like е необходимо да се добави iframe и аргумент URL адреса на страницата, но ако не я знаеш не виждам как може да я въведеш(освен ако не пишеш на някакъв уеб език). Може и да има вариант, но аз лично не видях такъв. За целта реших да напиша едно "супер сложно и времеемко решение на javascript" което да поправя всичко това:

<script language=JavaScript>
<!--
document.write("<iframe src='http://www.facebook.com/plugins/like.php?href="+window.location.protocol + "//" + window.location.host + "/" + window.location.pathname+"&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;height=10' scrolling='no' frameborder='0' style='border:0px; overflow:hidden; width:140px; height:28px;' allowTransparency='true'></iframe>");
//-->
</script>

PS: Всеки вече би трябвало да може да си промени широчината, височината,очертанието и скролването.

PS1: Този facebook бутон tool е направен специално за един Fake рождеНнннник :P

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

Редирект на цял сайт с htaccess

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

redirectMatch 301 ^(.*)$ http://www.example.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)

Малки бележки за работа с дата в PHP/MySQL

Един приятел имаше нужда от малко помощ, че беше омазал едни дати в няколко таблици. Докато му помагах реших да опиша някои неща за да бъдат полезни и на други(надявам се да са по- малко) объркали пътя  хора .

##### Извежда резултат на базата на дата (Поле datetime)

select * from mysql_table where date(ddate)='2010-08-24'

##### Извежда резултат на базата на час (Поле datetime)
select * from mysql_table where time(ddate)='00:17:00'

##### Форматиране на резултата (Поле datetime)
select DATE_FORMAT(ddate, '%d.%m.%Y г. %H:%i:%s ч.') as ddate from mysql_table where time(ddate)='00:17:00' limit 1;

##### Основни функции за употреба на дата и формат на дата във php

$ddate="2010-08-17 07:18:00";

//Конвертиране от "нормална дата" към "timestamp"
$timestamp = strtotime($ddate);

//Конвертиране от "timestamp" към "нормална дата"
$ddate = date("Y-m-d h:j:s", $timestamp);

##### Прост php script за конвертиране на колона със нормална дата(datetime) към Unixtime

<?php

$query="select art_id,old_ddate from mysql_table";
$result = mysql_query($query);
while($row = mysql_fetch_row($result))
{
$i++;
$art_id="{$row[0]}";
$old_ddate="{$row[1]}";
$ddate = strtotime($old_ddate);
echo "$art_id -- $old_ddate -- $ddate\n";

$query13="update mysql_table set ddate=FROM_UNIXTIME('$ddate') where id='$art_id'";
$result13 = mysql_query($query13);
};//End of while($row = mysql_fetch_row($result))

?>

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

Услугата pushme.to-Безплатни съобщения за Iphone

Услугата pushme.to позволява безплатно изпараще на съобщения до вашият Iphone. Единственото и не малко изискване е вашият телефон да е свързан с интернет :). Идеята на pushme.to се доближава страшно много до тази на sms-те, в случая е безплатна + изискване за интернет :). Тествах я и работи страхотно. При изключен интернет не изпраща изпратеното съобщение, но веднага при включване на WiFi на телефона веднага се получава съответното съобщение. Друга хубава опция е(ако може да така да се каже), че поддържа кирилица.

Явно някои се питат, че за какво ми е тая тулка ?  За всеки отговорът е най- вероятно доста различен, но за мен това е подходящо да следя разни процеси и дейности в интернет. Може да се напише просто приложение което да следи за X и при наличие на действие X да изпрати съобщение, чрез pushme.to.

PS: Регистрация в Pushme.to може да си направите когато от iTunes си инсталирате приложението Pushme.to и съответно от там да си направите регистрация.

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