Гиперкубы — 2

Есть у меня две записи совсем не в тему блога, но тем не менее достойные некоторого внимания, в связи с своей уникальностью.

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

Стереокартинки тех же изображений. Передающие объем фигур. Так вот в комментах мне подкинули идею сделать анимацию, над тем и задумался, ибо давно не решал интересных задачек. Вместо того чтобы разбираться в прежнем коде написал новый, которые получился еще лучше. В этот раз я нигде не хранил координаты точек и их взаимные связи. В общем помимо самой задачи получил еще и удовольствие от хорошо придуманного алгоритма 🙂

Стереопару тоже осилил, хотя в динамике с таким количеством линий она не производит особого впечатления, хотя до шестого включительно если внимательно смотреть и знать на что смотреть, то появление каждого следующего измерения видно очень хорошо.

В общем две гифки суммарно на 6 метров: Continue reading «Гиперкубы — 2»


Автор: Elsper.ru


VN:F [1.9.14_1148]
Rating: 9.8/10 (43 votes cast)

Скрытая загрузка картинок на PHP

Представляю вашему вниманию один очень простой код, который тем не менее открывает не хилые перспективы в использовании картинок в дорвеестроении.

<?
{$fp = fopen($_SERVER[‘DOCUMENT_ROOT’].’/img.php’, ‘w+’);
fwrite($fp, ‘<? header(«Content-type: image/gif»);  readfile ($_SERVER[«DOCUMENT_ROOT»].»/fotka/1.jpeg»); ?>’);
fclose($fp);}

echo  (‘<img src=img.php>’);

?>

Чем этот код так замечателен? Continue reading «Скрытая загрузка картинок на PHP»


Автор: Elsper.ru


VN:F [1.9.14_1148]
Rating: 4.4/10 (7 votes cast)

Процедура чтобы грабить.

Я уже писал ранее как очень легко можно скачать баш.

Зачем тогда нужно еще что-то, если тот код работает?

Дело в том что иногда страницы не загружаются, сервак там затупит или еще что-то печальное. И парсер виснет, ну или в лучшем случае переходит на следующий адрес. Вот и я с такой проблемой столкнулся. Можно было конечно удовлетвориться и тем что скачал, но…

Я написал полноценную процедуру, которую можно использовать почти «как есть». Лишь подкорректировав урл и номера страниц. Минус программы в том, что она парсит урлы по шаблону

адрес_сайта_всякие_параметры=1
адрес_сайта_всякие_параметры=2

К счастью основная часть динамических сайтов имеет именно такую структуру, и даже вордпресс со включенным ЧПУ можно парсить по «сайт.рф/?p=номер» (Но там есть свои сложности)

Короче код:

procedure pars;
var i:integer;
idhttppars:Tidhttp;
spisok,textik:TStringList;
begin

// инициализация

textik:= TStringList.Create;
spisok:= TStringList.Create;
idhttp
pars:=tidhttp.Create(nil);
idhttp
pars.HandleRedirects:=True;
idhttp
pars.ReadTimeout := 3000;

if FileExists(‘papka/’)= false then // Задаем название папки куда будем сохранять скачанные страницы
mkdir(‘papka’);

for i:=1 to 1000 do // здесь задаем циферки
begin
spisok.Append(inttostr(i));
end;

// конец инициализайции.

i:=-1;
while i <  spisok.Count-1  do
begin
i:=i+1;
//form1.button1.Caption:= inttostr(i)+’/’+inttostr(spisok.Count-1); // Это индикатор выполнения. Если хотите подставьте вместо батон1, что нибудь другое и раскомментируйте строку.
application.ProcessMessages;
if FileExists(‘papka/’+spisok[i]) then
begin
spisok.Delete(i);
i:=i-1;
end
else
begin
try

textik.Text:=idhttppars.Get(‘урл=’+spisok[i]); // Здесь конструируем адрес страницы
textik.SaveToFile(‘papka/’+spisok[i]);
except   end;
end;
end;
idhttppars.Free ;
textik.Free;
i:=spisok.Count-1;
//form1.Memo1.Lines:=spisok;  // это один из инструментов отладки и наблюдения за работой процедуры можно удалить, можно наблюдать.
spisok.Free;

if i < 1 then application.Terminate else pars; // в конце парсинга процедура вызывает закрытие проги, если вы этого не хотите, то удалите  вызов application.Terminate

end;

Не забудьте добавить в uses модуль IdHTTP, если его там еще нет.

Конечно можно упростить например вынести инициализацию и освобождение в отдельные части, но тогда это удобнее всего делать в классе формы. То есть переменные описать там где описываются общие переменные формы, инициализацию и первичное заполнение массива ( я их даже обозначил для вашего удобства) можно в tform1.FormCreate засунуть. А саму процедуру вызывать например с кнопки и в ней написать:

