Department of Chemistry

...California State University Stanislaus

  • Increase font size
  • Default font size
  • Decrease font size
Home News Feeds Planet Ubuntu
Newsfeeds
Planet Ubuntu
Planet Ubuntu - http://planet.ubuntu.com/

  • Nicholas Skaggs: Sprinting in DC: Wednesday
    This week, my team and I are sprinting with many of the core app developers and other folks inside of Ubuntu Engineering. Each day I'm attempting to give you a glimpse of what's happening.

    To kick off the day, I led a session on something that has been wreaking havoc for application test writers within the core apps -- environment setup. In theory, setting up the environment to run your test should be easy. In practice, I've found it increasingly difficult. The music, calendar, clock, reminders, file manager and other teams have all been quite affected by this and the canonical QA team and myself have all pitched in to help, but struggled as well. In short, a test should be easy to launch, be well behaved and not delete any user data, and be easy to setup and feed test data into for the test process. I'm happy to report that the idea of a permanent solution has been reached. Now we must implement it of course, but the result should be drastically easier and more reliable test setup for you the test author.

    I also had the chance to list some grievances for application developers with the QA team. We spoke about wanting to expand the documentation on testing and specifically targeted the need to create better templates in the ubuntu sdk for new projects. When you start a new project you should have well functioning tests, and we should teach you about how to run them too!



    Just before lunch the community core app developers were able to discuss post-RTM plans and features. A review of the apps was undertaken and some desire for new designs or features were discussed. Terminal is being rebuilt to be more aligned with upstream. Music is currently undergoing a re-design which is coming along great. Calculator is anxious to get some design love. Reminders potential for offline notetaking as well as potential name changes were all discussed. Overall, an amazing accomplishment by all the developers!

    After lunch, I spent time confirming the fix for a longstanding bug within autopilot. The merge proposal for fixing this bug has been simmering all summer and it's time to get it fixed. The current test suites for calendar and clock have been impacted by this and have already had regressions occur that could have been caught had tests been able to be written for this area. Having myself, the autopilot team, and the calendar developers in one place made fixing this possible.

    To end the day, I spent some time attending sessions for changes to CI and learning more about the coming changes to CI within ubuntu. In summary the news is wonderful. CI will test using autopkgtest, and all of ubuntu will come under this umbrella -- phone, desktop, everything. If it's a package and it has tests, we will do all of the autopkgtest goodness currently being done for the distro.

    The evening closed with a bit of fun provided by a game making hackathon using bacon2d and the hilariously horrible "Turkish Star Wars". We could always use more games in the ubuntu app store, and I hear there might even still be a pioneers t-shirt or two left if you get it in early!

  • Alessio Treglia: Bits from the Debian Multimedia Maintainers

    This brief announcement was released yesterday to the debian-devel-announce mailing list.

     

    Ciao!

    The Debian Multimedia Maintainers have been quite active since the Wheezy release, and have some interesting news to share for the Jessie release. Here we give you a brief update on what work has been done and work that is still ongoing.

    Let’s see what’s cooking for Jessie then.

     

    Frameworks and libraries

    Support for many new media formats and codecs.

    The codec library libavcodec, which is used by popular media playback applications including vlc, mpv, totem (using gstreamer1.0-libav), xine, and many more, has been updated to the latest upstream release version 11 provided by Libav. This provides Debian users with HEVC playback, a native Opus decoder, Matroska 3D support, Apple ProRes, and much more. Please see libav’s changelog for a full list of functionality additions and updates.

    libebur128

    libebur128 is a free implementation of the European Broadcasting Union Loudness Recommendation (EBU R128), which is essentially an alternative to ReplayGain. The library can be used to analyze audio perceived loudness and subsequentially normalize the volume during playback.

    libltc

    libltc provides functionalities to encode and decode Linear (or Longitudinal) Timecode (LTC) from/to SMPTE data timecode.

    libva

    libva and the driver for Intel GPUs has been updated to the 1.4.0 release. Support for new GPUs has been added. libva now also supports Wayland.

    Pure Data

    A number of new additional libraries (externals) will appear in Jessie, including (among others) Eric Lyon’s fftease and lyonpotpourrie, Thomas Musil’s iemlib, the pdstring library for string manipulation and pd-lua that allows to write Pd-objects in the popular lua scripting language.

     

    JACK and LADI

    LASH Audio Session Handler was abandoned upstream a long time ago in favor of the new session management system, called ladish (LADI Session Handler). ladish allows users to run many JACK applications at once and save/restore their configuration with few mouse clicks.

    The current status of the integration between the session handler and JACK may be summarized as follows:

    • ladish provides the backend;
    • laditools contains a number of useful graphical tools to tune the session management system’s whole configuration (including JACK);
    • gladish provides a easy-to-use graphical interface for the session handler.

    Note that ladish uses the D-Bus interface to the jack daemon, therefore only Jessie’s jackd2 provides support for and also cooperates fine with it.

     

    Plugins: LV2 and LADSPA

    Debian Jessie will bring the newest 1.10.0 version of the LV2 technology. Most changes affect the packaging of new plugins and extensions, a brief list of packaging guidelines is now available.
    A number of new plugins and development tools too have been made available during the Jessie development cycle:

    LV2 Toolkit

    LVTK provides libraries that wrap the LV2 C API and extensions into easy to use C++ classes. The original work for this was mostly done by Lars Luthman in lv2-c++-tools.

    Vee One Suite

    The whole suite by Rui Nuno Capela is now available in Jessie, and consists of three components:

    • drumkv1: old-school drum-kit sampler synthesizer
    • samplv1: polyphonic sampler
    • synthv1: analog-style 4-oscillator substractive synthesizer

    All three are provided in both forms of LV2 plugins and stand-alone JACK client. JACK session, JACK MIDI, and ALSA MIDI are supported too.

    x42-plugins and zam-plugins

    LV2 bundles containing many audio plugins for high quality processing.

    Fomp

    Fomp is an LV2 port of the MCP, VCO, FIL, and WAH plugins by Fons Adriaensen.

    Some other components have been upgraded to more recent upstream versions:

    • ab2gate: 1.1.7
    • calf: 0.0.19+git20140915+5de5da28
    • eq10q: 2.0~beta5.1
    • NASPRO: 0.5.1

    We’ve packaged ste-plugins, Fons Adriaensen’s new stereo LADSPA plugins bundle.

    A major upgrade of frei0r, namely the standard collection for the minimalistic plugin API for video effects, will be available in Jessie.

     

    New multimedia applications

    Advene

    Advene (Annotate Digital Video, Exchange on the NEt) is a flexible video
    annotation application.

    Ardour3

    The new generation of the popular digital audio workstation will make its very first appearance in Debian Jessie.

    Cantata

    Qt4 front-end for the MPD daemon.

    Csound

    Csound for jessie will feature the new major series 6, with the improved IDE CsoundQT. This new csound supports improved array data type handling, multi-core rendering and debugging features.

    din

    DIN Is Noise is a musical instrument and audio synthesizer that supports JACK audio output, MIDI, OSC, and IRC bot as input sources. It could be extended and customized with Tcl scripts too.

    dvd-slideshow

    dvd-slideshow consists of a suite of command line tools which come in handy to make slideshows from collections of pictures. Documentation is provided and available in `/usr/share/doc/dvd-slideshow/’.

    dvdwizard

    DVDwizard can fully automate the creation of DVD-Video filesystem. It supports graphical menus, chapters, multiple titlesets and multi-language streams. It supports both PAL and NTSC video modes too.

    flowblade

    Flowblade is a video editor – like the popular KDenlive based on the MLT engine, but more lightweight and with some difference in editing concepts.

    forked-daapd

    Forked-daapd switched to a new, active upstream again dropping Grand Central Dispatch in favor of libevent. The switch fixed several bugs and made forked-daapd available on all release architectures instead of shipping only on amd64 and i386. Now nothing prevents you from setting up a music streaming (DAAP/DACP) server on your favorite home server no matter if it is based on mips, arm or x86!

    harvid

    HTTP Ardour Video Daemon decodes still images from movie files and serves them via HTTP. It provides frame-accurate decoding and is main use-case is to act as backend and second level cache for rendering the
    videotimeline in Ardour.

    Groove Basin

    Groove Basin is a music player server with a web-based user interface inspired by Amarok 1.4. It runs on a server optionally connected to speakers. Guests can control the music player by connecting with a laptop, tablet, or smart phone. Further, users can stream their music libraries remotely.
    It comes with a fast, responsive web interface that supports keyboard shortcuts and drag drop. It also provides the ability to upload songs, download songs, and import songs by URL, including YouTube URLs. Groove Basin supports Dynamic Mode which automatically queues random songs, favoring songs that have not been queued recently.
    It automatically performs ReplayGain scanning on every song using the EBU R128 loudness standard, and automatically switches between track and album mode. Groove Basin supports the MPD protocol, which means it is compatible with MPD clients. There is also a more powerful Groove Basin protocol which you can use if the MPD protocol does not meet your needs.

    HandBrake

    HandBrake, a versatile video transcoder, is now available for Jessie. It could convert video from nearly any format to a wide range of commonly supported codecs.

    jack-midi-clock

    New jackd midiclock utility made by Robin Gareus.

    laborejo

    Laborejo, Esperanto for “Workshop”, is used to craft music through notation. It is a LilyPond GUI frontend, a MIDI creator and a tool collection to inspire and help music composers.

    mpv

    mpv is a movie player based on MPlayer and mplayer2. It supports a wide variety of video file formats, audio and video codecs, and subtitle types. The project focuses mainly on modern systems and encourages developer activity. As such, large portions of outdated code originating from MPlayer have been removed, and many new features and improvements have been added. Note that, although there are still some similarities to its predecessors, mpv should be considered a completely different program (e.g. lacking compatibility with both mplayer and mplayer2 in terms of command-line arguments and configuration).

    smtube

    SMTube is a stand-alone graphical video browser and player, which makes YouTube’s videos browsing, playing, and download such a piece of cake.
    It has so many features that, we are sure, will make YouTube lovers very, very happy.

    sonic-visualiser

    Sonic Visualiser Application for viewing and analysing the contents of music audio files.

    SoundScapeRenderer

    SoundScapeRenderer (aka SSR) is a (rather) easy to use render engine for spatial audio, that provides a number of different rendering algorithms, ranging from binaural (headphone) playback via wave field synthesis to higher-order ambisonics.

    Videotrans

    videotrans is a set of scripts that allow its user to reformat existing movies into the VOB format that is used on DVDs.

    XBMC

    XBMC has been partially rebranded as XBMC from Debian to make it clear that it is changed to conform to Debian’s Policy. The latest stable release, 13.2 Gotham will be part of Jessie making Debian a good choice for HTPC-s.

    zita-bls1

    Binaural stereo signals converter made by Fons Adriaensen

    zita-mu1

    Stereo monitoring organiser for jackd made by Fons Adriaensen

    zita-njbridge

    Jack clients to transmit multichannel audio over a local IP network made by Fons Adriaensen

    radium-compressor

    Radium Compressor is the system compressor of the Radium suite. It is provided in the form of stand-alone JACK application.

     

    Multimedia Tasks

    With Jessie we are shipping a set of multimedia related tasks.
    They include package lists for doing several multimedia related tasks. If you are interested in defining new tasks, or tweaking the current, existing ones, we are very much interested in hearing from you.

     

    Upgraded applications and libraries

    • Aeolus: 0.9.0
    • Aliki: 0.3.0
    • Ams: 2.1.1
    • amsynth: 1.4.2
    • Audacious: 3.5.2
    • Audacity: 2.0.5
    • Audio File Library: 0.3.6
    • Blender: 2.72b
    • Bristol: 0.60.11f
    • C* Audio Plugin Suite: 0.9.23
    • Cecilia: 5.0.9
    • cmus: 2.5.0
    • DeVeDe: 3.23.0-13-gbfd73f3
    • DRC: 3.2.1
    • EasyTag: 2.2.2
    • ebumeter: 0.2.0
    • faustworks: 0.5
    • ffDiaporama: 1.5
    • ffms: 2.20
    • gmusicbrowser: 1.1.13
    • Hydrogen: 0.9.6.1
    • IDJC: 0.8.14
    • jack-tools: 20131226
    • LiVES: 2.2.6
    • mhWaveEdit: 1.4.23
    • Mixxx: 1.11.0
    • mp3fs: 0.91
    • MusE: 2.1.2
    • Petri-Foo: 0.1.87
    • PHASEX: 0.14.97
    • QjackCtl: 0.3.12
    • Qtractor: 0.6.3
    • rtaudio: 4.1.1
    • Rosegarden: 14.02
    • rtmidi: 2.1.0
    • SoundTouch: 1.8.0
    • stk: 4.4.4
    • streamtuner2: 2.1.3
    • SuperCollider: 3.6.6
    • Synfig Studio: 0.64.1
    • TerminatorX: 3.90
    • tsdecrypt: 10.0
    • Vamp Plugins SDK: 2.5
    • VLC: Jessie will release with the 2.2.x series of VLC
    • XCFA: 4.3.8
    • xwax: 1.5
    • xjadeo: 0.8.0
    • x264: 0.142.2431+gita5831aa
    • zynaddsubfx: 2.4.3

     

    What’s not going to be in Jessie

    With the aim to improve the overall quality of the multimedia software available in Debian, we have dropped a number of packages which were abandoned upstream:

    • beast
    • flumotion
    • jack-rack
    • jokosher
    • lv2fil (suggested replacement for users is eq10q or calf eq)
    • phat
    • plotmm
    • specimen (suggested replacement for users is petri-foo – fork of specimen)
    • zynjacku (suggested replacement for users is jalv)

    We’ve also dropped mplayer, presently nobody seems interested in maintaining it.
    The suggested replacements for users are mplayer2 or mpv. Whilst the former is mostly compatible with mplayer in terms of command-line arguments and configuration (and adds a few new features too), the latter adds a lot of new features and improvements, and it is actively maintained upstream.

    Please note that although the mencoder package is no longer available anymore, avconv and mpv do provide encoding functionality. For more information see avconv’s manual page and documentation, and mpv’s encoding documentation.

     

    Broken functionalities

    rtkit under systemd is broken at the moment.

     

    Activity statistics

    More information about team’s activity are available.

     

    Where to reach us

    The Debian Multimedia Maintainers can be reached at pkg-multimedia-maintainers AT lists.alioth.debian.org for packaging related topics, or at debian-multimedia AT lists.debian.org for user and more general discussion.
    We would like to invite everyone interested in multimedia to join us there. Some of the team members are also in the #debian-multimedia channel on OFTC.

    Cheers!

    Alessio Treglia
    on behalf of the Debian Multimedia Maintainers

     



  • Mythbuntu: Actions required by Nov 1st due to Schedules Direct change

    The following announcement will affect users using the Schedules Direct service to get guide data, including but not limited to USA and Canada.

    On November 1st, 2014, the existing SD service is changing. 

    We have been informed that Gracenote (formerly Tribune Media Services) will be ending the guide data service currently used by most users of Schedules Direct. Their plan is to end support for this service on November 1, 2014.

    A service is being developed to mimic the DataDirect feed. It has most, but not all of the data currently in the Data Direct feed and will be updated daily. 

    What does this mean for Schedules Direct?

    The guide data provider (Gracenote) that Schedules Direct uses is changing how they present the guide data to users. Schedules Direct has taken it upon themselves to write a server side compatibility layer so existing applications will continue to get guide data. This does require a change in the URL that applications use to download which is why an update to MythTV is necessary.

    What does this mean to you as a user?

    If you have a paid subscription to Schedules Direct that will continue the way it has worked previously. A simple update to MythTV will be required for users on a supported version of MythTV.

    Users that have enabled the MythTV Updates repo and are on a current version of MythTV and a supported version of Ubuntu will receive the fix for this via regular updates. The Mythbuntu team has always recommended enabling the MythTV Updates repo in the Mythbuntu Control Centre and staying up to date on fixes builds. The fix for this issue was added to our packages in the versions in the below table. More information on the Mythbuntu provided MythTV Update repo can be found here

    Users on builds prior to 0.27 (eg. 0.26, 0.25) will need to either upgrade to a supported build version (see Mythbuntu Repos) or use one of the workarounds (See MythTV Wiki)

    MythTV Version   Fixed in version
    0.28 (development)2:0.28.0~master.20141013.4cb10e5-0ubuntu0mythbuntu#
    0.27.X2:0.27.4+fixes.20141015.e4f65c8-0ubuntu0mythbuntu#
    0.26.X2:0.26.2+fixes.20141022.4c4bb29-0ubuntu0mythbuntu1
    Prior to 0.26.XWILL NOT BE FIXED, please either update or see the MythTV Wiki for a workaround


    For more information on this issue, please see the writeup on the MythTV wiki. Questions can be directed to the MythTV-Users mailing list


  • Nicholas Skaggs: Sprinting in DC: Tuesday
    This week, my team and I are sprinting with many of the core app developers and other folks inside of Ubuntu Engineering. Each day I'm attempting to give you a glimpse of what's happening.

    On Tuesday I was finally able to sit down with the team and plan our week. In addition I was able to plan some of the work I had in mind with the community folks working on the core apps. Being obsessed with testing, my primary goals this week are centered around quality. Namely I want to make it easier for developers to write tests. Asking them to write tests is much easier when it's easy to do so. Fortunately, I think (hope?) all of the community core apps developers recognize the benefits to tests and thus are motivated to drive maturity into the testing story.

    I'm also keen to work on the manual testing story. The community is imperative in helping test images for not only ubuntu, but also all of it's flavors. Seriously, you should say thank you to those folks helping make sure your install of ubuntu works well. They are busy this week helping make sure utopic is as good as it can be. Rock on image testers! But the tools and process used weigh on my mind, and I'm keen to chat later in the week with the canonical QA team and get there feedback.

    During the day I attended sessions regarding changes and tweaks to the CI process. For core apps developers, errors in jenkins should be easier to replicate after these changes. CI will be moving to utilizing adt-run (autopkgtest) for there test execution (and you should too!). They will also provide the exact commands used to run the test. That means you can easily duplicate the results on the dashboard locally and fix the issues found. No more works on my box excuses!

    I also met the team responsible for the application store and gave them feedback on the application submission process. Submitting apps is already so simple, but even more cool things are happening on this front.

    The end of the evening found us shuffling into cab's for a team dinner. We had a long table of folks eating Italian food and getting to know each other better.


    After dinner, I pressured a few folks into having some dessert and ordered a sorbet for myself. After receiving no less than 4 fruit sorbets due to a misunderstanding, I began carving the fruits and sending plates of sorbet down the table. My testcase failed however when the plates all came back :-(





  • Zygmunt Krynicki: Launching a process to monitor stdout, stderr and exit code reliably
    Recently I'm fixing a rather difficult bug that deals with doing one simple task reliably. Run a program and watch (i.e. intercept and process) stdout and stderr until the process terminates.

    Doing this is surprisingly difficult and I was certainly caught in a few mistakes the first time I tried to do this. I recently posted a lengthy comment on the corresponding bug. It took me a few moments to carefully analyze and re-think the situation and how a reliable approach should work. Non the less I am only human and I certainly have made my set of mistakes.

    Below is the reproduction for my current approach. The implementation is still in progress but it seems to work (I need to implement the termination phase of non-kill-able processes and switch to fully non-blocking I/O). So far I've used epoll(7) and signalfd(7). I'm still planning to use timerfd_create(2) for the timer, perhaps with CLOCK_RTC for hard wall-clock-time limit enforcement. I'll post the full, complete examples once I'm done with this but you can look at how it mostly looks like today in the python-glibc git tree's demos/ directory.

    I'd like to ask everyone that has experience with this part of systems engineering to poke holes in my reasoning and show how this might fail and misbehave. Thanks.

    The current approach, that so far works good on all the pathological cases is to do this.
    The general idea is that we're in a I/O loop, using non-blocking I/O and a select-like mechanism to wait for wait for:
     - timeout (optional, new feature)
     - read side of the stdout pipe data
     - read side of the stdout pipe being closed
     - read side of the stderr pipe data
     - read side of the stderr pipe being closed
     - SIGCHLD being delivered with the intent to say that the process is dead
    In general we keep looping and terminate only when the set of waited things (stdout depleted, stderr depleted, process terminated) is empty. This is not always true so see below. The action that we do on each is event is obviously different:
    If the timeout has elapsed we proceed to send SIGTERM, reset the timer for shutdown period, followed by SIGQUIT and another timer reset. After that we send SIGKILL. This can fail as the process may have elevated itself beyond our capabilities. This is still undecided but perhaps, at this time, we should use an elevated process manager (see below). If we fail to terminate the process special provisions apply (see below).
    If we have data to read we just do and process that (send to log files, process, send to .record.gz). This is a point where we can optimize the process and improve reliability in event of sudden system crash. Using more modern facilities we can implement tee in kernel space which lowers processing burden on python and, in general, makes it more likely that the log files will see actual output the process made just prior to its death.
    We can also use pipes in O_DIRECT (aka packet mode) here to ensure that all writes() end up as individual records, which is the indented design of the I/O log record concept. This won't address the inherent buffering that is enabled in all programs that detect when they are redirected and no longer attached to a tty.
    Whenever one of the pipes is depleted (which may *never* happen, lesson learned) we just close our side.
    When the child dies, and this is the most important part and the actual bugfix, we do the following sequence of events:
     - if we still have stdout pipe open, read at most one PIPE_BUF. We cannot read more as the pipe may live on forever and we can just hang as we currently do. Reading one PIPE_BUF ensures that we catch the last moments of what the originally started process intended to tell us. Then we close the pipe. This will likely result in SIGPIPE in any processes that are still attached to it though we have no guarantee that it will rally kill them as that signal can be blocked.
     - if we still have stderr pipe open we follow the same logic as for stdout above.
     - we restore some signal handling that was blocked during the execution of the loop and terminate.
    There's one more trick up our sleeve and that is PR_SET_CHILD_SUBREAPER but I'll describe that in a separate bug report that deals with runaway processes. Think dbus-launch or anything that double-forks and demonizes

    If you have any comments or ideas please post them here (wherever you are reading this), on the launchpad bug report page or via email. Thanks a lot!