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.


Thursday
31 July, 2014


face

After GNOME 2.x passed the torch to GNOME 3, a lot of people started to wonder what is the perfect graphical user interface for them. Many users moved to Xfce, since it offers kind of a similar user experience to the late GNOME 2.x. But for those  still fond of the GNOME 2.x environment, there is a fork of GNOME 2 available, and it’s called MATE Desktop Environment.

mate-version

The MATE Desktop Environment fork of GNOME2 was started by an Arch Linux user named perberos (you can read his forum announcement here). The project started by mostly maintaining GNOME 2 packages. Many developers joined the project later on, so MATE Desktop Environment caught on quite successfully, improving vastly in the years past. There are also plans afoot to move to GTK3, wayland etc.

Applications

Do you remember the native GNOME applications? MATE Desktop developers renamed them. Here is the list:

  • Alacarte is renamed Mozo.
  • Nautilus is renamed Caja.
  • Metacity is renamed Marco.
  • Gedit is renamed Pluma.
  • Eye of GNOME is now known as Eye of MATE.
  • Evince is renamed Atril.
  • File Roller is renamed Engrampa.
  • GNOME Terminal is renamed MATE Terminal.
  • About GNOME is renamed About MATE
  • Calculator is renamed MATE Calculator
  • GNOME control center is renamed MATE control center
  • GNOME Screenshot is renamed MATE Screenshot
  • Zenity is renamed MATE Dialog
  • gweather is renamed mateweather

And more is yet to come…

MATE and openSUSE

The first MATE version available on openSUSE was the 1.6 incarnation, but recently the ever diligent openSUSE MATE team succeeded in adding  MATE Desktop environment to Factory repositories. That means that next openSUSE version, 13.2, will include MATE Desktop officially!

Mate Yast

We have changed our repository scheme to avoid people having to change their repositories for each update. Everything is now unified in only one repository, X11:MATE:Current, so you don’t have to go through the repo-changing  hassle every release.

To install MATE, visit our Portal  and utilise the one click install ymp files (simply click on the icons next to the appropriate version).

Contact us

If you have any questions, please, don’t hesitate to contact us.
You can find pretty much all the needed information regarding MATE on openSUSE at:

And remember…

 

…have a lot of fun!

Wednesday
30 July, 2014


face

Hour and 15 minutes later, platters look really frozen... and heads are leaving watery trails on the harddrive, that clicks. Ok, this is not looking good.

Should not have let it run with water on board -- outside tracks are physically destroyed.

Next candidate: WD Caviar, WD200, 20GB.

This one is actually pretty impressive. It clearly has place for four (or so) platters, and there's only one populated. And this one actually requires cover for operation, otherwise it produces "interesting sounds" (and no data).

It went to refrigerator for few hours but then I let it thaw before continuing operation. Disk still works with few bad sectors. I overwrote the disk with zeros, and that recovered the bad sectors.

Did fingerprint on the surface. Bad idea, that killed the disk.

Ok, so we have two information from advertising confirmed: freezing can and will kill the disk, and some hard drives need their screws for operation.


face

...and did not like what I saw. I installed Debian/testing. Now I know why everyone hates systemd: it turned minor error (missing firmware for wlan card) into message storm (of increasing speed) followed by forkbomb. Only OOM stopped the madness.

Now, I've seen Gnome3 before, and it is unusable -- at least on X60 hardware. So I went directly into Mate, hoping to see friendly Gnome2-like desktop. Well, it look familiar but slightly different. After a while I discovered I'm actually in Xfce. So log-out, log-in, and yes, this looks slightly more familiar. Unfortunately, theme is still different, window buttons are smaller and Terminal's no longer can be resized using lower-right corner. I also tried to restore my settings (cp -a /oldhome/.[a-z]* .) and it did not have the desired effect.


face

In the past 4 months during this years Google Summer of Code (GSoC), a global program that offers student developers stipends to write code for open source software projects, Christian Bruckmayer collaborated with other students and mentors to code a dashboard for the Open Source Event Manager  (OSEM). In this series of three posts Christian will tell you about his project and what he has learned from this experience.

Google Summer of Code 2014 Logo

Christian BruckmayerHey my name is Christian and I’m a student currently in the third year of the Bachelor of Science course with information systems and management major in Nuremberg, Germany. During my time at university I already was interested in developing web applications and gained first experience. Google Summer of Code at openSUSE was a great opportunity for me to improve my knowledge and work together with other excellent developers. There are only two weeks left which makes now the perfect time to summarize what I have achieved and learned so far.

 

About the Open Source Event Manager (OSEM)

With OSEM it’s incredible easy to set up and manage all tasks to organize a successful open source conference. As conference organizer you can let people register for your event, run a call for papers and create an entertaining schedule out of users proposals. And as participant you have a central place to get all the info about the event.

OSEM

OSEM is used by openSUSE, owncloud and other Free and Open Source projects to run their events, it is written in Ruby on Rails, an open source web application framework. openSUSE has released OSEM as free software, under the MIT license. You can run, copy, distribute, study, change and improve it. The source code and the developers are on github.

My Project: Organizer Dashboard

My GSoC project for OSEM is about implementing an organizer dashboard and it’s goal is to make it possible for conference organizers to get a glance at all relevant information about their conference. To simply make organizers aware about how their conference is doing.

What to show on the dashboard?

