Как стать автором
Обновить
105
0
4orever @4orever

Пользователь

Отправить сообщение
Вы немного не в ту степь, либо я о другом писал, и друг друга не поняли. То, о чем вы говорите, и так замечательно работает в рамках хабра. Хочется мнения — пожалуйста, создавайте топик и ждите обсуждений. Можно, конечно, сделать и отдельный блог.
Я же говорил именно о модели бизнес-линча в том виде, в котором это придумано Лебедевым, т.е. именно экспертная (тут «эксперт» и «культ личности» попрошу различать) оценка. Кому-то хочется просто грамотного и аргументированного мнения одного-двух специалистов и профессионалов, отцов, если хотите. Мнение людей, подкрепленное опытом, образованием, а не любителей.

На примере дизайна — дизайн — это то, что [якобы] умеют и знают все. Также как футбол или политика — каждый горазд давать советы. Это неплохо, в споре рождается истина, как известно. Но у традиционное образование все же подразумевает наличие учителя или наставника, который должен направить в нужное русло, хотя попутно можно со сверстниками «креативить» и искать нетрадиционные подходы (но только после того, как сказали «как надо» и когда есть хорошая база знаний).
Увидев название топика, я тоже вспомнил своего массажиста — он мне как раз тоже рассказывал про пользу отжиманий и даже предложил хотя бы просто отжиматься, если совсем лень. А про тренажерные залы сказал, что нужно обходиться весом собственного тела, а не зависеть от железа, т.к. в зал не всегда можно сходить, а зарядку с утра делать ничто кроме лени не мешает.
Почему популярен бизнес-линч Лебедева? Потому рецензенты — люди уважаемые и с большим авторитетом в веб-разработке. Как бы к САЛ и самому Лебедеву не относились, с его мнением считаются (ну или как минимум интересуются), за его работами следят и его рецензии ценят.

Чтобы получить аналог бизнес-линча (в этом есть смысл, т.к. по одной рецензии в день на весь рунет явно не хватает), нужно для начала собрать (например, с помощью голосования) такую же команду рецензетов, чье мнение будет уважаемым. Формат оценки в комментариях тут точно не подойдет — это превратится просто в публичную критику с огромным количеством противоположных мнений. Нужно мнение именно экспертов, желательно разделить экспертов по отраслям. А перед тем, как эксперты начнут оценивать, их должны узнать и признать их экспертовский авторитет.
«Немного» ошиблись аудиторией, точнее просчитались. Интернет — не телевизор. Люди, сидящие здесь, в большинстве своем не смотрят Малахова и очередной сериал с бездарным актерами. Здешнее «быдло» привыкло самостоятельно выбирать информацию и формировать собственное мнение о происходящем.

Радует, что есть еще хоть что-то и кто-то, неподвластное деньгам.
Можно ли пользоваться MySQL-сервером из «сторонних» сетей?

Ответ: Это возможно при помощи ssh-тунелирования.
Для этого вам необходимо:
Подключится к ssh.login.nichost.ru порт 22 настроив предварительно тунель на сервер login.mysql:3306 и порт 3306, где login это индитификатор хостинга. Затем ввести логин для ssh-соединения и пароль.
После чего вы можете удаленно подключиться к БД указав в качесве сервера localhost порт 3306 тип подключения прямое.

Для ssh тунелирования можем вам посоветовать использовать программу PuTTY
Для организации тунеля необходимо:
В левом окне программы перейти в закладку Connection -> SSH -> Tunnels
В поле «Source port» ввести 3306 а в поле «Destination» ввести login.mysql:3306, где login это ваш индитификатор хостинга.
Нажать кнопку «add». Далее перейти в закладку «Session» и ввести в поле «Host Name» ssh.login.nichost.ru. Далее в поле «Saved Session» ввести название подключения и нажать «Save».
Для входа достаточно двойного клика мыши на названии сессии.
Можно настроить тунелирование с помощью SSH, таким образом можно коннектиться удаленно к серверу БД на хостинге, где разрешен доступ только с localhost. Описание есть в разделе «Помощь» на hosting.nic.ru
«Следующая статья»? По-моему таких статей уже достаточно было.
Счастье в гармонии. Можно совмещать или чередовать :)
Спасибо, весьма полезно.
По ссылке про declare интересная информация про отладку скрипта. В частности, в комментариях к функции приводится пример, как можно проанализировать время выполнения каждой функции.

У кого-нибудь реализован класс с хорошей функциональностью для этих целей?
Пишу откровенный оффтоп, но лишь по причине, что не хватает кармы для публикации, чтобы хоть кто-то заметил проблему…

Наткнулся, как мне кажется на баг, ну или как минимум особенность PHP, связанную с конкатенацией строк.

