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

Почему нельзя класть телефон на холодильник?

Действительно? Почему?

Вот что пишут на UFO:

1. Когда давно, были магнитные кассеты. От холодильника они реально могли размагнититься.
2. Существует ЭМИ, который может нарушить работу полупроводниковой техники. От холодильника ничего сравнимого по мощности/частоте нет, но есть люди с клинической перестраховкой.
3. Холодильник высокий, вероятность разбиться мобилке выше, чем падая со стола или тумбочки.

http://unixforum.org/index.php?showtopic=135736&view=findpost&p=1250001

Я сейчас проверил данный вопрос, ВНЕЗАПНО выяснился ещё один отрицательный момент: мой холодильник "новый", но на самом деле, ему уже скоро год. Там ТОЛСТЫЙ слой пыли!


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

Права доступа в Linux

прыг, ласточка прыг, прямо на двор...
Прыг, ласточка прыг, а в лапках - топор
С одной стороны свет,
А другой стороны нет,

Значит всё как всегда,

Ну цитаты невозбранно взяты у нашего Поэта, а именно у козлобородого гуру, Бориса Гребенщикова. Да, ещё до того времени 
ну слово "время" зачёркнуто, ибо именно о нём и пойдёт сейчас речь.

Итак, здравствуйте, мои дорогие дяди и тёти.

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

Если вы поставили Linux, то знайте, ВНЕЗАПНО: это всё полная хуета, ВАШ Linux НИЧЕМ не лучше маздайной хуйни. Смиритесь с этим, и сделайте вдоль, дабы очистить генофонд планеты от своих не нужных генов.

Я думаю, после ТАКОГО вступления уже никого не осталось, но окромя тех параноиков, которые ДЕЙСТВИТЕЛЬНО решили себя защитить. Продолжим...

Прав доступа в маздае попросту НЕТ. Есть имитация, но я сегодня не буду писать про имитацию, и если вы позволите, на этом я и закончу данный абзац. (PS: если не позволите, пишите в комментах)

Итак. Права доступа в Linux определяются некими битами, которые закреплены за файлами. Давайте определимся, что же есть "файл"? Файлом, я называю некое хранилище информации, в коем можно держать ЧТО-ТО.

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

  1.  право доступа по чтению для хозяина
  2.  право доступа для МОДИФИКАЦИИ для хозяина
  3.  право ИСПОЛЬЗОВАНИЯ для хозяина
  4.  право чтения для группы
  5.  право модификации для группы
  6.  право использования для группы
  7.  право чтения для всех
  8.  право модификации для всех
  9.  право использования для всех
Если с чтением всё понятно, то с модификацией стоит пояснить: под модификацией подразумевается ИЗМЕНЕНИЕ файлов. Т.е. сам файл остаётся как был, но его СОДЕРЖИМОЕ изменяется. ВАЖНО понимать, что хозяин файла при этом НЕ меняется. Т.е., если Вы разрешили модификацию для всех, то не обижайтесь, что ВСЕ этот файл как-то изменяют. Зачем? Ведь если разрешить создание копии, то можно ведь и сделать измененную копию?

Отдельно надо сказать про право ИСПОЛЬЗОВАНИЕ -- это право даёт возможность именно использования as is. Только для текстовых файлов это чтение, для любых других файлов это именно ИСПОЛЬЗОВАНИЕ, например для бинарных файлов это исполнение, а для каталогов это вход в каталог (т.е. чтение/модификация/использование файлов внутри этого каталога).


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

xattr-message

простой скрипт для создания заметок к файлам для файлового менеджера.

Использует xattr

http://code.google.com/p/xattr-message/


среда, 31 июля 2013 г.

Вступил в действие закон о запрете интернетов в сраной рашке

     Настоящий Федеральный  закон  вступает  в  силу  с  1  августа
2013 года.

Что ж,  господа, Здравствуй жопа новый год.

С сегодняшнего дня ЭТО уже наша новая реальность. ХYёвая, доложу я вам.

Вот полюбуйтесь на лурку.