The first thing to do for me and my mentor was to identify which information is the most important for the conference organizers and should therefore be displayed on the new dashboard. I researched what data was available, what competing apps showed and in the end decided together with my mentor on:

  • Registrations – People who are going to attend my conference
  • Submissions – Content submitted to my call for papers
  • Program – Content I have accepted out of the submissions.

Choosing a chart library

As you can imagine, to present this information nicely we needed a chart library! So my first task was to evaluate various chart libraries and decide which would fit the best for our purpose. Finally we decided to use Chart.js because of it’s simplicity but also powerfulness.

Chart.js Libraries

Gathering the relevant data and presenting it

How many people are going to show up?

The most important piece of information to show was the


face

Hey guys. Yes, it’s Wednesday, and yes, we’re a day late. Reason? This awesome announcement, that had to take the whole glory of Tuesday. Also, in the future, if there’s an important announcement/release announcement from the project, the CLT series will be postponed.

Anyway, let’s move on to our today’s agenda: The input/output redirection.

Most commands we have used, post their results in the terminal display. But, we can also make them display it in a file, device or input of other commands by redirecting them.

Standard output

So, how it basically works is that command line programs usually send the results of commands to a facility called standard output. The standard output then usually sends it to your display, so you can read off of it. But, you can also make it display the results in a text file, like this, using the ‘>’ character (my case):

man zypper > man.txt

What I did here, is I wanted a man page for zypper. But I wanted it in a text file, so I can easily access the results in case I need them (asking for help on the forums, IRC, f.ex.). So what this command did is that it saved the output of man zypper to man.txt in my home folder, which you can see here, opened in gedit (click to enlarge):

man zypper redirectIf I should repeat the command, or use different commands with the same file name output, it would rewrite the file over and over again. So, in that case, if I’d like to have the output redirection append the next results to the existing file, the only thing I have to do is use ‘>>’ instead of ‘>’ the next time.

Standard input

Many commands can also accept input from a facility called standard input. By default, it comes from a keyboard, but it can also come from a file. To redirect it, use the inverted character from the one before: ‘<’

The example given is the following:

sort < man.txt

 

Pipeline

To connect multiple commands together, you use pipelines. What pipelines do, is feed the standard output of one command into the standard input of the other command. Mr Shotts’ favorite:

ls – l | less

By using this'| less' trick, you can make any command have scrolling output.

Filters

Filters is a commonly used program in pipelines. Filters take a standard input, perform an operation on it, and send the results to the standard output. They can process information in a very powerful way. Here’s a list of the programs, most commonly used as filters. For exercise, look up, or redirect man pages to them to a file!

Filters: sort, uniq, grep (we’ve all seen this one appear all over forums, so I suggest we look into it more), fmt, pr, head, tail, tr, sed, awk.

Finito

Once again, halting to a stop for this week. We have only a couple of lessons left, to cover the basics of


Tuesday
29 July, 2014


face
In a little over a week, on the 8th of August, you're all invited to join Danimo, Blizz and myself at a release party to celebrate the awesomeness that is ownCloud 7 in Berlin!



When and where

We will gather at 7pm at the Wikimedia office in Berlin:
Tempelhofer Ufer 23/24
10963 Berlin
Germany
It is awesome that we can use their office, a big thank you to our fellow data lovers!!

So we start to gather at 7 and round 7:30 we'll have a demo of/talk about ownCloud 7. We will order some pizza to eat. After that: party time!







face

We are proud to announce that we have just switched our beloved development distribution, openSUSE Factory, to be an independent distribution using the “rolling release” development model. openSUSE Factory is now a tested, reliable and bleeding edge Linux distribution! This change will shorten the stabilization process for our major releases (next up: 13.2) and eliminate the need for pre-releases and milestones.

A more distributed development process for openSUSE

In the old development model, an army of packagers would shoot new packages and updates to Factory, with a relatively small team of Factory Maintainers taking care of the integration process of all those packages. This often took a long time to stabilize for a release.

In the new “rolling release” development model, package submissions cannot go to Factory directly. First they have to prove to be functional and trustworthy in a staging project. Staging projects are projects in our Open Build Service where groups of submissions are collected, reviewed, compiled and tested with openQA. But even after the packages survived the staging project, they don’t directly end up in Factory. First all Factory media (e.g. DVDs etc.) are being built and put again through more tests in openQA. The Factory maintainers then decide on the basis of the Factory-To-Test overview if the new packages should be published to the users.

New Factory Workflow

This new Factory development model balances responsibility among packagers, testers and end users while putting more emphasis on automated quality assurance. As a result, openSUSE Factory becomes a reliable, always-ready working distribution.

“With this new openSUSE development model, users get the latest free software packages without waiting for the next release”

said Richard Brown, openSUSE board chair. He continues

With a daily fresh Factory distribution making it easier for those who want to preview and test, we hope to see more users and contributors, leading to faster fixes and even higher quality. Factory is critical as it provides the base technology for openSUSE and SUSE Linux Enterprise, which is used by tens of thousands of organizations around the world.”

Get it while is hot!

So there is no excuse not to give Factory a try and provide feedback or, if you are not so interested in living on the edge, to help spreading the word: there is a new (old) kid on the Linux Distributions block: openSUSE Factory!

factory-tested

Thanks

This major change in how we develop our distribution would have not been possible without the tireless work of the openSUSE Team from SUSE who drove this process, the openQA developers who integrated all the features and certainly not without our most awesome package maintainers who provided feedback along the way. Thank you guys for another astonishing job completed!

About the openSUSE Project

