.
     
» Ajax Links          

  Linux

Sistema de vigilancia

24 Abr 2009 | Escrito por: lopz | En: Linux
Sistema de vigilancia en linux usando una cámara web

Hola

En este post explicaré cómo montar un pequeño sistema de vigilancia usando un software libre que a mi parecer es el mejor de todos, el más configurable y sobretodo tiene algunas características interesantes, les hablo de MOTION primero que nada tenemos que instalarlo, está disponible en la mayoría de los repositorios de las diferentes distribuciones más comunes, osea que solo quedaría buscarlo e instalarlo con nuestro manejador de paquetes, en mi caso uso gentoo y un simple emerge motion me lo instalará, o en debian/ubuntu un apt-install motion y listo, lo mismo con yum, pacman, etc
Si no lo tienes siempre queda la opción de bajar el código fuente e instalarlo a mano ahí mismo tiene un readme de como hacerlo.

Suponiendo que lo tienes instalado vamos a seguir.. ahora necesitamos una cámara web, yo uso una de 25 USD, haciendo un "lsusb" me la lista así:

Code:
blackzone lopz # lsusb
Bus 005 Device 013: ID 0ac8:301b Z-Star Microelectronics Corp. ZC0301 WebCam

Esta usa los drivers gspcav1, pero obviaremos el paso de como instalarla ya que este post da por supuesto que tienes una webcam funcionando y todo.

Ahora el siguiente paso es configurar nuestro motion, este tiene un fichero de configuración de /etc/motion.conf el cual mostraré a continuación como lo tengo.
Algo interesante es que soporta múltiples cámaras, aquí explicaré como hacerlo funcionar con 1, 2 o más cámaras.

Ahora pasaré a copiar mi motion.conf y explicaré solo algunos puntos que son de interés, los otros igual pero para que si en los comentarios está más que explicado



Code:

# Rename this distribution example file to motion.conf
#
# This config file was generated by motion 3.2.11
 
 
############################################################
# Daemon
############################################################
 
# Start in daemon (background) mode and release terminal (default: off)
daemon on
 
# File to store the process ID, also called pid file. (default: not defined)
process_id_file /var/run/motion/motion.pid
 
############################################################
# Basic Setup Mode
############################################################
 
# Start in Setup-Mode, daemon disabled. (default: off)
setup_mode off
 
###########################################################
# Capture device options
############################################################
 
# Videodevice to be used for capturing  (default /dev/video0)
# for FreeBSD default is /dev/bktr0
; videodevice /dev/video1
 
# v4l2_palette allows to choose preferable palette to be use by motion
# to capture from those supported by your videodevice. (default: 8)
# E.g. if your videodevice supports both V4L2_PIX_FMT_SBGGR8 and
# V4L2_PIX_FMT_MJPEG then motion will by default use V4L2_PIX_FMT_MJPEG.
# Setting v4l2_palette to 1 forces motion to use V4L2_PIX_FMT_SBGGR8
# instead.
#
# Values :
# V4L2_PIX_FMT_SN9C10X : 0  'S910'
# V4L2_PIX_FMT_SBGGR8  : 1  'BA81'
# V4L2_PIX_FMT_MJPEG   : 2  'MJPEG'
# V4L2_PIX_FMT_JPEG    : 3  'JPEG'
# V4L2_PIX_FMT_RGB24   : 4  'RGB3'
# V4L2_PIX_FMT_UYVY    : 5  'UYVY'
# V4L2_PIX_FMT_YUYV    : 6  'YUYV'
# V4L2_PIX_FMT_YUV422P : 7  '422P'
# V4L2_PIX_FMT_YUV420  : 8  'YU12'
v4l2_palette 8
 
# Tuner device to be used for capturing using tuner as source (default /dev/tuner0)
# This is ONLY used for FreeBSD. Leave it commented out for Linux
; tunerdevice /dev/tuner0
 
# The video input to be used (default: 8)
# Should normally be set to 0 or 1 for video/TV cards, and 8 for USB cameras
input 8
 
# The video norm to use (only for video capture and TV tuner cards)
# Values: 0 (PAL), 1 (NTSC), 2 (SECAM), 3 (PAL NC no colour). Default: 0 (PAL)
;norm 0
 
# The frequency to set the tuner to (kHz) (only for TV tuner cards) (default: 0)
;frequency 0
 
# Rotate image this number of degrees. The rotation affects all saved images as
# well as mpeg movies. Valid values: 0 (default = no rotation), 90, 180 and 270.
rotate 0
 
# Image width (pixels). Valid range: Camera dependent, default: 352
width 320
 
# Image height (pixels). Valid range: Camera dependent, default: 288
height 240
 
# Maximum number of frames to be captured per second.
# Valid range: 2-100. Default: 100 (almost no limit).
framerate 2
 
# Minimum time in seconds between capturing picture frames from the camera.
# Default: 0 = disabled - the capture rate is given by the camera framerate.
# This option is used when you want to capture images at a rate lower than 2 per second.
minimum_frame_time 0
 
# URL to use if you are using a network camera, size will be autodetected (incl http:// ftp:// or file:///)
# Must be a URL that returns single jpeg pictures or a raw mjpeg stream. Default: Not defined
; netcam_url value
 
# Username and password for network camera (only if required). Default: not defined
# Syntax is user:password
; netcam_userpass value
 
# The setting for keep-alive of network socket, should improve performance on compatible net cameras.
# 1.0:         The historical implementation using HTTP/1.0, closing the socket after each http request.
# keep_alive:  Use HTTP/1.0 requests with keep alive header to reuse the same connection.
# 1.1:         Use HTTP/1.1 requests that support keep alive as default.
# Default: 1.0
; netcam_http 1.0
 
# URL to use for a netcam proxy server, if required, e.g. "http://myproxy".
# If a port number other than 80 is needed, use "http://myproxy:1234".
# Default: not defined
; netcam_proxy value
 
# Set less strict jpeg checks for network cameras with a poor/buggy firmware.
# Default: off
;netcam_tolerant_check off
 
# Let motion regulate the brightness of a video device (default: off).
# The auto_brightness feature uses the brightness option as its target value.
# If brightness is zero auto_brightness will adjust to average brightness value 128.
# Only recommended for cameras without auto brightness
; auto_brightness off
 
# Set the initial brightness of a video device.
# If auto_brightness is enabled, this value defines the average brightness level
# which Motion will try and adjust to.
# Valid range 0-255, default 0 = disabled
; brightness 150
 
# Set the contrast of a video device.
# Valid range 0-255, default 0 = disabled
; contrast 150
 
