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.


Wednesday
26 August, 2015


Michael Meeks: 2015-08-26 Wednesday.

21:00 UTCmember

face
  • Early up, team meeting, interview , mail; hacking; wrote up a spec. Sync'd with Niall before his holiday. Plugged away at vile non-rendering menu problem; turns out it is rendered, but we're missing a glFlush - fun, it seems GDI has a similar issue with a GdiFlush() call for similar purposes.

Tuesday
25 August, 2015


face

Detecção de vida  funcionando 100% agora no Browser, o videostream é processado a 30 fps… O vídeo diz tudo!



Michael Meeks: 2015-08-25 Tuesday.

21:00 UTCmember

face
  • Early up, mail chew; hackery. Early meeting. Hacking. Lunch. E. frenetic cycling, fell off her bike but ok. Plugged away at bits of hackery and admin.

face

The openSUSE.Asia Committee is happy to announce the call for papers upcoming second openSUSE.Asia Summit. Starting today, the Committee is looking forward to see your proposals. The committee is looking for speakers from different avenues representing and advocating Free and Open Source Software.

Presentations can be submitted in any of the four formats
secondcall

  • Lightning Talk (10 mins)
  • Short Talk (30 mins)
  • Long Talk (60 mins)
  • Workshop (3 hours)

The openSUSE.Asia committee highly recommends workshops or hands on sessions. Papers can be submitted at the conference website.

Deadlines

Papers can be submitted until 25th of September. The openSUSE.Asia Committee will evaluate the proposals based on the submitted abstracts and available time in the schedule, and, the accepted proposals will be announced on 9th October.


Monday
24 August, 2015


face

Resultado do novo algoritmo de reconhecimento facial que analiza e recorta a imagem no padrão ISO 19794-5 desenvolvido pela equipe CERTIFACE ®, neste vídeo veremos a versão do algoritmo compilado para plataforma de hardware das cameras IP AXIS. Vale a pena ressaltar que utilizamos o modelo M1014 para mostra o potencial do algoritmo em cameras com poder de processamento modesto.



face

Preparations for the openSUSE.Asia Summit are rolling. As we are busy prepping ourselves for this big event, we realized that we need a logo for our very own Summit. Following tradition, we are back with the logo contest. We are looking for a logo which best reflects openSUSE and its community in Asia. The contest is open now and ends on 19 September 2015. We will send a “Geeko Mystery Box” as an appreciation for the best logo designed.

The Rules of the Contest are as follows:

  1. We will accept only SVG format for original design.

  2. Both color and monochrome(black and white) version are required as part of your submission.

  3. The elements of your design should reflect the openSUSE community in Asia.

  4. The logo should avoid the following things:

      • No brand names or trademarks of any kind.

      • No illustrations that may consider inappropriate, offensive, hateful, tortuous, defamatory, slanderous or libelous.

      • No sexually explicit or provocative images.

      • No images of weapons or violence.

      • No alcohol, tobacco, or drug use imagery.

      • No designs which promotes bigotry, racism, hatred or harm against groups or individuals; or promotes discrimination based on race, gender, religion, nationality, disability, sexual orientation or age.

      • No religious, political, or nationalist imagery.

  5. The logo should comply with “openSUSE Project Trademark Guidelines” published at: https://en.opensuse.org/File:OpenSUSE_Trademark_Guidelines.pdf

  6. You should also agree that the openSUSE community have right to interpret the usage of the artwork.

  7. All your artwork will be licensed under CC-BY-SA 3.0.

The following links can be useful to you:

Please send your design to opensuse.asia@gmail.com with the following entries:

  1. Vector file of the design in attachment, with svg format ONLY.

  2. Bitmap of design in attachment – image size: 256*256px at least. Format: png or jpg. Less than 512KB.

  3. Your name.

  4. Where are you working/studying now. (optional)

  5. Your phone number. (optional)

After that, the openSUSE.Asia Summit Committee will decide on the logos, subject to the condition, that the logo meets all the requirements. The final decision will be made by openSUSE.Asia Summit Committee and it may not be the highest scored design. We recommend the artist to use Inkscape, a powerful, free and open source vector graphics tool for all kinds of design.

Note: The article has been updated after discussion with openSUSE.Asia team regarding entry rules.


Michael Meeks: 2015-08-24 Monday.

21:00 UTCmember

face
  • Up early, team meetings & 1:1's much of the day; mail chew, hacked on polishing up the software watchdog thread for busted OpenGL drivers that hang. Lunch. Really enjoying the CI infra. and it's ability to catch my stupid mistakes.
  • Chat with Philippe, more fixing, built ESC bug stats.

face

Many things can be modelled as finite state machines. Particularly things where you’d naturally use “state” in the name e.g. the current state of an order, or delivery status. We often model these as enums.

enum OrderStatus {
    Pending,
    CheckingOut,
    Purchased,
    Shipped,
    Cancelled,
    Delivered,
    Failed,
    Refunded
}

Enums are great for restricting our order status to only valid states. However, usually there are only certain transitions that are valid. We can’t go from Delivered to Failed. Nor would we go straight from Pending to Delivered. Maybe we can transition from Purchased to either Shipped or Cancelled.