Самое уродское заключается в том, что фильмы и музыку можно легко скачивать, и срали все пираты на этот ваш закон, закон касается исключительно ИНТЕРНЕТА, т.е. Сети с центральными узлами. Запретить так Kademlia невозможно, тупо потому, что у неё НЕТ никаких центральных узлов. В отличие скажем от этого(и ЛЮБОГО другого сайта). Не трудно догадаться, против кого направлен и будет действовать этот инструмент террора.


Остались мы без интернета,
Спасибо **** за это.

Настройка SSH

Мануал для настройки SSH.

http://emulek.ignorelist.com/forum/viewtopic.php?f=42&t=10734

в бложик такое плохо лезет.

среда, 24 июля 2013 г.

виртуальная клавиатура kvkbd и логин в linux

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

В силу того, что OS Slackware Linux, то я нагуглил слакобилд. Вот он:


#!/bin/sh
#-- kvkbd for Slackware --
# Build script by Phantom X 
# Suggested usage: $ kvkbd.SlackBuild 2>&1 | tee build.log
#--
# Copyright 2008, 2009, 2010, 2011 Phantom X, Goiania, Brazil.
# Copyright 2006 Martijn Dekker, Groningen, Netherlands.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR `AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# http://www.kde-apps.org/content/show.php/Kvkbd?content=56019

PACKAGER_ID=${PACKAGER_ID:-$USER}
PACKAGER=${PACKAGER:-$USER@$HOSTNAME}

# Set YES for native build with gcc >= 4.2
SB_NATIVE=${SB_NATIVE:-NO}

# Set to YES to replicate slackbuild and patches
SB_REP=${SB_REP:-YES}

CWD=$(pwd)
TMP=${TMP:-/tmp}
if [ ! -d ${TMP} ]; then
  mkdir -p ${TMP}
fi

NAME=kvkbd
PKG=${PKG:-${TMP}/package-${NAME}}

VERSION=${VERSION:-0.6}
if [ "${SB_NATIVE}" = "YES" ] ;then
  ARCH=${ARCH:-$(uname -m)}
else
  ARCH=${ARCH:-x86_64}
fi
if [ "${ARCH}" = "x86_64" ] ;then
  SLKTARGET=${SLKTARGET:-x86_64}
else
  SLKTARGET=${SLKTARGET:-i486}
fi
SLKDTARGET=${SLKDTARGET:-slackware}
BUILD=${BUILD:-1}
NJOBS=${NJOBS:-$(( $(getconf _NPROCESSORS_ONLN) + 1 ))}
DOCDIR=${PKG}/usr/doc/${NAME}-${VERSION}
SBDIR=${PKG}/usr/src/slackbuilds/kde-apps/${NAME}
PKGDEST=${PKGDEST:-${CWD}}
PKGFORMAT=${PKGFORMAT:-tgz}
PKGNAME=${NAME}-$(echo ${VERSION} | tr - . )-${ARCH}-${BUILD}${PACKAGER_ID}

DATE=$(LC_ALL=C date +%d-%b-%Y)

SRCDIR=${NAME}-${VERSION}
SRCARCHIVE=94374-${SRCDIR}.tar.bz2

DL_PROG=${DL_PROG:-wget}
DL_TO=${DL_TO:-5}
DL_OPTS=${DL_OPTS:-"--timeout=${DL_TO}"}
DL_URL="http://www.kde-apps.org/CONTENT/content-files/${SRCARCHIVE}"

# if source is not present, download in source rootdir if possible
test -r ${CWD}/${SRCARCHIVE} || ${DL_PROG} ${DL_OPTS} ${DL_URL} || exit 1

if [ "${SB_NATIVE}" = "YES" ] ;then
  SLKCFLAGS="-O2 -march=native -mtune=native -pipe"
  [ "${SB_ECFLAGS}" ] && SLKCFLAGS="${SLKCFLAGS} ${SB_ECFLAGS}"
else
  case "${ARCH}" in
    i[3-6]86) SLKCFLAGS="-O2 -march=${ARCH} -mtune=i686"
                 ;;
    x86_64) SLKCFLAGS="-O2 -fPIC"
                 ;;
    s390|*) SLKCFLAGS="-O2"
                 ;;
  esac