# Set the saturation of a video device.
# Valid range 0-255, default 0 = disabled
; saturation 150
 
# Set the hue of a video device (NTSC feature).
# Valid range 0-255, default 0 = disabled
; hue 150
 
 
############################################################
# Round Robin (multiple inputs on same video device name)
############################################################
 
# Number of frames to capture in each roundrobin step (default: 1)
roundrobin_frames 1
 
# Number of frames to skip before each roundrobin step (default: 1)
roundrobin_skip 1
 
# Try to filter out noise generated by roundrobin (default: off)
switchfilter off
 
 
############################################################
# Motion Detection Settings:
############################################################
 
# Threshold for number of changed pixels in an image that
# triggers motion detection (default: 1500)
threshold 1500
 
# Automatically tune the threshold down if possible (default: off)
threshold_tune off
 
# Noise threshold for the motion detection (default: 32)
noise_level 32
 
# Automatically tune the noise threshold (default: on)
noise_tune on
 
# Despeckle motion image using (e)rode or (d)ilate or (l)abel (Default: not defined)
# Recommended value is EedDl. Any combination (and number of) of E, e, d, and D is valid.
# (l)abeling must only be used once and the 'l' must be the last letter.
# Comment out to disable
despeckle EedDl
 
# Detect motion in predefined areas (1 - 9). Areas are numbered like that:  1 2 3
# A script (on_area_detected) is started immediately when motion is         4 5 6
# detected in one of the given areas, but only once during an event.        7 8 9
# One or more areas can be specified with this option. (Default: not defined)
; area_detect value
 
# PGM file to use as a sensitivity mask.
# Full path name to. (Default: not defined)
; mask_file value
 
# Dynamically create a mask file during operation (default: 0)
# Adjust speed of mask changes from 0 (off) to 10 (fast)
smart_mask_speed 0
 
# Ignore sudden massive light intensity changes given as a percentage of the picture
# area that changed intensity. Valid range: 0 - 100 , default: 0 = disabled
lightswitch 0
 
# Picture frames must contain motion at least the specified number of frames
# in a row before they are detected as true motion. At the default of 1, all
# motion is detected. Valid range: 1 to thousands, recommended 1-5
minimum_motion_frames 1
 
# Specifies the number of pre-captured (buffered) pictures from before motion
# was detected that will be output at motion detection.
# Recommended range: 0 to 5 (default: 0)
# Do not use large values! Large values will cause Motion to skip video frames and
# cause unsmooth mpegs. To smooth mpegs use larger values of post_capture instead.
pre_capture 0
 
# Number of frames to capture after motion is no longer detected (default: 0)
post_capture 0
 
# Gap is the seconds of no motion detection that triggers the end of an event
# An event is defined as a series of motion images taken within a short timeframe.
# Recommended value is 60 seconds (Default). The value 0 is allowed and disables
# events causing all Motion to be written to one single mpeg file and no pre_capture.
gap 60
 
# Maximum length in seconds of an mpeg movie
# When value is exceeded a new mpeg file is created. (Default: 0 = infinite)
max_mpeg_time 0
 
# Always save images even if there was no motion (default: off)
output_all off
 
 
############################################################
# Image File Output
############################################################
 
# Output 'normal' pictures when motion is detected (default: on)
# Valid values: on, off, first, best, center
# When set to 'first', only the first picture of an event is saved.
# Picture with most motion of an event is saved when set to 'best'.
# Picture with motion nearest center of picture is saved when set to 'center'.
# Can be used as preview shot for the corresponding movie.
output_normal on
 
# Output pictures with only the pixels moving object (ghost images) (default: off)
output_motion off
 
# The quality (in percent) to be used by the jpeg compression (default: 75)
quality 75
 
# Output ppm images instead of jpeg (default: off)
ppm off
 
 
############################################################
# FFMPEG related options
# Film (mpeg) file output, and deinterlacing of the video input
# The options movie_filename and timelapse_filename are also used
# by the ffmpeg feature
############################################################
 
# Use ffmpeg to encode mpeg movies in realtime (default: off)
ffmpeg_cap_new on
 
# Use ffmpeg to make movies with only the pixels moving
# object (ghost images) (default: off)
ffmpeg_cap_motion off
 
# Use ffmpeg to encode a timelapse movie
# Default value 0 = off - else save frame every Nth second
ffmpeg_timelapse 0
 
# The file rollover mode of the timelapse video
# Valid values: hourly, daily (default), weekly-sunday, weekly-monday, monthly, manual
ffmpeg_timelapse_mode daily
 
# Bitrate to be used by the ffmpeg encoder (default: 400000)
# This option is ignored if ffmpeg_variable_bitrate is not 0 (disabled)
ffmpeg_bps 500000
 
# Enables and defines variable bitrate for the ffmpeg encoder.
# ffmpeg_bps is ignored if variable bitrate is enabled.
# Valid values: 0 (default) = fixed bitrate defined by ffmpeg_bps,
# or the range 2 - 31 where 2 means best quality and 31 is worst.
ffmpeg_variable_bitrate 0
 
# Codec to used by ffmpeg for the video compression.
# Timelapse mpegs are always made in mpeg1 format independent from this option.
# Supported formats are: mpeg1 (ffmpeg-0.4.8 only), mpeg4 (default), and msmpeg4.
# mpeg1 - gives you files with extension .mpg
# mpeg4 or msmpeg4 - gives you files with extension .avi
# msmpeg4 is recommended for use with Windows Media Player because
# it requires no installation of codec on the Windows client.
# swf - gives you a flash film with extension .swf
# flv - gives you a flash video with extension .flv
# ffv1 - FF video codec 1 for Lossless Encoding ( experimental )
# mov - QuickTime ( testing )
ffmpeg_video_codec mpeg4
 
# Use ffmpeg to deinterlace video. Necessary if you use an analog camera
# and see horizontal combing on moving objects in video or pictures.
# (default: off)
ffmpeg_deinterlace off
 
 
############################################################
# Snapshots (Traditional Periodic Webcam File Output)
############################################################
 
# Make automated snapshot every N seconds (default: 0 = disabled)
snapshot_interval 0
 
 
############################################################
# Text Display
# %Y = year, %m = month, %d = date,
# %H = hour, %M = minute, %S = second, %T = HH:MM:SS,
# %v = event, %q = frame number, %t = thread (camera) number,
# %D = changed pixels, %N = noise level, n = new line,
# %i and %J = width and height of motion area,
# %K and %L = X and Y coordinates of motion center
# %C = value defined by text_event - do not use with text_event!
# You can put quotation marks around the text to allow
# leading spaces
############################################################
 