Using enum values we cannot restrict to the transitions to only those that we desire. It would be nice to also let the compiler help us out by not letting us choose invalid transitions in our code.

We can, however, achieve this if we use a class hierarchy to represent our states instead, and it can still be fairly concise. There are other reasons for using regular classes, they allow us to store and even capture state from the surrounding context.

Here’s a way we could model the above enum as a class heirarchy with the valid transitions.

interface OrderStatus extends State<OrderStatus> {}
static class Pending     implements OrderStatus, BiTransitionTo<CheckingOut, Cancelled> {}
static class CheckingOut implements OrderStatus, BiTransitionTo<Purchased, Cancelled> {}
static class Purchased   implements OrderStatus, BiTransitionTo<Shipped, Failed> {}
static class Shipped     implements OrderStatus, BiTransitionTo<Refunded, Delivered> {}
static class Delivered   implements OrderStatus, TransitionTo<Refunded> {}
static class Cancelled   implements OrderStatus {}
static class Failed      implements OrderStatus {}
static class Refunded    implements OrderStatus {}

We’ve declared an OrderStatus interface and then created implementations of OrderStatus for each valid state. We’ve then encoded the valid transitions as other interface implementations. There’s a TransitionTo<State> and BiTransitionTo<State1,State2>, or TriTransitionTo<State1,State2,State3> depending on the number of valid transitions from that state. We need differently named interfaces for different numbers of transitions because Java doesn’t support variance on the number of generic type parameters.

Compile-time checking valid transitions

Now we can create the TransitionTo/BiTransitionTo interfaces, which can give us the functionality to transition to a new state (but only if it is valid)

We might imagine an api like this where we can choose which state to transition to

new Pending()
    .transitionTo(CheckingOut.class)
    .transitionTo(Purchased.class)
    .transitionTo(Refunded.class) // <-- can we make this line fail to compile?

This turns out to be a little tricky, but not impossible, due to type erasure.

Let’s try to implement BiTransitionTo interface with the two valid transition.

public interface BiTransitionTo<T, U> {
    default T transitionTo(Class<T> type) { ... }
    default U transitionTo(Class<U> type) { ... }
}

Both of these transitionTo methods have the same erasure. So we can’t do it quite like this. However, if we can encourage the consumer of our API to pass a lambda, there is a way to work around this same erasure problem.

So how about this API, where instead of passing class literals we pass constructor references. It looks similarly clean


Sunday
23 August, 2015


Michael Meeks: 2015-08-23 Sunday.

21:00 UTCmember

face
  • NCC, family church, Tony spoke; caught up with the other Tony & Anne. Back for lunch, quartet practice in the garden - suprisingly good after a big gap. David & Allison over for the afternoon - good to see them. Bed earlyish.

Saturday
22 August, 2015


face

Neste link da syncfusion  https://www.syncfusion.com/resources/techportal/ebooks podemos baixar mais de 70 livros gratuitamente no formato PDF e kindle. Aproveitem todos que me interessa ja estão no meu tablet.

ebook



Michael Meeks: 2015-08-22 Saturday.

21:00 UTCmember

face
  • Up earlyish; bid 'bye to Leanne, and off to Bruce & Annes. Tackled a bug in the car while J. drove - a 'VclPtr' bug turned out to pre-date LibreOffice 4.2 - good to stimulate more bug-hunting in lots of areas.
  • Tried to hunt down how to return a phone found on the beach to it's owner; called EE. to help out: "take it to a shop". Lunch. Out to the beach ourselves near the Aldeburgh shell. Lots of lying on the beach with Sue, Clive, B & A.
  • Back for some tea; hacked on another couple of issues on the way home, one real, one non-reproducible. Mail chew.

face

Am 18. + 19. September 2015 (Freitag + Samstag) findet in Kiel die 13. Kieler Open Source und Linux Tage statt. Der Eintritt ist frei. Diesmal ist openSUSE zum ersten Mal in Kiel dabei und erobert nun Schleswig-Holstein – das Land der Horizonte bzw. der echte Norden. Dem Besucher werden interessante Ausstellungen und ein umfangreiches Programm an Vorträgen wie auch Workshops angeboten. Es finden wieder LPI-Prüfungen (Linux Essentials, LPIC-1, LPIC-2, LPIC 3, Univention UVCP) statt.

Am openSUSE-Stand kann jeder Besucher die openSUSE-Distribution einmal Live ausprobieren und sich vom openSUSE-Team beraten lassen. Außerdem werde ich einen Vortrag zu „openSUSE für den täglichen Einsatz“ halten und richtet sich an Linux-Einsteiger oder Umsteiger. Danach werde ich ein Workshop „openSUSE Installationsparty“ leiten, in dem man unter Anleitung openSUSE direkt auf dem eigenen Notebook installiert und bekommt auch ein paar Tipps und Tricks im Umgang mit openSUSE oben drauf. openSUSE-Installationsmedien (USB-Sticks / DVDs) werden kostenfrei zur Verfügung gestellt und können mitgenommen werden. Wer am Workshop teilnehmen möchte, sollte sich besser mit der Anmeldung beeilen. Da nur maximal 10 Plätze reserviert werden können.

Folgende Aussteller sind vor Ort (alphabetisch):

Quelle: Aussteller auf den Kieler Linuxtagen