fi
if [ "${ARCH}" = "x86_64" ] ;then
  LIBDIRSUFFIX="64"
  SLKCFLAGS="${SLKCFLAGS} -fPIC"
else
  LIBDIRSUFFIX=""
fi

# Set the config option variables if they are not already set:
[ -r ../KDE.options ] && source ../KDE.options
[ -r /etc/profile.d/kde4.sh ] && source /etc/profile.d/kde4.sh

_kde4_prefix=${_kde4_prefix:-/usr}
_kde4_sysconfdir=${_kde4_sysconfdir:-/etc/kde}
_kde4_libdir=${_kde4_libdir:-/usr/lib${LIBDIRSUFFIX}}
_kde4_libexecdir=${_kde4_libexecdir:-/usr/libexec/kde4}
_kde4_datadir=${_kde4_datadir:-/usr/share}
_kde4_sharedir=${_kde4_sharedir:-/usr/share}
_kde4_iconsdir=${_kde4_iconsdir:-${_kde4_sharedir}/icons}
_kde4_configdir=${_kde4_configdir:-${_kde4_sharedir}/config}
_kde4_appsdir=${_kde4_appsdir:-${_kde4_sharedir}/kde4/apps}
_kde4_docdir=${_kde4_docdir:-${_kde4_prefix}/doc}
_kde4_bindir=${_kde4_bindir=:-${_kde4_prefix}/bin}
_kde4_sbindir=${_kde4_sbindir:-${_kde4_prefix}/sbin}
_kde4_includedir=${_kde4_includedir:-${_kde4_prefix}/include/kde4}
_kde4_buildtype=${_kde4_buildtype:-release}
_kde4_macros_api=${_kde4_macros_api:-2}

if [ -d ${PKG} ]; then
  # Clean up a previous build
  rm -rf ${PKG}
fi
mkdir -p ${PKG}

unset QTDIR QTINC QTLIB
export QTDIR=$(qmake-qt4 -query QT_INSTALL_PREFIX)
PATH="$(qmake-qt4 -query QT_INSTALL_BINS):${PATH}" ; export PATH

cd ${TMP}
rm -rf ${SRCDIR}
tar -xvf ${CWD}/${SRCARCHIVE} || exit 1
cd ${SRCDIR} || exit 1

chmod -R u+w,go+r-w,a-s .

# zcat ${CWD}/${NAME}.patch.gz | patch -p0 -E --backup --verbose || exit 1

export CFLAGS="${SLKCFLAGS}"
export CXXFLAGS="${SLKCFLAGS}"
export FFLAGS="${SLKCFLAGS}"

mkdir -p build
( cd build || exit 1

  cmake .. \
    -DCMAKE_EXE_LINKER_FLAGS="$CFLAGS -lX11" \
    -DCMAKE_INSTALL_PREFIX:PATH=${_kde4_prefix} \
    -DSYSCONF_INSTALL_DIR:PATH=${_kde4_sysconfdir} \
    -DINCLUDE_INSTALL_DIR:PATH=${_kde4_includedir} \
    -DLIB_INSTALL_DIR:PATH=${_kde4_libdir} \
    -DLIB_SUFFIX=${LIBDIRSUFFIX} \
    -DLIBEXEC_INSTALL_DIR:PATH=${_kde4_libexecdir} \
    -DDATA_INSTALL_DIR:PATH=${_kde4_appsdir} \
    -DMAN_INSTALL_DIR:PATH=/usr/man \
    -DCMAKE_BUILD_TYPE=${_kde4_buildtype} \
    -DBUILD_SHARED_LIBS:BOOL=ON \
    -DCMAKE_SKIP_RPATH:BOOL=ON \
    -DCMAKE_VERBOSE_MAKEFILE=ON \
    || exit 1

  make -j${NJOBS} || make || exit 1
  make install/fast DESTDIR=${PKG} || exit 1

) || exit 1

find ${PKG} | xargs file | grep -e "executable" -e "shared object" | grep ELF \
  | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null