# Locate and draw a box around the moving object.
# Valid values: on, off and preview (default: off)
# Set to 'preview' will only draw a box in preview_shot pictures.
locate off
 
# Draws the timestamp using same options as C function strftime(3)
# Default: %Y-%m-%dn%T = date in ISO format and time in 24 hour clock
# Text is placed in lower right corner
; text_right %Y-%m-%dn%T-%q
 
# Draw a user defined text on the images using same options as C function strftime(3)
# Default: Not defined = no text
# Text is placed in lower left corner
; text_left CAMERA %t
 
# Draw the number of changed pixed on the images (default: off)
# Will normally be set to off except when you setup and adjust the motion settings
# Text is placed in upper right corner
text_changes off
 
# This option defines the value of the special event conversion specifier %C
# You can use any conversion specifier in this option except %C. Date and time
# values are from the timestamp of the first image in the current event.
# Default: %Y%m%d%H%M%S
# The idea is that %C can be used filenames and text_left/right for creating
# a unique identifier for each event.
text_event %Y%m%d%H%M%S
 
# Draw characters at twice normal size on images. (default: off)
text_double off
 
 
############################################################
# Target Directories and filenames For Images And Films
# For the options snapshot_, jpeg_, mpeg_ and timelapse_filename
# you can use conversion specifiers
# %Y = year, %m = month, %d = date,
# %H = hour, %M = minute, %S = second,
# %v = event, %q = frame number, %t = thread (camera) number,
# %D = changed pixels, %N = noise level,
# %i and %J = width and height of motion area,
# %K and %L = X and Y coordinates of motion center
# %C = value defined by text_event
# Quotation marks round string are allowed.
############################################################
 
# Target base directory for pictures and films
# Recommended to use absolute path. (Default: current working directory)
; target_dir /home/lopz/public_html/webcam
 
# File path for snapshots (jpeg or ppm) relative to target_dir
# Default: %v-%Y%m%d%H%M%S-snapshot
# Default value is equivalent to legacy oldlayout option
# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-snapshot
# File extension .jpg or .ppm is automatically added so do not include this.
# Note: A symbolic link called lastsnap.jpg created in the target_dir will always
# point to the latest snapshot, unless snapshot_filename is exactly 'lastsnap'
; snapshot_filename %v-%Y%m%d%H%M%S-snapshot
 
# File path for motion triggered images (jpeg or ppm) relative to target_dir
# Default: %v-%Y%m%d%H%M%S-%q
# Default value is equivalent to legacy oldlayout option
# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-%q
# File extension .jpg or .ppm is automatically added so do not include this
# Set to 'preview' together with best-preview feature enables special naming
# convention for preview shots. See motion guide for details
; jpeg_filename %v-%Y%m%d%H%M%S-%q
 
# File path for motion triggered ffmpeg films (mpeg) relative to target_dir
# Default: %v-%Y%m%d%H%M%S
# Default value is equivalent to legacy oldlayout option
# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H%M%S
# File extension .mpg or .avi is automatically added so do not include this
# This option was previously called ffmpeg_filename
; movie_filename %v-%Y%m%d%H%M%S
 
# File path for timelapse mpegs relative to target_dir
# Default: %Y%m%d-timelapse
# Default value is near equivalent to legacy oldlayout option
# For Motion 3.0 compatible mode choose: %Y/%m/%d-timelapse
# File extension .mpg is automatically added so do not include this
timelapse_filename %Y%m%d-timelapse
 
 
############################################################
# Live Webcam Server
############################################################
 
# The mini-http server listens to this port for requests (default: 0 = disabled)
; webcam_port 8081
 
# Quality of the jpeg images produced (default: 50)
; webcam_quality 50
 
# Output frames at 1 fps when no motion is detected and increase to the
# rate given by webcam_maxrate when motion is detected (default: off)
webcam_motion off
 
# Maximum framerate for webcam streams (default: 1)
webcam_maxrate 1
 
# Restrict webcam connections to localhost only (default: on)
webcam_localhost off
 
# Limits the number of images per connection (default: 0 = unlimited)
# Number can be defined by multiplying actual webcam rate by desired number of seconds
# Actual webcam rate is the smallest of the numbers framerate and webcam_maxrate
webcam_limit 0
 
 
############################################################
# HTTP Based Control
############################################################
 
# TCP/IP port for the http server to listen on (default: 0 = disabled)
control_port 8000
 
# Restrict control connections to localhost only (default: on)
control_localhost off
 
# Output for http server, select off to choose raw text plain (default: on)
control_html_output on
 
# Authentication for the http based control. Syntax username:password
# Default: not defined (Disabled)
 control_authentication TU_USER:TU_PASS
 
 
############################################################
# Tracking (Pan/Tilt)
############################################################
 
# Type of tracker (0=none (default), 1=stepper, 2=iomojo, 3=pwc, 4=generic, 5=uvcvideo)
# The generic type enables the definition of motion center and motion size to
# be used with the conversion specifiers for options like on_motion_detected
track_type 0
 
# Enable auto tracking (default: off)
track_auto off
 
# Serial port of motor (default: none)
; track_port value
 
# Motor number for x-axis (default: 0)
track_motorx 0
 
# Motor number for y-axis (default: 0)
track_motory 0
 
# Maximum value on x-axis (default: 0)
track_maxx 0
 
# Maximum value on y-axis (default: 0)
track_maxy 0
 
# ID of an iomojo camera if used (default: 0)
track_iomojo_id 0
 
# Angle in degrees the camera moves per step on the X-axis
# with auto-track (default: 10)
# Currently only used with pwc type cameras
track_step_angle_x 10
 
# Angle in degrees the camera moves per step on the Y-axis
# with auto-track (default: 10)
# Currently only used with pwc type cameras
track_step_angle_y 10
 
# Delay to wait for after tracking movement as number
# of picture frames (default: 10)
track_move_wait 10
 
# Speed to set the motor to (stepper motor option) (default: 255)
track_speed 255
 
# Number of steps to make (stepper motor option) (default: 40)
track_stepsize 40
 
 
############################################################
# External Commands, Warnings and Logging:
# You can use conversion specifiers for the on_xxxx commands
# %Y = year, %m = month, %d = date,
# %H = hour, %M = minute, %S = second,
# %v = event, %q = frame number, %t = thread (camera) number,
# %D = changed pixels, %N = noise level,
# %i and %J = width and height of motion area,
# %K and %L = X and Y coordinates of motion center
# %C = value defined by text_event
# %f = filename with full path
# %n = number indicating filetype
# Both %f and %n are only defined for on_picture_save,
# on_movie_start and on_movie_end
# Quotation marks round string are allowed.
############################################################
 