Ein Auszug aus dem Programm:

  • Das Internet Spiel (Sven Guckes / Beschreibung)
  • Work-Life-Revenue Balance als OSS Unternehmen (Felix Kronlage / Beschreibung)
  • Reds.io – ein Framework für mehr Privatsphäre in der Cloud (Torben Haase / Beschreibung)
  • So fern und doch so nah, nutzen der priv. Cloud mittels SSH (Marek Walther / Beschreibung)
  • Effiziente Lösungsstrategien für IT-Probleme (Hauke Goos-Habermann / Beschreibung)
  • Der Mailer Mutt (Sven Guckes / Beschreibung)
  • Einfach und sicher: OpenVPN mit 2 Faktor Authentisierung auf UCS (Felix Kronlage / Beschreibung)
  • 3D-Druck Verfahren und ihre Vor- und Nachteile (Jan-Tarek Butt / Beschreibung)
  • Die eigene Cloud mit Seafile (Marek Walther / Beschreibung)
  • openSUSE für den täglichen Einsatz (Sebastian Siebert / Beschreibung)
  • invis-Server AD – Small Business für kleine Unternehmen (Stefan Schäfer / Beschreibung)
  • Flexibles Storage-Management unter Linux mit openATTIC (Lenz Grimmer / Beschreibung)
  • Rust – Einstieg in eine neue Programmiersprache (Felix Kronlage / Beschreibung)
  • Zentrales Log-Management mit Graylog (Bernd Ahlers / Beschreibung)
  • Freifunk 2015 (Freifunk Community Kiel / Beschreibung)
  • 1.000.000 Gründe, Linux zu benutzen (Monika Eggers / Beschreibung)
  • Ubuntu in Touch (Torsten Franz / Beschreibung)
  • FreeYourAndroid – Freie Software auf Android-Geräten (Dominic Hopf / Beschreibung)
  • 3D-Scan und Virtualisierungsverfahren (Jan-Tarek Butt / Beschreibung)
  • Fortschritt, Pfusch und Betrug – Bemerkung zu IT-Themen (Uwe Grigat / Beschreibung)

Quelle: Programm der Kieler Open Source und Linux Tage 2015

Ein Auszug der angebotenen Workshops:

  • Puppet, aller Anfang ist leicht! (Tim Schmeling / Beschreibung)
  • Inkscape für Fortgeschrittene 2015 (Samuel Albrecht / Beschreibung)
  • Das eigene Zwei-Faktor-System mit privacyIDEA (Cornelius Kölbel / Beschreibung)
  • Mutt+GPG (Sven Guckes / Beschreibung)
  • Web-Security Workshop (Timo Pagel / Beschreibung)
  • IT-Probleme selber lösen (Hauke Goos-Habermann / Beschreibung)
  • openSUSE Installationsparty – Workshop (Sebastian Siebert / Beschreibung)
  • Fotos bearbeiten

face

TumbleweedThis week Tumbleweed posted two snapshots in spite of the fact many developers with families had been on holidays before school begins.

In those two snapshots, there were changes to  PyQt4 and an upgrade to a newer Kernel.

Tumbleweed

No major versions were upgraded in the 20150819 Tumbleweed snapshot, but TW did update to Linux Kernel 4.1.5.

The 20150815 snapshot there were bug-fixes in PyQt4 for 4.11.4., 4.11.3 and 4.11.2. Added support was also applied for Qt v4.8.6 and there were several other updates.

FrOSCon

This weekend, we are at the Free and Open Source Software Conference at the University of Applied Sciences Bonn-Rhein-Sieg. Jon “Maddog” Hall, chairman of the non profit Linux International and co-founder of the open source initiative, gives a Keynote speech titled “Beginning of the End or End of the Beginning?

There are tons of development workshops at this event, so if you have never been to FrOSCon, we highly recommend you come or plan to attend one in the future.

Landing Page

The landing page is momentarily delayed and should be finished soon. There are still a few more things that need to be changed and feedback from the community has been helpful. The graphics increase the temperature of computers and use more than normal levels of RAM, so some slight adjustments need to be made before the new page is published.

Leap

On the Factory Mailing List, a discussion about new default fonts for Leap began and is moving along constructively.

One of the bigger discussions taking place about Leap is reviewing packages. Anyone who is able to review packages and wants to help can get involved with the review team. An option may be built into the Open Build Service to help streamline the process of the review team, which will send packages for review to a reviewers who specialize in a certain area. The details aren’t clear just yet, but expect to hear more about this in the future.

Asia Summit

Two days ago we found out that the second openSUSE Asia Summit will take place in at the National Taipei University of Education in Taiwan from Dec. 5 to 6. With Taipei 101 in the background of this summit, it is certain to be stellar. If you’re in Asia or the Pacific, come to the summit and see how you can contribute to the openSUSE project!


Friday
21 August, 2015


Michael Meeks: 2015-08-21 Friday.

21:00 UTCmember

face
  • Up rather early, hacked away at this and that; positive partner call. Chewed through mail, admin & bugs.

Benjamin Weber: HTML in Java

12:09 UTCmember

face

Another use of lambda parameter reflection could be to write html inline in Java. It allows us to create builders like this, in Java, where we’d previously have to use a language like Kotlin and a library like Kara.