# Add a documentation directory:
mkdir -p ${DOCDIR}
cp -a \
  AUTHORS COPYING ChangeLog README TODO ${CWD}/ChangeLog.SB \
  ${DOCDIR}/
find ${DOCDIR}/ -type d -print0 | xargs -0 chmod 0755
find ${DOCDIR}/ -type f -print0 | xargs -0 chmod 0644

# Compress and link manpages, if any:
if [ -d ${PKG}/usr/share/man ]; then
  mv ${PKG}/usr/share/man ${PKG}/usr/man
  rmdir ${PKG}/usr/share
fi
if [ -d ${PKG}/usr/man ]; then
  ( cd ${PKG}/usr/man
    for manpagedir in $(find . -type d -name "man*") ; do
      ( cd ${manpagedir}
        for eachpage in $( find . -type l -maxdepth 1) ; do
          ln -s $( readlink ${eachpage} ).gz ${eachpage}.gz
          rm -f ${eachpage}
        done
        gzip -9 *.?
        # Prevent errors
        rm -f *.gz.gz
      )
    done
  )
fi

mkdir -p ${PKG}/install
cat ${CWD}/slack-desc > ${PKG}/install/slack-desc
cat ${CWD}/slack-required > ${PKG}/install/slack-required

sed -i "s|_PACKAGER|${PACKAGER}|g; s|_BUILD_DATE|${DATE}|g" \
       ${PKG}/install/slack-desc

if [ "${SB_REP}" = "YES" ] ;then
  # Replicate slackbuild and patches
  mkdir -p ${SBDIR}
  install -m0644 ${CWD}/slack-desc ${CWD}/slack-required ${CWD}/ChangeLog.SB \
                 ${SBDIR}/
  install -m0755 ${CWD}/${NAME}.SlackBuild \
                 ${SBDIR}/${NAME}.SlackBuild
fi

# Build package:
set +o xtrace # no longer print commands upon execution

ROOTCOMMANDS="set -o errexit -o xtrace ; cd ${PKG} ;
  /bin/chown --recursive root:root . ;"

ROOTCOMMANDS="${ROOTCOMMANDS}
  /sbin/makepkg --linkadd y --chown n ${PKGDEST}/${PKGNAME}.${PKGFORMAT} "

if test ${UID} = 0; then
  eval ${ROOTCOMMANDS}
  set +o xtrace
elif test "$(type -t fakeroot)" = 'file'; then
  echo -e "\e[1mEntering fakeroot environment.\e[0m"
  echo ${ROOTCOMMANDS} | fakeroot
else
  echo -e "\e[1mPlease enter your root password.\e[0m (Consider installing fakeroot.)"
  /bin/su -c "${ROOTCOMMANDS}"
fi

# Clean up the extra stuff:
if [ "$1" = "--cleanup" ]; then
  echo "Cleaning..."
  if [ -d ${TMP}/${SRCDIR} ]; then
    rm -rf ${TMP}/${SRCDIR} && echo "${TMP}/${SRCDIR} cleanup completed"
  fi
  if [ -d ${PKG} ]; then
    rm -rf ${PKG} && echo "${PKG} cleanup completed"
  fi
  rmdir ${TMP} && echo "${TMP} cleanup completed"
fi
exit 0
скрипт несколько исправлен:

1. ставится kvkbd (слакобилд можно нагуглить, но он сейчас сломан. Что-бы его починить, надо в опции cmake добавить -DCMAKE_EXE_LINKER_FLAGS="$CFLAGS -lX11", тогда собирается и работает, исправленный скрипт выше)

2. в /etc/kde/kdm/kdmrc меняется
-UseTheme=true
+UseTheme=false

3. в /etc/kde/kdm/Xsetup +/usr/bin/kvkbd --loginhelper &
тогда при логине и при перелогине включается клава, и даже набирается. Но вот если усыпить девайс, то хрен там :-( Срабатывает блокировка. Хоть свою пиши на zenity :-( (но там нужно кучу костылей, что-бы её невозможно было-бы вырубить без пароля).
Пока пришлось сделать беспарольный вход, но это меня расстраивает.

Связанная тема на ЛОРе http://www.linux.org.ru/forum/desktop/9379797