# Do not sound beeps when detecting motion (default: on)
# Note: Motion never beeps when running in daemon mode.
quiet on
 
# Command to be executed when an event starts. (default: none)
# An event starts at first motion detected after a period of no motion defined by gap
; on_event_start value
 
# Command to be executed when an event ends after a period of no motion
# (default: none). The period of no motion is defined by option gap.
; on_event_end value
 
# Command to be executed when a picture (.ppm|.jpg) is saved (default: none)
# To give the filename as an argument to a command append it with %f
; on_picture_save value
 
# Command to be executed when a motion frame is detected (default: none)
; on_motion_detected value
 
# Command to be executed when motion in a predefined area is detected
# Check option 'area_detect'.   (default: none)
; on_area_detected value
 
# Command to be executed when a movie file (.mpg|.avi) is created. (default: none)
# To give the filename as an argument to a command append it with %f
; on_movie_start value
 
# Command to be executed when a movie file (.mpg|.avi) is closed. (default: none)
# To give the filename as an argument to a command append it with %f
; on_movie_end value
 
# Command to be executed when a camera can't be opened or if it is lost
# NOTE: There is situations when motion doesn't detect a lost camera!
# It depends on the driver, some drivers don't detect a lost camera at all
# Some hang the motion thread. Some even hang the PC! (default: none)
; on_camera_lost value
 
############################################################
# Common Options For MySQL and PostgreSQL database features.
# Options require the MySQL/PostgreSQL options to be active also.
############################################################
 
# Log to the database when creating motion triggered image file  (default: on)
;sql_log_image on
 
# Log to the database when creating a snapshot image file (default: on)
;sql_log_snapshot on
 
# Log to the database when creating motion triggered mpeg file (default: off)
;sql_log_mpeg off
 
# Log to the database when creating timelapse mpeg file (default: off)
;sql_log_timelapse off
 
# SQL query string that is sent to the database
# Use same conversion specifiers has for text features
# Additional special conversion specifiers are
# %n = the number representing the file_type
# %f = filename with full path
# Default value:
# insert into security(camera, filename, frame, file_type, time_stamp, text_event) values('%t', '%f', '%q', '%n', '%Y-%m-%d %T', '%C')
;sql_query insert into security(camera, filename, frame, file_type, time_stamp, event_time_stamp) values('%t', '%f', '%q', '%n', '%Y-%m-%d %T', '%C')
 
 
############################################################
# Database Options For MySQL
############################################################
 
# Mysql database to log to (default: not defined)
; mysql_db value
 
# The host on which the database is located (default: localhost)
; mysql_host value
 
# User account name for MySQL database (default: not defined)
; mysql_user value
 
# User password for MySQL database (default: not defined)
; mysql_password value
 
 
############################################################
# Database Options For PostgreSQL
############################################################
 
# PostgreSQL database to log to (default: not defined)
; pgsql_db value
 
# The host on which the database is located (default: localhost)
; pgsql_host value
 
# User account name for PostgreSQL database (default: not defined)
; pgsql_user value
 
# User password for PostgreSQL database (default: not defined)
; pgsql_password value
 
# Port on which the PostgreSQL database is located (default: 5432)
; pgsql_port 5432
 
 
############################################################
# Video Loopback Device (vloopback project)
############################################################
 
# Output images to a video4linux loopback device
# The value '-' means next available (default: not defined)
; video_pipe value
 
# Output motion images to a video4linux loopback device
# The value '-' means next available (default: not defined)
; motion_video_pipe value
 
 
##############################################################
# Thread config files - One for each camera.
# Except if only one camera - You only need this config file.
# If you have more than one camera you MUST define one thread
# config file for each camera in addition to this config file.
##############################################################
 
# Remember: If you have more than one camera you must have one
# thread file for each camera. E.g. 2 cameras requires 3 files:
# This motion.conf file AND thread1.conf and thread2.conf.
# Only put the options that are unique to each camera in the
# thread config files.
 thread /etc/motion/thread1.conf
 thread /etc/motion/thread2.conf
; thread /usr/local/etc/thread1.conf
; thread /usr/local/etc/thread2.conf
; thread /usr/local/etc/thread3.conf
; thread /usr/local/etc/thread4.conf


Bueno, pueden hacer la misma configuración o similar de acuerdo a sus gustos.
ahora esta última parte es para decirle a motion que usaremos más de una cámara web.

thread /etc/motion/thread1.conf
thread /etc/motion/thread2.conf

Con eso le digo a motion que usaré 2 cámaras, cada threadX.conf es un fichero de configuración similar a este mismo, osea la idea es así: este es el fichero de configuración principal, puedes configurarlo para una sola cámara web, pero si usas 2 ya no vale y usamos los thread, igual puedes usar un thread para 1 sola cámara, por eso es lo que aconsejo usar, ahora hay que decir que cada fichero de un thread SOBREESCRIBE las configuraciones de este principal, así tienes configuraciones distintas para cada cámara web, ahora pasaré a pastear mi fichero de configuración ubicado en: /etc/motion/ SI NO TIENES ESE DIR. CREALO, yo lo creé y ahí puse mis 2 ficheros para las 2 cámaras, y en el motion.conf tengo apuntado ahí, como lo han visto, de ahí leerá las configuraciones y repito, si hay en este algo configurado cuando arranques motion este tomará las conf. de los threads es por eso que varias cosas las tengo comentadas aquí con un ; pero los tendo definidos en los threads ;)

Aquí está mi thread1.conf





Code:
videodevice /dev/video1

target_dir /home/lopz/public_html/webcam/cam1
webcam_port 8001
webcam_quality 100

auto_brightness off
brightness 50
contrast 150
saturation 150
hue 150

text_left CAMARA EXTERIOR
text_right %Y-%m-%dn%T-%q
snapshot_filename %v-%Y%m%d%H%M%S-snapshot
jpeg_filename %v-%Y%m%d%H%M%S-%q
movie_filename %v-%Y%m%d%H%M%S

on_motion_detected /usr/bin/pymotion


Primero definimos lo más importante el dispositivo que usará este thread, que está en /dev/videoX, luego está target_dir /home/lopz/public_html/webcam/cam1 que es donde se guardarán las imágenes, videos que grave motion al detectar un movimiento, luego el esto es inportante:

on_motion_detected /usr/bin/pymotion

Ahí le decimos que cuando motion detecte movimiento ejecute "algo" en este caso ejecutará el fichero pymotion, es un fichero que lo tengo yo, osea que cambiar por el que ustedes quieran ejecutar, o caso contrario comentarlo con una ; delante, pero igual pastearé ese fichero por si les interesa ya que solo muestra como funciona ese punto de configuración.