The openSUSE project is a worldwide effort that promotes the use of Linux everywhere. openSUSE creates one of the world’s best Linux distributions, working together in an open, transparent and friendly manner as part of the worldwide Free and Open Source Software community.
The project


Friday
25 July, 2014


face

Road to WaylandWith the Plasma 5.0 release out the door, we can lift our heads a bit and look forward, instead of just looking at what’s directly ahead of us, and make that work by fixing bug after bug. One of the important topics which we have (kind of) excluded from Plasma’s recent 5.0 release is support for Wayland. The reason is that much of the work that has gone into renovating our graphics stack was also needed in preparation for Wayland support in Plasma. In order to support Wayland systems properly, we needed to lift the software stack to Qt5, make X11 dependencies in our underlying libraries, Frameworks 5 optional. This part is pretty much done. We now need to ready support for non-X11 systems in our workspace components, the window manager and compositor, and the workspace shell.

Let’s dig a bit deeper and look at at aspects underlying to and resulting from this transition.

Why Wayland?

The short answer to this question, from a Plasma perspective, is:

  • Xorg lacks modern interfaces and protocols, instead it carries a lot of ballast from the past. This makes it complex and hard to work with.
  • Wayland offers much better graphics support than Xorg, especially in terms of rendering correctness. X11′s asynchronous rendering makes it impossible to be sure about correctness and timeliness of graphics that ends up on screen. Instead, Wayland provides the guarantee that every frame is perfect
  • Security considerations. It is almost impossible to shield applications properly from each other. X11 allows applications to wiretap each other’s input and output. This makes it a security nightmare.

I could go deeply into the history of Xorg, and add lots of technicalities to that story, but instead of giving you a huge swath of text, hop over to Youtube and watch Daniel Stone’s presentation “The Real Story Behind Wayland and X” from last year’s LinuxConf.au, which gives you all the information you need, in a much more entertaining way than I could present it. H-Online also has an interesting background story “Wayland — Beyond X”.

While Xorg is a huge beast that does everything, like input, printing, graphics (in many different flavours), Wayland is limited by design to the use-cases we currently need X for, without the ballast.
With all that in mind, we need to respect our elders and acknowledge Xorg for its important role in the history of graphical Linux, but we also need to look beyond it.

What is Wayland support?

KDE Frameworks 5 apps under Weston

KDE Frameworks 5 apps under Weston

Without communicating our goal, we might think of entirely different things when talking about Wayland support. Will Wayland retire X? I don’t think it will in the near future, the point where we can stop caring for X11-based setups is likely still a number of years away, and I would not be surprised if X11 was still a pretty common thing to find in enterprise setups ten years down the road from now


Thursday
24 July, 2014


face
...It's been a while since I last blog, well it is summer and I am on the run with my work so time is never enough.
I am still playing with my Prusa i3 3D printer and hopefully I am a few steps closer to the end. The last few days I ordered some more materials that I did not had and some that I ordered but turned out to be the wrong parts(yeap that happens too when you are a rookie :P ). The good thing is that nowdays the printer actually looks like a printer, the other good thing is that there are not actually wrong parts, it is just the parts for the next one that I will build :) . I also had some time to read a bit more about the wiring and while waiting for the parts to come I will actually work on assembling my heat bed and the power supply. Maybe I will find the courage to program the arduino, although I am avoiding this like hell since I am not confident enough,yet.
Here are some pictures and you cannot see some of the missing parts :D









Klaas Freitag: Let’s party!

17:10 UTCmember

face

Yesterday, we released ownCloud 7. You might have read that somewhere on the internet – it was widely announced and broadly picked up. If you do not have ownCloud yet, you really should try it now, and if you are one of the people happily using ownCloud for a while, update soon!

In my opinion, ownCloud 7 is a real step ahead. So much work went into it from the brave server guys, and the result is simply impressive: It is fast, beautiful and fully focused on what it is supposed to be and do: File sync and share, even though you still have of course all the other useful stuff like calendaring and such.

Apart from the wellknown features ownCloud 7 also brings some things that you do not see on the first look. Some of these things relate to syncing and as a guy working mainly on the sync client I am especially happy about that: Already with the current released clients you will see a performance win in syncing, because ownCloud 7 handles parallel HTTP requests way better. Moreover, ownCloud 7 sends some interesting information about it’s files, and the next generation of sync clients will for example know which files are shared and their permissions. We are currently working on some exciting stuff on the client side, stay tuned.

Release Party ownCloud 7

That all should be reason enough to celebrate together, because ownCloud is done by all of us in the community.

On Tuesday, august 5th, we will do a Release Party in Nuremberg, Germany. As last time, the Coworkingspace Nürnberg is hosting us. We will start at 18:00.

Everybody who is interested in ownCloud for whatever reason is very welcome to show up. We will probably have a short informal demonstration or two, but of course plenty room for questions, discussions, meet and greet with all kind of FOSS people, some core ownCloud people, nice beer and big fun.

You really should come! And don’t forget to tell your friends, thanks!



face

CHMI changed their webpages, so that old.chmi.cz no longer worked, so I had to adapt nowcast. My first idea was to use radareu.cz, that has nice coverage of whole europe, but pictures are too big and interpolated... and handling them takes time. So I updated it once more, now it supports new format of chmi pictures. But it also means that if you are within EU and want to play with weather nowcasting, you now can... just be warned it is sligtly slow... but very useful, especially in rainy/stormy weather these days.

Now, I don't know about you, but I always forget something when travelling internationally. Like.. power converters, or the fact that target is in different time zone. Is there some tool to warn you about differences between home and target countries? (I'd prefer it offline, for privacy reasons, but...) I started country script, with some data from wikipedia, but it is quite incomplete and would need a lot of help.