String doc =
    html(
        head(
            meta(charset -> "utf-8"),
            link(rel->stylesheet, type->css, href->"/my.css"),
            script(type->javascript, src -> "/some.js")
        ),
        body(
            h1("Hello World", style->"font-size:200%;"),
            article(
                p("Here is an interesting paragraph"),
                p(
                    "And another",
                    small("small")
                ),
                ul(
                    li("An"),
                    li("unordered"),
                    li("list")
                )
            )
        )
    ).asString();

Which generates html like

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 
<html>
  <head>
    <meta name="generator" content=
    "HTML Tidy for Java (vers. 2009-12-01), see jtidy.sourceforge.net">
<meta charset="utf-8"><script type="text/javascript" src=
"/some.js">
</script>
 
    <title></title>
  </head>
 
  <body>
    <h1>Hello World</h1>
 
    <p>Here is an interesting paragraph</p>
 
    <p>And another<small>small</small></p>
 
    <ul>
      <li>An</li>
 
      <li>unordered</li>
 
      <li>list</li>
    </ul>
  </body>
</html>

Code Generation

Why would you do this? Well we could do code generation. e.g. we can programmatically generate paragraphs.

body(
    asList("one","two","three")
        .stream()
        .map(number -> "Paragraph " + number)
        .map(content -> p(content))
)

Help from the Type System

We can also use the Java type system to help us write valid code.

It will be a compile time error to specify an invalid attribute for link rel.

It’s a compile time error to omit a mandatory tag

It’s also a compile time error to have a body tag inside a p tag, because body is not phrasing content.

We can also ensure that image sizes are in pixels

Safety

We can also help reduce injection attacks when inserting content from users into our markup, by having the DSL html-encoding any content passed in.

e.g.

assertEquals(
    "<p>&lt;script src=&quot;attack.js&quot;&gt;&lt;/script&gt;</p>", 
    p("<script src=\"attack.js\"></script>").asString()
);

How does it work?

See this previous blogpost that shows how to get lambda parameter names with reflection. This allows us to specify the key value pairs for html attributes quite cleanly.

I’ve created an Attribute type that converts a lambda to a html attribute.

public interface Attribute<T> extends NamedValue<T> {
    default String asString() {
        return name() + "=\"" + value()+"\"";
    }
}

For the tags themselves we declare an interface per tag, with a heirarchy to allow certain tags in certain contexts. For example Small is PhrasingContent and can be inside a P tag.

public interface Small extends PhrasingContent {
    default Small small(String content) {
        return () -> tag("small", content);
    }
}

To make it easy to have all the tag names available in the context without having to static import lots of things, we can create a “mixin” interface that combines all the tags.

public interface HtmlDsl extends
        Html,
        Head,
        Body,
        Link,
        Meta,
        P,
        Script,
        H1,
        Li,
        Ul,
        Article,
        Small,
        Img
        ...