para la webcam 2 lo mismo que este thread1.conf pero hay que llamarlo thread2.conf y ambos en el directorio /etc/motion/ que lo creamos, eso si, solo cambien el dispositivo que usará este nuevo thread en la variable:

videodevice /dev/video1

que quedaría videodevice /dev/video2 o depende de como se los detecte, luego el resto lo mismo.

teniendo todo configurado tenemos que arrancar motion, podemos hacerlo en modo demonio o normal, vamos a ejecutar como usuario normal el comando:

motion -n

Y tiene que mostrar algo como:


Code:

[0] Processing thread 0 - config file /etc/motion.conf
[0] Processing config file /etc/motion/thread1.conf
[0] Motion 3.2.11 Started
[0] ffmpeg LIBAVCODEC_BUILD 3410688 LIBAVFORMAT_BUILD 3414272
[0] Thread 1 is from /etc/motion/thread1.conf
[1] Thread 1 started
[0] motion-httpd/3.2.11 running, accepting connections
[0] motion-httpd: waiting for data on port TCP 8000
[1] Not a V4L2 device?
[1] Using VIDEO_PALETTE_YUV420P palette
[1] Using V4L1
[1] Resizing pre_capture buffer to 1 items
[1] Started stream webcam server in port 8001


Como pueden ver yo solo estoy usando una cámara, entonces solo me tomó thread1.conf ahora podemos ingresar con nuestro navegador a localhost:8000 ingresar nuestro user y pass que tenemos configurado en el fichero principal, motion.conf y podremos acceder igual a la configuración a través del navegador entre otras cosas, ahora vamos a localhost:8001 que es el puerto que definimos en un thread1.conf, entones ahí estará haciendo streaming motion, entonces deberíamos ver algo como esto:



Con eso ya tenemos listo nuestro motion, funcionando, ahora solo queda poner el fichero pymotion que lo copio a continuación:



Code:

#!/usr/bin/env python

import dbus

bus = dbus.SessionBus()
notify_object = bus.get_object('org.freedesktop.Notifications','/org/freedesktop/Notifications')
notify_interface = dbus.Interface(notify_object,'org.freedesktop.Notifications')
notify_interface.Notify("DBus Test", 0, "gtk-ok", "ALERTA!!",'Se a detectado movimiento', "",{},10000)


Este código lo que hace es mostrar un pequeño popup al lado izquierdo del escritorio como lo hace el messenger cuando te envían un nuevo mensaje.

lo guardamos en un fichero de texto y lo nombramos como pymotion y le damos permiso de ejecución y lo podemos poner en /usr/bin/ como está la ruta en mi archivo de configuración, pero eso ya depende de ustedes.

Eso es todo en este pequeño post donde explico como montar este sencillo sistema de vigilancia, pero se pueden hacer mejores cosas que mostrar un mensajito por pantalla, podemos realizar llamadas telefónicas, enviar un sms, enviar la imágen a nuestro movil, activar alarmas, cerrar puertas, etc, etc, un montón de posibilidades.

Aquí muestro un proyecto de un amigo, está usando motion+ajax+django
interesante, no ?



Saludos!

4 Comentarios »

server streaming en linux

18 Jun 2008 | Escrito por: lopz | En: Linux
Montar un server de streaming en linux
orb para linux

O como lo quieran llamar... bueno, en este blog suelo poner chorradas que a nadie le importa, pero esta vez voy a poner un dato técnico, que a todos le interesa.. voy a hablar de como montar un pequeño servidor de streaming en linux, no, solo voy a hablar de la aplicación en si jeje (eso de explicar da pereza)

Antes cuando usaba windows me encontré con un programa interesante, llamado orb, pero lamentablemente este solo estaba para esa plataforma, qué pena, es interesante la forma que trabaja, al menos a mi me servía de mucho, ya que con el podía compartir mis 20 GB de música y otro tanto de videos en general.. ya que soy poseedor de una estupenda nokia n800 y como es limitada en espacio en disco, pues esta era mi solución en cuanto a multimedia se refiere, migré a linux y dejé de poder escuchar/ver mis ficheros multimedia preferidos y no, no es pr0n como ustedes piensan.. de ahí en adelante siempre buscaba en la red algo como orb y no encontré nada.

La solución ?
Pues era montar un servidor de streaming en linux, lo cual implicaba instalar codes, paquetes y mas paquetes, y ni hablar de las configuraciones, etc, me parecía que era mucho para lo que yo necesitaba, para algo de uso personal..

Y ayer por casualidad encontré algo que me pareció muy muy interesante, tanto que valía la pena escribir un post en mi blog que es visto por millones de usuarios (ironia)

Paso a darles el nombre de esta magnífica aplicación que convierte nuestro PC en un servidor de streaming, tanto para audio, video, se llama... GNUP3D lo pueden descargar de la sección download, es multiplataforma y lo mejor.. es libre :)

En gentoo un simple:

Code:
# emerge gnump3d

y en cualquier distro debería ser igual solo que usan su manejador de paquetes..
Cuando termina de instalar editamos el fichero:

Code:
 /etc/gnump3d/gnump3d.conf

Y no pienso explicar todas las opciones que tiene para configurarlo, ahí mismo en el fichero viene todo explicado, solo paso a hablar de los puntos más importantes y de los que yo he tocado para que funcione sin problemas.. ya si quieres algo más de personalización.. toca leerlo completo.
el que quiera bajar mi configuración, PERO cambiando los datos que voy a dar a continuación, os pongo la descarga del fichero en el siguiente link http://rafb.net/p/YKUa8S26.html

Ahora explicaré los puntos que he tocado para que funcione:

Code:

port = 8888 # puerto de escucha

binding_host = 192.168.1.2 # la ip de nuestro pc donde esta montado el server

hostname = cast.lopezone.com # cualquier cosa xD

root = /mnt/archivos/multimedia  # esto es la ruta de tus ficheros multimedia
                                                         # lo que quieres poner a disposición en tu servidor
                                                        # no importa que tengan directorios.

allowed_clients = 192.168.1.2; 192.168.1.4 # aquí ponemos las IPs que SOLO tendrán acceso a nuestro servidor de streaming, como vemos, di acceso al mismo servidor y la ip de mi nokia n800, puedes poner otras separadas con una coma, o con un rango, eso explica en el fichero de configuración

theme = Tabular # el thema que se visualizará n el navegador, puedes bajar mas de http://www.gnump3d.org/theme.html

Luego de eso tienes que arrancar el demonio gnumpd3

Code:
 /etc/init.d/gnump3d start

