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
23 July, 2014


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.
  5. Your phone number.

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.

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


Sunday
20 July, 2014


face

Here is updated openSUSE-Edu-li-f-e-gnome-classic iso, this update include GNOME 3.12, official openSUSE updates till date, and it brings back Sugar.

Download ISO | MD5 | Alternate download and mirrors

Previous release announcement.


Friday
18 July, 2014


Alexander Naumov: Perl party :)

13:19 UTCmember

face
#!/usr/bin/perl

    ''=~(        '(?{'        .('`'        |'%')        .('['        ^'-')
    .('`'        |'!')        .('`'        |',')        .'"'.        '\\$'
    .'=='        .('['        ^'+')        .('`'        |'/')        .('['
    ^'+')        .'||'        .(';'        &'=')        .(';'        &'=')
    .';-'        .'-'.        '\\$'        .'=;'        .('['        ^'(')
    .('['        ^'.')        .('`'        |'"')        .('!'        ^'+')
   .'_\\{'      .'(\\$'      .';=('.      '\\$=|'      ."\|".(      '`'^'.'
  ).(('`')|    '/').').'    .'\\"'.+(    '{'^'[').    ('`'|'"')    .('`'|'/'
 ).('['^'/')  .('['^'/').  ('`'|',').(  '`'|('%')).  '\\".\\"'.(  '['^('(')).
 '\\"'.('['^  '#').'!!--'  .'\\$=.\\"'  .('{'^'[').  ('`'|'/').(  '`'|"\&").(
 '{'^"\[").(  '`'|"\"").(  '`'|"\%").(  '`'|"\%").(  '['^(')')).  '\\").\\"'.
 ('{'^'[').(  '`'|"\/").(  '`'|"\.").(  '{'^"\[").(  '['^"\/").(  '`'|"\(").(
 '`'|"\%").(  '{'^"\[").(  '['^"\,").(  '`'|"\!").(  '`'|"\,").(  '`'|(',')).
 '\\"\\}'.+(  '['^"\+").(  '['^"\)").(  '`'|"\)").(  '`'|"\.").(  '['^('/')).
 '+_,\\",'.(  '{'^('[')).  ('\\$;!').(  '!'^"\+").(  '{'^"\/").(  '`'|"\!").(
 '`'|"\+").(  '`'|"\%").(  '{'^"\[").(  '`'|"\/").(  '`'|"\.").(  '`'|"\%").(
 '{'^"\[").(  '`'|"\$").(  '`'|"\/").(  '['^"\,").(  '`'|('.')).  ','.(('{')^
 '[').("\["^  '+').("\`"|  '!').("\["^  '(').("\["^  '(').("\{"^  '[').("\`"|
 ')').("\["^  '/').("\{"^  '[').("\`"|  '!').("\["^  ')').("\`"|  '/').("\["^
 '.').("\`"|  '.').("\`"|  '$')."\,".(  '!'^('+')).  '\\",_,\\"'  .'!'.("\!"^
 '+').("\!"^  '+').'\\"'.  ('['^',').(  '`'|"\(").(  '`'|"\)").(  '`'|"\,").(
 '`'|('%')).  '++\\$="})'  );$:=('.')^  '~';$~='@'|  '(';$^=')'^  '[';$/='`';

> perl -v

This is perl, v5.8.8 built for x86_64-linux-thread-multi

Copyright 1987-2006, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