face

So I took an old 4GB (IBM) drive for a test. Oops, it sounds wrong while spinning up. Perhaps I need to use two usb cables to get enough power?

Lets take 60GB drive... that one works well. Back to 4GB one. Bad, clicking sounds.

IBM actually used two different kinds of screws, so I can not non-destructively open this one... and they actually made platters out of glass. Noone is going to recover data from this one... and I have about 1000 little pieces of glass to collect.

Next candidate: Seagate Barracuda ATA III ST320414A, 20GB.

Nice, cca 17MB/sec transfer, disk is now full of photos. Data recovery firms say that screw torque matters. I made all of them very loose, then removed them altogether, then found the second hidden screw and then ran the drive open. It worked ok.

Air filter is not actually secured in any way, and I guess I touched the platters with the cover while opening. Interestingly, these heads do not stick to surface, even when manually moved.

Friends do not let friends freeze their hard drives, but this one went into two plastic back and into refrigerator. Have you noticed how the data-recovery firms placed the drive there without humidity protection?

So, any bets if it will be operational after I remove it from the freezer?


face

The news writer from SUSE office snuck into the openSUSE Asia’s trello board and found that they will use an open source voting tool for their upcoming halpevents. Snoek is a voting tool developed during the SUSE Hackweek by Beijing R&D Team, SUSE. Snoek is written in Django and is eagerly seeking out more django developers to add more features to it like OpenID support and richer (picture, link) voting item support.

Source code of snoek can be found at : https://github.com/yifanjiang/snoek
and Yifan has also written a nice https://github.com/yifanjiang/snoek/blob/master/README to get you started.

All that is required is a little django and python knowledge from a fellow Geeko.

As a big “Thank you” for your efforts, the developer will also receive a free tee shirt shipped to his place.


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 find useful:

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 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

I’m pleased to announce a new 1.21.0 package of calibre for openSUSE. Whats happend in this version?

New features

  • Edit book: Add a tool to automatically remove all unused CSS rules. Useful for books created from templates that can have large numbers of CSS rules that dont match any actual content. Available via Tools->Remove unused CSS.
  • Edit book: Add a tool to split HTML files at multiple locations automatically. To use it, right click in the file and choose ‘Split at multiple locations’. Useful if you want to split at all heading tags or all tags having a certain class and so on.
  • Book polishing: Add an option to automatically remove all unused CSS rules, works the same as the tool for Edit book, above.
  • Driver for ImCoSys imcoV6L
  • Edit book: Allow editing of .plist files as XML

Bug fixes

  • Metadata download: Fix downloading of metadata from Edelweiss not working because of website changes
  • Ebook viewer: Do not override the background color specified in the book if the user has not set a background color in the viewer preferences
  • Edit book: Handle EPUB files that erroneously list the OPF itself in the OPF manifest with an incorrect mime type
  • Edit book: Prevent arrange into folders tool from moving files inside the META-INF folder

Downloading

You can find the latest version in the Documentation:Tools Repository. As example for openSUSE 13.1: http://download.opensuse.org/repositories/Documentation:/Tools/openSUSE_13.1/ .

Bugreports

You can send Bugreports for the calibre package to the Novell Bugzilla

Donations

Donations for the packager are everytime welcome. Just click on: Donate


face

I’m pleased to announce a new 1.20.0 package of calibre for openSUSE. Whats happend in this version?

New features

  • Edit book: Add a new tool to automatically arrange all files in the book into folders based on their type. Access it via Tools->Arrange into folders.
  • Edit book: Add various validity checks for OPF files when running the Check Book tool.
  • Edit book: Add checks for duplicate ids in HTML/OPF/NCX files
  • Edit book: Add checks for filenames containing URL unsafe characters to the Check Book tool
  • Conversion: Allow getting text for entries in the Table of Contents from tag attributes.

Bug fixes

  • AZW3 Output: When converting EPUB files that include an HTML titlepage and no external cover is specified, ensure that the Go to cover action on the Kindle goes to the cover image and not the HTML titlepage.
  • Prevent setting an incorrect value for compression quality in the wireless driver causing an error
  • Show a busy cursor while calibre is working on matching books on the device to books in the library, which can take a while if the user has a lot of books on the device.
  • iTunes driver: Retry automatically a few times when failing to send multiple book to iTunes.
  • HTML Input: Fix UTF-16/32 encoded files that are linked to from the parent file not being properly processed.
  • EPUB Output: Fix splitting of large HTML files removing all child tags from inside tags.
  • Edit book: Fix tab characters not being identified in the lower right corner.

Downloading

You can find the latest version in the Documentation:Tools Repository. As example for openSUSE 13.1: http://download.opensuse.org/repositories/Documentation:/Tools/openSUSE_13.1/ .

Bugreports

You can send Bugreports for the calibre package to the Novell Bugzilla

Donations

Donations for the packager are everytime welcome. Just click on: Donate


face

I’m pleased to announce a short update for youtube_dlhelper.

What’s happened?

  • Updated bundle dependency of multi-json to newest version 1.8.4
  • Cleanup
  • Structured the terminal output

face

I’m pleased to announce a new 1.19.0 package of calibre for openSUSE. Whats happend in this version?

