IT Блог

Документации и переводы

Статьи на технические темы

Отключить тачпад в linux

На линуксе минте 17.1 можно сделать следующим образом:

1. Зайти в "Меню -> Параметры -> Мышь" и включить пункт "Запретить сенсорную панель на время набора текста".

2. Если вы хотите полностью отключить тачпал, то установите пакет gpointing-device-settings.

$ sudo apt-get install gpointing-device-settings

После этого в "Меню -> Параметры" появится новый пункт под названием Pointing Devices. В этом приложении можно полностью отключить тачпад. Также это приложение содержит кучу других полезных настроек.


Google блокирует попытку авторизации с моего сайта или как разрешить доступ Google авторизации из другого места удаленно?

Столкнулся с такой проблемой: я хочу, чтобы мое приложение отправляло письма с формы обратной связи через зарегистрированную gmail почту. Но письма с новой зарегистрированной эл. почты не приходят. Google блокирует попытку авторизации с моего сайта и во вкладке "Безопасность" (в настройках аккаунта гугл) выводит: "Попытка входа из приложения или с устройства заблокирована".

В этой же вкладке можно найти пункт "Да это был я!". Вроде бы теперь всё должно работать, но...! Он не разрешает последующие попытки входа: они так же блокируются.

Оказывается после нажатия "Да, это был я!" нужно подождать две недели!!! Вот такая петрушка от безопасности Google.

UPD 13.05...


Невозможно исправить ошибки, у вас отложены (held) битые пакеты

Когда терминал выдаёт что-то подобное: Невозможно исправить ошибки, у вас отложены (held) битые пакеты, или когда система linux не может найти какие-либо библиотеки, то нужно посмотреть в каком репозитории они лежат и добавить в /etc/apt/sources.list необходимые репозитории.

Например, когда я пытался запустить nodejs, терминал выдал следующее:

$ sudo apt-get install nodejs curl https://www.npmjs.org/install.sh | sudo sh
Пакеты, имеющие неудовлетворённые зависимости:
 nodejs : Зависит: rlwrap но он не может быть установлен
E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

После добавления в /etc/apt/sources.list ссылки на репозиторий http://ftp.de.debian.org...


Адаптация картинок под разрешения с высокой плотностью пикселей

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

.selector {background: url(../path_to_image/image.png) no-repeat; width: 10px; height: 10px;}

@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi) {
 .selector {background-image: url(../path_to_image/image_2x.png); background-size: 100%;}
}

Если требуется использовать фоновый паттерн (повторяющийся узор), то код перепишется следующим образом:

.selector {background: url(../path_to_image/image.png) repeat;}

@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi) {
 .selector {background-image: url(../path_to_image/image_2x.png); background-size: 10px 10px;}
}

Можно рассмотреть более сложный случай: адаптация изображений, которые выравниваются по центру в...


linebreak in admin django. Разделить на строчки поле TextField в админке или вывести html в ячейке таблицы при редактировании списка объектов

Рассмотрим ситуацию, когда нужно вывести список доменных имён в списке объектов.

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

class Person(models.Model):
    name = models.CharField('Имя', max_length=255)
    domains = models.TextField('Доменные имена')

Теперь, если мы хотим видеть эту информацию в списке просмотра объектов Person, то у нас будет следующее:

@admin.register(Person)
class PersonAdmin(admin.ModelAdmin):
    list_display = ('name ', 'domains')

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

1-ый способ...


Подборка полезных библиотек, плагинов, скриптов

Список содержит применяемые мною библиотеки, плагины, скрипты и т. д. Это не весь список, но может кто-то найдёт что-то для себя полезное:

jquery-autotab-master - настройка перехода фокуса на следующее поле по нажатию клавиши tab

jquery.scrollTo - плавная перемотка страницы до указанного элемента.

Селекты с автокомплитом

chosen - http://harvesthq.github.io/chosen/

typeahead - https://github.com/twitter/typeahead.js

jquery ui - https://jqueryui.com/autocomplete/

Ну и любимая блоггерами строчка подобных постов: список будет пополняться :)


javascript как узнать время в определённом городе

Есть сервис, позволяющий узнать время в городе http://time.is/ru/widgets

Например, для Иркутска будет вставка такого скрипта:

<a href="http://time.is/Shelekhov" id="time_is_link" rel="nofollow">Шелехов:</a>
<span id="Shelekhov_z41b"></span>
<script src="http://widget.time.is/t.js"></script>
<script>time_is_widget.init({Shelekhov_z41b:{time_format:"hours:minutes"}});</script>

Ниже показан рабочий пример скрипта:


ChoiceField with empty value, select default value django. Вставить пустое значение в тег селект

Если мы имеем дело с обычно формой ​forms.Form (и в особом случае при использовании forms.ModelForm, см. ниже) и хотим иметь пустое значение при выборе в селекте, то нам нужно позаботиться о создании пустого значения вручную.

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

На уровне Django

1-ый способ - с использованием ChoiceField

class MyForm(forms.Form):
SERVICES = ((REG_IP, u'Регистрация ИП'),
            (REG_OOO, u'Регистрация ООО'))
SUBJECTS = ((SERVICE, u'Услуга'),
            (PARTNERSHIP, u'Сотрудничество'),

blank_choice = (('', '--- Выберите значение ---'),) 
service = forms.ChoiceField(choices=blank_choice + SERVICES)
subject = forms.ChoiceField(choices=blank_choice...

reverse url admin django. Получить путь объекта в представлениях и шаблонах для изменения в админке

Получить путь (url) объекта в представлениях и шаблонах для изменения в админке не сложно. Достаточно знать синтаксис первого аргумента метода reverse. Для того, чтобы что-то сделать с объектом из админки нужно сначала написать "admin:app_model_", где app - приложение, где находится необходимая модель, model - сама модель. И выбрать необходимое действие:

  • add - добавить новый объект.
  • change - изменить объект.
  • changelist - открыть список объектов.
  • history - открыть историю изменения объекта.
  • delete - удалить объект.

Ниже я привёл примеры, которые наглядно это дело отображают (обратите внимание, что некоторые урлы требуют id объекта).

В представлениях (во вьюхах)

instance = Model.objects.get(id=1)  # Найдём объект по id=1...

На данный момент нет специального поиска, поэтому я предлагаю воспользоваться обычной поисковой системой, например, Google, добавив "vivazzi" после своего запроса.

Попробуйте