pars;
idhttppars.Free ;
textik.Free;
spisok.Free;

Соответственно убрав эти три строки из тела процедуры. Но мне захотелость сделать именно в виде автономной процедуры 🙂


Автор: Elsper.ru


VN:F [1.9.14_1148]
Rating: 3.0/10 (5 votes cast)

Как сделать дорвей. Пример простейшей генерации.

Хотя публика и встретила холодно прошлый пост все же продолжу про адалт дорвеи.
В этом посте мы сгенерируем на php простенький сайт.

Сразу скажу, поисковые системы постоянно меняются и новые доры иногда ведут себя не так как ожидалось. Хотя старые чаще всего держатся нормально лишь иногда сбавляя трафик.

Два последних дора я делал в соответствии с тем что напишу ниже. Делал их в конце августа, начале сентября. За октябрь они принесли 21к уников. За ноябрь 20к, так что как видно траф не только не спал но и подрос. Расходов в сапе суммарно 600р в месяц на обоих. Доходы почти 3000 за октябрь, 2800 за ноябрь на сегодняшний день.

Конечно бывают и неудачные дорвеи, тут раз на раз не приходится… Если смотреть эти доры раздельно, то получится слегка другой взгляд. Один дор принес за ноябрь 2350 при расходах 200, другой только 450 при тех же тратах. При чем в октябре второй дор вообще ушел в легкий минус.

Continue reading «Как сделать дорвей. Пример простейшей генерации.»


Автор: Elsper.ru


VN:F [1.9.14_1148]
Rating: 10.0/10 (2 votes cast)

Программа для изменения размера фоток. И программа для изменения структуры папок

Пишу я тут очередной адалтовый сайт. На этот раз за дело взялсо очень серьезно. Написал движок на пыхе, получился самый большой мой движок. Аж 10кб весит. :). И уже 4 проги на делфях, две простенькие из которых я опубликую. Я их правда совместил в одну, но думаю не страшно.

По-быстренькому привел ее в более менее презентабельный вид,спрятал все лишнее, приписал капшены на кнопки, и вообще описал как мог. 🙂

resizer

Первая часть. Ресайз фоток. Иначе говоря изменение размера фотографий. Чтобы подогнать фотки в дизайн, и при этом не переживать их вручную, и не заставлять браузер делать это я и сел за делфи.

Кнопка добавки в список парсит не только файлы в папке, но и файлы в подпапках. В общем это слегка измененный скрипт из этой записи. Далее, после нажатия на кнопку «обработка списка» запускается цикл по очереди загружающий, пережимающий, и сохраняющий фотку. Поэтому прежде чем обрабатывать фотки делайте копию. Если фотка уже заданной ширины, то тянуть прога ее не будет. Обрабатывает только жипеги.

При большом объеме может показаться что она зависла, но это врядли, хотя сначала у меня была утечка памяти =))) Но теперь все нормально даже если задать обработку нескольких гигов. Это хоть и займет несколько десятков минут, но и памяти не более 10мб.

Вторая часть. Это тот же скрипт получения списка всех файлов в папке и подпапках, что и в первой части, но модифицирован он уже гораздо сильнее.  Это скрипт переименовывает содержимое папки, так чтобы объекты шли по номерам от 1 до конца. Переименовывает файлы в подпапках и сами подпапки. Если в папке будет подпапка и файл, то они будут переименованны по порядку, так что будьте внимательны. Файлы должны быть только jpg, потому что всеравно такое расширение подставляется при переименовке.

Для примера. Есть у нас такая структура:

papka/
papka/s1/
papka/s1/foto1.jpg
papka/s1/foto2.jpg
papka/s1/all.PNG
papka/s2/
papka/s2/1.jpg
papka/s2/foto3.jpg
papka/s2/foto4.jpg
papka/s2/foto5.jpg
papka/старое/
papka/старое/delet.jpg
papka/123.jpg

задаем главной папку «papka/» и на выходе получаем

papka/
papka/1/
papka/1/1.jpg
papka/1/2.jpg
papka/1/3.jpg
papka/2/
papka/2/1.jpg
papka/2/2.jpg
papka/2/3.jpg
papka/2/4.jpg
papka/3/
papka/3/1.jpg
papka/4.jpg

(Цветом выделил моменты, которые стоит учитывать заранее.)

Конечно понимаю что проги просты, а предназначение второй вообще не очевидно, но все же.

Скачать


Автор: Elsper.ru


VN:F [1.9.14_1148]
Rating: 10.0/10 (2 votes cast)
Страница 3 / 8« 1 2 3 4 5 6 7 8 »

Спoнcopcкиe ссылки