1. $a = $a. $b;
2. $a .= $b;

Первый вариант выполнятеся в сотни раз дольше.

Строка $b должна быть не менее 40 символов, чтобы заметить результат. Количество итераций — порядка 10000.

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

Вот кусок кода, которые каждый может проверить у себя сам:

<? php

$a = NULL;
$b = «Довольно длинная строка, символов эдак 40»;
$start = getmicrotime();

for($i=0;$i<10000;$i++) {
$a = $a. $b;
}

$end = getmicrotime();
$time = $end — $start;
echo $time.«
»;

$a = NULL;
$b = «Довольно длинная строка, символов эдак 40»;
$start = getmicrotime();

for($i=0;$i<10000;$i++) {
$a .= $b;
}

$end = getmicrotime();
$time = $end — $start;
echo $time;

function getmicrotime()
{
list($usec, $sec) = explode(« „, microtime());
return ((float)$usec + (float)$sec);
}
?>

Пожалуйста, опубликуйте это в соответствующем разделе. Может быть гуру PHP давно знают, как быстрее и правильнее делать простейшие операции, а вот новичкам будет точно интересно.
«Подобные инструменты» — это вы о чем? О тайпе или о творении автора?
Если перед автором серьезно стоит проблема нарезки и настройки шаблона в ЦМС, то рекомендую хотя бы просто ознакомиться с такой вещью как TemplaVoila в CMS/CMF TYPO3. Нарезка в фотошопе + TemplaVoila не сложнее того, что предлагает автор, с той лишь разницей, что в TYPO3 этот инструмент уже не первый год успешно используется многими профессионалами.
Я думал об этом. Решается проверкой буфера наверное ))
А вообще идея все-таки фигня, написаная от недосыпа :), т.к. все равно потом нужно что-то отсылать серверу и получать ответ. И боту не нужно эмулировать никакие события, достаточно просто послать на сервер то, что нужно.
Пользователя от бота отличает еще и сам процесс набора текста и те события, которые при этом наступают в браузере. При этом для отсеивания ботов не нужно пользователя утруждать лишними действиями - он просто делает то, что ему нужно - заполняет форму.

Реализовать это можно, на мой взгляд так: мы к каждому элементу формы добавляем обработчик события, например onKeyDown. Когда это событие наступает, мы добавляем символ, соответсвующий нажатой клавише, к строковой переменной JavaScript и тут же сверяем обновленное значение переменной с текущим значением в поле. Такая сверка позволит исключить ситуацию, если бот все-таки "догадается" проанализировать функцию, которая должна выполняться по этому событию, и выполнить необходимые действия.

P.S. Если JavaScript отключен, то выдаем стандартную стойкую "каптчу".

Жду ваших возражений и способов обхода этого алгоритма ботом (как сэмулировать нажатие клавиши?). Если же алгоритм можно обойти, можно подумать над его усложнением, чтобы увеличить затраты на обучения бота.
Сейчас стоит задача парсить нн-ое количество сайтов с целью извелчения однотипной информации. Допустим, извлечение каталога из различных интернет магазинов. Родилась идея вот такого проектика.

Проект универсального парсера.

Предлагаемый алгоритм работы.
1. Из исходного файла формируется форматированный исходный код с подстветкой синтаксиса в виде HTML (см. пример модуля templavoila в typo3).
Любой тэг из текста исходника заключается в , при клике на который определяется его путь (XPath) в структуре DOM.

2. Пользователь добавляет новый ресурс, указав адрес страницы и указав имя, под которым будут храниться конкретные настройки парсера именно этого ресурса.

2.1 После указания стартовой страницы парсинга пользователю выводятся обработанные исходники этой страницы в соотвествеии с п.1.
Здесь он выбирает (просто кликнув по имени тэга) ближайший контейнер, который содержит данные для парсинга.
Дальнейшая работа будет осуществляться только внутри этого контейнера, весь остальной HTML-документ во внимание не будет браться.

2.1.1 Каждый раз при запуске парсинга каждого ресурса необходимо проверять, что путь к контейнеру не изменился (точнее, что такой контейнер вообще существует).
Если это не так, то нужно уведомлять пользователя о том, что исходный код страницы изменился, поэтому необходимо перенастроить парсер, иначе будут извлечены неверные данные со страницы.
В будущем имеет смысл сделать более продвинутую проверку
(например отслеживать, чтобы на одном уровне в дереве элементов не появился одноименный элемент,
или тем более элемент с одинаковым id!, или сообщать об изменениях внутренней структуры первого вложенного уровня контейнера)

