Два взгляда на программирование

Источник перевода: EWD540

В окружающем нас мире мы сталкиваемся с двумя коренным образом различными взглядами на программирование:

  • Точка зрения А: программирование в сущности очень просто.
  • Точка зрения В: программирование по сути очень сложно.

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

О природе информатики

Источник вдохновения: EWD896

Теперь, когда летние курсы подходят к концу [EWD895], самое время посмотреть на их тему под другим углом зрения.

Официальная тема курсов: «Потоки управления и потоки данных: Концепции распределенного программирования» — всего лишь определила направление, обычно мы приходили к гораздо более общим вопросам, которые, вероятно, жизненно важны для информатики в целом. Итак, какова природа информатики или, что возможно более точно, какой она должна быть?
Читать далее «О природе информатики»

Нажмите кнопку «Купить». Что это значит с юридической точки зрения?

Первоисточник: Мегамозг — толковая статья, где без всякого рода «туманностей» разъясняется то, что нам нужно.

 

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

Читать далее «Нажмите кнопку «Купить». Что это значит с юридической точки зрения?»

Персонализация страницы подключения WP

Следующий фрагмент php-кода файла function.php вашей темы делает 3 вещи…

Сначала он заменяет логотип в WordPress. Для этого создайте подходящий образ с именем logo-login.png и разместите его в папке images своей темы (или поменяйте эти имена во фрагменте).

Во-вторых он заменяет URL-адрес логотипа на URL вашей домашней страницы. По умолчанию ссылка приводит на сайте http://wordPress.org.

И наконец он заменяет содержимое параметра Alt этого изображения, именем вашего сайта так, как это определено в ваших настройках WP.

// This function loads your image in the login page
function custom_login_logo() {
	echo '';
}  
add_action('login_head', 'custom_login_logo');
 
// This functions changes the img url and alt text
function change_wp_login_url() {
	echo bloginfo('url');  // this is where a click on the logo would lead to
}  
 
function change_wp_login_title() {
	echo get_option('blogname'); // this is the alt text
}  
 
add_filter('login_headerurl', 'change_wp_login_url');  
add_filter('login_headertitle', 'change_wp_login_title');

Рассылка подписчикам уведомления о новой публикации

Довольно часто функционал интернет-ресурса требует рассылки пользователям ресурса уведомления о публикации новой статьи. Например, в часто мною используемых сайтах поддержки учебных курсов (что не курс, то сайт и так по 8-10 новых сайтов каждый год), где зарегистрированы все курсанты. Конечно, это можно сделать с помощью тяжеловесных плагинов-майлеров, но зачем? В файл function.php своей темы можно вставит небольшой код, который с успехом решает эту задачу.

Небольшими правками можно добиться более точного попадания в пользователя контента необходимой категории. И все это просто «ничего не весит» в сравнении с, например, Newsletter, e-mailing service или Newsletter Manager.

function email_registered_members($post_ID)  {
    //global $wpdb;
 
    //$userslistarray = $wpdb->get_results("SELECT user_email FROM $wpdb->users;");
 
    $wp_user_search = new WP_User_Query( array( 'fields' => array('user_email') ) );
    $userslistarray = $wp_user_search->get_results();
    $arrUsers = array ();
    for ($arr = $userslistarray, $mU = count ($arr), $iU = 0; $iU < $mU; $iU++) {
        $arrUsers[] = $arr[$iU]->user_email;
    }
 
    $users = implode(",", $arrUsers);
      
    mail($users, "New Post Published : " . get_bloginfo('name') , "at" . get_bloginfo('siteurl'). " Visit today to learn more" );
    return $post_ID;
}
add_action('publish_post', 'email_registered_members');

Информация о пользователях

Хотите отобразить список всех авторов/пользователей сайта? Следующий фрагмент кода делает это. Вставить его наду туда, где это необходимо отобразить: в теме, шаблоне страницы или посте.

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

get_var( "SELECT COUNT(*) FROM $wpdb->posts $where" );
    return apply_filters( 'get_usernumposts', $count, $userid );
}
 
$authorsListArgs = array(
    'orderby' => 'post_count',
    'order' => 'ASC', // big to small
    'order' => '25', // members amount
);
$blogusers = get_users($authorsListArgs);
 
echo '
    '; foreach ($blogusers as $user) { echo '
  • Name: ' . $user->display_name; . '
  • '; echo '
  • Email: ' . $user->user_email; . '
  • '; echo '
  • Site: ' . $user->user_url; . '
  • '; echo '
  • Published: ' . cupbt($user->ID, 'post'); . '
  • '; } echo '
'; ?>

Активировать менеджер ссылок в WordPress

Начиная с версии 3.5 WordPress (и позднее) в административной панели отсутствует Диспетчер менеджера ссылок. Следующий фрагмент кода в файле functions.php вашей темы вернёт её на место.


Источник: Activate WordPress link manager