Ahora solo queda abrir el explorador que usas y poner la ip de tu servidor (pc) con el puerto mas. quedaría así:

Code:
http://192.168.1.2:8888

Como ya dije, eso es de acuerdo a la configuración que ponen, puede variar de acuerdo a su red.

Ya, con eso lo tienen listo, como pueden ver tienen una interfaz para poder escuchar y ver todos sus ficheros multimedia, igual desde otro ordenador ponen la misma dirección en el navegador y accederán a todo.. siempre y cuando den permiso a la ip en la configuración.

aquí dejo unos screen:


este es en mi pc, con el theme por defauld:



Y de la página oficial:




Espero que os haya servido de ayuda, cualquier duda pueden hacerlo en los comentarios y trataré de ayudaros

Saludos!

0 Comentarios »

3r dia del congreso de SL

28 Oct 2007 | Escrito por: lopz | En: Linux
yaaaa.. ahora este es el 3r día del congreso, bueno fue ayer, pero como estaba medio ebrio no pude escribir xD
Como ya había tenido una descepcíón terrible de los 2 anteriores dias no me dio a gana de ir a este último, y asi me la pasé en mi casa todo el día, y en la tarde me tomé unas cervezas aqui solo, pero tenia que ir a recojer mi certificado de asistencia, y me fui a eso de las 4:00, llegué y estaba hablando el juanker Boliviano, sobre que tema ? ni puta idea, llegué cuando estaban en preguntas jeje, luego de eso expuso nuna vieja que no se quienes eran... por que me senté atráz, en por suerteee al finnnnn!! tenian una banda WIFI mejor que la de 22 kbps, y me puse a leer es.engadget.com jeje leyendo sobre los cacharritos que salen dia a dia, eso si que es interesante.. cuando ya estaba por teminar dije, a coño va terminar esto, queiro mi crtificado y me piro de aquí, cuando le dieron espacio a un gringuito mother fucker, bien buena gente el tipejo, tambien me agradó su forma de exponer, aunque no tenia claro el español hablado se le entendía mas que a algunos de aquí jeje, ¿Por que será que la gente de exterior tienen mejor forma de expresarce? en fin, este amiguete hablo sobre traducir AbiWord al quechua y Aymara, yo NO se hablar ni escribir esos idiomas, pero me gustaría colaborar, voy a suscribirme a su lista para ayudar en lo que pueda, ya que dijo que en algunos botones no entraban frases jeje, y no creo que sea dificil mover en el código fuente las dimensiones x,y de un botón, en fin... a ver que pasa... terminó eso, y empezaron a repartir los TUX's de maderita que habían prometido entregar a los ponenten, la verdad esa parte me gustó, por que se les vaia la felicidad en la cara de cada ponente al recibir su premio por participación, todos y cada uno sonreia a mas no poder, les doy la razón, ahí me di cuenta que no eran malos tipos y tipas, solo queee... a mi parecer NO SUPIERON ESCOJER EL TEMA ADECUADO A EXPONER, que como dije, muuucha gente se aburria en algunas ponencias, y no era por que no sabian hablar o cosas así, hacian su mejor esfuerzo, pero el tema no les ayudaba, ni modo, espero algún día poder participar en esos congresos con una ponencia que sea de interés para el público y que no aburra, como lo hizo un ponente que habló sobre redes sociales, SI eso REDES SOCIALES, lo que mas odio es eso.. myspace, facebook, fotolog, metrolog, etc, son redes que no traen nada bueno, quien quiere conocer a una parona que esta a miles de kilómetros y que no sabes ni quien es ni como es ? no sabes quien esta al otro lado de la pantalla, puede ir desde una simple niña cachonda de 14 años que quiere descubrir el mundo hasta un psicópata de esos que no falta, además de que te llenan de spam la bandeja de "spam", ups, mail, en fin, nos enseñó a como instalarlo, joooooder, eso lo sabe cualquiera, y si no lo sabe que lo lea, para eso traen un README.TXT, me hizo recuerdo a cuando fui a una conferecnia sobre seguridad informática que pasan los que "disque" ethical hacking team" una verdadera mierda, nos enseñaron a instalar el e-commerce jajaja, si eso, y algunos CMS, nos enseñaron a explotar una vulneravilidad de unicodedecade, que ya tiene sus bueeenos años, en vez que nos enseñen un 0day, en fin.. una pena realmente, la verdad me da envidia que en otros paices si que vale la pena asistir a esos congresos, aunque las entradas son mas caras, igual uno no se arrepiente de ir a esa clase de eventos, como dije en firefox.com.bo en uno de esos comentarios:

Espero que esto cambie, se que estamos comenzando en esto.. pero se debería poder hacer/organizar algo mejor con el tiempo, sin mas que decir si alguno de los organizadores lee esto, FELICIDADES hicieron lo que pudieron, espero que mejore mucho mas con el tiempo :smile:

saludos!

0 Comentarios »

2do dia del congreso SL

28 Oct 2007 | Escrito por: lopz | En: Linux
Bueno, como el dia anterior no habiasn dicho que comenzaría a las 9:00 me fui temprano y la verdad es que llegué a las 9:30, ya estaban exponiendo, y me senté a escuchar, otra vez no me gustaron los temas que trataron algunos ponentes como por ejemplo hablaron sobre "elearnig", que mas era lo que hacia publicidad de su página, en fin, aburrido , expuso de nuevo el amigo Uruguayo, que hablo sobre patentes de SL, estaba interesante su charla, cosas que la gnte debería saber sobre el SL, no de como funciona una Uvirtual por ejemplo, al final igual me aburrí y me vine a casa antes que termine toda las ponencias.. llegué a eso de las 3:pm a casa bien tranquilo... :P

saludos!

0 Comentarios »

1er Dia de congreso de SL

25 Oct 2007 | Escrito por: lopz | En: Linux
1er dia del congreso de Software libre en Bolivia

Bueno, no había comentado esto en mi blog por pereza, pero hace tiempo que me enteré por un amigo que este 25 de agosto se llevaría a cabo un congreso Nacional de Software libre en Bolivia, y como el tiempo se pasa rápido, hoy es el primer dia, y les cuento lo que pasó.

Primero que nada el congreso tendrá una duración de 3 días, el programa es el siguiente:
http://congreso.softwarelibre.org.bo/pages/programa

