QA test

9 сентября 1945 года, официально был зарегестрирован первый в истории баг.

Именно в этот день ученые Гарвардского университета, тестировавшие вычислительную машину Mark II Aiken Relay Calculator, нашли мотылька, застрявшего между контактами электромеханического реле. Извлеченное насекомое было вклеено в тех.дневник, с сопроводительной надписью: “First actual case of bug being found”.

Теги: | Автор: Vladimir Boichentsov

Комментариев (2)

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

Loading ... Loading ...

Пример перехвата сообщений в Javasctipt

Когда нужно отделить javascript от HTML это лучший вариант. Возникала проблема с перехватом сообщений. В разных браузерах одни функции работали а в других нет. Пришел к выводу что так лучше. Может кто-то посоветует что-то получше.

Пример:

  1. <html>
  2.   <head>
  3.     <title></title>
  4.     <meta content="">
  5.     <style></style>
  6.   </head>
  7.   <body>
  8.  
  9. <form name="myForm">
  10. <input type="button" name="myButton">
  11. </form>
  12.  
  13. <script language="JavaScript">
  14. document.myForm.myButton.onclick= message;
  15.  
  16. function message() {
  17.   alert(''Click event occured!'');
  18. }
  19.  
  20. </script>
  21.  
  22. </body>
  23. </html>

Теги: | Автор: Vladimir Boichentsov

Комментариев (2)

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 3 out of 5)

Loading ... Loading ...

Wordpress tags for/in wp_pages

Была задача прикрутить к страницам(wp_pages) теги, но на сегодняшний день они не групируются и не добавляются в облако и т.д.. Пришлось ковыряться в кривой административной части движка wordpress, где нет понятия разделяй и властвуй!

Стерпев безобразие все же сделал, то что требовалось!

Во первых вставляем код в фаил wp-includes/script-loader.php

  1. $this->add( 'page', '/wp-admin/js/post.js', array('suggest', 'jquery-ui-tabs', 'wp-lists', 'postbox', 'slug'), '20080318' );
  2. $this->localize( 'page', 'postL10n', array(
  3. 'tagsUsed' =>  __('Tags used on this post:'),
  4. 'add' => attribute_escape(__('Add')),
  5. 'addTag' => attribute_escape(__('Add new tag')),
  6. 'separate' => __('Separate tags with commas'),
  7. 'cancel' => __('Cancel'),
  8. 'edit' => __('Edit'),
  9. ) );

вместо :
[Читать далее...]

Теги: , | Автор: Vladimir Boichentsov

Нет комментариев

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 4 out of 5)

Loading ... Loading ...

Wget мини инструкция

Скачивание файла в указанное место (-P):

  1. wget -P /path/for/save ftp://ftp.example.org/some_file.iso

Скачивание в фоновом режиме (-b):

  1. wget -b ftp://ftp.example.org/some_file.iso

Продолжить (-c continue) копирование файла:

  1. wget -c http://example.org/file.iso

Скачать страницу с глубиной следования 10, записывая протокол в файл log:

  1. wget -r -l10 http://example.org/ -o log

[Читать далее...]

Теги: | Автор: Vladimir Boichentsov

Комментарий (1)

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 4 out of 5)

Loading ... Loading ...

В поисках спецификации PHP

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

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

Cправочник, который вам поможет “построить код”. Справочник написан не мной.

Теги: , | Автор: Vladimir Boichentsov

Нет комментариев

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

Loading ... Loading ...

FAQ - часто задаваемые вопросы по jQuery

Эта статья является чуть-чуть вольным переводом аналогичного раздела на сайте разработчиков библиотеки jQuery. Речь пойдет о казалось бы совсем простых вещах, но не всегда очевидных с первого взгляда, поэтому эта информация наверняка может кому-то пригодится.
Как выбирать элементы, используя class или id?

Этот код выбирает элемент с id “myDivId”. Поскольку id является уникальным, это выражение всегда выбирает один элемент. Или ничего не выбирает, если элемента с таким id не существует.

  1. $('#myDivId');