New features

  • Edit book: A new tool to insert special characters into the text, available via Edit->Insert special character. Supports all unicode characters (over 60,000 of them). See http://manual.calibre-ebook.com/edit.html#inserting-special-characters
  • Edit book: When searching for text in the editor, center the found text on screen
  • Driver for teXet TB-146SE.
  • Edit book: Show tooltips in the File Browser for ‘special’ files, such as the cover, opf, ncx, etc.
  • Edit book: When checking book, check for entries in the OPF whose mimetype does not match the file extension.

Bug fixes

  • Edit book: Fix marking a file as titlepage not working if the opf does not contain a section.
  • Edit book: Fix errors when working on HTML files that parse as valid XML, but do not have the correct XHTML namespace.
  • Fix typing non-English characters using an input method (key composing) in the author/tags/etc fields in the metadata dialog not working.
  • Edit book: Fix error when merging html files that include a currently opened file and a non-html file is also open
  • Fix unnecessary error popup during shutdown if the wireless device driver is running and mdns de-registration fails.
  • Add L´ and D´ as recognized articles when automatically computing sort strings for French.
  • Edit book: Fix changing mimetypes in the opf file not being detected when closing the opf file or running any automated tool like Check Book

Downloading

You can find the latest version in the Documentation:Tools Repository. As example for openSUSE 13.1: http://download.opensuse.org/repositories/Documentation:/Tools/openSUSE_13.1/ .

Bugreports

You can send Bugreports for the calibre package to the Novell Bugzilla

Donations

Donations for the packager are everytime welcome. Just click on: Donate


face

I’m pleased to announce a new 1.18.0 package of calibre for openSUSE. Whats happend in this version?

New features

  • Add an option to control how completion works when editing authors/tags/series/etc.
  • Edit book: Add a check for too large HTML files when running the check book tool.
  • Conversion: Sort the CSS rules in the output stylesheet using a ‘natural’ sort algorithm, so that calibre2 sorts before calibre10.
  • Cybook Orizon driver: Upload cover thumbnails in the correct format and add an option to control what directory books are sent to on the SD card
  • Portable installer: Do not ask the user for confirmation when upgrading an existing installation during an automated install
  • Linux/OS X driver for Trekstor Pyrus LED
  • Driver for Tagus Lux

Bug fixes

  • MOBI Output: When text indent is specified as a percentage in the input document, prevent the generated MOBI from having too large an indent if the user chooses a large output profile like tablet.
  • Edit book: Fix live replacement of entities not working on some non-US keyboard layouts.
  • Fix titlecasing of words not capitalizing the first letter, if the first letter is not an English character.
  • Edit book: Ensure that multiple edit book windows are grouped in a separate group from viewer windows in the Windows 7 taskbar. Also change the icon color to blue to more easily distinguish it from the viewer icon
  • Edit book: Fix a bug in the regex engine that calibre uses that could cause various incorrect results in some special circumstances.
  • Edit book: Replace buggy Qt supplied actions in the context menu for the editor widget with properly implemented ones
  • Book list: Fix sorting on fields that are not viewable as columns not being restored on calibre restart. Also fix sorting on the Title field via the right click menu not being restored.
  • Windows 64bit build: Fix corrupted images in MOBI files causing crash.
  • Edit book: Prettify html in newly created books.
  • AZW3 Input: Handle azw3 files that contain some empty individual HTML files
  • Comic Input: Fix a regression to comic input in 1.15 that could cause some comics to be rendered as black or white pages.

Downloading

You can find the latest version in the Documentation:Tools Repository. As example for openSUSE 13.1: http://download.opensuse.org/repositories/Documentation:/Tools/openSUSE_13.1/ .

Bugreports

You can send Bugreports for the calibre package to the Novell Bugzilla

Donations

Donations for the packager are everytime welcome. Just click on: Donate


face

I’m pleased to announce a new 1.17.0 package of calibre for openSUSE. Whats happend in this version?

New features

  • Merry Christmas everyone! Early release this week, as I will be travelling.
  • Edit book: Allow drag and drop of images onto the image editor
  • Edit book: Allow import of multiple files at once, via File->Import files into book
  • Edit book: Show the name of the current character to the left of the cursor in the status bar. Can be turned off via Preferences.
  • Edit book: Automatically replace HTML entities as they are typed. This can be turned off in the Preferences.
  • ToC Editor: Allow bulk renaming of items. Simply select the items you want to rename, right click and choose bulk rename. Useful if, for instance, you want to rename all the items to be Chapter 1, Chapter 2 and so on.
  • Edit book: Allow linking of stylesheets into HTML files automatically. Right click on the selected HTML files in the File browser and choose ‘Link stylesheets’ to have the tags for the sheets automatically inserted.
  • Edit book: When deleting files, automatically remove all entries that refer to them from the ToC

Bug fixes

  • ToC Editor: When auto-generating the table of contents from headings or XPath, if an element is at the top of the file, link only to the file instead of to the element.
  • Edit book: When splitting files, name the newly created file with a ‘_split suffix’.
  • Edit book: Fix position syncing incorrect when in HTML files that contain tags with charset encoding declarations over more than a single line
  • Edit book: Automatic correction of font family names not quoting family names with spaces in them if the original, incorrect family name did not have a space.
  • Title casing: Fix presence of some non-English characters or smart punctuation causing all-caps text to not be properly titlecased
  • Edit book: Fix a bug preventing marking an image as cover in a book that previously had no cover
  • Edit book: Fix a typo causing the preferences for which windows occupy which corners to not work
  • Edit book: Fix crash that happens sometimes when deleting multiple files.
  • Edit book: Handle EPUB files which contain opf files with no tags
  • Edit book: Fix deleting a file that is currently open in an editor, not auto-closing the editor
  • DOCX Input: Fix error when converting DOCX file that contains only image based links and no text based links.