Ahora Jueves me levanté temprano, a las 7:30 am, prendí mi PC, arrancó mi Gentoo y puse a correr un server ssh, y de paso lo puse a nivel boot, siempre lo puedo necesitar xD
Luego de eso desayuné como nunca, me alisté y me salé de mi casa a las 9:10, ya era tarde, estaba un poco asustado ya que estaba yendo solo al congreso allá no conocía a nadie y pensé que estaría todo lleeeeeeno (ya había pagado un día antes la antrada)
llego al lugar donde sería el congreso (una universidad privada UDABOL) y estaba perdido, no sabia donde era el congreso, con lo grande que es esa Uni, no sabía donde estaba parado, pregunté por ahí y joder, nadie sabia nada sobre el tema, que mierda dije, ya eran las 10:10 am, ya llegué tarde dije, en fin, me voy a esa Salón Auditorio dije, a esperar que sean las 11:00, cuando llegué ya habian unos cuantos parados en la puerta y un salón grande con muchas sillas y todo bien organizado (aparentemente) entré no habían mas de 50 personas, esperamos un rato, y llegaron unas delegaciones de otros departamentos yo dije "shit" esto va tardar, y como que, empezaron a inscribirse ahi mismo, que unos anotaban, otros cobraban, todo una MIERDA, asi se pasó toda la mañana, pero en un lapso de tiempo nos regalaron unas pegatinas de Ubuntu y los logos de algunas distros, y a mi fila pasó un montón para que se vayan quedando 1 paquete y los demás pasen, y como siempre un hijoputa se quedo 2 paquete y como estaba al otro extremo faltó para mi, y tube que levantar la mano cuando dijo : A alguien la falta las pagatinas ? xDD
Ya, pero tenia entre mis manos esto que les voy a mostrar a continuación :p

Estas son todas las del paquetito : Pero falta una.. la mas importante. cual será ??? :O



Siii.. gentoo, coño! como amo esta distro xDD



aqui vemos encima de todas las demas.. como es que no se puede poner una distro encima de otras ?? xD



Luego nos repartiron el material, mi polera con un tux que parece todo menos eso.. por que tiene alas y cuernos (o son sus manos, o cuernos del ñu?), por cierto aqui paso otra cosa, habian otras poleras negras con el logo de ubuntu y decia CONSOL 2007, y alguna pijadita mas.. eran mas bonitas, pero yo no uso ubuntu, y en eso dice uno :
No hay con otro dibujo ? xDD



Una libreta, que opr cierto no la usé para nada :P



En eso veo 5 máquinas con WINDOWS!!! si, con windows, y ahi, todas encendidas, y luego dicen: quien de aqui a instalado ubuntu, (silencio total en la sala, me incluyo xD) y en eso un macho dice con voz aguda y todo orgulloso YO!, y pues le pusieron a instalar en las máquinas el ubuntu, yo no dije nada ya que estaba solo y tengo verguneza Ya luego terminaron de instalar y no podian configurar su red tando por DHCP por wireless, y no pudieron hasta el último, ya luego lo dejaron xD.

En eso paraba aburrido, cuando no faltan esos graciosillos que le ponen alegria al dia, lo que pasa es que uno de los organizadores traía una polera que decia:

Code:
Ubuntu
         Linux para seres humanos...

Aqui no se diferencia bien



Y dice: que???, ubuntu ??? no seria Evento ! xDDD

Y asi, solo paso eso y todos esperabamos sentados yo por suerte llevé el Nokia n800 para poder chatear en el IRC xD mientras esperaba, pero su conexión de mierda estaba como a 22 kps y en eso me encontré otra red y me cole a ella, esa estaba bien rápida, pero lástima que al rato la cortaron, creo que era de algún laboratorio de la Uni, y que pasan clases en horarios nada mas.. en fin. otra vez sin inet todo aburrido y con nadie quien charlar, ya luego de eso todos se empezaron a salir por que dijieron que esto comenzaría a las 12:00 y eran las 11:00 yo como no tenia donde ir, me quedé a hacer hora, pero luego ya se hicieron las 12:00 y no aparecia nadie (como me aburre la impuntualidad) en eso se acerca un muchacho y me dice :
Cita
Majo : el
Yo : pues yo xD

Majo : Hola, eres de acá ?
Yo: Hola, si soy de aquí, ¿y tu?
Majo: Yo igual..
Majo : Y usas linux ?
Yo : SI lo uso hace algún tiempo atráz..
Majo : ahh y para que lo usas ?
Yo : Lo uso para todo, escuchar música, ofimatica, etc
Yo ; ¿Y tu para que lo usas?
Majo : Yo lo uso para sacar mis virus (Todo orgulloso)
Yo : (asombrado de como sera eso, un nuevo AV ?) ahh si, mira que interesante, y como haces eso ?
Mayo : Si, para eso solamente lo uso, ya que no puedo escuchar música, no puedo editar mis "archivos" que tengo en NTFS de windows, me bajé los .RPM y algunos tutoriales para instalarlos pero no tube tiempo..
Yo : ahh si, a veces no te logra reconocer todo el hardware que tienes, ese es un gran problema para un usuario que esta comenzando con lunux
Yo : Pero dime, como es eso de que lo usas para sacar tus virus ?
Majo : ajá, mira, es que siempre cuando vas a los laboratorios de la Uni, y metes tu memória flash se te llenan los virus, y yo reinicio mi PC, arranco con linux, meto mi flash memory y puedo eliminar tranquílamente el virus y luego reinicio, y tengo la flash memory limpia.
YO : (asombrado para la tonteria que usaba linux) pff, pero eso de estar reiniciando a cada raro, no es mejor que te instales algun buen AV ?
Majo : No, por que no los mejores AV pueden detectarlo, es que estos son .BAT y asi son mas difíciles para los AV detectarlos..
Yo : (ya sabia de que hablaba, de esos famosos virus que se propagan a través de las flash memory, en algun post puse una cura para eso) Ahh bueno, esta bien entonces.. (ya no queria hablar con el)
Majo : Si, yo no uso linux por que no me detecta mi tarjeta de red, video, audio, modem, TV out/in, etc y no son compatibles con linux ..
Yo ; ah vale..
(En eso un amigo le llemó y se lo llevó..)
Yo : pff al fin, prefiero estar solo y sin tener con quien hablar, que hablar con alguien asi xDD