Then where we want to write html we just make our class implement HtmlDsl (Or we could staticly import the methods instead.

We


Thursday
20 August, 2015


face

We are happy to announce the second openSUSE.Asia Summit following a glorious successful first edition. The conference will take place in Taiwan at National Taipei University of Education, Taiwan on December 5th and 6th, 2015.

The summit is a great way for both openSUSE contributors, and, users to meet each other and have fun. The openSUSE community will get together, share their experiences, and, learn free and open source technologies.
geeko_tail
The goals of the Summit are

1. To promote openSUSE, its tools, and, other free open source software in Asia.
2. To introduce people to the openSUSE Project, through a series of talks, discussions and workshops.
3. To show prospective contributors, different various ways of contributing to the openSUSE Project and provide a platform for them to engage with contributors and find different avenues in the project that match their interests.

Normally, the openSUSE contributors and users communicated with each other online, thus it is a great opportunity to meet and talk face to face.  In addition, we have chance to learn free and open technologies, to share experiences with each other, and most of all, have fun at the Summit, and, in Taipei city.

Stay tuned!!!!


Michael Meeks: 2015-08-20 Thursday.

21:00 UTCmember

face
  • Mail chew; most pleased to notice a disabled person opposite get into their (ordinary looking) car and with a remote-control raise a roof-box through 90 degrees across the side of the car, from which a tether came, which then hoisted their wheel-chair inside, closed the flap for that, and then returned the box to the horizontal (while they drove off) - amazingly good.
  • ESC call; hacked away at some code to disable OpenGL if we get a crash inside a block of OpenGL code.

Wednesday
19 August, 2015


Michael Meeks: 2015-08-19 Wednesday.

21:00 UTCmember

face
  • A day of phone calls , all positive, and E-mail, likewise.

face
It was simple: netneutrality is good. Companies shouldn't be able to buy their way on a fast lane! That stifles innovation and competition and risks ruining the internet. Just like John Oliver explained it! But now the Brazilians are making things complicated.

Brazil was one of the first countries to introduce strong Net Neutrality laws, points for them. But now, Brazilian banks and local government are paying for the data bundles of users! Heresy! Why?

Well, many Brazilians can't afford a data bundle. Yet they need to bank, or order new passports. And it turns out that handling people in person at the office is more expensive for the banks and local governments than have them use an app on their phone. So, they made a deal with some local providers: users, even without a data bundle, can do their banking online and order their passports without paying. That seems like a win-win.

Zero rating, as this practice is called, exempts some services from from the data bundle - exactly what Brasil is doing. It is used widely in India ("internet.org") and in Chile it offered many people access to a limited set of internet services - until it was outlawed. But in a country where only a quarter of the citizens has access to broadband internet, aren't we doing the population a disservice by taking away their internet access, however limited?

Zero rating is essentially the equivalent of a collect call - the receiver pays. What is wrong with that? Even wikimedia supports zero rating!

It isn't win-win but lose-it-all

The thing is - the provider will be the gate keeper of what services you can. You are allowed only on a piece of the internet, being blocked not by technical boundaries but by a business model. A model which allows providers to extract more money from their business than they otherwise would have - not by offering more services, but by offering less.

The result will inevitably be lower data caps because it forces more companies to pay for zero rating! This is exactly what happens in Canada, where $45 gets you 2GB of data - compare that to the price of 8 dollars for the same amount in Finland. Canada is now changing the rules. Cable providers have figured that out, too, and try imposing limits while excepting certain services. And indeed, when providers introduce zero rating, prices go up!


Interestingly, when zero-rating is squashed, the opposite happens. When the government forbade zero rating in the Netherlands, its largest provider KPN responded by doubling their users' data caps without a price hike.

Thus, my suggestion to the Brazil government would be: work with providers to get indiscriminate data bundles to more users, rather than empowering providers to control their users' Internet usage.


Zero rating exist by virtue of artificial Internet scarcity in the form of usage caps and it is not part of the solution to bringing Internet access to everybody. It is part of the problem.

Tuesday
18 August, 2015


Michael Meeks: 2015-08-18 Tuesday.

21:00 UTCmember

face
  • More mail chew, project review, bit of hackery on LOK pre-initialization. Thrilled to see Caolan's result of filter testing with a more comprehensive set of files: 0 import failures, 0 export failures, 0 coverity warnings built ESC bug stats.

face

¿Quieres conocer las noticias y eventos de la Fundación de Software Libre? Entonces sigue leyendo

La Fundación para el Software Libre o Free Software Foundation (FSF) es una organización creada en Octubre de 1985 por Richard Stallman y otros entusiastas del software libre con el propósito de difundir este movimiento.

La Fundación para el software libre (FSF) se dedica a eliminar las restricciones sobre la copia, redistribución, entendimiento, y modificación de programas de computadoras. Con este objeto, promociona el desarrollo y uso del software libre en todas las áreas de la computación, pero muy particularmente, ayudando a desarrollar el sistema operativo GNU.

Además de tratar de difundir la filosofía del software libre, y de crear licencias que permitan la difusión de obras y conservando los derechos de autorías, también llevan a cabo diversas campañas de concienciación y para proteger derechos de los usuarios frentes a aquellos que quieren poner restricciones abusivas en cuestiones tecnológicas.

Mensualmente publican un boletín (supporter) con noticias relacionadas con sus campañas, o eventos. Una forma de difundir sus proyectos, para que la gente conozca los hechos, se haga su propia opinión, y tomen partido si creen que la reivindicación es justa!!

El trabajo de traducción del boletín inglés fue realizado por Esteban Mesa, y un servidor de Uds. Realizando labores de recopilación, traducción, y revisión.

 no_privacy_without_free_software

Puedes ver todos los números publicados en este enlace: http://www.fsf.org/free-software-supporter/free-software-supporter

Por cierto, este año se celebran los 30 años de existencia de la FSF. Puedes informarte más sobre este evento que se celebrará este otoño en este enlace:

Quizás es un buen momento para mostrar tu apoyo, donando o ayudando de alguna manera a que la FSF siga otros 30 años defendiendo la libertad del software y de los usuarios que lo usan.

Aqui te traigo un extracto de algunas de las noticias que ha destacado la FSF este mes de agosto de 2015:

.- Estás invitado/a: fiesta del 30 cumpleaños y mini-conferencia

del 23 de julio

Como ya sabrás, este es el trigésimo año de la Free Software Foundation luchando por la libertad de los usuarios de computadoras. Ya ha sido un gran año, con nuestra mayor conferencia de LibrePlanet hasta la fecha y un artículo sobre GNU en el diario New Yorker. Pero, ¿qué es un cumpleaños sin una fiesta?, únete a la Free Software Foundation y amigos en Boston, MA, EEUU, en la tarde del sábado 3 de octubre para nuestra fiesta del 30 cumpleaños.
Compartiremos entremeses, bebidas y un discurso del fundador

face

This was supposed to be survival guide to open source and free software world but I realized I’m not that good citizen of open source world that I can give any advises to others. What I’m giving are hint’s what I have learn along the years. So why I’m not very good open source citizen? I read several projects mail lists but only topics that I like and make contributions but not with rage but when I feel like it. I answer few mails that I receive about open source in limited time frame that I have (which sometimes can be too long) and use many projects with out giving anything back. I prefer license to steal and freedom as value not as in beer.

What is license for?

Wear your tin-hats and make securing spells because here we go. In modern world everything is for sale and everything you can image will be stolen and in-incorporated in nuclear bomb or used in mass destruction of human beings. This ain’t new feature in human society. For example fire have been probably one man thing for long time (and I can just imagine how many jokes you can make about that poor fellow and that even poorer soul that first roasted something) after a while it widespread all over the world and same goes with wheel. They were invented somewhere and someone took them in use without giving a dime to the inventor. Is it fair? No it’s not. Bit harsh and unfair to this original guy but again this is how ball is played.

What this is related to licensing and what is the big deal of open source and free software anyway if this the Status Quo? What are the licenses for? Believe or not they are important agreements! It’s not secret that most of the Github repositories are still without proper license. That is why they launch: http://choosealicense.com/. Take time and study a bit or if you don’t have a time I’ll tell how I see things.

Free software

There is Free Software movement which is constructed around GNU project and FSF (Free Software Foundation). Most significant person in Free software is Richard Stallman (Yes that hansom guy with a beard) . If you want more history please read it from FSF site they know it more better than me. Main principals in Free software are Freedom, Freedom to share and make sure that everyone else have that freedom also.

Free Software licenses are commonly known as Copyleft licenses and most know is Gnu Public license (Actually version 3.0 ain’t that popular). All these licenses share a same thing. You will always have 4 freedoms:

  • Freedom 0 – the freedom to use the work
  • Freedom 1 – the freedom to study the work
  • Freedom 2 – the freedom to copy and share the work with others
  • Freedom 3 – the freedom to modify the work, and the freedom to distribute

Monday
17 August, 2015


Michael Meeks: 2015-08-17 Monday.

21:00 UTCmember

face
  • E-mail reading - a big backlog to wade through. Sync with Andras. Team calls, caught up with progress left & right. Leanne over in the afternoon to stay.

face

Estas son las fechas en las que se lanzarán las diferentes versiones de prueba de openSUSE Leap 42.1

42

Aqui tienes las fechas de lanzamiento de las distintas milestones, y versiones de openSUSE Leap previas al lanzamiento final.

Ahora que ya sabes cuantos días faltan hasta el esperado lanzamiento final de openSUSE Leap, además puedes estar pendiente de estas fechas, para descargar las diferentes ISO’s que se vayan liberando, y probarlas en tu máquina.

El calendario ya oficial de lanzamientos es el siguiente:

  • 2015-07.24: 42.1 Milestone 1 – Publicada
  • 2015-09.04: 42.1 Milestone 2
  • 2015-09.24: 42.1 Beta
  • 2015-10.15: 42.1 RC1
  • 2015-10.30: 42.1 Gold Master
  • 2015-11.04: 42.1 Publicación / General Availability

Como siempre esas versiones de pruebas las podrás descargar desde la página oficial de openSUSE, en este enlace:

La información está extraida de la wiki de openSUSE, donde voluntarios (jcsl sí, va por ti) han hecho un gran trabajo, y siguen haciéndolo, de manera desinteresada y quizás poco conocida. Pero sin duda una labor importante!!

Estate atento a los lanzamientos, y prueba la renovada openSUSE Leap, con un corazón de SUSE en su interior… y have a lot of fun!!

———————————————



face

Na komunitnej wiki stránke openSUSE:Roadmap (https://en.opensuse.org/Roadmap) je už k dispozícii plán pre pripravované vydanie openSUSE Leap 42.1. Plánované míľniky vydania sú:

  • 24. 7. 2015: Milestone 1
  • 4. 9. 2015: Milestone 2
  • 24. 9. 2015: Beta
  • 15. 10. 2015: Release Candidate 1
  • 30. 10. 2015: Gold Master
  • 4. 11. 2015: Release / General Availability

Míľnik Milestone 1 bol už medzičasom zrealizovaný. ISO obraz pre sieťovú inštaláciu a obraz inštalačného DVD, ktoré boli vydané v rámci tohto míľnika, sú k dispozícii na http://download.opensuse.org/distribution/leap/42.1-Milestone1/iso.
Leap 42.1 sa prepája so SUSE Linux Enterprise 12 Service Pack 1, ktorý bol nedávno vydaný ako Beta. Zdrojový kód zo SP1 bude zahrnutý v Milestone 2 a Leap a SLE budú týmto zdieľať spoločné jadro systému. Podľa odporučenia manažéra vydania Stephana “Coolo” Kulowa, by si mal Milestone 2 vyskúšať každý.
Do 20. 9. musia byť známe všetky balíky a ich verzie, ktoré má nové vydanie obsahovať. Taktiež dovtedy musí byť ukončený vývoj a práce na grafickej časti vydania.
Míľnik Beta bude znamenať zmrazenie verzií. Ďalej už budú dovolené iba dôležité, kritické a blokujúce opravy chýb.

leap_roadmap_small.png
1. 10. je dátum na poslednú možnú zmenu balíkov kvôli licencii a právnym predpisom.
Míľnik RC1 je plánovaný na 15. 10. a tzv. zlatá vzorka Gold Master na 30. 10., takže preklady, poznámky k vydaniu a lokalizácia vydania by mali byť hotové do 30. 10..
Oficiálne vydanie openSUSE Leap 42.1 je plánované 4. 11. 2015 počas konferencie SUSECon v Amsterdame.
1suse.png
Pre tých, ktorí radi testujú, je na http://download.opensuse.org/distribution/leap/42.1-Current/iso určený denne zostavovaný obraz inštalačného DVD a obraz sieťovej inštalácie. Jedná sa však už len o 64 bitovú platformu.
Ferdinand Galko
Použité informačné zdroje:
https://news.opensuse.org/2015/08/11/second-milestone-expected-soon
https://news.opensuse.org/2015/08/13/the-weekly-review-libreoffice-5-in-tumbleweed-leap-trends-landing-page-almost-ready
Děkujeme našemu slovenskému redaktorovi za další skvělý článek.


face

openSUSE Leap 42.1 será lanzada a principios de noviembre, pero exactamente ¿cuantos días quedan hasta esa fecha?

Como siempre el contador de openSUSE marca la fecha de los días que quedan para que la nueva versión estable este disponible, openSUSE Leap 42.1.

El contador se renueva, y se adapta a los nuevos colores del branding ¿os gusta? Bueno, pues en esta ocasión he decir que es mío el diseño.

Hice un “fork” del repositorio en GitHub: https://github.com/openSUSE/countdown.o.o

Estuve haciendo varias pruebas y finalmente me gustó la que envié. Quería algo sencillo, ya que es difícil cuadrar la imagen de fondo, con los distintos textos que se muestran.

Ya que un script es el que cambia los textos que se muestran y se hace en distintos idiomas, dependiendo de dónde sea el visitante que accede a la página.

Como siempre están disponibles en varios tamaños:

  • Wide de 600×100
  • Large de 400×400
  • Medium de 256×256
  • Small de 130×130

Todas estas imágenes están disponibles desde este enlace:

Simplemente escoge la que quieres y ponla en tu web, blog, foro o lo que quieras, no digas que no mola!! ;)

————————————————-



face


We've seen the first tutorial how to install MATE on openSUSE 13.2. Then the second one about install MATE using NET installation.

Although there's a pattern to install, you can install it using the following script, so it'll place the Display Manager as well. Next release, I guess it'll be as option during installation on DVD (or NET Install).

1. Perform the installation as described here from 1-12.

2. Open your terminal and download the script mate.sh

wget -O mate.sh http://goo.gl/XboEoG

3. Make the file mate.sh, executable.

chmod +x mate.sh

4. Run mate.sh

./mate.sh

Answer y (yes) to every question.

Here what's inside this script.

1. Install the necessary programs.

sudo zypper in gnome-main-menu mate-backgrounds mate-control-center mate-dialogs caja mate-icon-theme mate-notification-daemon mate-polkit marco mate-session-manager mate-settings-daemon mate-desktop mate-panel caja-image-converter caja-open-terminal caja-sendto caja-share dconf-editor mate-dictionary mate-disk-usage-analyzer mate-icon-theme-faenza mate-netspeed mate-screenshot mate-search-tool mate-sensors-applet mate-system-log mate-user-share mozo python-caja atril engrampa eom gucharmap mate-applets mate-calc mate-power-manager mate-media mate-screensaver mate-system-monitor mate-terminal mate-themes mate-menus atril-caja caja-engrampa marco-themes mate-common mate-icon-theme-faenza-dark mate-icon-theme-faenza-gray mate-indicator-applet patterns-openSUSE-mate_basis pluma lightdm git

2. It'll delete the /etc/sysconfigdisplaymanager. It will download from my git, my working displaymanager (lightdm as default).

git clone https://github.com/iosifidis/13.2.git

Will copy the file to /etc/sysconfig

3. After that, it'll delete all downloaded files.

4. Reboot. If everything was OK, then you'll see the following screen. Change session to MATE and you're all set.

Login Screen

face

Иногда, когда ядро Linux испытывает проблемы, одними из способов сбора отладочной информации являются консоль последовательного порта или сетевая консоль. Сразу обратим внимание, что второй вариант имеет как недостатки, например, предполагает, что сетевая подсистема ядра остается функциональной во время возникновения проблем, так и преимущества, например, можно сконфигурировать удаленно.

Полное описание сетевой консоли находится в документации ядра. Для настройки достаточно добавить в modprobe.d/99-local.conf:

options netconsole netconsole=@/,514@192.168.10.7/00:0C:29:F3:92:97
Здесь, 514 - номер UDP порта, 192.168.10.7 - IP удаленного хоста куда будет отсылаться информация, 00:0C:29:F3:92:97 - его MAC адрес, если его не указать явно то будет использоваться широковещательный адрес FF:FF:FF:FF:FF:FF, что может затруднить передачу информации в зависимости от настроек сетевого оборудования.
И загрузить модуль netconsole или, по желанию, поставить его на автозагрузку при старте системы.

После загрузки модуля netconsole, сетевая консоль начинает немедленно функционировать, а в системном журнале можно увидеть примерно следующее:
May  1 18:57:51 192.168.10.4 kernel: [162255.522603] netconsole: local port 6665
May 1 18:57:51 192.168.10.4 kernel: [162255.522673] netconsole: local IP 0.0.0.0
May 1 18:57:51 192.168.10.4 kernel: [162255.522710] netconsole: interface eth0
May 1 18:57:51 192.168.10.4 kernel: [162255.522746] netconsole: remote port 514
May 1 18:57:51 192.168.10.4 kernel: [162255.522784] netconsole: remote IP 192.168.10.7
May 1 18:57:51 192.168.10.4 kernel: [162255.522826] netconsole: remote ethernet address 00:0c:29:f3:92:97
May 1 18:57:51 192.168.10.4 kernel: [162255.522881] netconsole: local IP 192.168.10.4
May 1 18:57:51 192.168.10.4 kernel: [162255.523032] console [netcon0] enabled
May 1 18:57:51 192.168.10.4 kernel: [162255.523349] netconsole: network logging started

Данные приходят в самом простом текстовом виде и их можно читать самым простым способом:
netcat -u -l 514
Если у нас в наличии есть syslog-ng — можно использовать его следующим образом:
source s_remote_udp {
network(transport("udp") ip(0.0.0.0) port(514));
};
filter f_remote_remhost {
netmask(192.168.10.4);
};
destination d_remote_remhost {
file("/var/log/remote/remhost.log");
};
log {
source(s_remote_udp);
filter(f_remote_remhost);
destination(d_remote_remhost);
};

Проверить, что всё работает можно следующим образом:
echo '<7>Hello world!' > /dev/kmsg
dmesg -n 8
Сообщение должно появиться в журнале и быть передано по сети на удаленный хост.

face

Java 8 introduced a compiler flag -parameters, which makes method parameter names available at runtime with reflection. Up to now, this has not worked with lambda parameter names. However, Java 8u60 now has a fix for this bug back-ported which makes it possible.

Some uses that spring to mind (and work as of recent 8u60ea build) are doing things like hash literals

Map<String, String> hash = hash(
    hello -> "world",
    bob   -> bob,
    bill  -> "was here"
);
 
assertEquals("world",    hash.get("hello"));
assertEquals("bob",      hash.get("bob"));
assertEquals("was here", hash.get("bill"));

Or just another tool for creating DSLs in Java itself. For example, look how close to puppet’s DSL we can get now.

static class Apache extends PuppetClass {{
    file(
        name -> "/etc/httpd/httpd.conf",
        source -> template("httpd.tpl"),
        owner -> root,
        group -> root
    );
 
    cron (
        name -> "logrotate",
        command -> "/usr/sbin/logrotate",
        user -> root,
        hour -> "2",
        minute -> "*/10"
    );
}}

Doing

System.out.println(new Apache().toString());

Would print

class Apache {
 
	file{
		name	=> "/etc/httpd/httpd.conf",
		source	=> template(httpd.tpl),
		owner	=> root,
		group	=> root,
	}
	cron{
		name	=> "logrotate",
		command	=> "/usr/sbin/logrotate",
		user	=> root,
		hour	=> "2",
		minute	=> "*/10",
	}
 
}

The code examples for the hash literal example and the puppet example are on Github.

They work by making use of a functional interface that extends Serializable. This makes it possible to get access to a SerializedLambda instance, which then gives us access to the synthetic method generated for the lambda. We can then use the standard reflection API to get the parameter names.

Here’s a utility MethodFinder interface that we can extend our functional interfaces from that makes it easier.

public interface MethodFinder extends Serializable {
    default SerializedLambda serialized() {
        try {
            Method replaceMethod = getClass().getDeclaredMethod("writeReplace");
            replaceMethod.setAccessible(true);
            return (SerializedLambda) replaceMethod.invoke(this);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
 
    default Class<?> getContainingClass() {
        try {
            String className = serialized().getImplClass().replaceAll("/", ".");
            return Class.forName(className);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
 
    default Method method() {
        SerializedLambda lambda = serialized();
        Class<?> containingClass = getContainingClass();
        return asList(containingClass.getDeclaredMethods())
                .stream()
                .filter(method -> Objects.equals(method.getName(), lambda.getImplMethodName()))
                .findFirst()
                .orElseThrow(UnableToGuessMethodException::new);
    }
 
    default Parameter parameter(int n) {
        return method().getParameters()[n];
    }
 
    class UnableToGuessMethodException extends RuntimeException {}
}

Given the above, we can create a NamedValue type that allows a lambda to represent a mapping from a String to a value.

public interface NamedValue<T> extends MethodFinder, Function<String, T> {
    default String name() {
        checkParametersEnabled();
        return parameter(0).getName();
    }
    default void checkParametersEnabled() {
        if (Objects.equals("arg0", parameter(0).getName())) {
            throw new IllegalStateException("You need to compile with javac -parameters for parameter reflection to work; You also need java 8u60 or newer to use it with lambdas");
        }
    }
 
    default T value() {
        return apply(name());
    }
}

Then we can simply ask our lambda for the name and value.

NamedValue<Integer> pair = five -> 5;
assertEquals("five", pair.name());
assertEquals(5, pair.value());

See also HTML in Java for another example use of this.

I imagine there are more uses too, any ideas?


Thursday
13 August, 2015


face

Si esto de GNU/Linux y en especial openSUSE te suena a chino…

Entonces este es el foro donde encontrarás las respuestas que necesitas!!

openSUSE_chino

Click sobre la imagen para ampliar

 

Have a lot of fun!!! ;)

————————————————————————————


<- Current blog entries