Downloading

You can find the latest version in the Documentation:Tools Repository. As example for openSUSE 13.1: http://download.opensuse.org/repositories/Documentation:/Tools/openSUSE_13.1/ .

Bugreports

You can send Bugreports for the calibre package to the Novell Bugzilla

Donations

Donations are everytime welcome. Just click on: Donate


face

A new gem

A new gem has started in the world. Youtube_helper is not just another Youtube gem. It’s the helper gem. What it does? The Youtube_dlhelper gem downloads a youtube video from a defined space, creates the needed directories and transcodes the filde from *.m4a to *.mp3. Read the full README for using the gem.

Where is it?

You can find it there: https://github.com/saigkill/youtube_dlhelper (It goes directly to the README).

Ho to use?

Just run it with: youtube_dlhelper.rb YourUrl The new file is shown inside your $Musicfolder/Groupname/Youtube-Music or if you have choosen a Interpret it goes to $Musicfolder/Surname_Firstname/Youtube-Videos.

Have a lot of fun :-)


Sascha Manns: Welcome

08:00 UTCmember

face

Welcome

Hello and welcome to my new Jekyll Bootstrap Page. Because of some Bandwidth problems i moved my blog out to Github.


Sascha Manns: Jekyll Introduction

08:00 UTCmember

face

This Jekyll introduction will outline specifically what Jekyll is and why you would want to use it. Directly following the intro we’ll learn exactly how Jekyll does what it does.

Overview

What is Jekyll?

Jekyll is a parsing engine bundled as a ruby gem used to build static websites from dynamic components such as templates, partials, liquid code, markdown, etc. Jekyll is known as “a simple, blog aware, static site generator”.

Examples

This website is created with Jekyll. Other Jekyll websites.

What does Jekyll Do?

Jekyll is a ruby gem you install on your local system. Once there you can call jekyll --server on a directory and provided that directory is setup in a way jekyll expects, it will do magic stuff like parse markdown/textile files, compute categories, tags, permalinks, and construct your pages from layout templates and partials.

Once parsed, Jekyll stores the result in a self-contained static _site folder. The intention here is that you can serve all contents in this folder statically from a plain static web-server.

You can think of Jekyll as a normalish dynamic blog but rather than parsing content, templates, and tags on each request, Jekyll does this once beforehand and caches the entire website in a folder for serving statically.

Jekyll is Not Blogging Software

Jekyll is a parsing engine.

Jekyll does not come with any content nor does it have any templates or design elements. This is a common source of confusion when getting started. Jekyll does not come with anything you actually use or see on your website - you have to make it.

Why Should I Care?

Jekyll is very minimalistic and very efficient. The most important thing to realize about Jekyll is that it creates a static representation of your website requiring only a static web-server. Traditional dynamic blogs like Wordpress require a database and server-side code. Heavily trafficked dynamic blogs must employ a caching layer that ultimately performs the same job Jekyll sets out to do; serve static content.

Therefore if you like to keep things simple and you prefer the command-line over an admin panel UI then give Jekyll a try.

Developers like Jekyll because we can write content like we write code:

  • Ability to write content in markdown or textile in your favorite text-editor.
  • Ability to write and preview your content via localhost.
  • No internet connection required.
  • Ability to publish via git.
  • Ability to host your blog on a static web-server.
  • Ability to host freely on GitHub Pages.
  • No database required.

How Jekyll Works

The following is a complete but concise outline of exactly how Jekyll works.

Be aware that core concepts are introduced in rapid succession without code examples. This information is not intended to specifically teach you how to do anything, rather it is intended to give you the full picture relative to what is going on in Jekyll-world.

Learning these core concepts should help you avoid common frustrations and ultimately help you better understand the code examples contained throughout Jekyll-Bootstrap.

Initial Setup


Wednesday
23 July, 2014


face

ownCloud 7 I have just published ownCloud 7!

This awesome release brings many new features. Among them, I’m most excited about the server to server sharing.

Server to server sharing is a first step in true federation of data with ownCloud: you can add a folder shared with you from another ownCloud instance into your own. Next step would of course be to also share things like user accounts and data like chat, contacts, calendar and more. These things come with their own challenges and we’re not there yet, but if you want to help work on it – join us for the ownCloud Contributor Conference in Berlin next month!

A close runner-up in terms of excitement for me are the improvements to ownCloud Documents – real-time document editing directly on your ownCloud! We have been updating this through the 6.0.x series so the only ‘unique’ ownCloud 7 feature is the support for transparently converting MS Word documents, but that is a feature that makes Documents many times more useful!

There are many more features, you can find more details on the ownCloud website. The official announcement blog post is here.

A big THANK YOU

This would not have been possible without the hard work of the ownCloud community, so a big thank-you goes out to everybody who contributed! We have a large team of almost 100 regular contributors, making ownCloud one of the largest Open Source projects and that makes me proud.

Of course we have a lot of work to do: revelations of companies and governments spying on people keep coming out and our work is crucial to protect our privacy for the future. If you want to help out with this important work, consider contributing to ownCloud. We can use help in many areas, not just coding. Translation, marketing and design are all important for the success of ownCloud!

The release of ownCloud 7 is not only the conclusion of a lot of hard work by the ownCloud community, but also a new beginning! Not only will we release updates to this release, fixing issues and adding translations, but the community now also starts to update the numerous ownCloud apps to ownCloud 7.