In openSUSE 13.1 we have perl interpreter version 5.18.1. This script will not work there :(

Eval-group not allowed at runtime, use re ‘eval’ in regex m/%s/

(F) Perl tried to compile a regular expression containing the (?{ … }) zero-width assertion at run time, as it would when the pattern contains interpolated values. Since that is a security risk, it is not allowed. If you insist, you may still do this by using the re ‘eval’ pragma or by explicitly building the pattern from an interpolated string at run time and using that in an eval(). See (?{ code }) in perlre.

> cat /etc/SuSE-release | grep VERSION
VERSION = 13.1

> rpm -qa perl
perl-5.18.1-2.1.11.x86_64

The implementation of this feature was radically overhauled for the 5.18.0 release, and its behaviour in earlier versions of perl was much buggier, especially in relation to parsing, lexical vars, scoping, recursion and reentrancy.



face

Yesterday, my Moto G got an Official update to Android 4.4.4. Yeah!
Unfortunately, it did not work: After downloading the update, the phone went into a boot loop, because CWM 6.0.4.6 (which I had installed in order to root the device) cannot flash the update. The phone then boots up, just to shut reboot almost immediately into recovery to try again.
To get out of this boot loop, I manually entered recovery and wiped the "cache" partition.
I retried with the latest CWM 6.0.4.7, this also did not work.
So I had to get the original stock recovery image for the Moto G and flash that. I did not easily find it with a web search, so in the end I downloaded the matching stock SBF image for my installed firmware (in my case "Blur_Version.176.44.1.falcon_umts.Retail.en.DE") from the Moto G firmware page on droid-developers.org, looked into the zip file and found that there is a "recovery.img" in the archive.

Now everything was easy: boot the phone into fastboot mode (power on + volume down), then

fastboot erase recovery
fastboot flash recovery recovery.img
reboot, once the phone is booted select "install system update" from the notification, stock recovery boots and installs the update, done.
I did not even lose root access, so I kept the stock recovery for now.
Later on I checked the md5sum of the recovery.img I flashed and of the recovery partition on the phone and they are identical, so the 4.4.4 update did not flash a new recovery for me. I'll keep the old one around in case I need it again.

Sascha Manns: Blog moved

05:00 UTCmember

face

This blog has moved. You can find it now there.


face

calibre

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

New features

  • Edit Book: Redesign the syntax highlighter to improve performance for large documents and extended editing sessions.
  • Edit book: Make cursor movement smooth by not highlighting matching tags while the cursor is moving. Only match highlighting tags if the cursor stays still for a time.
  • Spellcheck dialog: Indicate whether a word is ignored in the Misspelled column
  • Spellcheck dialog: Pressing Ctrl+C on the words list copies only selected words, regardless of current cell
  • Add a copy to clipboard action to the context menu for the spell check dialog
  • Edit book: Fix save button incorrectly disabled after a failed save

Bug fixes

  • Edit Book: Fix an error when merging CSS stylesheets that contain @charset rules
  • Edit book: Fix extra invalid entries being generated in the manifest when editing an AZW3 file that has no images.
  • Edit book: Fix a hang when editing an HTML or XML file with text of the form Fix regression that prevented the ebook editor from starting on linux systems with locale set to ‘C’
  • DOCX Input: Fix formatting of the generated Index when the index is complex, i.e. with lots of references to the same item, multiple level of sub-items, etc.
  • Smarten punctuation: Fix a double quote preceded by a hyphen at the end of a sentence (before the start of the next tag) being converted into an opening quote instead of closing quote.
  • News download: Fix very long URLs for links to pages causing errors on windows because of max path length restrictions.
  • Edit book: Fix saved search dialog causing high CPU usage
  • Edit book: Fix importing of Lithuanian dictionary from OpenOffice, that does not specify a country code.

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

calibre

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

New features

  • An option to add multiple books from inside a ZIP or RAR file. Right click the Add Books button and choose ‘Add multiple books from archive’.
  • Database backend: Make the database backend more robust when the calibre library is placed on flaky filesystems. Now when an I/O error occurs while writing to the database, the connection to the database is closed and re-opened and the operation is retried.
  • DJVU Input: Speedup extraction of text from DJVU files by implementing the BZZ decoder algorithm in C

Bug fixes

  • MOBI Input: Fix empty tags not being handled correctly in rare cases when the markup is bad enough to be parsed only using the fallback HTML parser.
  • Edit book: Fix column number of cursor shown in the bottom right being one less than it should be.
  • Edit book: Fix names for non-BMP unicode character (Such as emoticons) not being displayed in the lower right corner. Also allow these characters to be searched for by name in the Insert special character tool.
  • Do not show system tray notification popups while analyzing books on device, as they can be slow on systems that display multiple messages serially instead of replacing the last message
  • Linux installer script: Do not use the filesystem to pass the downloaded tarball to tar as it is possible for malicious code running on the users computer to alter the download file between signature verification and calling tar to extract the files.
  • DJVU Input: When extracting embedded txt from TXTz sections in DJVU files, fix incorrect extraction of txt when the djvutxt external program is not present.
  • Edit Book: Fix import HTML file as new book not working on OS X
  • Wireless device driver: Fix a regression that prevented it form working with the Calibre Sync Android app.
  • Fix a regression in 1.26 that caused width and height attributes on tags to generate CSS width and height properties without a ‘px’ suffix
  • Linux binary installer: Fix an error when using proxies and python 3 with the new installer script
  • Edit book: When exporting files, fill the choose filename popup with the name of the file being exported as the default name
  • Make the new Linux installer script compatible with python 2.6.

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

calibre

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

New features

  • Edit Book: Allow direct importing of HTML or DOCX files as new books without doing a full conversion. Use File->Import HTML or DOCX to import a file as a new EPUB book with minimal changes from the original.
  • Linux binary installer: Various improvements to the binary installer. It now creates an un-installer (calibre-uninstall) that will remove all files created by the installer. It also no longer asks for the installation directory. If you wish to change that, you need to specify it in the installation command itself. Also the installer is now downloaded securely via HTTPS from github and verifies the signature of the installed files. Finally, it can be used to create an isolated install, that only makes changes to files in the installation directory and does not require root privileges.
  • Metadata download: Add an option to merge the downloaded comments into existing comments, instead of overwriting (Preferences->Metadata download).
  • Edit book: Add an option to automatically beautify individual files whenever they are opened for editing. Look under ‘Editor Settings’ in the Edit Book Preferences.
  • Bulk metadata download: When reviewing downloaded metadata allow hiding the controls on the comments box by right clicking in the comments area. Useful on smaller screens.
  • E-book viewer: When displaying metadata for the book, also display custom column metadata

Bug fixes

  • Smarten punctuation: Correct handling for decade abbreviations like ’60s and measurements in feet and inches like 1’ 2”.
  • EPUB Output: If the output profile is set to one of the Nook profiles, do not use shorthand CSS properties as the Nook cannot handle them.
  • Conversion: Fix incorrect CSS being generated when converting files that have tags with width or height attributes that contain fractional numbers.
  • Edit Book: When editing EPUB files, and a file is added in META-INF/ do not automatically add it to the manifest. Also do not warn about unmanifested files inside META-INF/ since a few vendors (Apple) require non standard files in that location.
  • Fix Book details popup window not being updated when editing metadata in the main window
  • Edit book: Fix editor not marking the book as modified when doing a Replace All that does not affect any currently open files.
  • Windows: Use a separate worker process to move files to the recycle bin. Fixes the problem of the recycle bin icon not being updated when deleting books into an empty recycle bin. Also avoids the overhead of launching a new, short-lived worker process for every delete.
  • calibredb: When deleting books/formats wait for deleted files to be moved to recycle bin, before quitting
  • RTF Output: Fix invalid RTF being produced when the text contains a double backslash.
  • Edit book: Fix option to disable showing the character before cursor not working
  • Get Books: Update various store plugins to account for changes to the store websites
  • Fix virtual library names with ampersands in them not being displayed

face

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

New features

  • Edit Book: Highlight the closest surrounding tag when editing HTML/XML
  • Edit Book: Add a tool to easily change the current paragraph (the paragraph containing the cursor) to a heading. Simply click the button with ‘H1’ on it and choose the heading level you want the current paragraph changed to.
  • Edit Book: When running Replace All add a button to the replaced message to show exactly what changes were done and allow them to be undone
  • Edit book: When checking book, detect case mismatches between links and the filenames of the files they point to and offer to auto-correct the links
  • Adding books: Implement a copy to clipboard button for when duplicates are found during the adding process. Useful if you wish to review the list of duplicates later.
  • Linux installer: Install appdata files for integration with software stores.
  • Edit book: Auto add a checkpoint when the book is first opened for editing

Bug fixes

  • Edit Book: Fix a bug in AZW3 support that could cause images/fonts to get mixed up when saving and re-opening the book multiple times.
  • Edit Book: Fix individual find and replace not working in regex mode if the search expression uses lookbehind/lookahead operators
  • Compare books: Fix unchanged lines at the start of a change block being sometimes marked with a blue background, even though they contain no changes
  • Compare books: Fix incorrect scrolling when viewing all text and a large amount of text is present after the final change.
  • PDF Output: Fix a zero division error when the transformation matrix has a zero diagonal
  • calibredb add_custom_column: Fix a spurious error message when adding custom columns caused by the new db backend
  • calibredb list: Fix error if one of the requested fields is empty for all requested books
  • calibredb set_metadata: Fix setting series_index with the -f argument not working
  • Markdown input: Fix handling of very large files.
  • Edit book: Do not create savepoints when no changes are performed by automated tools such as smarten punctuation, remove unused css etc.
  • Edit Book: Fix a bug that would cause an error when a global operation like find/replace or polishing fails.
  • Metadata download: Workaround edelweiss.com no longer being able to search by author name. Search only by titles and filter the results returned by edelweiss to only include matching authors.
  • HTML 5 parser: Preserve non-core namespace declarations on the tag
  • Workaround broken file chooser dialog on Ubuntu that does not auto-insert the specified extension.
  • Compare books: Fix error when previously different files become identical after beautifying
  • Edit Book: Fix subsetting embedded fonts not processing fonts included in a stylesheet that is itself referenced only by an @import rule
  • Edit Book: Fix the remove unused css tool changing the namespace prefix used for the XHTML namespace in the CSS sheet, if any
  • Conversion: Fix CSS selectors using the epub namespace being ignored
  • Compare books

face

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

New features

  • A new tool to compare ebook files, showing the differences in their underlying text, styles and images side by side
  • Edit book: Add a tool to view the list of checkpoints and compare the current state of the book to the state at the specified checkpoint. To use it click View->Checkpoints
  • Edit book: Add a tool to compare the book being currently edited with another file. To use it go to File->Compare to other book
  • Allow comparing the ORIGINAL_EPUB version of a book to the EPUB version by right clicking on the ORIGINAL_EPUB format in the book details panel. And the same for ORIGINAL_AZW3 and AZW3 formats.
  • Edit Book: Add a button to show the changes after various automated tools are run such as: remove unused CSS, subset embedded fonts, smarten punctuation, etc.
  • Edit Book: Add check for spine items with incorrect media-type specified in the manifest
  • Edit Book: Enable editing of page map XML files
  • DOCX Input: Improve handling of text boxes. Text boxes are still not supported, but they no longer cause errors or duplicate content when embedded inside paragraphs.
  • Edit Book: Add check for links that point to directories in the book instead of files.
  • Edit Book: Show the filename of the currently edited file in the title bar.

Bug fixes

  • Edit Book: Fix unused CSS removal tool inserting namespace declaration at the top of the stylesheet
  • Edit book: Fix cover not being updated from the current cover in the calibre library when using Edit Book. Note that you can turn off metadata updating via Preferences->calibre Integration in the Edit Book Preferences.

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

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

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


Thursday
17 July, 2014


face

Two years ago, I got appointed as chairman of the openSUSE Board. I was very excited about this opportunity, especially as it allowed me to keep contributing to openSUSE, after having moved to work on the cloud a few months before. I remember how I wanted to find new ways to participate in the project, and this was just a fantastic match for this. I had been on the GNOME Foundation board for a long time, so I knew it would not be easy and always fun, but I also knew I would pretty much enjoy it. And I did.

Fast-forward to today: I'm still deeply caring about the project and I'm still excited about what we do in the openSUSE board. However, some happy event to come in a couple of months means that I'll have much less time to dedicate to openSUSE (and other projects). Therefore I decided a couple of months ago that I would step down before the end of the summer, after we'd have prepared the plan for the transition. Not an easy decision, but the right one, I feel.

And here we are now, with the official news out: I'm no longer the chairman :-) (See also this thread) Of course I'll still stay around and contribute to openSUSE, no worry about that! But as mentioned above, I'll have less time for that as offline life will be more "busy".

openSUSE Board Chairman at oSC14

openSUSE Board Chairman at oSC14

Since I mentioned that we were working on a transition... First, knowing the current board, I have no doubt everything will be kept pushed in the right direction. But on top of that, my good friend Richard Brown has been appointed as the new chairman. Richard knows the project pretty well and he has been on the board for some time now, so is aware of everything that's going on. I've been able to watch his passion for the project, and that's why I'm 100% confident that he will rock!


Richard Brown: Changing of the Guard

14:05 UTCmember

face

I recently received some bittersweet news, my good friend Vincent Untz is stepping down as Chairman of the openSUSE Board as a result of a happy personal event that I’m sure is going to keep him busy in the months and years ahead.

In addition the formal thanks as part of the official announcements, I’d like to add my own personal thanks to Vincent. I owe much to Vincent’s help and support throughout the years, both technically as a maintainer of GNOME in openSUSE, and as an Board Member to the Project. I know this isn’t goodbye, and look forward to still seeing Vincent around the Geeko world in the future.

As a result of Vincent’s decision, the openSUSE Board requires a new Chairman. I’m excited and humbled to be able to announce that I have been appointed by SUSE to serve as the new Chairman of the openSUSE Board, effective from today.

When I started contributing to openSUSE in 2005, I never thought I could find myself in a position like this. I’m looking forward to doing the best I can to help keep openSUSE moving forward and become more recognised as the exceptional, wonderful, and successful open source project that it already is.

For anyone who doesn’t know the governance structure of openSUSE, the Board is a group of six members, five who are elected by the community and a Chairperson who is appointed by SUSE. It’s the Board’s job to ‘lead’ the openSUSE Project, by providing guidance, governance and support to the rest of the project. As I was one of those elected Board members, the Board are currently discussing our options regarding my now vacant Board member seat, and we hope to be able to announce something soon.

I’m also very pleased to be able to be able to share that this October 18th-19th openSUSE will be having an openSUSE Summit Asia in Bejing!
Sunny and her team have put together a great website with all the information, please Check It Out!

There’s also lots of very interesting developments happening around openSUSE Factory, which is progressing towards becoming a fully rolling release. You can download the latest snapshots HERE. And to provide feedback or learn more, you can join the conversation in our openSUSE Factory mailing list or in IRC at #opensuse-factory in irc.freenode.org

Have a lot of fun!


face

Hi all,

It’s with some regret that we have to announce that Vincent Untz, our current openSUSE Board Chairman, has chosen to step down as a result of a happy personal event that will take up a lot of his spare time in the months (and years!) to come.

We as the board would like to thank Vincent for his contributions to the project and the board over many years and hope that he will continue to be part of our Project, just in a different capacity, for a long time yet.

As we know the chairman of the board is an appointed position. SUSE as the primary sponsor of our project has come to the conclusion that Richard Brown, one of our current Board members, should be the new Chairman, effective from today. Congratulations Richard!

With the change in role for Richard his elected Board seat becomes vacant. We are discussing various options to fill the seat for the remaining 5 months until the next election, please stay tuned for an announcement in the next couple of weeks.

Your openSUSE Board


face
One of the things I love from the Free and Open Source software world is that doing things in the open simply leads to better solutions. Resources are often constrained, polish might be lacking, but frequently from the seemingly chaotic processes emerges brilliance.

The upcoming ownCloud 7 has one of those things: server to server sharing. You see, for a long time, I and others have been asking the ownCloud desktop client developers for a feature: support for syncing multiple ownCloud installations. That way, files from our corporate ownCloud installation (of course we dogfood here at ownCloud Inc.!) and my private ownCloud could both be synced to my desktop and laptop. Unfortunately, while it has been on the todo for a while, it just kept pushed down by more urgent feature work.

While you could get it to work already by running multiple clients and playing with the config file locations, it seemed a bit brittle to me and I just accepted this feature wasn't there yet.

Only today, during my bike ride to c-base, did I realize that ownCloud 7 actually introduces this feature. And I even wrote a sneak preview about it! It is the server to server sharing that solves this issue.

What is Server to Server sharing?

Let's step back. What is the major thing that 'private' clouds don't have which public clouds do? Other than the NSA snooping, that is...

Well, you're all alone, of course. If you want to share a file with another student from uni, you have to create an account or use a shared link. He/she will then have to visit your ownCloud to be able to work with you. It gets quickly messy with a lot of files.


This is where Server to Server sharing comes in. You can simply share a link and your collaboration partner can add this, either a folder or a single file, to his or her own ownCloud. They can put the file wherever they want in their folder structure (we've gotten rid of that rigid shared folder concept in ownCloud 7!) and work with you like the file was on their own instance.

That means they can also locally sync the file with their sync client by just putting it in a folder that is synced!

Boom. You don't have to create and manage multiple server accounts in your sync client, creating a folder on your system for each server you work with. No, you just add the share to your ownCloud and put the files wherever you want - in one folder, or grouped by subject - whatever works best.

Now tell me that isn't awesome ;-)

There's more

Of course, this is just a first step to bringing ownCloud servers closer to each other. Our goal is full 'federation' of data: transparent sharing between servers so they can act as one cloud, protecting privacy while giving you the convenience of sharing, collaborating and communicating with friends

Wednesday
16 July, 2014


face

appstream-logoToday I am very happy to announce the release of AppStream 0.7, the second-largest release (judging by commit number) after 0.6. AppStream 0.7 brings many new features for the specification, adds lots of good stuff to libappstream, introduces a new libappstream-qt library for Qt developers and, as always, fixes some bugs.

Unfortunately we broke the API/ABI of libappstream, so please adjust your code accordingly. Apart from that, any other changes are backwards-compatible. So, here is an overview of what’s new in AppStream 0.7:

Specification changes

Distributors may now specify a new <languages/> tag in their distribution XML, providing information about the languages a component supports and the completion-percentage for the language. This allows software-centers to apply smart filtering on applications to highlight the ones which are available in the users native language.

A new addon component type was added to represent software which is designed to be used together with a specific other application (think of a Firefox addon or GNOME-Shell extension). Software-center applications can group the addons together with their main application to provide an easy way for users to install additional functionality for existing applications.

The <provides/> tag gained a new dbus item-type to expose D-Bus interface names the component provides to the outside world. This means in future it will be possible to search for components providing a specific dbus service:

$ appstream-index what-provides dbus org.freedesktop.PackageKit.desktop system

(if you are using the cli tool)

A <developer_name/> tag was added to the generic component definition to define the name of the component developer in a human-readable form. Possible values are, for example “The KDE Community”, “GNOME Developers” or even the developer’s full name. This value can be (optionally) translated and will be displayed in software-centers.

An <update_contact/> tag was added to the specification, to provide a convenient way for distributors to reach upstream to talk about changes made to their metadata or issues with the latest software update. This tag was already used by some projects before, and has now been added to the official specification.

Timestamps in <release/> tags must now be UNIX epochs, YYYYMMDD is no longer valid (fortunately, everyone is already using UNIX epochs).

Last but not least, the <pkgname/> tag is now allowed multiple times per component. We still recommend to create metapackages according to the contents the upstream metadata describes and place the file there. However, in some cases defining one component to be in multiple packages is a short way to make metadata available correctly without excessive package-tuning (which can become difficult if a <provides/> tag needs to be satisfied).

As small sidenote: The multiarch path in /usr/share/appdata is now deprecated, because we think that we can live without it (by shipping -data packages per library and using smarter AppStream metadata generators which take advantage of the ability to define multiple <pkgname/> tags)

Documentation updates

In general, the documentation of the specification has been reworked to be easier to understand and


face

We announced the openSUSE Asia Summit yesterday and here we are already opening up our registrations for the summit. We welcome you with open hands to visit our conference and also enjoy the rich Chinese history in and around Beijing.

The openSUSE Asia Summit 2014 website is up on summit.opensuse.org and we’re looking forward almost as much to your visit there. as a real life appearance at the event. You may register in our conference submission tool before Sep 30th. We are looking forward to having you with us on this Oct  in Beijing.

Want a summit Tee Shirt? Be a Speaker!!!geekos!

Our call for papers is also open: you can shoot in your sessions proposals! Once you are part of the summit roaster your talks and presentation will be added to our tracking system in order to generate a schedule. All speakers will get a cool summit tee shirt too.

The theme of our summit is

“openSUSE – openSUSE – Bring you to the free world!”

We have four tracks.

  • End User Track
  • Business Track
  • Community & Project Track
  • Technology & Development Track

For any of the four tracks

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

You can submit your abstracts imn our conference submission tool. The submission period begins today, and closes Aug 18. Note that the first bunch of accepted proposal acceptance emails will be sent on Sep 1, allowing you to start planning your trip already.  Come join us and have fun!!!

Older blog entries ->