Следующий код выбирает элемент(ы) с классом “myCssClass”. Поскольку любое количество элементов может иметь этот класс, это выражение будет выбирать любое количество элементов.

  1. $('.myCssClass');

Выбранный элемент может быть присвоен переменной javascript, например так:

  1. var myDivElement = $('#myDivId');

[Читать далее...]

Теги: , | Автор: Vladimir Boichentsov

Нет комментариев

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 4 out of 5)

Loading ... Loading ...

Wordpress управляем контентом часть 1

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

Есть одна замечательная функция add_filter с помощью которой можно делать чудеса! Мне приходилось на некоторых страницах/постах менять к примеру title или content

Делается это так (пример для постов и страниц):

Пишется функция с глобальной переменной $post в которой описывается что вы хотите сделать и вставляется в фильтер, к примеру возьмем основную часть контента
add_filter(’the_content’,ваша функция) , так можно переоформить многие элементы wordpress

Теги: | Автор: Vladimir Boichentsov

Нет комментариев

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

Loading ... Loading ...

Решение проблемы работы wordpress-mu с tdomf (tdo-mini-forms) plugin

Однажды я столкнулся с проблемой работы wordpress-mu и tdomf (tdo-mini-forms), это было при первых знакомствах с wordpress :) Так что не судите сильно :)

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

1. В файле wp-config.php, после всего кода добавить

  1. include(get_option('home')."/wp-content/plugins/tdo-mini-forms/tdomf.php");

2. В файле capabilities.php, после всего кода добавить

  1. include(get_option('home')."/wp-includes/pluggable.php");

[Читать далее...]

Теги: , | Автор: Vladimir Boichentsov

Нет комментариев

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

Loading ... Loading ...

Приемы безопасного программирования веб-приложений на PHP

Данная статья не претендует на роль всеобъемлющего руководства на тему “как сделать так, чтоб меня никто не поломал”. Так не бывает. Единственная цель этой статьи - показать некоторые используемые мной приемы для защиты веб-приложений типа WWW-чатов, гостевых книг, веб-форумов и других приложений подобного рода. Итак, давайте рассмотрим некоторые приемы программирования на примере некоей гостевой книги, написанной на PHP.

Первой заповедью веб-программиста, желающего написать более-менее защищенное веб-приложение, должно стать “Никогда не верь данным, присылаемым тебе пользователем”. Пользователи - это по определению такие злобные хакеры, которые только и ищут момента, как бы напихать в формы ввода всякую дрянь типа PHP, JavaScript, SSI, вызовов своих жутко хакерских скриптов и тому подобных ужасных вещей. Поэтому первое, что необходимо сделать - это жесточайшим образом отфильтровать все данные, присланные пользователем.

Допустим, у нас в гостевой книге существует 3 формы ввода: имя пользователя, его e-mail и само по себе тело сообщения. Прежде всего, ограничим количество данных, передаваемых из форм ввода чем-нибудь вроде:

  1. <input maxlength="20" name="username" type="text" />

[Читать далее...]

Теги: , | Автор: Vladimir Boichentsov

Нет комментариев

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

Loading ... Loading ...

Пишем свою статистику посещения на Python

И так, продолжаем играться с питоном и попробуем написать статистику посещений для сайта. Для реализации воспользуемся связкой python и sqlite.
Я постараюсь рассказать про мой подход к написанию статистики для одного своего сайта написанного на питоне.

Создаем базу для статистики с одной единственной таблицей.
setup.py

  1. # -*- coding: utf-8 -*-
  2.  
  3. import sqlite3
  4.  
  5. connection = sqlite3.connect('statistics.db')
  6. cursor = connection.cursor()
  7.  
  8. cursor.execute('CREATE TABLE daily (id INTEGER PRIMARY KEY, time, uri, referer, user_agent, ip)')
  9.  
  10. cursor.close()
  11. connection.close()

[Читать далее...]

Теги: , | Автор: Vladimir Boichentsov

Нет комментариев

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

Loading ... Loading ...