mar 26 2008

DeRemate migra su plataforma de e-commerce a RedHat

Posted by

Red Hat proveedor de soluciones de código abierto, anunció que deRemate.com, una comunidad de comercio electrónico con presencia en Argentina, Chile, Colombia y México, ha migrado a las soluciones Red Hat y JBoss para crear un portal de control propio que permita el pago de compras realizadas a través de los sitios transaccionales de la compañía en toda la región. Mediante Red Hat Enterprise Linux y JBoss Enterprise Application Platform en hardware Dell PowerEdge, la compañía logró reducir los costos, contar con un sistema confiable, de fácil implementación y escalable.

DeRemate.com, que antes dependía de los servicios de un tercero, decidió buscar una solución rentable y confiable que pudiera ofrecer flexibilidad y un soporte confiable en el desarrollo de su portal de manejo interno. Finalmente eligió Red Hat Enterprise Linux y JBoss Enterprise Application Platform debido a la flexibilidad configurable y los reducidos costos que ofrecía la solución. “En nuestra búsqueda inicial analizamos diversas soluciones competitivas en la industria, según su rendimiento, confiabilidad, escalabilidad y sus beneficios económicos. Decidimos que las soluciones líderes que ofrecían Red Hat y JBoss eran las más adecuadas en función de estos criterios”, explicó Alfredo Yung, Director de Tecnología de deRemate.com. “Estamos felices con nuestra decisión de implementar las soluciones Red Hat y JBoss porque tenemos la certeza de que tendremos la mejor solución posible al menor precio.”

A través de las soluciones Red Hat y JBoss, deRemate.com generó una arquitectura novedosa para sus sitios transaccionales y en junio de 2007 introdujo DePagos.com, una plataforma de pagos que le permite a cualquier usuario, persona física o compañía recibir o enviar pagos en forma electrónica de forma segura, rápida y protegida, utilizando únicamente una dirección de correo electrónico. En un futuro cercano se prevé implementar esta solución en Colombia y México. Actualmente está disponible en Argentina y en Chile. En estos países, DePagos.com no sólo ha logrado una reducción en los costos, sino que también destaca por la transparencia que brinda la nueva solución y su escasa utilización de recursos, ya que precisa contar únicamente con 10-15 personas dentro de su organización para las etapas de desarrollo, operación y pruebas de su implementación.

Nuestra experiencia con la solución que combina a Red Hat y JBoss y el soporte asociado ha sido sobresaliente. Nos complace enormemente trabajar con productos que gozan de una larga trayectoria en el mercado, que cuentan con una amplia comunidad de desarrolladores que los respalda y con el soporte de empresas líderes”, expresó Yung. “Esta nueva solución posee un potencial mucho mayor aún que el de la que venimos utilizando al día de hoy, de modo que en un futuro veremos qué otras oportunidades comerciales surgen de esta nueva plataforma y cómo evolucionará nuestro negocio en consecuencia.

Filed under : Business, Linux | No Comments »
mar 20 2008

Disponible la versión 1.0 de MonoDevelop

Posted by

monodevelop-logo.pngDespués de algunos años de desarrollo, se publica la primera versión estable del entorno de desarrollo del proyecto Mono, que funciona sobre Linux y Mac OS X. Permite la creación de aplicaciones compatibles con la plataforma .NET de Microsoft.

Redacción iMàtica – MonoDevelop es un IDE (Integrated Development Environment, Entorno Integrado de Desarrollo) pensado para el escritorio gráfico Gnome bajo Linux y creado para trabajar con los lenguajes de la plataforma .NET de Microsoft, clonados por la plataforma Mono. MonoDevelop se integra en el paquete de Mono. Además de para Linux, también se encuentra disponible para la plataforma Mac OS X.

MonoDevelop es un entorno extensible, que puede trabajar con múltiples lenguajes de programación disponiendo de herramientas específicas para las diferentes plataformas sobre las que trabaja. También se puede combinar con las herramientas de programación de Microsoft y permite la creación de completos paquetes Unix listos para la instalación en el sistema operativo de destino (normalmente GNU/Linux).

El hecho de que incluya soporte para Visual Basic .NET permite a los programadores de éste lenguaje de programación (que son muy numerosos) portar sus aplicaciones a Unix. Éste lenguaje de programación es muy flexible y facilita además del desarrollo profesional, el amateur, por lo que es muy apreciado. Gracias a la plataforma Mono y a MonoDevelop, se extiende además a Linux y Mac OS.

También entre las muchas funciones de MonoDevelop 1.0 se encuentran diversas orientadas a generar y mantener la documentación del proyecto, algo siempre pesado e ingrato para el programador.

Más Info

Filed under : Anuncios | No Comments »
mar 20 2008

HP apuesta por Linux y Novell Suse

Posted by

Tags: , , ,

El primer fabricante mundial de computadoras que hasta ahora mantenía un apoyo al software libre puntual y limitado en algunas estaciones de trabajo, comenzará en el segundo trimestre la venta mundial de equipos portátiles y de escritorio con sistemas Novell Suse Linux Enterprise Desktop.hp-linux.gif

Novell y HP desarrollarán de manera conjunta controladores específicos y darán soporte al usuario final, aunque el principal mercado que pretenden cubrir es el empresarial, y de hecho, por el momento, Novell no tiene previsto ofertar la preinstalación de openSUSE, la distribución GNU/linux para consumo que mantiene la compañía y una amplia comunidad de desarrollo.

Roger Levy, vicepresidente de soluciones abiertas de Novell señaló la importancia del acuerdo con HP “al contar con un distribuidor de alcance mundial con una gran cuota de mercado” y alabó las virtudes de GNU/Linux “que tiene todas las características requeridas por las empresas y ha alcanzado un gran nivel de madurez para satisfacer su demanda”.

Via: ResellerNews

Filed under : Business | No Comments »
mar 20 2008

El futuro pertenece a Linux

Posted by

Hace unas semanas, Microsoft sacó lo que según esta empresa es el producto más importante del año, Windows Server 2008. Pero lo que la compañía no termina de entender, en opinión de algunos columnistas tecnológicos, es que las empresas pequeñas llevan ya tiempo apostando por Linux para construir sus servicios de Internet.

Microsoft ha perdido la partida en este segmento desde hace ya algún tiempo. Sí, hasta Yahoo corre sobre Linux. Windows Server 2008 va dirigido a empresas que utilizan software para funciones corporativas como correo electrónico y software financiero. Estas empresas compran despacio.Las otras, las “jóvenes hijas de Internet”, prefieren Linux. Tal vez no sean empresas tan sólidas y fiables como las que utilizan Microsoft, pero son dinámicas y crecen cada día.Microsoft no entró en su momento en el mundo de las llamadas “start-up” de Internet, en parte por el coste de sus productos para servidor. Ahora quiere recuperar el tiempo perdido y hace cosas como ofrecer nuevos modelos de licencias más económicas o hacer guiños a la comunidad de código abierto (”Puedes utilizar nuestro software libre de royaltys y sin temor a retribución legal…siempre y cuando no ganes ni un duro con ello”), pero no se da cuenta de que las reglas del juego han cambiado.

El modelo de Microsoft es perfecto para el modelo cliente/servidor que ayudó a los pioneros. Pero hoy por hoy, es irrelevante para el futuro basado en web que se construye. Lo que viene es más como Firefox: “agnósticos de plataforma tecnológica”

Via: CNET.com

Filed under : Linux | No Comments »
mar 15 2008

Montar RAID1 en Debian ya instalado y funcionando

Posted by

Tags: , ,

Excelente Articulo de como montar un RAID 1 en un servidor Debian ya instalado y en funcionamiento, puesto que por norma se configura un RAID solo cuando no existe sistema instalado.

Lo que vamos a ver en este artículo es cómo montar un raid 1 completo de todo el sistema Debian, con éste ya instalado y funcionando. De esta forma contesto a varias personas que me han pedido este artículo tanto en los comentarios del primero como por email. Para no hacer muy pesado el artículo obviaré algunas partes que están detalladas en el artículo anterior del raid 1, por lo que si algún paso no lo comprendes, por favor lee el artículo anterior para aclarar las dudas.

Debo aclarar que este tutorial está pensado para Debian y similares por lo que en otras distribuciones no funcionará correctamente al no existir el comando update-initramfs.

Partimos de un sistema ya instalado con tres particiones distintas: /dev/sda1 para /boot, /dev/sda5 para el swap y /dev/sda6 para /.

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda6             7.4G  509M  6.5G   8% /
tmpfs                  63M     0   63M   0% /lib/init/rw
udev                   10M   84K   10M   1% /dev
tmpfs                  63M     0   63M   0% /dev/shm
/dev/sda1             177M   11M  157M   7% /boot

 

  • Después de añadir el disco a la máquina utilizamos el truco que ya usamos en el artículo original para copiar la tabla de particiones de un disco a otro:
    shian:~# sfdisk -d /dev/sda | sfdisk /dev/sdb
    Checking that no-one is using this disk right now ...
    OK
    
    Disk /dev/sdb: 1044 cylinders, 255 heads, 63 sectors/track
    
    sfdisk: ERROR: sector 0 does not have an msdos signature
     /dev/sdb: unrecognized partition table type
    Old situation:
    No partitions found
    New situation:
    Units = sectors of 512 bytes, counting from 0
    
       Device Boot    Start       End   #sectors  Id  System
    /dev/sdb1            63    385559     385497  83  Linux
    /dev/sdb2        385560  16771859   16386300   5  Extended
    /dev/sdb3             0         -          0   0  Empty
    /dev/sdb4             0         -          0   0  Empty
    /dev/sdb5        385623   1172744     787122  82  Linux swap / Solaris
    /dev/sdb6       1172808  16771859   15599052  83  Linux
  • Editamos con fdisk las particiones de /dev/sdb y cambiamos del tipo a fd de las número 1, 5 y 6. El resultado final es:
    ...
    Command (m for help): p
    
    Disk /dev/sdb: 8589 MB, 8589934592 bytes
    255 heads, 63 sectors/track, 1044 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1               1          24      192748+  fd  Linux raid autodetect
    /dev/sdb2              25        1044     8193150    5  Extended
    /dev/sdb5              25          73      393561   fd  Linux raid autodetect
    /dev/sdb6              74        1044     7799526   fd  Linux raid autodetect
  • Ahora creamos los dispositivos raid para las particiones.
    shian:~# mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1
    mdadm: array /dev/md0 started.
    shian:~# mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb5
    mdadm: array /dev/md1 started.
    shian:~# mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /dev/sdb6
    mdadm: array /dev/md2 started.
  • Formateamos las nuevas particiones.
    shian:~# mkfs.ext2 /dev/md0
    shian:~# mkswap /dev/md1
    shian:~# mkfs.ext3 /dev/md2
  • Actualizamos el archivo mdadm.conf con los nuevos dispositivos raid.
    shian:~# cd /etc/mdadm
    shian:/etc/mdadm# cp mdadm.conf mdadm.conf.`date +%y%m%d`
    shian:/etc/mdadm# echo "DEVICE partitions" > mdadm.conf
    shian:/etc/mdadm# mdadm --detail --scan >> mdadm.conf
  • Montamos las particiones del raid.
    shian:~# mkdir /mnt/md0
    shian:~# mkdir /mnt/md2
    
    shian:~# mount /dev/md0 /mnt/md0
    shian:~# mount /dev/md2 /mnt/md2
  • Editamos el archivo /etc/fstab y cambiamos sda1, sda5 y sda6 por los nuevos dispositivos del raid (md0, md1 y md2 respectivamente).
    # /etc/fstab: static file system information.
    #
    #              
    
    proc            /proc           proc    defaults        0       0
    /dev/md2        /               ext3    defaults,errors=remount-ro 0       1
    /dev/md0        /boot           ext2    defaults        0       2
    /dev/md1        none            swap    sw              0       0
    /dev/hdc        /media/cdrom0   udf,iso9660 user,noauto     0       0
    /dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0
  • Editamos el archivo /boot/grub/menu.lst de configuración del grub para añadir las entradas a ambos discos duros. Duplicamos la línea que tenemos del arranque, cambiamos sda6 por md2 y cambiamos el disco duro del que arranca.
    # Línea original
    #title           Debian GNU/Linux, kernel 2.6.18-4-686
    #root            (hd0,0)
    #kernel          /vmlinuz-2.6.18-4-686 root=/dev/sda6 ro
    #initrd          /initrd.img-2.6.18-4-686
    #savedefault
    
    # Nuevas líneas
    title           Debian GNU/Linux, kernel 2.6.18-4-686 (HD1)
    root            (hd1,0)
    kernel          /vmlinuz-2.6.18-4-686 root=/dev/md2 ro
    initrd          /initrd.img-2.6.18-4-686
    savedefault
    
    title           Debian GNU/Linux, kernel 2.6.18-4-686 (HD0)
    root            (hd0,0)
    kernel          /vmlinuz-2.6.18-4-686 root=/dev/md2 ro
    initrd          /initrd.img-2.6.18-4-686
    savedefault
  • Ahora actualizamos el ramdisk para que se reflejen los cambios que hemos hecho.
    shian:~# update-initramfs -u
    update-initramfs: Generating /boot/initrd.img-2.6.18-4-686
  • Copiamos los datos de las particiones antiguas a las nuevas del raid. La opción ‘x’ es muy importante porque sino al copiar desde / copiaríamos todo de manera recursiva.
    shian:~# cp -ax / /mnt/md2
    
    shian:~# cd /boot/
    shian:/boot# cp -ax . /mnt/md0
  • Instalamos y reconfiguramos grub en los dos discos.
    shian:~# grub
    
    grub> root (hd0,0)
     Filesystem type is ext2fs, partition type 0x83
    
    grub> setup (hd0)
     Checking if "/boot/grub/stage1" exists... no
     Checking if "/grub/stage1" exists... yes
     Checking if "/grub/stage2" exists... yes
     Checking if "/grub/e2fs_stage1_5" exists... yes
     Running "embed /grub/e2fs_stage1_5 (hd0)"...  15 sectors are embedded.
    succeeded
     Running "install /grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/grub/stage2 /grub/menu.lst"... succeeded
    Done.
    
    grub> root (hd1,0)
     Filesystem type is ext2fs, partition type 0xfd
    
    grub> setup (hd1)
     Checking if "/boot/grub/stage1" exists... no
     Checking if "/grub/stage1" exists... yes
     Checking if "/grub/stage2" exists... yes
     Checking if "/grub/e2fs_stage1_5" exists... yes
     Running "embed /grub/e2fs_stage1_5 (hd1)"...  15 sectors are embedded.
    succeeded
     Running "install /grub/stage1 (hd1) (hd1)1+15 p (hd1,0)/grub/stage2 /grub/menu.lst"... succeeded
    Done.
  • Y ya podemos reinicar la máquina. Hay que tenemos en cuenta que la máquina sólo arrancará del segundo disco porque el primero todavía no forma parte del raid. Si todo va bien, una vez que arranque veremos algo como esto:
    shian:~# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/md2              7.4G  509M  6.5G   8% /
    tmpfs                  63M     0   63M   0% /lib/init/rw
    udev                   10M  100K   10M   1% /dev
    tmpfs                  63M     0   63M   0% /dev/shm
    /dev/md0              183M   13M  161M   8% /boot
    
    shian:~# mount
    /dev/md2 on / type ext3 (rw,errors=remount-ro)
    tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
    proc on /proc type proc (rw,noexec,nosuid,nodev)
    sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
    udev on /dev type tmpfs (rw,mode=0755)
    tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
    devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
    /dev/md0 on /boot type ext2 (rw)
  • Lo más difícil ya está hecho. Tenemos el raid funcionando en modo degradado porque sólo está disponible el disco sdb. Ahora repetimos casi el mismo proceso para el disco antiguo. Cambiamos el tipo de particiones a fd y las añadimos particiones al raid.
    shian:~# fdisk /dev/sda
    ...
    Command (m for help): p
    
    Disk /dev/sda: 8589 MB, 8589934592 bytes
    255 heads, 63 sectors/track, 1044 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1               1          24      192748+  fd  Linux raid autodetect
    /dev/sda2              25        1044     8193150    5  Extended
    /dev/sda5              25          73      393561   fd  Linux raid autodetect
    /dev/sda6              74        1044     7799526   fd  Linux raid autodetect
    ...
    
    shian:~# mdadm --add /dev/md0 /dev/sda1
    mdadm: added /dev/sda1
    shian:~# mdadm --add /dev/md1 /dev/sda5
    mdadm: added /dev/sda5
    shian:~# mdadm --add /dev/md2 /dev/sda6
    mdadm: added /dev/sda6
  • Empezará entonces la reconstrucción de los raid.
    shian:~# cat /proc/mdstat
    Personalities : [raid1] [raid6] [raid5] [raid4]
    md2 : active raid1 sda6[2] sdb6[1]
          7799424 blocks [2/1] [_U]
          [=====>...............]  recovery = 25.2% (1967936/7799424) finish=1.1min speed=81997K/sec
    
    md1 : active raid1 sda5[0] sdb5[1]
          393472 blocks [2/2] [UU]
    
    md0 : active raid1 sda1[0] sdb1[1]
          192640 blocks [2/2] [UU]
    
    unused devices: 
  • Un vez terminada la reconstrucción tendremos listo el sistema. Ahora, si queremos probar que todo funciona correctamente podemos reinicar de nuevo la máquina y comprobar que es capaz de arrancar desde cualquiera de los dos discos.

    Con este tipo de configuración estamos seguros de que aunque falle un disco nuestro servidor estará disponible y no tendremos que reinstalar ni reconfigurar nada. Sólo será necesario cambiar el disco defectuoso, reconstruir el raid y reconfigurar el grub.

     

    DERECHOS Y FUENTE: Blog de Iván López

    Filed under : Articulos | 2 Comments »
    mar 13 2008

    Renovación de Distro.cl

    Posted by

    No queremos dejar morir el sitio, es por esto que lo hemos retomado, cambiado de hosting, cambiado la cara y unido a una nueva red de Blog Temáticos chilena llamada ChileMedios.com

    La idea es dar más vida, movimiento y debate entorno al Blog, logrando crear un nuevo medio de difusión Linux en Chile.

    Esperamos contar con todo su apoyo, también los invitamos a entregar sus aportes, noticias, eventos, novedades y todo lo relacionado al mundo Linux y OpenSource!

    Filed under : Distro.cl | No Comments »
    mar 13 2008

    Novell adquiere SiteScape e impulsa la colaboración abierta

    Posted by

    Novell anunció la adquisición de SiteScape, líder en la colaboración en equipo con soluciones de código abierto, ampliando el liderazgo y compromiso de Novell con las soluciones de colaboración abierta e innovadoras.

    SiteScape, el fundador del proyecto de colaboración en código abierto ICEcore, aporta a Novell capacidades increíbles de colaboración en tiempo real y lugares de trabajo en equipo, componentes clave de una estrategia amplia de colaboración y comunicaciones unificadas. De la unión de ambas empresas surge un líder claro en la industria en lo que hace a productos abiertos, que permiten una intensa colaboración de nivel empresarial y productos relacionados con redes sociales, que les ofrecen a los clientes formas flexibles y poderosas de integrar las nuevas tecnologías de la comunicación en su entorno, e impulsar la productividad de los empleados y la innovación comercial.

    “Los adelantos en las tecnologías Web 2.0 están generando nuevas oportunidades en las comunicaciones unificadas (UC) y colaboración en equipo,” dijo Mark Levitt, Vicepresidente del Programa para Computación Colaborativa y el Lugar de Trabajo en la Empresa de IDC. “Los clientes empresariales y Pymes buscan soluciones para combinar mensajería en tiempo real, llamadas en conferencia y voz sobre IP, junto con otros espacios de trabajo en línea, redes sociales, blogs y wikis para mejorar la productividad e innovación en el equipo y en la empresa. Las soluciones que combinan la colaboración en equipo y UC, como las ofrecidas por la combinación Novell‑SiteScape, que se basan en el código abierto para una innovación rápida y normas abiertas para ofrecer interoperabilidad y flexibilidad de plataforma, representan el siguiente paso importante hacia la colaboración empresarial.”

    Fundada en 1995, SiteScape provee soluciones colaborativas para la comunicación y gestión destinada a equipos distribuidos tanto del ámbito privado como del ámbito gubernamental. Las soluciones integradas basadas en la Web de SiteScape dan soporte a la gestión del conocimiento, gestión de proyectos, comunidades de práctica (grupos sociales que comparten un proceso de aprendizaje basado en la reflexión compartida), teletrabajo, continuidad de las actividades y procesos gubernamentales y de negocios y muchas otras funciones manejadas por el flujo de trabajo.

    Novell, líder desde hace mucho tiempo en el correo electrónico empresarial con GroupWise®, se asoció con SiteScape en 2007 para agregar a su cartera de colaboración Novell® Teaming + Conferencing, una solución de conferencia en tiempo real y espacio de trabajo en equipo, centrada en la tecnología de código abierto ICEcore. En línea con el compromiso de Novell con la interoperabilidad, Novell Teaming + Conferencing corre tanto en Linux* como en Windows* y trabaja con Lotus Notes* y Microsoft Exchange*, además de GroupWise. Estos espacios de trabajo para equipos, a los que sus miembros pueden acceder en forma segura tanto desde adentro como afuera de la compañía, incorporan herramientas múltiples de colaboración integrada, entre ellas blogs, wikis, mensajería instantánea, chat, voz sobre IP y conferencias por la web, brindando un núcleo poderoso para una solución de colaboración y comunicaciones unificadas. Ahora, con la adquisición de SiteScape, Novell fortalece su compromiso con la tecnología, gana la flexibilidad de crear las soluciones que los clientes y los partner necesitan, y aumenta su capacidad para proveer mayor innovación e interoperabilidad en torno a la colaboración abierta.

    “Siendo el partner más importante de SiteScape en Europa consideramos que esta fusión generará beneficios más que interesantes para nuestra empresa y para nuestros clientes,” dijo Axel Amelung, Director Ejecutivo de comm.world collaboration, un proveedor de soluciones que atiende a clientes medianos y empresas en las industrias química, de telecomunicaciones y construcción. “Nuestros principales clientes de SiteScape tienen serias intenciones de potenciar al máximo posible las tecnologías de redes sociales empresarias y Web 2.0 para fomentar la productividad e innovación que surge de sus equipos. La combinación de la tecnología líder de SiteScape con el compromiso de Novell y su prolongada dedicación a la colaboración brindarán aún más innovaciones centradas en la empresa. La fusión también aportará los programas de partners y la reputación de clase empresarial de Novell para ayudar a respaldar nuestras ventas y los servicios que prestamos.”

    “La adquisición de SiteScape encaja perfectamente en la estrategia corporativa que hemos trazado,” dijo Ron Hovsepian, Presidente y CEO de Novell. “Amplía nuestro liderazgo en lo que hace a promover el código abierto en el mercado empresarial y es un agregado tecnológico clave en un área en la que vemos un gran potencial de crecimiento. Aún más importante, es que nos permite actuar de manera agresiva para proveerles a nuestros clientes una opción nueva y abierta de colaboración, ayudándolos a escapar de la dependencia exclusiva de determinados proveedores y ofreciéndoles fácil integración tanto con la plataforma Linux como con Windows.”

    “Unirnos a Novell nos ayuda a expandir nuestra tecnología con mucha más amplitud de lo que lo hemos hecho hasta hoy,” dijo Andy Fox, Gerente de Tecnología de SiteScape. “Novell y SiteScape ya han sido buenos socios, tanto en el proyecto ICEcore como en la comercialización de productos. Con la fusión, los clientes SiteScape ganan un nuevo socio fuerte para dar soporte a sus implementaciones, mejorando la tecnología y ayudándolos a satisfacer las rápidamente cambiantes necesidades de colaboración.”

    Los términos económicos del acuerdo no fueron dados a conocer.

    Filed under : Business | No Comments »