Expect more from us. Now, go, install ownCloud 7 and let me know what you think of it!


face

Want a custom map for GUADEC 2014?

Here’s a map I made that shows the venue, the suggested hotels, transit ports (airport/train station), vegetarian & veggie-friendly restaurants, and a few sights that look interesting.

I made this with Google Map Engine, exported to KML, and also changed to GeoJSON and GPX.

If you want an offline map on an Android phone, I suggest opening up the KML file with Maps.Me (proprietary OpenStreeMap-based app, but nice) or the GPX on OSMand (open source and powerful, but really clunky).

You can also use the Google Maps Engine version with Google Maps Engine on your Android phone, but it doesn’t really support offline mode all so well, so it’s frustratingly unreliable at best. (But it does have pretty icons!)

See you at GUADEC!


face

For more than 10 years, PHP core developers repeatedly raised the topic of providing a formal language specification for PHP. Now a team of facebook employees has written such a specification. The spec document is currently only available as a preview chapter a preview chapter . PHP veteran Sara Golemon announced on the “PHP internals” list that the full document will be ready for O’Reilly’s OSCON 2014. Sara Golemon published the standard book on “Extending and Embedding PHP” some years ago and now works for Facebook’s own PHP implementation HHVM. The PHP spec defines PHP version 5.6 in about 200 pages and contains all the odd and obscure quirks of the language core. Facebook’s own HHVM aims to be as close to the spec as possible. Currently, PHP developers discuss how amending the spec can become a mandatory part of the language development process. Though some are sceptic that all developers will embrace the change in the process, everybody on the list was happy to have the new document.

Software Architect Stas Malyshev:

Thank you Sara and Facebook team for doing something we’ve been talking
about for more than a decade and before that nobody actually attempting
to do. I think it is a great development and I hope to see the first
version soon.

http://dl.hhvm.com/resources/PHPSpec-SneakPeak.pdf


Monday
21 July, 2014


face

The first openSUSE.Asia Summit will be held in Beijing, China in Oct, 2014. However, no Summit or Conference is successful without a symbol. The openSUSE Asia Summit organizing team is organizing a logo design contest. The best logo will be awarded with a special super secret Geeko Prize. The logo will be used for all promotional and marketing activities for the summit.

The Rules of the Contest are pretty simple :12_1vs13_1

  1. We will accept only SVG format for original design. Both color and monochrome(black and white) version are required.
  2. The elements of your design should reflect the openSUSE community in Asia.
  3. Please note that there are some things should not be used in your design:
    • No brand names or trademarks of any kind.
    • No illustrations some 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.
  4. Your art work should comply with “openSUSE Project Trademark Guidelines” published at: https://en.opensuse.org/File:OpenSUSE_Trademark_Guidelines.pdf
  5. You should also agree that the openSUSE community have right to interpret the usage of the artwork.
  6. All your artwork will be licensed under CC-BY-SA 3.0.

A few simple guidelines can be found at:

Please send your design to opensuse.asia@gmail.com directly. It should contain the following:

  1. Vector file of the design in attachement, 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)

The contest is open from now until Aug 18, 2014. After that, the openSUSE.Asia team will filter all submitted designs and put the ones which meet the requirements to the website for voting.

Note:

  1. The final decision will be made by openSUSE.Asia Summit Committee. Please understand that the highest vote score of the design may not be designated as the final winner.
  2. To create your artwork, we recommend to use Inkscape, which is a powerful vector graphics tool for all kinds of design. It’s free and open sourced.
  3. The article has been updated after discussion with openSUSE Asia team regarding entry rules.

face

When we released SUSE Manager 1.2 back in 2011, one of the first internal components we open-sourced was our internal testsuite and I have written a bit about it before. Our process was from the beginning completely automated to the extreme. If you do a git commit, you can expect the installable .iso file with the bootable SUSE Manager appliance to appear in a folder after some time. Every couple of hours, this .iso is auto-installed in a reference server and reference client servers, which we use to quickly checkout “things”, and additionally, it is installed on a server, where a list of hundred of tests is performed using a human description of the features, and executed in a real Web Browser.

SUSE Manager Continuous Integration

We could not do this without a bunch of great technologies and products: git and github, Jenkins, where we pull the git repositories and build tarballs + rpm spec files. The Open Build Service, where we submit all the tarballs + rpm .spec files and they get built together as a project and later thanks to the KIWI technology inside the Build Service, turned into an appliance. KVM and libvirt, which we use to run the latest version of our product, and then of course Cucumber, which allows us to describe features in a high-level language, and then implement it to be run on Firefox using WebDriver. But recently we have added another set of features to the testsuite: Security regressions. It was Victor, one of our security engineers, who approached us to talk about using OWASP ZAP to find vulnerabilities and harden the product (his presentation). The project describes itself as:

The Zed Attack Proxy (ZAP) is an easy-to-use, integrated penetration-testing tool. It locates vulnerabilities in web applications, and helps you build secure apps. Designed for use by people with a wide range of security experience, it’s also suited for developers and functional testers who are new to penetration testing. With its automated scanner and powerful REST API, ZAP fits seamlessly into your continuous integration environment, allowing you to automate the finding of common issues while you’re still in development.

As soon as he explained how it worked: the passive tests used a proxy, the pieces of the puzzle clicked: we could run the whole testsuite through the proxy, and add the results analysis as part of one of the last steps of the tests. Those tools produce lot of false positives, so we could keep a “baseline” or “ignore list” and still get the testsuite to fail when new vulnerabilities that we haven’t analysed pop up. Integrating it was straightforward. We packaged the ZAP suite as an rpm that gets installed in the machine that is deployed to run the testsuite against the product. The testsuite code is mostly ruby, so we used the owasp_zap gem for which Victor himself is the author. The testsuite starts the proxy, configures Firefox to go through it and run all the tests. There is an optional step


Benjamin Weber: Tuples in Java

06:42 UTCmember

face

The absence of tuples in Java is often bemoaned. Tuples are collections of a variety of types. They might look like (“benji”,8,”weber”) – a 3-tuple of a string, a number, and another string. People often wish to use tuples to return more than one value from a method.

Often this is a smell that we need to create a domain type that is more meaningful than a tuple, but in some cases tuples are actually the best tool for the job.

We can pretty easily create our own tuple types, and now that we have Lambdas we can consume them pretty easily as well. There is a little unnecessary verbosity left over from type signatures, but we can avoid it in most cases.

If we want to return a tuple from a method, by statically importing an “tuple” method that is overloaded for each arity of tuple we can do

static TriTuple<String, Integer, String> me() {
    return tuple("benji",9001,"weber");
}

Other than the return type of the method it is fairly concise.

On the consuming side it would be nice to be able to use helpful names for each field in the tuple, rather than the ._1() or .one() accessors that are used in many tuple implementations.

This is easily realised thanks to lambdas. We can simply define a map method on the tuple that accepts a function with the same arity of the tuple, to transform the tuple into something else.

Using the above method now becomes

String name = me()
    .map((firstname, favouriteNo, surname) -> firstname + " " + surname);
 
assertEquals("benji weber", name);

We can even throw checked exceptions on the consuming side if we allow our map method to accept functions that throw exceptions.

String name = me()
    .map((firstname, favouriteNo, surname) -> {
        if (favouriteNo > 9000) throw new NumberTooBigException();
        return firstname;
    });

Of course we’d also like identical tuples to be equal to each other so that this is true.

assertEquals(tuple("hello","world"), tuple("hello", "world"));

The implementation looks like this, re-using the value-object pattern I described previously

public interface Tuple {
    //...
    static <A,B,C> TriTuple<A,B,C> tuple(A a, B b, C c) {
        return TriTuple.of(a, b, c);
    }
    //...
}
 
public interface TriTuple<A,B,C> {
    A one();
    B two();
    C three();
    static <A,B,C> TriTuple<A,B,C> of(A a, B b, C c) {
        abstract class TriTupleValue extends Value<TriTuple<A,B,C>> implements TriTuple<A,B,C> {}
        return new TriTupleValue() {
            public A one() { return a; }
            public B two() { return b; }
            public C three() { return c; }
        }.using(TriTuple::one, TriTuple::two, TriTuple::three);
    }
 
    default <R,E extends Exception> R map(ExceptionalTriFunction<A, B, C, R, E> f) throws E {
        return f.apply(one(),two(),three());
    }
 
    default <E extends Exception> void consume(ExceptionalTriConsumer<A,B,C,E> consumer) throws E {
        consumer.accept(one(), two(), three());
    }
}

Browse the full code on Github


face

Can you afford not to do continuous deployment?

Continuous deployment is the practice of regularly (more than daily) deploying updated software to production.

Arguments in favour continuous deployment often focus on how it enables us to continually, regularly, and rapidly deliver value to the business, allowing us to move fast. It’s also often discussed how it reduces release-risk by making deployments an everyday event – with smaller, less risky changes, which are fully automated.

I want to consider another reason

Unforeseen Production Issues

It can be tempting to reduce the frequency of deployments in response to risk. If a deployment with a bug can result in losing a significant amount of money or catastrophic reputation damage, it’s tempting to shy away from the risk and do it less often. Why not plan to release once a month instead of every day? Then we’re only taking the risk monthly.

Let’s leave aside the many reasons why doing things less often is unlikely to reduce the risk.

There will always be things that can break your system in production that are outside your control, and are unlikely to be caught by your pre-deployment testing. If you hit one of these issues then you will need to perform a deployment to fix the issue.

Time-sensitive Bugs

How often do we run into bugs in software due to failing to anticipate some detail of time and dates. We hear stories of systems breaking on 29/02 nearly every leap year. Have you anticipated backwards time corrections from NTP? Are you sure you handle leap-seconds? What about every framework and third party service you are using?

Yes, most of these can be tested for in advance with sufficiently rigorous testing, but we always miss test cases.

Time means that we cannot be sure that software that worked when it was deployed will continue to work.

Capacity Problems

If you production system is overloaded due to unforeseen bottlenecks you may need to fix them and re-deploy. Even if you do capacity planning you may find the software needs to scale in ways that you did not anticipate when you wrote your capacity tests.

When you find an unexpected bottleneck in a production system, you’re going to need to make a change and deploy. How quickly depends on how much early warning your monitoring software gave you.

Third Party dependencies

That service that you depend on goes down for an extended period of time, suddenly you need to change your system to not rely on it.

Infrastructure

Do you handle all the infrastructure related issues that can go wrong? What happens if DNS is intermittently returning incorrect results? What if there’s a routing problem between two services in your system?

Third Party Influence

“Noisy Neighbours” in virtualised or shared hosting. Third party JavaScript in your page overwriting your variables or event listeners. In most environments, you can be affected by others over whom you have no control.

Response

Monitor Monitor Monitor

We

Older blog entries ->