Bueno, en eso ya tenia el culo medio adolorido de estar sentado toda la puta mañana y les dije a los organizadores : Disculpe, pero a que hora va empezar esto ? no era a las 9 am ? y que luego me dijieron a las 12:00pm ,y me dicen que a las 2:00, en eso ya eran las 1:40, agarré y me vine a mi casa.. comi un poco y me llegue allá a eso de las 2:20, otra vez todo silencio, con unas cuantas personas en la sala, claro todos charlando con sus amigos, menos yo xDD
Me selte adelante, primera fila y primer asiento por que dije : vaya, que pasa si se me acaba la bateria del n800, y le meti mano a su toma corriente que ellos estaba usando, en la mesa donde tenian el proyector, ya que los otros proyectores que estaban en el techo nunca pudieron configurarlos o hacerlos funcionar creo, y pues le puse a cargar mientras escuchaba algo de maná, a eso de las 3:00 pm el organizador da por inagurado el evento, asi todo a la chapuza, donde ni tire un aplauzo ni nada.. (ojo, ya tenia el culo medio adolorido) pero por la emoción de que a ver que tema trataban se me pasó el dolor, y presentan a un tipo de otra ciudad de mi pais Cochabamba, y nos habló de JADE empezó a hablar cosas que nadie sabia que era, osea de ese framework, para que sirve, y que el había hecho para su tesis un proyecto.. y blah blah, aburrió a todo el mundo, al final terminó en 1 hora y 30 minutos todo y solo un capullín le preguntó algo.. que si eso era IA, xDD
Ya luego de eso no sabia como sentarme, la verdad se me adormecieron las nalgas :S, y para colmo le tocó a una vieja exponer sobre LEARGING yo no sabia que tema tocaba en el SL, pero bueno hablo y hablo sobre en que consiste, que asi que allá, etc, si, como ustedes suponen todo era una mierda de PUBLICIDAD ya que supongo que estan abriendo una Uni Virtual en mi país, (ya hay, pero otra xD ) y queria hacer nada mas que publicidad, es mas, aqui tienen su página web http://scz-learning.com/ (en desarrollo) y aqui otra muestra de que es lo que tienen pensado hacer http://aulavirtual.scz-learning.com/. y preguntó quienes tenian inet en su casa, o acceso a inet ya sea café, biblioteca, etc pero ABURRIIIIIIOOOOO!!!
Yo dije, joder, me voy, no quiero escuchar mas estas cosas... además del dolor que tenia, me ponia de un lado, del otro, joder, no sabia como acomodarme para estar tranquilo y no sentir el dolor y adormecimiento xDD
Ya, luego eso eso les tocaba a un grupo que habló de firefox, tienen su página web http://www.firefox.com.bo/, donde les dejé un comentario

Bueno, estos ponentes hicieron su mejor esfuerzo, me gustó como hicieron, hablaron en general, mas mas.. dinámico, regalaron CDs con firefox+plugins, chistes de por medio, etc Al final las preguntas.. en este tema preguntaron varios.. y una de las preguntas que hizo una chica fue algo asi :
¿Por que en firefox se ven mejor las páginas que en IE ?
Responden : mira, lo que pasa es que IE no reconoce muy bien unos "archivitos" que se llaman "css", y es por esta razón que alguna páginas salen mal.. y en eso levanté mi mano, con ganas de joder y pregunté :
¿Disculpe, que significa CSS?
Resp : ahh si, los css sin unos archivitos que tienen en formato de las fuentes y que fuentes usaar en una páginas web
Otra vez yo, jodido xD : Ok, pero que Significa ? cual es su significado...
Resp (silencio total) emm.. a ver.. que significa.. y en eso alguno de la sala sabría el nombre.. y dijo algo como style.... ah si si eso, style.. emm.. como era? xD y ahi entre todos completaron el nombre, siii Cascading Style Sheets...
Yo : ahh si, y sobre lo que preguntó la chica creo que es por esto, es que IE NO respeta los estandares "web" dije web por que no quize decir : de la World Wide Web Consortium (W3C) xDD
En fin, me apoyaron en mi respuesta.. luego de eso amenizaron un poco, lo cual estubo bueno, ya que me hacia olvidar el dolor que tenia, ahora ya ni las sentía mis nalgas xD
Ya cuando terminaron de presentar todo eso, uno de los organizadores presentó a los exponentes, y en eso presentó a un tio, (creo que es americano) que tiene un proyecto si, Abiword en quechua y Aymara xDDD En eso el dijo unas cuantas palabras que poco se entendia por que se cruzaba con ingles xD y algunos respondieron y quize hacerlo pero dije no, voya causar que me voten del congreso xD
pero tenía pensando decir :
Para que un editor de texto en esos idomas ? es algo absurdo, como pensar hacer algo asi.. es lo mismo que cuando hicieron windows en Quechua, NO es que estoy en contra de estos idiomas, ni que sea racista con la gente indígena, simplemente que esa gente NO SABE LEER, NO TIENE UN PC, NO QUIERE APRENDER (por eso esta como esta) entonces para que invertir dinero, etc en un proyecto de ese tipo ?
No se, es lo que pienso..

Pero no dije nada.. en eso presentarona otros, el que mas me interesó es un tio de Paraguay o Uruguay (creo) que si se lo ve serio, que tiene proyectos sobre SL para el gobierno, buena idea ehhhh!!! y los presentaron a los otros 3 (el de JADE, uvirtual, firefox) y en eso dice, y aquí, al hacker Boliviano xDDDDDDDDDDDDD...!!!!111unouno11..

En eso se para un tipo nada bueno de aspecto físico, que por cierto dice que mañana va dictar algo entendí de : Como instalar/sonfigurar un firewall en linux, en eso le preguntan, sobre que distro, y dijo, sobre centOS ohhh!! y solo había cupo para 25 personas, fui una de las primeras en inscribirse, mañana les cuento que pasó con este tema y a ver que cosas dice o hace este juanker :P

Ya luego de eso nos mostró un TUX que por cierto este si estaba bonito, era de madera, como un trofeo y dijo que eso seria para los ponentes y que había UNO MAS, para cualquiera del público, para el que mas participara jeje, espero poder ganármelo u.u

bueno, creo que eso es todo loq ue a pasado en el dia.. luego me vine a mi casa todo cansado y el el bus me empezó a doler de nuevo las nalgas, joder las tenía tube todo el dia en una silla que no tenia mucho de blando
Ustedes diran, joder, como coño sigue sentado y se a dado tiempo para escribir toda esta mierda.. y no, no estoy sentando, estoy en mi cama de barriga xDD

saludos!

4 Comentarios »

Linux vs MacOS

27 Mar 2007 | Escrito por: lopz | En: Linux
Anandtech ha hecho una comparativa de GNU/Linux vs el Mac OS X (Tiger) sobre los mismos procesadores. Los números son muy claros a favor del GNU/Linux.

1.

MySQL con es hasta casi 9 veces más rápido con 50 conexiones simultáneas. El Mac OS X mantiene la línea

0 Comentarios »

   

 
  Pagina 1 de 1
 

Powered by MySql' Powered by PHP XHTML Valido CSS Valido

Tiempo de carga del servidor: 0.0467