2.2 Далее в проект добавляются объекты для парсинга. Предполагается 2 типа объектов:
а) Одиночные. Парсер просто ищет внутри контейнера по XPath нужный объект и извлекает требуемые данные.
б) Повторяющиеся. Пользователь указывает на один из повторяющихся объектов, а парсер на этом же уровне отбирает все одноименные объекты. (Например это могут быть строки ).
* внутри повторяющегося объекта обязательно указывается один или несколько одиночных объектов.
* допустима вложенная структура повторяющихся объектов
* допустима вложенная структура одиночных объектов

2.3.
Каждый одиночный объект имеет XPath и путь в базе данных, куда его необходимо сохранить (для краткости назовем его DBPath, формат произвольный).
В настройках контейнера должен быть указан столбец для хранения уникальных Id новых записей (должен быть AUTO_INCREMENT, вообще его лучше определять автоматом (Primary key), и если такого поля нет, нужно предложить создать его).

Одиночным объектом может быть или содержимое тэга, или его атрибут.
DBPath добавляется с помощью выбора пользователем из разворачивающегося списка таблицы и столбца, из БД, указанной в настройках ресурса. Из всех полей необходимо делать фильтр по типам
и оставлять только те, которые подходят для хранения выбранных данных (например, нельзя сохранить текст в столбце с типом INT).

В дополенение третья разновидность одиночного объекта - файл по ссылке. В этом случае пользователю предлагается указать из всех элементов тот, который является ссылкой на файл.
В форме указания DBPath должны быть только поля типа BLOB, если в настройках указано сохранять файлы в БД, или в противном случае -
строковые поля нужной длины, чтобы уместилось уникальное сгенерированое имя файла, под которым будет сохранен загруженный файл в каталоге, указанном в настройках.

2.4. При добавлении нового объекта внутрь существующего, необходимо указать, каким образом хранить данные в БД. Возможно 2 варианта:
а) Дочерний элемент хранится в той же таблице, что и родительский, но с указанием pid (parent id). В этом случае при создании вложенного объекта необходимо
указать столбец для хранения pid (это делается один раз при создании первого вложенного объекта).
б) Дочерний элемент хранится в отдельной таблице. В этом случае каждый раз при создании вложенного объекта указывается:
- таблица, в которую будут поступать данные
- Primary Key этой таблицы (лучше определять автоматом, а если он не создан, то предлагать создать)
- столбец Foreign Key, куда будет записываться Primary Key родительской таблицы
Уважаемый автор, вы меня извините, но ваша программа — просто ппц !

Дайте вы людям, которые ее еще не купили, спокойно и нормально с ней ознакомиться, а не задалбывать его постоянным напоминанием да еще в такой навязчиваой форме, что надо оплатить программу!!

Поддавшись вашей умелой рекламе я из любопытсва скачал программу и решил попробовать. Разминка и первые ознакомительные упражнения занимают времени минут 15, за это время было показано более ТРИДЦАТИ напоминаний о покупке программы и куча текста про ее создателей! Мне совершенно не интересно 35 различных мнений создателей программы или тех, кто ей пользовался! Оставьте это для рекламных компаний! Если я скачал программу, значит мне уже инетересно, хватит мне промывать мозг! Куда делась ваша хваленая забота о времени, если вы просто вынуждаете читать уйму ненужного мне текста, перед каждым упраженнием. А ведь совсем его пропускать тоже неправильно, т.к. там встречается полезные рекомендации к самому упражнению. Не заставляйте пользователя фильтровать глазами эти рекомендации из кучи ваших шуток и прибауток, оставьте суть!

Я конечно понимаю, что 150р. сумма куда более разумная и заплатить ее может любой (собственно на массовость и расчитано), но не будет никто платить сразу, пока не ознакомятся.

Программу не куплю теперь уже из приницпа. Пиратской версией тоже пользоваться не буду — неудобно, выкиньте прелюдии, оставьте суть!
Есть подозрения, что подобная особенность уже давно используется в контекстной рекламе. Не раз было замечено, что Begun или Яндекс.Директ чудеснейшим образом показывают те объвления, которые очень близки к тематике сайтов, на которых пользователь побывал ранее.
Отличный стартап, хочется пожелать ему и его разработчикам успехов.

Было бы не плохо сделать группировку по тематикам, чтобы можно было формировать группы по интересам и заниматься переводом того, что нужно самим. Например, открыть группу TYPO3, залить туда самую важную документацию и предложить всем заинтересованным программистам на форуме typo3 помогать в свободное время переводом.

1. Куда потом будут деваться переведенные тексты? Будет ли архив переводов?
2. Можно ли будет в дальнейшем заливать книги в HTML или других форматах с иллюстрациями, схемами, чтобы сделать полноценный перевод "под ключ" :)? Хотя, наверное, сервис не до этого. Пусть книжку потом уже склеивает ответственный за конкретный перевод человек.

Информация

В рейтинге
Не участвует
Откуда
Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность