Welcome to Planet openSUSE

This is a feed aggregator that collects what openSUSE contributors are writing in their respective blogs.

To have your blog added to this aggregator, please read the instructions.


Friday
06 March, 2015


face

Tumbleweed es el nombre de la versión “rolling release” o de actualización continua de openSUSE.

Finalmente me decidí a probar Tumbleweed. En este artículo te cuento cómo he migrado a esta nueva experiencia con openSUSE, empezamos a rodar…

Tumbleweed, ese es el nombre que reciben los curiosos arbustos rodantes de los desiertos de los USA. Y ese es el nombre que le dio Greg Kroah-Hartman a su proyecto hace ya unos años.

Ese proyecto no era otro que el de crear unos repositorios en los que él mismo se encargaba de mantener de software actualizado, con lo que hacían de openSUSE una especie de distribución “rolling release” sin serlo…

Finalmente, tal como pudiste leer puntualmente por el blog, Greg KH dejó el proyecto, y la comunidad de openSUSE recogió el testigo y el proyecto, pero con la idea de llevarla más allá y crear una versión rolling release auténtica que conviviese con su versión de lanzamientos periódicos.

La inclusión de los test realizados por openQA al software que se iba desarrollando, hizo posible poder desarrollar una versión rolling release actualizada y sin errores para el usuario.

tumbleweed

Por todas partes se leen elogios de Tumbleweed, los usuarios hablan de maravilla de esta nueva forma de experimentar openSUSE. Por tanto decidí yo también instalarla en el portátil y ver que tal se comportaba, y si una vez más openSUSE iba a satisfacer todas mis expectativas…y voto a bríos que así ha sido!!

Si tú también quieres probarla te remito a la wiki de openSUSE una gran ayuda que mantiene casi en exclusividad un usuario (jcsl gran trabajo el que realizas!!) Así que aqui te dejo los artículos sobre Tumbleweed que me ayudaron en la migración:

En esos artículos también dicen a quien no le interesaría migrar a Tumbleweed y deberían mantenerse en su versión actual, para no sufrir problemas.

Primero pensé en realizar una instalación desde cero, así que tendría que descargarme el archivo ISO e instalarlo. Las imágenes ISO de Tumbleweed se van liberando cada relativamente poco tiempo (1 semana quizás?) así que escoge la opción que quieras y descarga la ISO preparada para instalarla.

Pero me da pereza ahora que ya tengo el sistema configurado, tener que volver a configuralo todo de nuevo. Quizás esa es una de las razones por lo que ese vicio de distrohopping no va conmigo.

Por tanto en vez de instalar desde cero, decidí actualizar mi openSUSE 13.1 a Tumbleweed. Con eso conservaría todas mis configuraciones, pero mi sistema y programas instalados se instalarían a las nuevas versiones disponibles en los repositorios de Tumbleweed.

Para eso, tal como explican en los enlaces que he puesto anteriormente hay que seguir


face

The Java Streams API is lovely, but there are a few operations that One repeats over and over again which could be easier.

One example of this is Collecting to a List.

List<String> input = asList("foo", "bar");
List<String> filtered = input
  .stream()
  .filter(s -> s.startsWith("f"))
  .collect(Collectors.toList());

There are a few other annoyances too. For example I find myself using flatMap almost exclusively with methods that return a Collection not a Stream. Which means we have to do

List<String> result = input
  .stream()
  .flatMap(s -> Example.threeOf(s).stream())
  .collect(Collectors.toList());
 
//...
 
public static List<String> threeOf(String input) {
  return asList(input, input, input);
}

It would be nice to have a convenience method to allow us to use a method reference in this very common scenario

List<String> result = input
  .stream()
  .flatMap(Example::threeOf) // Won't compile, threeOf returns a collection, not a stream 
  .collect(Collectors.toList());

Benjamin Winterberg has written a good guide to getting intellij to generate these for us . But we could extend the API ourselves.

Extending the Streams API is a little tricky as it is chainable, but it is possible. We can use the Forwarding Interface Pattern to add methods to List, but we want to add a new method to Stream.

What we can end up with is

EnhancedList<String> input = () -> asList("foo","bar");
List<String> filtered = list
  .stream()
  .filter(s -> s.startsWith("f"))
  .toList();

To do this we can first use the Forwarding Interface Pattern to create an enhanced Stream with our toList method. Starting with a ForwardingStrem

interface ForwardingStream<T> extends Stream<T> {
 
  Stream<T> delegate();
 
  default Stream<T> filter(Predicate<? super T> predicate) {
    return delegate().filter(predicate);
  }
 
  // Other methods omitted for brevity
 
}

Now, since Stream provides a chainable api, with methods that return Streams – when we implement our EnhancedStream we need to change the subset of methods that return a Stream to return our EnhancedStream.

interface EnhancedStream<T> extends ForwardingStream<T> {
 
  default EnhancedStream<T> filter(Predicate<? super T> predicate) {
    return () -> ForwardingStream.super.filter(predicate);
  }
 
  // Other methods omitted for brevity
 
}

Note that the filter method already exists on Stream and ForwardingStream, but as Java supports covariant return types we can override it and change the returntype to a more specific type (In this case from Stream to EnhancedStream).

You may also notice the lambda returned from the filter() method. Since ForwardingStream is a single method interface with just a Stream delegate() method it is compatible with a lambda that supplies a delegate Stream. Equivalent to a Supplier. EnhancedStream extends ForwardingStream and doesn’t declare any additional abstract methods, so we can return lambdas from each method that needs to return a Stream, delegating to the ForwardingStream. The ForwardingStream.super.filter() syntax allows us to call the implementation already defined in ForwardingStream explicitly.

Now we can add our additional behaviour to the EnhancedStream. Let’s add the toList() method, and a new flatMapCollection

interface EnhancedStream<T> extends ForwardingStream<T> {
  default List<T> toList() {
    return collect(Collectors.toList());
  }
 
  default <R 

face

functionalС недавних пор позволил себе наглость писать на Common Lisp’е (CL) на работе. Добрался до скриптов, которые до меня были написанны на perl’e, а точнее – понадобилось кое-что в них добавить, и я решил, что переписать их на CL будет и быстрее и полезнее для меня. Скажу сразу, что нет ничего, что можно сделать на CL, но нельзя, к примеру, на perl или python. Другим будет лишь подход к решению, несмотря на то, что, к примеру, на python тоже можно очень не плохо писать в функциональном стиле. Именно из-за этого подхода программисты CL находят его использование столь интересным, гибким и выразительным.

Итак, я использую clisp, и quicklisp в качестве library manager’a. На его домашней странице вы найдете подробное руководство по установке и использовании.


Для начала найдем все библиотеки, имена которых содержат “mysql”:

> (ql:system-apropos "mysql")

#SYSTEM cl-mysql / cl-mysql-20120208-git / quicklisp 2014-08-26>
#SYSTEM cl-mysql-test / cl-mysql-20120208-git / quicklisp 2014-08-26>
#SYSTEM clsql-mysql / clsql-20140713-git / quicklisp 2014-08-26>
#SYSTEM dbd-mysql / cl-dbi-20140826-git / quicklisp 2014-08-26>

Нам нужна cl-mysql. Устанавливаем:

> (ql:quickload "cl-mysql")

To load "cl-mysql":
  Install 5 Quicklisp releases:
    alexandria babel cffi cl-mysql trivial-features
; Fetching #
; 8.09KB
==================================================
8,284 bytes in 0.00 seconds (8736.33KB/sec)
; Fetching #
; 238.72KB
==================================================
244,450 bytes in 0.54 seconds (438.44KB/sec)
; Fetching #
; 48.70KB
==================================================
49,872 bytes in 0.03 seconds (1763.46KB/sec)
; Fetching #
; 207.21KB
==================================================
212,186 bytes in 0.37 seconds (567.45KB/sec)
; Fetching #
; 24.96KB
==================================================
25,561 bytes in 0.09 seconds (268.06KB/sec)
; Loading "cl-mysql"
[package alexandria.0.dev]........................
[package babel-encodings].........................
[package babel]...................................
[package cffi-sys]................................
[package cffi]....................................
[package cffi-features]...........................
[package com.hackinghat.cl-mysql-system]..
*** - Unable to load foreign library (LIBMYSQLCLIENT).
      FFI:OPEN-FOREIGN-LIBRARY: Cannot open library "libmysqlclient_r.so":
"libmysqlclient_r.so: cannot open shared object file: No such file or directory"
The following restarts are available:
RETRY          :R1      Try loading the foreign library again.
USE-VALUE      :R2      Use another library instead.
SKIP           :R3      skip 75 75 (USE-FOREIGN-LIBRARY LIBMYSQLCLIENT)-4
RETRY          :R4      retry 75 75 (USE-FOREIGN-LIBRARY LIBMYSQLCLIENT)-4
STOP           :R5      stop loading file /home/anaumov/.cache/common-lisp/clisp-2.49- \
unix-x64/home/anaumov/quicklisp/dists/quicklisp/software/cl-mysql-20120208-git/system.fas
TRY-RECOMPILING :R6     Recompile system and try loading it again
RETRY          :R7      Retry loading FASL for #.
ACCEPT         :R8      Continue, treating loading FASL for # as having been successful.
ABORT          :R9      Give up on "cl-mysql"
ABORT          :R10     Abort main loop
Break 1 CL-MYSQL-SYSTEM[4]>

Знакомая всем пользователям Linux ошибка отсутствия необходимой библиотеки. Clisp-интерпретатор предлагает несколько вариантов дальнейшей работы. Мы продолжим работу с ним, но для начала нам нужно установить rpm-пакет (в другой консоли), содержащий файл libmysqlclient_r.so:

> sudo zypper in libmysqlclient_r18

> rpm -ql libmysqlclient_r18
/usr/lib64/libmysqlclient_r.so.18
/usr/lib64/libmysqlclient_r.so.18.0.0

> cd /usr/lib64
# ln -s libmysqlclient.so.18.0.0 libmysqlclient_r.so

Последняя команда создает линк из-за несоответствия имени библиотеки. После этого возвращаемся в clisp (оставили его открытым?) и предлагаем попробывать еще раз: RETRY. После этого уснановка продолжается. Проверим все ли в порядке, и можем ли мы теперь работать с базой данных:

> (use-package :cl-mysql)
T

> (cl-mysql:connect
   :host "127.0.0.1"
   :database "centreon"
   :user "user"
   :password "foobar")
#COM.HACKINGHAT.CL-MYSQL-SYSTEM:CONNECTION-POOL #x0003345319D8

Connect выводит адрес созданного пула – объекта cl-mysql пакета. Его синтаксис, кстати, один в один напоминает аналог из sqlalchemy. Синтаксис позволяет использовать язык SQL в качестве параметра cl-mysql:query, поэтому тут тоже ничего нового. Рассмотрим один пример.

(defun views-columns()
    (cl-mysql:connect :host "127.0.0.1"
                      :database "information_schema"
                      :user "user"
                      :password "foobar")

    (loop for i in (car (car (cl-mysql:query "show columns from VIEWS")))
        do (format t "~A~%" i)))

Заголовок (шапку таблицы) мы получаем в виде еще одного cписка. Я обрезал его при помощи car.
Вот что выдаст функция views-columns:

(TABLE_CATALOG varchar(512) YES NIL NIL NIL)
(TABLE_SCHEMA varchar(64) NO NIL NIL NIL)
(TABLE_NAME varchar(64) NO NIL NIL NIL)
(VIEW_DEFINITION longtext NO NIL NIL NIL)
(CHECK_OPTION varchar(8) NO NIL NIL NIL)
(IS_UPDATABLE varchar(3) NO NIL NIL NIL)
(DEFINER varchar(77) NO NIL NIL NIL)
(SECURITY_TYPE varchar(7) NO NIL NIL NIL)
(CHARACTER_SET_CLIENT varchar(32) NO NIL NIL NIL)
(COLLATION_CONNECTION varchar(32) NO NIL NIL NIL)

Для сравнения вывод той же команды в mysql-интрепретаторе:

mysql> show columns from VIEWS;
+----------------------+--------------+------+-----+---------+-------+
| Field                | Type         | Null | Key | Default | Extra |
+----------------------+--------------+------+-----+---------+-------+
| TABLE_CATALOG        | varchar(512) | YES  |     | NULL    |       |
| TABLE_SCHEMA         | varchar(64)  | NO   |     |         |       |
| TABLE_NAME           | varchar(64)  | NO   |     |         |       |
| VIEW_DEFINITION      | longtext     | NO   |     | NULL    |       |
| CHECK_OPTION         | varchar(8)   | NO   |     |         |       |
| IS_UPDATABLE         | varchar(3)   | NO   |     |         |       |
| DEFINER              | varchar(77)  | NO   |     |         |       |
| SECURITY_TYPE        | varchar(7)   | NO   |     |         |       |
| CHARACTER_SET_CLIENT | varchar(32)  | NO   |     |         |       |
| COLLATION_CONNECTION | varchar(32)  | NO   |     |         |       |
+----------------------+--------------+------+-----+---------+-------+
10 rows in set (0.02 sec)

to be or not to be

Вопреки распространенному мнению, Lisp жив. Библиотеки, как мы только что убедились, для него есть, они поддерживаются, и их установка не вызывает никаких проблем. Синтаксис CL



face

Este año se Akademy 2015 se celebrará en A Coruña, España, del 25 al 31 de julio. Aunque falta bastante tiempo recientemente se ha abierto el Call for Papers, es decir, el momento de participar activamente en el evento. Así que ya sabes: presenta tu charla a Akademy 2015.

 

Presenta tu charla a Akademy 2015

Como se ha comentado en anteriores ocasiones, uno de los objetivos de Akademy es aprender y enseñar nuevos conocimientos y compartir entre nosotros la pasión de lo que se hace en KDE.

Para compartir ideas, experiencias o momentos, se reservan talleres específicos en la sede (o se aprovechan los corrillos en los pasillos, las cenas o los momentos de barra), pero para enseñar y compartir detalles técnicos se utilizan las charlas.

Si crees que tienes algo importante que presentar, por favor házselo saber a la organización. Y si crees que alguien debería presentar su ponencia, nomínalo.

Para más detalles, mira las líneas generales del Call for Papers. Tienes de plazo para enviar tu propuesta hasta el domingo 31 de Marzo,  23:59:59 CEST.

 

¿Qué es Akademy?

Para los que no lo sepan, Akademy es el evento de la Comunidad KDE que aúna en una gran conferencia todo tipo de simpatizantes de KDE como desarrolladores, diseñadores, usuarios, traductores, promotores, ideólogos, etc. Allí se reunirán a lo largo de una semana para compartir charlas, cenas, ponencias, talleres y, en definitiva, para trabajar juntos.
Es una gran semana que sirve para unir más fuerte los lazos que unen nuestra Comunidad, así como para crear nuevos que se mantendran gracias a las listas de correo, canales irc o Sprints.

Hay que recordar que Akademy 2013 se celebró en Bilbao, junto con Akademy-es (como este año), y que fue un gran éxito tanto de asistentes, como de ponencias o de resultados. Así que no tienes excusa para asistir ya que por el “precio” de uno este año tienes dos grandísimos eventos a tu alcance.

 

Más información: KDE.News


Thursday
05 March, 2015


face

Το γραφικό περιβάλλον Cinnamon πρωτοεμφανίστηκε στην διανομή Linux Mint όταν άλλαξε το GNOME σε έκδοση 3 και την εμφάνιση του Unity. Ο σκοπός του ήταν να εφαρμόσει την απλότητα του παλιού GNOME με τις σύγχρονες τεχνολογίες των υπολογιστών.

Στο openSUSE, είχαν γίνει κάποιες προσπάθειες στο παρελθόν. Επιτυχημένα μεν αλλά χωρίς συνέχεια. Έχω περιγράψει στο παρεθλόν πως γίνεται εγκατάσταση αλλά και συγκεκριμένα στην 12.2.

Πλέον έχει αναλάβει άλλος το project με αρκετή επιτυχία.

Στο πόρταλ μπορείτε να δείτε διάφορες πληροφορίες σχετικά με την εγκατάσταση κλπ.

https://en.opensuse.org/Portal:Cinnamon

Για την 13.2, μπορείτε να χρησιμοποιήσετε τις παρακάτω εντολές:

sudo zypper ar http://download.opensuse.org/repositories/X11:/Cinnamon:/Current/openSUSE_13.2 Cinnamon
sudo zypper ref Cinnamon
sudo zypper in patterns-openSUSE-cinnamon

Υπάρχει και η ιστοσελίδα

https://software.opensuse.org/package/cinnamon

όπου μπορείτε να επιλέξετε την δικιά σας έκδοση της διανομής και να το εγκαταστήσετε.

Δείτε το βίντεο πως το εγκαθιστά:


'Ωρα για εικόνες:


Η επιφάνεια εργασίας



Το μενού



Επιλογές χρήστη



Το YaST



Ο Firefox

face

For people planning on attending the openSUSE Conference in The Hague, Netherlands from May 1 – 4 who are not citizen of the European Union, it’s a good idea to start thinking about getting your visa, which is why I’m going to summarize the requirements here and give you the resources to help you get the process started.

The Travel Support Program has no provisions to cover the cost of a visa, so it’s the travelers responsibility for covering the additional cost.

Alphabet Nation

You must apply for a Schengen visa through the Dutch embassy or consulate in your country if you are from one of the following countries:

  • A – Afghanistan, Algeria, Angola, Armenia, Azerbaijan
  • B – Bahrain, Bangladesh, Belarus, Belize, Benin, Bhutan, Bolivia, Botswana, Burkina Faso, Burma (see Myanmar), Burundi
  • C – Cambodia, Cameroon, Cape Verde, Central African Republic, Chad, China (PRC), Colombia, Comoros, Congo (Brazzaville), Côte d’Ivoire, Cuba, Democratic Republic of Congo
  • D – Djibouti, Dominica, Dominican Republic
  • E – Ecuador, Egypt, Equatorial Guinea, Eritrea, Ethiopia
  • F – Fiji Islands
  • G – Gabon, The Gambia, Georgia, Ghana, Grenada, Guinea, Guinea-Bissau, Guyana
  • H – Haiti
  • I – India, Indonesia, Iran, Iraq
  • J – Jamaica, Jordan
  • K – Kazakhstan, Kenya, Kiribati, Kosovo, Kuwait, Kyrgyzstan
  • L – Laos, Lebanon, Lesotho, Liberia, Libya
  • M – Madagascar, Malawi, Maldives, Mali, Marshall Islands, Mauritania, Micronesia, Mongolia, Morocco, Mozambique, Myanmar (formerly Burma)
  • N – Namibia, Nauru, Nepal, Niger, Nigeria, North Korea
  • O – Oman
  • P – Pakistan, Palau, Papua New Guinea, Peru, The Philippines,
  • Q – Qatar
  • R – Russian Federation, Rwanda
  • S – Samoa, São Tomé e Principe, Saudi Arabia, Senegal, Sierra Leone, Solomon Islands, Somalia, South Africa, South Sudan, Sri Lanka, St Lucia, St Vincent and the Grenadines, Sudan, Suriname, Swaziland, Syria
  • T – Tajikistan, Tanzania, Thailand, Timor-Leste, Togo, Tonga, Trinidad & Tobago, Tunisia, Turkey, Turkmenistan, Tuvalu
  • U – Uganda, Ukraine, United Arab Emirates, Uzbekistan
  • V – Vanuatu, Vietnam
  • Y – Yemen
  • Z – Zambia, Zimbabwe
    • Palestinians also require a visa.

If you are continuing to read this, you’re either liked the video, are interest in what else I have to write or plan on attending oSC15 and come from one of the above countries.

If its the latter, you will need to apply for a visa. The application form for a Schengen visa can be downloaded here.

You should book a flight to Europe that arrive in the Netherlands because some countries might have different requirements for a transit visa.

Additionally, you will need to have documentation that supports the reason for your visit to the Netherlands. The documentation must come from a Dutch party. The organizers of oSC15 in Holland are currently working on this portion, so please contact me at ddemaio@suse.de if you require documentation and I will connect you with the party responsible for this documentation.

Other requirements for a visa state you must:

  • have a valid passport;
  • have enough money (€34 for each day of their stay);
  • be able to demonstrate the purpose of your stay to border officials;
  • pose no threat to public order, national security or international relations.

More information is available



face

TumbleweedDistrowatch will be changing its color scheme for remarks on Tumbleweed from red to green. Snapshots for Tumbleweed have included Kernel 3.19 as it was the first distro to update to Kernel 3.19 and the next snapshot will provide an update for systemd.

Systemd 219 has some fixes in the works and is currently blocking the release of the new Tumbleweed snapshot. Additional contributions would help speed up the release and be highly appreciated.

While GCC 5 won’t be in the next few snapshots, progress is being made; the difficult fixes to GCC5 are the ones that remain.

As for the previous snapshot released earlier this week, Mozilla Firefox was updated to version 36. There is a significant amount of additions to 36 and support for full HTTP/2 is enabling a faster, more scalable and responsive web. Mozilla also updated Thunderbird to 31.5.0 and MFSA 2015-24/CVE-2015-0822 provides reading of local files through manipulation of form autocomplete for both Firefox and Thunderbird.

For the most recent snapshot, visit the mailing list.


face

La rama de aplicaciones del equipo KDE sigue mejorando las mismas y ya tenemos disponible KDE Aplicaciones 14.12.3. Veamos que nos ofrece y repasemos las novedades de dicha rama.

Disponible KDE Aplicaciones 14.12.3

El pasado 3 de marzo se puso a disposición de los usuarios la tercera actualización de KDE Applications 14.12, un lanzamiento que contiene solo resolución de errores y mejoras en las traducciones. Por tanto, es muy recomendable para todo el que tenga dicha versión.

De esta forma han sido resueltos más de 19 errores  que incluyen mejoras en el juego de KDE Edu Kanagram, , el modelador de archivos UML Umbrello, el visor de documentos Okular y la apliación de geometría, Kig.

Este lanzamiento también incluye las versiones largo soporte de Plasma (Long Term Support) como Plasma Workspaces 4.11.17, KDE Development Platform 4.14.6 y la suite Kontact 4.14.6.

Se puede encontrar el listado completo de cambios en el siguiente enlace.

Más información: KDE.org

¿Que nos ofrece la rama KDE Aplicaciones 14.12?

El 17 de diciembre fue puesto a disposición de los usuarios KDE Aplicaciones 14.12, el primer lanzamiento de la colección de aplicaciones con la nueva numeración y que contiene las primeras adaptadas a Qt5.

Y aunque la mayoría de las aplicaciones están basadas en KDE 4, tendremos  más de 10 aplicaciones basadas en KDE Frameworks 5 con lo que estarán mejor adaptadas al nuevo escritorio Plasma 5.

KDE Aplicaciones 14.12 nos ofrece las siguientes características, aunque para ver la lista completa de cambios os recomiendo el siguiente enlace:

La siguiente versión de KDE Aplicaciones será la 15.04  y, como no puede ser de otra forma, vendrá bastante cargado de aplicaciones ya migradas a al modular KDE Frameworks 5.

Los proyectos de KDE

Aunque creo que ya se ha comentado en el blog, nunca está de más repasar los nombres y las numeraciones actuales de los proyectos KDE:

  • KDE Frameworks: Se trata del entorno básico de trabajo para los desarrolladores, es decir, las librerías básicas para crear tanto el escritorio

Wednesday
04 March, 2015


face

Nueva versión de este gran software de KDE que permite integrar tu teléfono móvil con tu escritorio KDE

KDE_android

El desarrollador de KDE Albert Vaka ha anunciado la versión 0.8 de KDE-connect para KDE 4.

Ya hace tiempo en el blog hablé de KDE-connect una aplicación que por aquel entonces todavía estaba en una fase temprana de desarrollo e instalarla era una tarea algo complicada, pero que ya en aquel entonces prometía ser una aplicación muy útil y con mucho futuro.

Hoy después de dos años de desarrollo, KDE-connect se ha hecho más accesible, siendo su instalación sencilla, y ha crecido en funcionalidades y corregido los errores que por el camino se han ido encontrando.

Hace unos días Albert Vaka en su blog, anunciaba una nueva versión, la 0.8. Y como es habitual con muchas correcciones de errores y nuevas funcionalidades implementadas. Puedes leer el anuncio en su blog:

Lo que es menos habitual en un lanzamiento es que algunas de esas nuevas funcionalidades estén desarrolladas por jóvenes de menos de 18 años! Sí has oido bien, con el software libre esto es posible.

El proyecto de KDE-connect participó en el programa Code-in de Google, donde se anima a jóvenes de entre 13 y 18 años a participar en proyectos de software libre. Estos jóvenes hackers pudieron descargar el código, estudiarlo, realizar mejoras y compartirlas de nuevo con todos, cosa que se agradece.

powered_by_kde_horizontal_190

Algunas de las nuevas características que podemos encontrar en esta nueva versión son:

  • Añadida la capacidad para silenciar las llamadas entrantes de la notificación en el escritorio. *
  • Incluye una manera de desactivar las notificaciones de escritorio por-app desde su teléfono.
  • Se ha añadido una barra de búsqueda a los controles multimedia. *
  • Añadido un plugin para prevenir que el PC entre en hibernación si tu teléfono está en la red.
  • Implementado soporte para arrastrar y soltar mediante touchpad. *
  • Añadido soporte para las teclas especiales y teclas modificadoras a teclado virtual.
  • Arreglado: los vídeos compartidos YouTube no abrian en el navegador.

Las características marcadas con un asterisco (*) han sido desarrolladas por menores de 18 años!

Por tanto ya puedes disfrutar de KDE-connect actualizado y más completo gracias en parte al trabajo de estos pequeños hackers! De momento sólo está disponible para KDE 4, los que hayáis migrado a Plasma 5 deberéis esperar un poco. Albert Vaka promete tener pronto una versión de esta gran herramienta, casi mágica, para Plasma 5 muy pronto.

KDE-connect está disponible para todas las distribuciones de GNU/Linux. En openSUSE puedes buscarla mediante zypper o YaST o instalarla via 1-click intall desde este enlace:

Y para instalarla en vuestro teléfono móvil con Android tenéis





face

La rama de aplicaciones del equipo KDE sigue mejorando las mismas y ya nos presentó hace unos dias KDE Aplicaciones 14.12.2. Poco a poco las distribuciones se están poniendo las pilas y nos van presentando las actualizaciones como las que hoy os anuncio de Chakra.

Disponible KDE Aplicaciones 14.12.2 para Charkra

Los usuarios de Chrakra Linux están de enhorabuena ya que, apenas pasada una semana desde el lanzamiento, ya tienen en sus repositorios oficiales la segunda actualización de KDE Applications 14.12, un lanzamiento que contiene solo resolución de errores y mejoras en las traducciones. Por tanto, es muy recomendable para todo el que tenga dicha versión

De esta forma han sido resueltos más de 20 errores  que incluyen mejoras en el juego de KDE Edu Kanagram, el modelador de archivos UML Umbrello, el visor de documentos Okular y el globo virtual de KDE, Marble.

El número de aplicaciones actualizadas es grande pero podemos destacar las siguientes:

 

  • kde-workspace 4.11.16
  • kdelibs 4.14.5.
  • xorg 1.16.4
  • kdepim group 4.14.5
  • calligra 2.9.0
  • libreoffice 4.4.1
  • ffmpeg 2.5.4
  • pulseaudio 6.0
  • digikam 4.8
  • kdeconnect 0.8
  • qt5 group 5.4.1

 

Se puede encontrar el listado completo de cambios en el siguiente enlace.

Más información: Chakra

¿Que nos ofrece la rama KDE Aplicaciones 14.12?

El 17 de diciembre fue puesto a disposición de los usuarios KDE Aplicaciones 14.12, el primer lanzamiento de la colección de aplicaciones con la nueva numeración y que contiene las primeras adaptadas a Qt5.

Y aunque la mayoría de las aplicaciones están basadas en KDE 4, tendremos  más de 10 aplicaciones basadas en KDE Frameworks 5 con lo que estarán mejor adaptadas al nuevo escritorio Plasma 5.

KDE Aplicaciones 14.12 nos ofrece las siguientes características, aunque para ver la lista completa de cambios os recomiendo el siguiente enlace:

La siguiente versión de KDE Aplicaciones será la 15.04  y, como no puede ser de otra forma, vendrá bastante cargado de aplicaciones ya migradas a al modular KDE Frameworks 5.

Los proyectos de KDE


Tuesday
03 March, 2015


face

Nom : yast.png
Affichages : 501
Taille : 7.3 KoUn important travail de fond a été lancé il y a quelques années afin de redynamiser YaST et attirer de nouveaux contributeurs. Le langage maison YCP de SUSE a notamment été abandonné au profit de Ruby, ce qui a nécessité un important travail de conversion du code. Un effort considérable a également été fait au niveau de la documentation. Aujourd'hui, c'est avec satisfaction que le projet YaST intègre de nouveaux modules,


face

Distribuciones de GNU/Linux hay muchas, y quizás ya eres usuario de alguna de ellas.

Simplemente lee el artículo con algunas de las razones para elegir openSUSE frente a otras opciones.

En este extenso artículo se señalan cuatro razones argumentadas, para elegir openSUSE frente a otras distribuciones de GNU/Linux.

El artículo está escrito en inglés por Richard Brown, el actual presidente del consejo de openSUSE, y colaborador con la comunidad desde hace muchos años. Al que tuve el placer de conocer cuando estuve en el hackathon de openSUSE en las oficinas de SUSE en Nuremberg.

Puedes leer el artículo original en inglés en su blog, en el siguiente enlace. Gracias a Richard Brown por permitirme traducirlo. Si quieres compartir la traducción no dejes de citar el original y esta traducción, comparte bajo las licencias libres.

Sé que es una opinión personal del autor, pero cuando lo leí, como usuario y “contribuidor” con la comunidad de openSUSE me veo reflejado en muchas de sus opiniones y totalmente de acuerdo en todas las afirmaciones y argumentos que expone.

Me pareció muy interesante, no sólo a aquellos usuarios que ya estamos convencidos, sino para aquellos que usen otras distribuciones de GNU/Linux u otros sistemas operativos. En este extenso artículo se exponen y dan a conocer aspectos que hacen de openSUSE una distribución que es más que un producto.

Espero que también a ti te resulte interesante y que descubras aspectos que quizás no conocías ahondes más en ellos. Ya sea probando openSUSE o contribuyendo a la comunidad de alguna manera. Empezamos…

wallpaper5

Una cosa que me he preguntado una y otra vez es ¿Por qué openSUSE?. El contexto no es siempre el mismo ¿Por qué debería usarlo? ¿Por qué debería contribuir con openSUSE? ¿Por qué lo utilizas? ¿Por qué no usar [alguna otra distribución]? Pero la pregunta siempre se reuce a ¿Qué tiene de especial el proyecto openSUSE?

Es una buena pregunta, y en el pasado es una de esas preguntas que tanto el proyecto openSUSE como conjunto, como yo de a modo de contribuidor individual hemos tratado de responder de manera satisfactoria. Pero no creo que la dificultad de la respuesta sea debido a la falta de buenas razones, sino a la abundancia de ellas, junto con un tendencia general dentro de nuestra comunidad de ser muy modesta.

Este artículo es mi esfuerzo por hacer frente a eso y poner de relieve algunas razones por las que tu, el lector, deberías contribuir al proyecto openSUSE y al software que estamos desarrollando.

Razón 1: Nosotros no somos (simplemente) una distribución de GNU/Linux.

Normalmente, el primer pensamiento de la gente cuando oye hablar de openSUSE es en “los lanzamientos periódicos de la distribución” como por ejemplo la última versión que fue openSUSE 13.2 que se lanz



face
  • An inlaid GNOME logo, part 3

    Esta parte en español

    (Parts 1, 2)

    The next step is to make a little rice glue for the template. Thoroughly overcook a little rice, with too much water (I think I used something like 1:8 rice:water), and put it in the blender until it is a soft, even goop.

    Rice glue in the blender

    Spread the glue on the wood surfaces. I used a spatula; one can also use a brush.

    Spreading the glue

    I glued the shield onto the dark wood, and the GNOME foot onto the light wood. I put the toes closer to the sole of the foot so that all the pieces would fit. When they are cut, I'll spread the toes again.

    Shield, glued Foot, glued


face

Postado por Edivaldo
Blog do Edivaldo - Um blog que fala sobre carreira, software, dá dicas e informações do mundo da tecnologia da informação e ainda descomplica o Linux

receitanet00

Agora que você já instalou o programa gerador da declaração (IRRF) para começar acertas as contas com o leão, veja aqui como instalar o Receitanet no Linux para enviar a sua declaração.

O Receitanet é o programa responsável pela transmissão dos dados, na hora de enviar sua declaração criada no programa gerador da declaração (IRRF).Ele também está disponível na página da Receita Federal em versões para vários sistemas. E assim como o IRRF, a versão do instalador do Receitanet que será usada nesse tutorial será a binária (.bin), já que a mesma permite fazer a instalação em qualquer distribuição Linux.

Leia o restante do texto "Como instalar o Receitanet no Linux"

Continue Reading


Já visitou o Blog do Edivaldo hoje?

Como instalar o Receitanet no Linux


Monday
02 March, 2015


face

Alors, où en est-on des dernières sorties dans l’univers KDE ?

Les KDE Frameworks sont en 5.7, les applications sont en 14.12 alors que le développement des 15.04 sont en cours avec la sortie de la bêta 1 prévue pour mercredi 4 mars.

Nous venons d’ailleurs d’apprendre que Kdenlive, l’éditeur vidéo, a été porté sur KDE Frameworks 5 ! Cette mise à jour sera présente dans les KDE Applications 15.04. (source : https://kdenlive.org/node/9430)
Il y a 1 mois est sorti KDE Plasma 5.2 avec un lot de nouveautés impressionnant.
Si vous n’y pas encore prêté attention vous trouverez l’annonce officielle ici : https://dot.kde.org/2015/01/27/plasma-52-beautiful-and-featureful la news sur Linuxfr pour les francophiles : http://linuxfr.org/news/plasma-5-2-l-espace-de-travail-de-kde et cet article sur Netrunner-mag qui est plutôt bien détaillé : http://netrunner-mag.com/2015/02/07/plasma-5-2-review-fire-all-weapons/?utm_campaign=plasma-5-2-review-fire-all-weapons.

 

kdeconnect

On en arrive (enfin) à ce qui m’a motivé à écrire ce billet, une mise à jour de KDE Connect vient de sortir : la 0.8 !

KDE Connect est l’application qui permet de connecter son smartphone android à son ordinateur sous KDE pour créer certaines interactions. Les deux ont juste besoin d’être sur le même réseau wifi.

kdeconnect1

Parmi les fonctionnalités, on peut déjà :

  • Envoyer un ping
  • Contrôler la musique de l’ordinateur à partir du téléphone
  • Empêcher l’activation de l’écran de veille de l’ordinateur quand le smartphone est proche
  • Recevoir les notifications du téléphone sur l’ordinateur
  • Mettre en pause la musique de l’ordinateur pendant les appels
  • Surveiller la batterie du téléphone depuis l’ordinateur
  • Partager et envoyer des URL ou des textes
  • Partager le presse-papier
  • Naviguer dans les fichiers du téléphone depuis l’ordinateur
  • Contrôler le PC à l’aide d’un touch-pad sur le smartphone
  • Partager un contenu multimédia entre les navigateurs

Et donc pour cette nouvelle version 0.8 nous avons les nouveautés suivantes :

  • Possibilité de couper la sonnerie du téléphone lors d’un appel depuis le PC
  • Possibilité de désactiver les notifications coté PC selon l’application du smartphone
  • Ajout d’une barre de progression dans le contrôleur de musique du smartphone
  • Empêcher l’activation de l’écran de veille de l’ordinateur quand le smartphone est proche
  • Possibilité de faire des glisser-déposer avec le touch-pad du smartphone vers le PC
  • Ajout des touches spéciales et modificateur de touches sur le clavier virtuel du smartphone
  • Correction du bug empêchant les vidéos Youtube de s’ouvrir dans le navigateur

C’est donc un nombre conséquent de nouveautés qui vient compléter le projet. Elles ont été réalisées grâce au projet Google Code-in qui permet à des étudiants de participer à des projets open sources avec un suivi et une petite rémunération à la cl


face

I have become increasingly convinced that there is little difference between monitoring and testing. Often we can run our automated tests against a production system with only a little effort.

We are used to listening to our automated tests for feedback about our software in the form of test-smells. If our tests are complicated, it’s often a strong indicator that our code is poorly designed and thus hard to test. Perhaps code is too tightly coupled, making it hard to test parts in isolation. Perhaps a class has too many responsibilities so we find ourselves wanting to observe and alter private state.

Doesn’t the same apply to our production monitoring? If it’s hard to write checks to ensure our system is behaving as desired in production, it’s easy to blame the monitoring tool, but isn’t it a reflection on the applications we are monitoring. Why isn’t it easy to monitor them?

Just as we test-drive our code, I like to do monitoring check-driven development for our applications. Add checks that the desired business features are working in production even before we implement them, then implement them and deploy to production in order to make the monitoring checks pass. (This does require that the same team building the software is responsible for monitoring it in production.)

As I do this more I notice that in the same way that TDD gives me feedback on code design (helping me write better code), Check-driven-development gives feedback on application design.

Why are our apps too hard to test? Perhaps they are too monolithic so the monitoring tools can’t check behaviour or data buried in the middle. Perhaps they do not publish the information we need to ascertain whether they are working.

Here are 4 smells of production monitoring checks that I think give design feedback, just like their test counterparts. There are lots more.

  • Delving into Private State
  • Complexity, Verbosity, Repetition
  • Non-Determinism
  • Heisentests

Delving into Private State

Testing private methods in a class often indicates there’s another class screaming to be extracted. If something is complex enough to require its own test, but not part of the public interface of the object under test, it likely violates the single responsibility principle and should be pulled out.

Similarly, monitoring checks that peek into the internal state of an app may indicate there’s another app that could be extracted with a clearly separate responsibility that we could monitor independently.

For example, we had an application that ingested some logs, parsed them and generated some sequenced events, which then triggered various state changes.

We had thoroughly tested all of this, but we still occasionally had production issues due to unexpected input and problems with the sequence generation triggered by infrastructure-environment problems.

In response, we added monitoring that spied on the intermediate state of the events flowing through the system, and spied on the database state to keep track of the sequencing.

Monitoring that pokes into


face

Over the past 2 weeks I was able to successfully setup a multi-domain network with a couple classmates and wanted to document our process here in hopes that someone will find this useful.

To start off, I have 3 machines on the same network. In my case these were virtual machines but this will work the same with physical machines. Each of them has a unique static IP, and they are all able to ping each other. They are also configured to allow traffic on the required ports for each service (DNS, NIS and NFS).

To start off, we need to create a primary DNS server for our domain. This server will answer all queries for our domain and will have a delegation within the root DNS server so that our caching servers will be able to query the domain. One important thing to note is that no device will ever directly use this server, instead they will be configured to use the caching DNS server which will then do a recursive query and eventually query the primary server on our behalf.

The first thing you must do is install the bind package using the package manager and then backup the default config file. The following commands will accomplish this:

yum install bind
cp /etc/named.conf /etc/named.conf.BAK

Then you must edit the /etc/named.conf file using your favorite text editor and make its configuration similar to this (replace IPs and domain names as needed):

options {
	listen-on port 53 { 192.168.19.53; 127.0.0.1; };
	listen-on-v6 port 53 { any; };
	directory 	"/var/named";
	dump-file 	"/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
	allow-query     { any; };
	recursion no;
};

zone "ushamim.com" IN {
	type master;
	file "my-hosts.db";
	allow-update { none; };
};

zone "19.168.192.in-addr.arpa" IN {
	type master;
	file "my-rev.db";
	allow-update { none; };
};

Some things of note:

  1. DNS sec is not enabled in this configuration, normally you would want this on but I have disabled it just to make this task easier
  2. Note that recursion is disabled, we do not want to allow recursive queries from this server as it will make us vulnerable to a DoS attack as well as add extra work load for this server

Now that we have told the server where to look for its zone files, we must create them and fill their contents with the SOA, NS, A and PTR records. Lets start by creating /var/named/my-hosts.db:

$TTL 86400
@    IN   SOA  dns.ushamim.com.   root.host.ushamim.com. (
				42	; serial
				3H	; refresh
				15M	; retry
				1W	; expiry
				1D )	; minimum
@    IN   NS    dns.ushamim.com.
host.ushamim.com.   IN   A  192.168.19.1
dns.ushamim.com.   IN   A  192.168.19.53
nfs.ushamim.com.   IN   A  192.168.19.2
nis.ushamim.com.   IN   A  192.168.19.3

Then we can create the /var/named/my-rev.db file:

$TTL 86400
@    IN   SOA  host.ushamim.com.   root.host.ushamim 

face

Postado por Edivaldo
Blog do Edivaldo - Um blog que fala sobre carreira, software, dá dicas e informações do mundo da tecnologia da informação e ainda descomplica o Linux

irfp2015-0

Chegou a hora de acertar as contas com o leão, por isso, se você quer fazer sua declaração do imposto de renda pessoa física no Linux, veja aqui como instalar o programa.

Para fazer sua declaração no Linux é preciso instalar o programa gerador da declaração (IRRF), que está disponível na página da Receita Federal em Versões para vários sistemas. A versão usada nesse tutorial será a binária (.bin), pois com ela é possível instalar em qualquer distribuição Linux.

Leia o restante do texto "Como instalar o IRPF no Linux"

Continue Reading


Já visitou o Blog do Edivaldo hoje?

Como instalar o programa IRPF no Linux


face

I use the Open Build Service to work on openSUSE packages. There is a useful tutorial HERE. Here is a summary of 'osc' commands I use the most:

alias oosc='osc -A https://api.opensuse.org'


Assuming you will be using the openSUSE Build Service, you will need to include the -A option on all the commands shown below. If you set up this alias, you can save a lot of typing.

osc search PKG


Search for a package. You can also use http://software.opensuse.org/ and zypper search PKG is also helpful.

osc meta pkg PRJ PKG -e


If you are project maintainer of PRJ, you can create a package directly using this command, which will throw you into an editor and expect you to set up the package's META file.

osc bco PRJ PKG

osc branch -c PRJ PKG


If you are not a project maintainer of PRJ, you can still work on PKG by branching it to your home project. Since you typically will want to checkout immediately after branching, 'bco' is a handy abbreviation.

osc ar


Add new files, remove disappeared files -- forces the "repository" version into line with the working directory.

osc build REPOSITORY ARCH


Build the package locally -- typically I do this to make sure the package builds before committing it to the server, where it will build again. The REPOSITORY and ARCH can be chosen from the list produced by osc repos

osc chroot REPOSITORY ARCH


Builds take place in a chroot environment, and sometimes they fail mysteriously. This command gives you access to that chroot environment so you can debug. In more recent openSUSEs the directory to go to is ~/rpmbuild/BUILD/

osc vc


After making your changes, edit the changes file. For each release you need to have an entry. Do not edit the changes file yourself: instead, use this command to maintain the changes file "automagically".

osc ci


Commit your changes to the server. Other SVN-like subcommands (like update, status, diff) also work as expected.

osc results


Check what the server is doing. Typically a build will be triggered by your commit. This command lets you see the status.

osc sr


'sr' is short for submitrequest -- this submits your changes to the PROJECT for review and, hopefully, acceptance by the project maintainers. If you're curious who those are, you can run osc maintainer (or osc bugowner)

osc rebuildpac


Sometimes it's desirable to trigger a rebuild on the OBS server.

NOTE ON LICENSING


JFYI: http://spdx.org/licenses/ lists all well known licenses and their original source. This becomes extremely handy if you start packaging.

face

Un repaso a Trisquel una distribución de GNU/Linux, con KDE como entorno de escritorio.

Este es un artículo postergado durante muchos días. Un repaso a esta Trisquel gnu/Linux con el entorno de escritorio KDE. No soy “distrohopper” así que no esperéis una revisión en detalle. Simplemente un repaso.

Trisquel gnu/linux es una de las pocas distribuciones de GNU/Linux que aconseja la Free Software Foundation (FSF), por ser una distribución totalmente libre, con repositorios libres, sin software privativo.

Además es la distribución que en uno de sus PC’s utiliza Richard Stallman, qué mejor aval de software libre?? ;)

Si quieres ver las distribuciones recomendadas por la FSF las puedes consultar en este enlace:

De todas ellas me decanté por Trisquel, me pareció la más interesante y atractiva… aunque sea una derivada de Ubuntu (que no es de mi devoción). La página oficial de la distribución es la siguiente, donde podrás encontrar más información, foros, y secciones de descarga de las ISO’s etc…

Descargué Trisquel 7.0 con nombre “Belenos” que fue publicada en marzo de 2014. Pues nada descargar la ISO y probar en el portátil, que tengo un espacio reservado para una distribución a mayores. Así que descargada la ISO toca instalarla.

Para un usuario de openSUSE como yo, se echa de menos ese proceso sencillo de instalación de esa distro mediante YaST, pero bueno, no es un problema insalvable. Terminada la instalación, el Grub de openSUSE no hay problemas con él, me lo reconoce y puedo acceder desde él a ambos sistemas.

Trisquel va con un entorno de escritorio Gnome por defecto, después de probarlo unos días, no me termino de acostumbrar a este entorno de escritorio. Así que investigo un poco para poder instalarlo con KDE.

Aunque también hay una versión más ligera con entorno de escritorio LXDE, que puedes instalar.

Después de probar varias opciones que no me sirvieron, y leer un poco, encontré la solución en este post de la propia wiki de Trisquel

De ese enlace lo que me sirvió fue la primera de las opciones. Esto es…

Descargar la ISO de una “netinstall“, esto es, un archivo ISO mínimo con el sistema mínimo y unos paquetes que se irán instalando durante el proceso descargándose desde su sitio.

Iniciar el proceso de instalación de ese “netinstall“, un requisito indispensable para eso es que el sistema reconozca nuestro adaptador de red, ya sea cableada o wifi.

Llegado casi al final del proceso de instalación, el asistente (llamado tasksel) abrirá una ventana para escoger el entorno de escritorio con varias opciones, de ellas hay que escoger “Triskel Desktop Environment”.

El problema es que en esa ventana no aparece el texto al completo


face
The title is not merely a clickbait, but my current opinion, after attending a programming competition for the first time. This post expresses my opinions on the hiring processes of [some of] the new age companies through programming competitions and algorithms-focused interviews.

I believe that the assessment for a senior/architect level programmer, should be done by finding how co-operative [s]he is with others to create interesting products and their history than by assessing how competitive [s]he is in a contest.

Algorithms

On my lone programming competition experience (on hackerrank), the focus of the challenges were on Algorithms (discrete math, combinatorics etc.).

Usage of standard, simple algorithms, instead of fancy, non-standard algorithms is a better idea in real life, where the products have to last for a long time, oblivious to changing programmers. Fancy algorithms are usually untested, harder to understand for a maintenance programmer.

Often, it is efficient to use the APIs provided by the standard library or ubiquitously popular libraries (say jquery). Unless you are working on specific areas (say compilers, memory management etc.) an in-depth of knowledge of a wide-range of algorithms may not be very beneficial (imo) in day-to-day work, elaborated in the next section.

Runtime Costs

There are various factors that decide the runtime performance, such as: Disk accesses, Caches, Scalable designs, Pluggable architectures, Points of Failures, etc.

Algorithms optimize mostly one aspect, CPU cycles. There are other aspects (say choice of Data structures, databases, frameworks, memory maps, indexes, How much to cache etc.) which have a bigger impact on the overall performance. CPU cycles are comparatively cheap and we can afford to waste them, instead of doing bad I/O or a non-scalable design.

Most of the times, if you choose proper datastructures and get your API design correct, we can plug the most efficient algorithm, without affecting the other parts of the system, iff your algorithm proves to be really a bottleneck. A good example is the Evolution of filesystems, schedulers in the Linux Kernel. Remember that Intelligent Design school of software development is a myth.

In my decade of experience, I have seen more performance problems due to poor choice of datastructures or unnecessary I/O, than due to poor selection of algorithms. Remember, Ken Thompson said: When in doubt, Use Brute Force. It is not important to get the right algorithm on the first try. Getting the skeleton right is more important. The individual algorithms can be changed, after profiling.

At the same time, this should not be misconstrued as an argument to use bubblesort.

The 10,000 hour rule

Doing well in online programming competitions is mostly the 10,000 hour rule in action. You spend time in enough competitions and solve enough problems, you will quickly know which algorithm or programming technique (say dynamic programming, greedy) to employ if you see a problem.

Being an expert at online programming competitions does not guarantee that [s]he could be trusted with building or maintaining a large scale system

face

Last time I’ve took look at Simple Direct Layer and how to get audio out of it. If SDL still feels little bit too hard to cope with I think I have solutions for you: libAO. Besides being no brainier with API libAO provides huge list of supported operating systems.
There is so much audio systems supported that you won’t be dissapointed but as much as I like everyone use Roaraudio. I don’t see it’s happening really soon (sorry roar you had your time in fame) but supporting Roaraudio  doesn’t mean that libAO is obsolete. It’s far from being obsolete. Libao supports OSS, ALSA and Pulseaudio out of the box and only problem is license is GPL 2.0+ so it’s no-go for proprietary development.

History

LibAO is developed under Xiph umbrella. Xiph is the organization who brought you Ogg/Vorbis, FLAC, Theora and currently they are hammering together next generation video codec Daala. Opus-audio codec standard is also Xiph project. LibAO rised from Xiph’s need multi-platform audio output library for Vorbis-audio codec. In this point if you don’t have any glue what I just said in last sentences I think you should take your spoon and start shovelling about Open Source audio codecs.
Becaus of the history libAO only has output mode and doesn’t use any callbacks. It doesn’t have fancy Float32 mode (as much as I understood) but that doesn’t say it’s bad thing. It works as expected you just feed bytes and after while you hear them from your speakers.

What about API

Supported outputs: Alsa, Oss, Jack, Mac OS X, Windows
License: GNU General Public license 2.0+

As said libAO API is difficult to describe since there almost ain’t NAN of it. You initialize, ask output device, put in your mode settings and start feeding data. Pulseaudio simple is almost easy as this but it’s still more difficult if you compare it to libAO. LibAO doesn’t support recording so only output and there must be a way to use another device than default but it’s not very easy to find or I was too lazy to dig it out.

So who wants to use libAO? People in hurry and don’t mind GPL-license, someone with very very tiny need of just getting audio out and people how hate bloat.

Summary: So if you hate bloat and again license doesn’t make you unhappy please use this library. Still libAO has kind of same problem that ALSA has. It’s mature, usable and ready for hardcore torturing but is it sexy? No! Is fresh? No, No! Is something that will change it API every week or hour?

After this I have to choose what to bring next. I have FFmpeg, Gstreamer and VLC in row. If you have opinion about next framework let me know.


Sunday
01 March, 2015


face

spock

A seguir uma dica rápida de como instalar o Vulcan Chess em homenagem ao nosso eterno herói Spock.

Primeiramente efetue o download do código fonte:

$ ftp://ftp.nl.netbsd.org/vol/2/metalab/distributions/zenwalk/source/extra/games/vulcan/vulcan-0.92.tar.gz

Descompacte o pacote:

$ tar -zxvf ~/Downloads/vulcan-0.92.tar.gz
Entre na pasta, compile e instale e Pronto! Para finalizar um vídeo demonstrativo no final.
$ cd vulcan-0.92/
$ make
# make install



face
OCS Inventory NG 小記


Server
先從 Windows 版本開始嘗試 這邊我裝 2.1.2 版本


不須先安裝 XAMPP 套件
  • 首先裝的是 XAMPP 5.6.3 版本 ( BitNami for XAMPP )
  • 接下來嘗試 1.7.7 版本 xampp-win32-1.7.7-VC9-installer.exe
使用預設的 OCS Inventory NG 軟體安裝即可
  • 存取路徑  http://主機IP/ocsreports 或是點選桌面捷徑
  • 安裝完成之後解決下列錯誤訊息
  • 錯誤訊息: install.php 還存在在安裝目錄
    • 移除或是rename  C:\xampp\htdocs\oscreports\install.php
  • 錯誤訊息: The default SQL login/password is activate on your database: ocsweb
進入 phpmyadmin 界面 http://主機IP/phpmyadmin
點選 權限 -->  針對 ocs 使用者點選 編輯權限
4.png

輸入設定的密碼, 點選執行
5.png

修改完成之後 OCS Inventory NG 就會出現相關的錯誤訊息, 因為我們已經更改密碼


6.png


接下來修改
xampp\htdocs\ocsreports\dbconfig.inc.php
修改內容
將 ocs 的預設密碼改為自定密碼
define("PSWD_BASE","自訂密碼");

以及
xampp\apache\conf\extra\ocsinventory-server.conf
修改內容
將 ocs 的預設密碼改為自定密碼

# PerlSetVar OCS_DB_PWD ocs
 PerlSetVar OCS_DB_PWD 自訂密碼

重新啟動 Apache 服務 ( 啟動 XAMPP 控制面板 )
C:\xampp\xampp-control.exe

因為 Apache 已經註冊為服務, 所以點選控制面板右上方的 SCM 按鈕呼叫 服務 視窗
選取 Apache2.2  -->  點選重新啟動

7.png



  • 錯誤訊息: The default login/password is activate on OCS-NG GUI
    • 點選畫面右上角的圖示更改 admin 密碼.

1.png

解決 XAMPP 相關安全問題


2.png

  • 將 MySQL root 加上密碼
    • 這也會設定 XAMPP 登入的密碼
  • 設定 .htaccess 來限制存取
3.png

設定完成將 MySQL 服務重新啟動

----------------------------





=====================================================================

Client 安裝

Windows client
Lab: Windows 7 64 bits
官方文件

下載 Windows agent
解壓縮下載的 zip 檔案
執行 OCS-NG-Windows-Agent-Setup.exe

按照預設值安裝, 重點是 Server URL 指向 OCS Inventory NG 伺服器
8.png

上面的 URL http://主機IP/ocsinventory 也可以先在 client 這邊連線看看
如果出現 Error 500 的錯誤訊息, 代表 xampp\apache\conf\extra\ocsinventory-server.conf 之前設定的密碼是錯誤的, 記得修改好, 然後把 MySQL 以及 Apache 重開.

這邊一個比較奇怪的是, 安裝好之後沒有看到相關資訊
是到 Server 上面執行 IpDiscover 電腦才出現 ( 這個部分還要研究一下 IpDiscover  )

10.png
Notes:

Log 存放路徑
C:\Users\All Users\OCS Inventory NG\Agent\OCSInventory.log

之前就是修改 ocs 密碼, 但是沒有把服務重開, 所以出現相關錯誤訊息
Starting OCS Inventory NG Agent on Wednesday, February 18, 2015 13:05:34.
AGENT => Running OCS Inventory NG Agent Version 2.1.1.1
AGENT => Using OCS Inventory NG FrameWork Version 2.1.1.1
AGENT => Loading plug-in(s)
AGENT => Using network connection with Communication Server
AGENT => Using Communication Provider <OCS Inventory NG cURL Communication Provider> Version <2.1.1.1>
AGENT => Sending Prolog
ERROR *** AGENT => Failed to send Prolog <HTTP Status Code #500>
AGENT => Unloading communication provider
AGENT => Unloading plug-in(s)
AGENT => Execution duration: 00:00:00.



Linux Client
Lab:  openSUSE 13.1

透過 one click install 安裝
來源選 下列版本
home:steffens:lvermg...2.1.1noarch程式碼1 Click Install

設定檔在  /etc/ocsinventory 目錄
# ls  /etc/ocsinventory/
modules.conf  ocsinventory-agent.cfg  softwares

設定Server URL
#vi  /etc/ocsinventory/ocsinventory-agent.cfg
修改設定
# server = 後面接上 OCS Inventory NG 伺服器IP
server = 10.200.1.114
# 我是有註解 local , 看文件, 如果 local 在, 就不會跑 Server 模式
#local = /var/lib/ocsinventory-agent


相關資料在  /var/lib/ocsinventory-agent 目錄下
# ls   /var/lib/ocsinventory-agent/
http:__10.200.1.114_ocsinventory

透過 ocsinventory-agent 指令以及 cron.hourly 來執行更新
# ocsinventory-agent
或是
# ocsinventory-agent  -s  主機IP

另外要確認 firewall 對外是否可以走 port 80 or 443 ?

定時排程
# ls /etc/cron.hourly/
ocsinventory-agent

log 存放在  /var/log/ocsinventory-agent/
# ls  /var/log/ocsinventory-agent/
ocsinventory-agent.log

# crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.qrqSLY installed on Thu Feb 19 12:05:43 2015)
# (Cronie version 4.2)
30 11 * * * /usr/sbin/ocsinventory-agent





Todo:



-------------------------------

openSUSE 13.1 use tar.gz install

#zypper in -y perl-Crypt-SSLeay perl-Net-IP perl-LWP-Protocol-https
#wget -P /root/ https://launchpad.net/ocsinventory-unix-agent/stable-2.0/2.0.5/+download

Older blog entries ->