воскресенье, 29 декабря 2013 г.

Запретить или разрешить кэширование в PHP или Apache


Столкнулся с кэшированием и узнал, что запрет кэширования методом в Wikipedia не работает. Вот этот метод:
<?php
/*
 ** Проверка работоспособности кода запрета кэширования
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate( "D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
echo "<h1>", date("H:i:s"), "</h1>";
?>

понедельник, 16 декабря 2013 г.

Пример ускорения python используя ctypes

Один из вариантов ускорить выполнение кода Python - переписать медленный метод на язык C, с помощью ctypes можно подключать библиотеки написанные на C.
Ниже пример вызова C-метода и сравнение производительности.

Ограничить использование памяти в Linux

Иногда необходимо ограничить в использовании памяти пользователя или какое-то приложение, в linux существует несколько способов это реализовать, для того что-бы ограничить в памяти текущего пользователя можно вызвать команду:

ulimit -v 1024
Размер указывается в Кб, этот лимит будет действовать в пределах текущей сессии.

Для постоянного действия ограничений, можно настроить файл /etc/security/limits.conf
username  hard  as   4000000
@groupname  hard  as   4000000

Объем задается в Кб, в примере выше (4Гб).
Так же можно указать лимит для группы (2-я строка примера).

Если нужно какое-то приложение ограничить в ресурсах, то под него можно создать пользователя и к нему применить ограничение либо использовать ulimit.

MongoDB базовые функции под python ( pymongo )

MongoDB - документо-ориентированная система управления базами данных (СУБД) с открытым исходным кодом, не требующая описания схемы таблиц.

# coding: utf8

import pymongo

from pymongo import Connection

суббота, 23 ноября 2013 г.

Оформление выдачи поиска в WordPress

Оформление страницы результатов поиска

 

Для вывода результатов поиска в WordPress применяется отдельный файл в теме –search.php. Если у вас в теме его нет, что движок использует для показа результатов другой файл с циклом вывода постов, скорее всего, index.php. В этом случае страница результатов поиска ничем не будет отличаться от страницы записей. Это не очень удобно, так как может ввести в заблуждение пользователя.
Для того чтобы оформить страницу вывода результатов поиска WP. Нужно создать файл search.php в папке с вашей темой WordPress, если его нет.

среда, 6 ноября 2013 г.

Python, замена слов в файле из списка

Собственно, есть два списка:

test1 = ['111', '222']
test2 = ['fff', 'sss'] 

Нужно заменить все встречающиеся слова, которым соответствуют элементы 1-го, на элементы 2-го списка. Ниже приведена функция, делающая это.


def Params(old_data, new_data, mapfile):
        file = open(mapfile, 'r')
        text = file.read() 
        file.close()
        file = open(mapfile, 'w') 
        for word_number in range(len(old_data)):
            text = text.replace(old_data[word_number], 
                                new_data[word_number])
 
        file.write(text)   
        file.close()
 

вторник, 5 ноября 2013 г.

Ubuntu команды терминала


1. Общие команды Linux


Linux команды, которым не нашлось место ни в каком другом разделе.
# uname -a
# Показать версию ядра Linux;
# lsb_release -a
# На экран выводиться информация о версии операционной системы Debian и оснваных на ней дистрибутивах;
# cat /etc/SuSE-release
# На экран выводится информация о версии операционной системы SuSE;
# man hier
# Описание иерархии файловой системы (для чего нужна каждая директория в linux);
# clear
# Очищение экрана терминала;
# wall Привет
# Отправляет на терминалы других пользователей сообщение "Привет";
# date
# Показывает текущую дату и время;
# cal -3
# Показывает в удобной форме предыдущий, текущий и последующий месяц (типо календарь);
# uptime
# Показать текущее время и работу системы без перезагрузки и выключения;
# hostname
# Показать сетевое имя компьютера;
# whois linux.org
# Показать информацию о доменом имени linux.org;
# export http_proxy=http://your.proxy:port
# Изменить переменной окружения http_proxy, для использования интернета через proxy-сервер;
# wget http://itshaman.ru/images/logo_white.png
# Скачать файл http://itshaman.ru/images/logo_white.png в текущую папку;
# wget --convert-links -r http://www.linux.org/
# Копирование сайта целиком и конвертирование ссылок для автономной работы. Копирование происходит на 5 уровней в глубину;
# pppconfig
# Создание и настройка Dial-Up соединения для выхода в Интернет по модему;
# pppoeconf
# Создание и настройка выхода в Интернет через ADSL-модем;
# !!
# Выполнить последнюю команду;
# history | tail -50
# Показать последние 50 набранных команд;
# exit
# Завершить сеанс текущего пользователя;
# passwd
# Меняет пароль текущего пользователя;
# shutdown -h now
# Выход из Linux;
# poweroff
# Выход из Linux;
# reboot
# Перезагрузка системы;
# last reboot
# Cтатистика перезагрузок;
# winecfg
# Настройка Wine - НЕэмулятор WinAPI;
# host itshaman.ru
# Показывает IP-адрес введенного сайта;

среда, 23 октября 2013 г.

Python, списки

В Python-е списки один из самых используемых типов данных. Они отдаленно напоминают массивы в Java или C — это тоже упорядоченный список объектов. В частности, аналогию можно провести с массивом в Java — с классом Vector, который способен содержать произвольные объекты. Питоновские списки можно также сравнить с массивами на языке Perl. По своей мощи, гибкости, простоте использования список превосходит аналоги из других языков программирования.
В этой заметке будут рассмотрены следующие темы.
  1. Что такое список.
  2. Операции со списками.
  3. Встроенные функции.
  4. Стек и очередь.
  5. Кортежи (Tuple).
  6. Сеты (Set).
  7. Встроенные функции filter(), map(), zip(), reduce().

четверг, 17 октября 2013 г.

Определение текущей дирректории в Python


import os

#получим полный путь до текущего файла
path = os.path.abspath(os.path.dirname(__file__))

#получим путь на уровень выше
path = os.path.split(path)[0]

#и ещё на уровень, нам же на 2 уровня подняться надо
path = os.path.split(path)[0]

print path

#в path и будет путь.
#можно покороче

print os.path.split(os.path.split(os.path.abspath(os.path.dirname(__file__)))[0])[0]

понедельник, 30 сентября 2013 г.

Joli OS облачная система на базе Chrome OS и Ubuntu

Готова для загрузки обновленная Jolicloud теперь она называется Joli OS. Это облачная операционная система созданная на базе Ubuntu и Chrome OS в большей степени, ориентированная на нетбуки и старые компьютеры. Сами разработчики называют её «Internet operating system».

Попробовать ее в браузере можно либо перейдя с официального сайта (с которого её можно и сакачать инструкция по установке на английском тут) в соответствующий раздел или пройдя по этой ссылке, ещё можно установить расширение для браузера Chromium, но просче все таки по ссылке перейти. Дополнительную информацию можно посмотреть в интернет.

среда, 25 сентября 2013 г.

Плавное раскрытие div-а, при помощи Javascript

Недавно было необходимо написать скрипт, который бы при нажатии на определённую ссылку, плано раскрывал div.

Собственно вот результат - тыц. Данный пример хорош тем, что не требует каких-либо библиотек.

четверг, 19 сентября 2013 г.

Команды терминала Ubuntu.

Команды терминала Ubuntu.


mkdir catalog Создать каталог в текущем каталоге

mkdir -p /catalog/dir/dot Создать каталог dot и остальную часть дерева


df -h Показывает все диски в системе

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

[1]+  Остановлено
[2]+  Остановлено
 и т.д.

Самый простой способ записать звук с микрофона в Ubuntu

Иногда требуется записать звук с микрофона, в Ubuntu самым простым способом (я более простого не знаю просто) это в консоли команда.
           $arecord -d 7 /tmp/test.wav



Семь  - это длительность записи.

вторник, 17 сентября 2013 г.

Python, функция return нескольких значений

Несколько возвращаемых значений

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

\frac{dy}{dt} = v_0 - gt.

вторник, 10 сентября 2013 г.

10 лучших университетов мира с бесплатным онлайн обучением

10 лучших университетов мира с бесплатным онлайн обучением
(«N самых…»)

1. Massachusetts Institute of Technology ( mit.edu/) – more than 1800 free courses.

2. Open University ( open.ac.uk/) – OpenLearn

3. Carnegie Mellon University ( cmu.edu/) – Open Learning Initiative.

4. Tufts University ( tufts.edu/) – OpenCourseWare

5. Stanford ( stanford.edu/) – has Tunes U

6. University of California, Berkeley ( berkeley.edu/)

7. Utah State University ( usu.edu/)

8. Kutztown University of Pennsylvania ( kutztownsbdc.org/)

9. University of Southern Queensland ( usq.edu.au/)

10. University of California, Irvine ( uci.edu/)

понедельник, 9 сентября 2013 г.

Небольшое руководство по Joomla

Введение


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

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


воскресенье, 1 сентября 2013 г.

Отправка email при помощи python

В этом сообщении будет показано как, используя
Python, отправлять email-сообщения, причём будет показано как добавить файл-вложение в письмо.

Пример 1.

import smtplib   
from email.mime.text import MIMEText    
me = 'admin@mail.ru'
you = 'kot_smit@mail.ru'
smtp_server = 'smtp.mail.ru'
msg = MIMEText('Message e-mail')
msg['Subject'] = 'The contents of '
msg['From'] = me
msg['To'] = you
s = smtplib.SMTP(smtp_server)
s.sendmail(me, [you], msg.as_string())
s.quit()
 
 

пятница, 30 августа 2013 г.

AMQP

AMQP (Advanced Message Queuing Protocol) — открытый протокол для передачи сообщений между компонентами системы. Основная идея состоит в том, что отдельные подсистемы (или независимые приложения) могут обмениваться произвольным образом сообщениями через AMQP-брокер, который осуществляет маршрутизацию, возможно гарантирует доставку, распределение потоков данных, подписку на нужные типы сообщений.
Архитектуру протокола разработал John O’Hara.

четверг, 29 августа 2013 г.

Celery, начало работы

Данное сообщение является одним из многих, которые будут написаны в процессе изучения Celery.

Celery — «distributed task queue». Это распределенная асинхронная очередь заданий, которая обладает широким функционалом.

воскресенье, 18 августа 2013 г.

WSGI - приложения

WSGI - приложения

Вот пример простейшего WSGI приложения:

def MyApplication(environ, start_response):
     start_response('200 OK', [('Content-type', 'text/plain')])
     yield "Hello, world!"

Помимо yield можно делать return(это основной способ) и print(если позволяет веб-сервер). Обратите внимание, что Apache mod_wsgi запрещает использовать поток вывода, поэтому любая попытка сделать print будет приводить к ошибке.

вторник, 6 августа 2013 г.

RMI (англ. Remote Method Invocation)

RMI (англ. Remote Method Invocation) — программный интерфейс вызова удаленных методов в языке Java.
Распределенная объектная модель, специфицирующая, каким образом производится вызов удаленных методов, работающих на другой виртуальной машине Java.
При доступе к объектам на другом компьютере возможно вызывать методы этого объекта.
Необходимо только =
  1. передать параметры метода на другой компьютер
  2. сообщить объекту о необходимости выполнения метода
  3. а затем получить обратно возвращаемое значение

понедельник, 8 июля 2013 г.

воскресенье, 30 июня 2013 г.

Некоторые Bash-команды

Работа с историей команд


historyВывести команды в пронумерованном виде
!!Выполнить последнюю команду
!88-ая команда
!-22-ая команда с конца
!hiПоследняя команда начинающаяся с hi
!$Использовать последний аргумент предыдущей строки
Ctrl+RПоиск в истории команд
Ctrl+CОтмена команды
Ctrl+LОчистка экрана
Esc+.Параметр предыдущей команды


пятница, 14 июня 2013 г.

Подсветка исходного кода

В этой заметке показан результат вставки и оформления исходного кода в html-страницу. Для сего действияиспользуются различные JavaScript-библиотеки\плагины\утилиты. Мне же с ними не сильно охота заморачиваться. Поэтому берём редактор Kate, пишим код, потом нажимает "Сохранить как html", сохраняем Html-страничку, затем открываем её и копируем код, вот и всё. Нажав "далее" можно увидеть результат.

Установка Adobe Flash и проприетарных плагинов/библиотек в Ubuntu

Для для установки сего выше сказанного существует одна команда

sudo apt-get install ubuntu-restricted-extras

четверг, 13 июня 2013 г.

Установка Latex-а в Ubuntu

В данном сообщении будут перечислены команды необходимые для установки Latex-а в Ubuntu, включая редактор кода и необходимых пакетов для использования Русского языка.


$sudo apt-get install texlive-latex-base

$sudo apt-get install texlive-doc-ru

$sudo apt-get install texlive-lang-cyrillic

 

Затем устанавливаем Texmaker.

Вот собственно и всё.

IT-записки

comments powered by Disqus