Broken Sets in Software Repository Evolution

Total Page:16

File Type:pdf, Size:1020Kb

Broken Sets in Software Repository Evolution Broken Sets in Software Repository Evolution Jer´ omeˆ Vouillon Roberto Di Cosmo CNRS, PPS UMR 7126, Univ Paris Diderot, Sorbonne Paris Cite´ Univ Paris Diderot, Sorbonne Paris Cite´ PPS, UMR 7126, CNRS, F-75205 [email protected] [email protected] Abstract—Modern software systems are built by composing 1 Package: tesseract-ocr components drawn from large repositories, whose size and 2 Source: tesseract (2.04-2.1) 3 Version: 2.04-2.1+b1 complexity increase at a fast pace. Software systems built with 4 Depends: libc6 (>= 2.2.5), libgcc1 (>= 1:4.1.1), components from a release of a repository should be seamlessly 5 libjpeg8 (>= 8c), libstdc++6 (>= 4.1.1), upgradeable using components from the next release. Unfortu- 6 libtiff4, zlib1g (>= 1:1.1.4), nately, users are often confronted with sets of components that 7 tesseract-ocr-eng | tesseract-ocr-language 8 were installed together, but cannot be upgraded together to the 9 Package: tesseract-ocr-eng latest version from the new repository. Identifying these broken 10 Source: tesseract-eng sets can be of great help for a quality assurance team, that could 11 Version: 3.02-2 examine and fix these issues well before they reach the end user. 12 C o n f l i c t s : tesseract-ocr (<< 3.02-2) Building on previous work on component co-installability, we show that it is possible to find these broken sets for any Fig. 1. Inter-package relationships of tesseract-ocr, an optical character two releases of a component repository, computing extremely recognition engine, and tesseract-ocr-eng, the english language pack, efficiently a concise representation of these upgrade issues, as found on 20 February 2012, in the testing suite of the Debian GNU/Linux together with informative graphical explanations. distribution. A tool implementing the algorithm presented in this paper is available as free software, and is able to process the evolution between two major releases of the Debian GNU/Linux distri- components which were co-installable in the old repository, bution in just a few seconds. These results make it possible to but become non co-installable in the new release. integrate seamlessly this analysis in a repository development process. Sets of components with this property, which we call broken sets, are particularly damaging in the evolution of a I. INTRODUCTION repository: their existence means that there may be perfectly functional deployments based on the old repository that will Component-based software architectures, maintained in a be disrupted as soon as one tries to upgrade their components distributed fashion and evolving at a very quick pace are to the version in the new repository. The configuration in nowadays commonplace, in particular in the world of free and Example I is a real world example of such a broken set: the open source software (FOSS). Components are usually made tesseract optical character recognition program, which available via a repository, and are equipped with metadata, is split in several related packages1, was perfectly functional such as dependencies and conflicts, that specify concisely the before February 20th 2012, but on that day, the introduction of contexts in which a component can or cannot be installed. the updated english language pack tesseract-ocr-eng A typical example taken from the Debian GNU/Linux made the installation of this program temporarily impossible distribution, is shown in Figure I, where we can see that for the English language. the logical language used for expressing dependencies and Broken sets need to be identified early in the evolution conflicts is quite powerful, as it allows conjunctions (symbol process, and fixed well before the release of the new ‘,’), disjunctions (symbol ‘|’) and version constraints. repository, but finding broken sets in repositories whose size Maintaining and evolving component repositories is an is in the tens of thousands of components is a daunting task: important task and requires an extensive quality assurance there may be exponentially many broken sets, and listing process: besides traditional issues concerning the bugs in the them all would be both computationally unfeasible and of no code inside each component, the quality of a large component use for a quality assurance team, which would be flooded repository rests also on how well components can be combined under the error reports. with each other, a property known as co-installability [24]. Similarly to what happens with the source code of a single In this paper, we describe a highly efficient algorithm that component, which is passed through regression tests to ensure solves the problem by finding a very small subset of the broken that one did not re-introduce issues that were fixed before [18], sets, which subsume all the others, and is close to minimal, in we are naturally led to check whether there is any set of a sense that will be made precise later on. Work performed at the IRILL centre for Free Software Research and 1Essentially, tesseract-ocr for the core engine, and Innovation (http://www.irill.org). tesseract-ocr-lang for all supported language lang We have developed a tool that implements this algorithm are co-installable in a repository R if they are all included in and finds such minimal problematic configurations on real some healthy installation I of the repository. component repositories in a few seconds; it also provides very concise explanations that allow to identify the origin of the B. Repository Transformations problem. We found several such issues in the evolution of the To identify co-installability issues in a single repository, Debian distribution using the tool. [24] introduced a set of repository transformations that al- The paper is organised as follows: Section II briefly recalls low to extract from a large repository a much smaller the basic notions about packages and dependencies, and the co-installability kernel which is equivalent as far as co- formally certified semantic preserving repository transforma- installability is concerned. The gain allowed by these transfor- tions developed in [24] which our work builds upon, and mations is impressive: starting from a Ubuntu repository con- then presents the key ideas of our approach. Section III taining 7277 packages, 31069 dependencies and 82 conflicts, presents some of the results obtained by our tool on real-world one goes down to a kernel containing only 100 elements, with GNU/Linux distributions. The technical development follows: 29 dependencies and 60 conflicts (similar gains are obtained Section IV provides a precise formalisation of all the transfor- on Debian or Mandriva repositories). A description of these mations and simplifications that can be performed to reduce transformations can be found in section 2 of [24], where they dramatically the search space for explanations; Section V are also shown correct (the proofs are certified in Coq [20]): describes in detail an algorithm that uses these results and for completeness we recall here the main steps involved. builds a set of broken sets that cover all upgrade issues, and we 1) Flattening Dependencies: The first transformation re- show in Section VI how we provide minimal explanations that places the dependency function D of a repository R = contain all the relevant information for understanding the cause (P; D; C) with a special flattened form Db with two key of these broken sets. We discuss related work in Section VII properties: first, by applying a sort of transitive closure to D, and Section VIII concludes. it directly describes all dependencies of each package, so if 1 k1 1 kn II. OVERALL APPROACH Db (π) = ffπ1; :::; π1 g; :::fπn; :::; πn gg; then the packages πj are all the packages relevant for installing package π, While the concrete details may vary from one technology i and only them. On the example repository of Figure 2a, this to the other, the core metadata found in component based amounts to adding a dependency from d to f, and one from systems always allows to express a few fundamental prop- d to g (Figure 2b). Second, since we are only interested erties: a component, called package in the following, may in co-installability, we can prune the expanded dependency depend on a combination of components, expressed as a function by removing any dependency containing a package conjunction of disjunctions of components, and a component with no conflicts. On the example repository of Figure 2a, may conflict with a combination of components, expressed this pruning phase removes the dependencies from d to e, as a conjunction. Extra properties like versioned constraints from d to g and from e to g, leading to the repository of (e.g. libc6 (>= 2.2.5) in Figure I) can be preprocessed Figure 2c. Finally, to render the repository more homogeneous out [14], so we focus on a core dependency system containing D adds a self dependency to each package with conflicts, a binary symmetric conflict relation, and a dependency func- b leading to Figure 2d. Packages d, e and f now have the same tion D(π) = ffπ1; :::; π1 g; :::; fπk; :::; πk gg that is satisfied 1 n1 1 nk dependencies, which reflects the intuition that they behave the when for each i at least one of the πi is installed. We follow j same way as far as co-installability is concerned. the notations of earlier works [14], [24], that we briefly recall. These three operations (transitive closure, pruning, and addi- A. Repositories tion of self conflicts) leave co-installability invariant (Theorem A repository is a tuple R = (P; D; C ) where P is a 6 in [24]). They are performed in a single pass, and can be finite set of packages, D : P !P(P(P)) is the dependency formally defined as follows; given a repository (P; D; C ), the function (we write P(X) for the set of subsets of X), and flattened dependency function Db is the smallest function (with C , a symmetric irreflexive relation over P, is the conflict respect to point-wise inclusion) such that: relation.
Recommended publications
  • Linux: Come E Perchх
    ÄÒÙÜ Ô ©2007 mcz 12 luglio 2008 ½º I 1. Indice II ½º Á ¾º ¿º ÈÖÞÓÒ ½ º È ÄÒÙÜ ¿ º ÔÔÖÓÓÒÑÒØÓ º ÖÒÞ ×Ó×ØÒÞÐ ÏÒÓÛ× ¾½ º ÄÒÙÜ ÕÙÐ ×ØÖÙÞÓÒ ¾ º ÄÒÙÜ ÀÖÛÖ ×ÙÔÔ ÓÖØØÓ ¾ º È Ð ÖÒÞ ØÖ ÖÓ ÓØ Ù×Ö ¿½ ½¼º ÄÒÙÜ × Ò×ØÐÐ ¿¿ ½½º ÓÑ × Ò×ØÐÐÒÓ ÔÖÓÖÑÑ ¿ ½¾º ÒÓÒ ØÖÓÚÓ ÒÐ ×ØÓ ÐÐ ×ØÖÙÞÓÒ ¿ ½¿º Ó׳ ÙÒÓ ¿ ½º ÓÑ × Ð ××ØÑ ½º ÓÑ Ð ½º Ð× Ñ ½º Ð Ñ ØÐ ¿ ½º ÐÓ ½º ÓÑ × Ò×ØÐÐ Ð ×ØÑÔÒØ ¾¼º ÓÑ ÐØØÖ¸ Ø×Ø ÐÖ III Indice ¾½º ÓÑ ÚÖ Ð ØÐÚ×ÓÒ ¿ 21.1. Televisioneanalogica . 63 21.2. Televisione digitale (terrestre o satellitare) . ....... 64 ¾¾º ÐÑØ ¾¿º Ä 23.1. Fotoritocco ............................. 67 23.2. Grafica3D.............................. 67 23.3. Disegnovettoriale-CAD . 69 23.4.Filtricoloreecalibrazionecolori . .. 69 ¾º ×ÖÚ Ð ½ 24.1.Vari.................................. 72 24.2. Navigazionedirectoriesefiles . 73 24.3. CopiaCD .............................. 74 24.4. Editaretesto............................. 74 24.5.RPM ................................. 75 ¾º ×ÑÔ Ô ´ËÐе 25.1.Montareundiscoounapenna . 77 25.2. Trovareunfilenelsistema . 79 25.3.Vedereilcontenutodiunfile . 79 25.4.Alias ................................. 80 ¾º × ÚÓÐ×× ÔÖÓÖÑÑÖ ½ ¾º ÖÓÛ×Ö¸ ÑÐ ººº ¿ ¾º ÖÛÐРгÒØÚÖÙ× Ð ÑØØÑÓ ¾º ÄÒÙÜ ½ ¿¼º ÓÑ ØÖÓÚÖ ÙØÓ ÖÖÑÒØ ¿ ¿½º Ð Ø×ØÙÐ Ô Ö Ð ×ØÓÔ ÄÒÙÜ ¿¾º ´ÃµÍÙÒØÙ¸ ÙÒ ×ØÖÙÞÓÒ ÑÓÐØÓ ÑØ ¿¿º ËÙÜ ÙÒ³ÓØØÑ ×ØÖÙÞÓÒ ÄÒÙÜ ½¼½ ¿º Á Ó Ò ÄÒÙÜ ½¼ ¿º ÃÓÒÕÙÖÓÖ¸ ÕÙ×ØÓ ½¼ ¿º ÃÓÒÕÙÖÓÖ¸ Ñ ØÒØÓ Ô Ö ½½¿ 36.1.Unaprimaocchiata . .114 36.2.ImenudiKonqueror . .115 36.3.Configurazione . .116 IV Indice 36.4.Alcuniesempidiviste . 116 36.5.Iservizidimenu(ServiceMenu) . 119 ¿º ÃÓÒÕÙÖÓÖ Ø ½¾¿ ¿º à ÙÒ ÖÖÒØ ½¾ ¿º à ÙÒ ÐÙ×ÓÒ ½¿½ ¼º ÓÒÖÓÒØÓ Ò×ØÐÐÞÓÒ ÏÒÓÛ×È ÃÍÙÒØÙ º½¼ ½¿¿ 40.1.
    [Show full text]
  • Broken Sets in Software Repository Evolution
    Broken Sets in Software Repository Evolution Jer´ omeˆ Vouillon Roberto Di Cosmo CNRS, PPS UMR 7126, Univ Paris Diderot, Sorbonne Paris Cite´ Univ Paris Diderot, Sorbonne Paris Cite´ PPS, UMR 7126, CNRS, F-75205 [email protected] [email protected] Abstract—Modern software systems are built by composing 1 Package: tesseract-ocr components drawn from large repositories, whose size and 2 Source: tesseract (2.04-2.1) 3 Version: 2.04-2.1+b1 complexity increase at a fast pace. Software systems built with 4 Depends: libc6 (>= 2.2.5), libgcc1 (>= 1:4.1.1), components from a release of a repository should be seamlessly 5 libjpeg8 (>= 8c), libstdc++6 (>= 4.1.1), upgradeable using components from the next release. Unfortu- 6 libtiff4, zlib1g (>= 1:1.1.4), nately, users are often confronted with sets of components that 7 tesseract-ocr-eng | tesseract-ocr-language 8 were installed together, but cannot be upgraded together to the 9 Package: tesseract-ocr-eng latest version from the new repository. Identifying these broken 10 Source: tesseract-eng sets can be of great help for a quality assurance team, that could 11 Version: 3.02-2 examine and fix these issues well before they reach the end user. 12 C o n f l i c t s : tesseract-ocr (<< 3.02-2) Building on previous work on component co-installability, we show that it is possible to find these broken sets for any Fig. 1. Inter-package relationships of tesseract-ocr, an optical character two releases of a component repository, computing extremely recognition engine, and tesseract-ocr-eng, the english language pack, efficiently a concise representation of these upgrade issues, as found on 20 February 2012, in the testing suite of the Debian GNU/Linux together with informative graphical explanations.
    [Show full text]
  • Pipenightdreams Osgcal-Doc Mumudvb Mpg123-Alsa Tbb
    pipenightdreams osgcal-doc mumudvb mpg123-alsa tbb-examples libgammu4-dbg gcc-4.1-doc snort-rules-default davical cutmp3 libevolution5.0-cil aspell-am python-gobject-doc openoffice.org-l10n-mn libc6-xen xserver-xorg trophy-data t38modem pioneers-console libnb-platform10-java libgtkglext1-ruby libboost-wave1.39-dev drgenius bfbtester libchromexvmcpro1 isdnutils-xtools ubuntuone-client openoffice.org2-math openoffice.org-l10n-lt lsb-cxx-ia32 kdeartwork-emoticons-kde4 wmpuzzle trafshow python-plplot lx-gdb link-monitor-applet libscm-dev liblog-agent-logger-perl libccrtp-doc libclass-throwable-perl kde-i18n-csb jack-jconv hamradio-menus coinor-libvol-doc msx-emulator bitbake nabi language-pack-gnome-zh libpaperg popularity-contest xracer-tools xfont-nexus opendrim-lmp-baseserver libvorbisfile-ruby liblinebreak-doc libgfcui-2.0-0c2a-dbg libblacs-mpi-dev dict-freedict-spa-eng blender-ogrexml aspell-da x11-apps openoffice.org-l10n-lv openoffice.org-l10n-nl pnmtopng libodbcinstq1 libhsqldb-java-doc libmono-addins-gui0.2-cil sg3-utils linux-backports-modules-alsa-2.6.31-19-generic yorick-yeti-gsl python-pymssql plasma-widget-cpuload mcpp gpsim-lcd cl-csv libhtml-clean-perl asterisk-dbg apt-dater-dbg libgnome-mag1-dev language-pack-gnome-yo python-crypto svn-autoreleasedeb sugar-terminal-activity mii-diag maria-doc libplexus-component-api-java-doc libhugs-hgl-bundled libchipcard-libgwenhywfar47-plugins libghc6-random-dev freefem3d ezmlm cakephp-scripts aspell-ar ara-byte not+sparc openoffice.org-l10n-nn linux-backports-modules-karmic-generic-pae
    [Show full text]
  • Das Handbuch Zu Krusader Das Handbuch Zu Krusader
    Das Handbuch zu Krusader Das Handbuch zu Krusader 2 Inhaltsverzeichnis 1 Einführung 14 1.1 Paketbeschreibung . 14 1.2 Willkommen zu Krusader! . 14 2 Funktionen 17 3 Die Benutzerschnittstelle 21 3.1 Benutzerschnittstelle mit zwei Dateifenstern . 21 3.2 Das Hauptfenster von Krusader . 21 3.3 Werkzeugleisten . 21 3.3.1 Haupt-Werkzeugleiste . 21 3.3.2 Aufgaben-Werkzeugleiste . 23 3.3.3 Aktionen-Werkzeugleiste . 23 3.3.4 Adressleiste . 23 3.3.5 Dateifenster-Werkzeugleiste . 24 3.4 Dateifenster . 24 3.4.1 Dateifenster . 24 3.4.2 Seitenleiste . 26 3.4.3 Ordnerverlauf . 27 3.5 Befehlszeile / Terminal-Emulator . 27 3.5.1 Befehlszeile . 27 3.5.2 Terminal-Emulator . 27 3.6 Funktionstasten (F1-F12) . 28 3.7 Unterfenster für Ordner . 28 3.8 Knöpfe . 29 4 Grundlegende Funktionen 30 4.1 Bedienelemente . 30 4.1.1 Allgemein . 30 4.1.2 Navigation . 30 4.1.3 Auswahl . 31 4.1.4 Befehle ausführen . 31 4.1.5 Schnellsuche . 32 Das Handbuch zu Krusader 4.1.6 Schnellfilter . 32 4.1.7 Schnellauswahl . 32 4.1.8 Kontextmenü . 32 4.2 Grundlegende Dateiverwaltung . 33 4.2.1 Dateien ausführen . 33 4.2.2 Kopieren und Verschieben . 33 4.2.3 Warteschlangenverwaltung . 34 4.2.4 Löschen - in den Plasma-Papierkorb verschieben . 34 4.2.5 Dateien in den Reißwolf werfen . 34 4.2.6 Dateien umbenennen, Ordner erstellen und Verknüpfungen verwalten . 34 4.2.7 Dateien anzeigen und bearbeiten . 35 4.3 Archiv-Verwaltung . 35 4.3.1 Archive durchsuchen . 35 4.3.2 Dateien entpacken . 35 4.3.3 Dateien packen .
    [Show full text]
  • Upgrade Issues
    Upgrade issues Graph of new conflicts libsiloh5-0 libhdf5-lam-1.8.4 (x 3) xul-ext-dispmua (x 2) liboss4-salsa-asound2 (x 2) why sysklogd console-cyrillic (x 9) libxqilla-dev libxerces-c2-dev iceape xul-ext-adblock-plus gnat-4.4 pcscada-dbg Explanations of conflicts pcscada-dbg libpcscada2-dev gnat-4.6 gnat-4.4 Similar to gnat-4.4: libpolyorb1-dev libapq-postgresql1-dev adacontrol libxmlada3.2-dev libapq1-dev libaws-bin libtexttools2-dev libpolyorb-dbg libnarval1-dev libgnat-4.4-dbg libapq-dbg libncursesada1-dev libtemplates-parser11.5-dev asis-programs libgnadeodbc1-dev libalog-base-dbg liblog4ada1-dev libgnomeada2.14.2-dbg libgnomeada2.14.2-dev adabrowse libgnadecommon1-dev libgnatvsn4.4-dbg libgnatvsn4.4-dev libflorist2009-dev libopentoken2-dev libgnadesqlite3-1-dev libnarval-dbg libalog1-full-dev adacgi0 libalog0.3-base libasis2008-dbg libxmlezout1-dev libasis2008-dev libgnatvsn-dev libalog0.3-full libaws2.7-dev libgmpada2-dev libgtkada2.14.2-dbg libgtkada2.14.2-dev libasis2008 ghdl libgnatprj-dev gnat libgnatprj4.4-dbg libgnatprj4.4-dev libaunit1-dev libadasockets3-dev libalog1-base-dev libapq-postgresql-dbg libalog-full-dbg Weight: 5 Problematic packages: pcscada-dbg hostapd initscripts sysklogd Weight: 993 Problematic packages: hostapd | initscripts initscripts sysklogd Similar to initscripts: conglomerate libnet-akamai-perl erlang-base screenlets xlbiff plasma-widget-yawp-dbg fso-config- general gforge-mta-courier libnet-jifty-perl bind9 libplack-middleware-session-perl libmail-listdetector-perl masqmail libcomedi0 taxbird ukopp
    [Show full text]
  • Upgrade Issues
    Upgrade issues Graph of new conflicts libboost1.46-dev libboost-random-dev (x 18) libboost-mpi-python1.46.1 libboost-mpi-python-dev libwoodstox-java (x 7) liboss4-salsa-asound2 (x 2) libboost1.46-doc libboost-doc libgnutls28-dev libepc-dev libabiword-2.9-dev libcurl4-openssl-dev (x 5) python-cjson (x 2) nova-compute-kvm (x 4) printer-driver-all-enforce lprng (x 2) mdbtools-dev libiodbc2 tesseract-ocr-deu (x 8) tesseract-ocr libjpeg62-dev libcvaux-dev (x 2) ldtp python-pyatspi Explanations of conflicts ldtp python-pyatspi2 python-pyatspi Similar to ldtp: python-ldtp Weight: 29 Problematic packages: ldtp libboost-mpi-python-dev libboost-mpi-python1.48-dev libboost-mpi-python1.48.0 libboost-mpi-python1.46.1 Similar to libboost-mpi-python1.46.1: libboost1.46-all-dev libboost-mpi-python1.46-dev Similar to libboost-mpi-python-dev: libboost-all-dev Weight: 149 Problematic packages: libboost-mpi-python-dev tesseract-ocr-vie tesseract-ocr Similar to tesseract-ocr: slimrat tesseract-ocr-dev slimrat-nox Weight: 61 Problematic packages: tesseract-ocr-vie tesseract-ocr-spa tesseract-ocr Similar to tesseract-ocr: slimrat tesseract-ocr-dev slimrat-nox Weight: 295 Problematic packages: tesseract-ocr-spa tesseract-ocr-por tesseract-ocr Similar to tesseract-ocr: slimrat tesseract-ocr-dev slimrat-nox Weight: 133 Problematic packages: tesseract-ocr-por tesseract-ocr-nld tesseract-ocr Similar to tesseract-ocr: slimrat tesseract-ocr-dev slimrat-nox Weight: 112 Problematic packages: tesseract-ocr-nld tesseract-ocr-ita tesseract-ocr Similar to tesseract-ocr:
    [Show full text]
  • An Open Source Javascript Library for Health Data Visualization Andres Ledesma* , Mohammed Al-Musawi and Hannu Nieminen
    Ledesma et al. BMC Medical Informatics and Decision Making (2016) 16:38 DOI 10.1186/s12911-016-0275-6 SOFTWARE Open Access Health figures: an open source JavaScript library for health data visualization Andres Ledesma* , Mohammed Al-Musawi and Hannu Nieminen Abstract Background: The way we look at data has a great impact on how we can understand it, particularly when the data is related to health and wellness. Due to the increased use of self-tracking devices and the ongoing shift towards preventive medicine, better understanding of our health data is an important part of improving the general welfare of the citizens. Electronic Health Records, self-tracking devices and mobile applications provide a rich variety of data but it often becomes difficult to understand. We implemented the hFigures library inspired on the hGraph visualization with additional improvements. The purpose of the library is to provide a visual representation of the evolution of health measurements in a complete and useful manner. Results: We researched the usefulness and usability of the library by building an application for health data visualization in a health coaching program. We performed a user evaluation with Heuristic Evaluation, Controlled User Testing and Usability Questionnaires. In the Heuristics Evaluation the average response was 6.3 out of 7 points and the Cognitive Walkthrough done by usability experts indicated no design or mismatch errors. In the CSUQ usability test the system obtained an average score of 6.13 out of 7, and in the ASQ usability test the overall satisfaction score was 6.64 out of 7. Conclusions: We developed hFigures, an open source library for visualizing a complete, accurate and normalized graphical representation of health data.
    [Show full text]
  • A Different Approach to Hard Drive Visualization for Mac
    AN ABSTRACT OF THE THESIS OF John Batch for the degree of Honors Baccalaureate of Science in Electrical and Computer Engineering and Honors Baccalaureate of Science in Computer Science presented on May 20, 2008. Title: DiskGrapher: A Different Approach to Hard Drive Visualization for Mac OS X. Abstract approved: __________________________________________________ Timothy A. Budd DiskGrapher is a graphical visualization tool designed to help users better manage the space on their hard drives. The main goal of DiskGrapher is to provide a different visualization technique to display information, with the goal of providing a more intuitive understanding of the directory structure of the disk than the Treemap visualization technique, commonly found on hard drive visualization applications. By providing the user with better information about the directory structure of the disk, and presenting the information in a manner which the user is more likely to be familiar with, the program will help users to better manage used disk space. This thesis describes the features of many of the competing programs in hard drive visualization, as well as giving a detailed look at the structure and development of the DiskGrapher. Key Words: DiskGrapher, Disk Management, Visualization, Computer Science, Computer Engineering Email Address: [email protected] ©Copyright by John Batch May 20, 2008 All Rights Reserved DiskGrapher: A Different Approach to Hard Drive Visualization for Mac OS X By John Batch A PROJECT Submitted to Oregon State University University Honors College In partial fulfillment of the requirement for the degree of Honors Baccalaureate of Science in Electrical and Computer Engineering Honors Baccalaureate of Science in Computer Science Presented May 20, 2008 Commencement June 2008 Honors Baccalaureate of Science in Electrical and Computer Engineering and Honors Baccalaureate of Computer Science project of John Batch presented on May 20, 2008.
    [Show full text]
  • ITC Lab Software List
    ITC Lab Software List This list contains the software available on ITC Lab machines as of Spring 2017. It is categorized by operating system; a brief description of the software is available as well. Table of Contents Windows-only ................................................................................................................................. 2 Linux-only ........................................................................................................................................ 6 Both ............................................................................................................................................... 11 1 Windows-only 7-Zip: file archiver ActivePerl: commercial version of the Perl scripting language ActiveTCL: TCL distribution Adobe Acrobat Reader: PDF reading and editing software Adobe Creative Suite: graphic art, web, video, and document design programs • Animate • Audition • Bridge • Dreamweaver • Edge Animate • Fuse • Illustrator • InCopy • InDesign • Media Encoder • Muse • Photoshop • Prelude • Premiere • SpeedGrade ANSYS: engineering simulation software ArcGIS: mapping software Arena: discrete event simulation Autocad: CAD and drafting software Avogadro: molecular visualization/editor CDFplayer: software for Computable Document Format files ChemCAD: chemical process simulator • ChemDraw 2 Chimera: molecular visualization CMGL: oil/gas reservoir simulation software Cygwin: approximate Linux behavior/functionality on Windows deltaEC: simulation and design environment for thermoacoustic
    [Show full text]
  • License Information GNU General Public License
    ################################################################# ################################################################# ####### ####### ####### Open Icon Library ####### ####### License File ####### ####### ####### ################################################################# ################################################################# Table of Contents: * Description * Sources * Licenses * File List * Icons from Wikicommons * Icons under Creative Commons licenses * Icons under GPL and LGPL licenses * Icons under Public Domain * Icons under MIT license * Icons under BSD license * Icons from app-install-data ################################################################# ## Description: The Open Icon Library contains icons from various sources. This file list the license and source of each file in this package. In the rare occasion where there is two files with the same name, you will have to check the developers package. If you wish to use these icons in your project, include this file in your projects documentation. ################################################################# ## Sources: AEM Pictorial Database (aem) link: http://www.aem.org/Technical/PictorialDatabase/index.asp license: PD license link: http://en.wikipedia.org/wiki/Public_domain format: eps -> svg, png subdirectory: open_icon_library-devel/icons/aem app-install-data (app-install) link: http://packages.debian.org/lenny/app-install-data licenses: Various, see docs/AUTHORS_app-install license link: see docs/AUTHORS_app-install format: xpm, svg,
    [Show full text]
  • The Krusader Handbook the Krusader Handbook
    The Krusader Handbook The Krusader Handbook 2 Contents 1 Introduction 13 1.1 Package description . 13 1.2 Welcome to Krusader! . 13 2 Features 16 3 User Interface 20 3.1 OFM User Interface . 20 3.2 Krusader Main Window . 20 3.3 Toolbars . 20 3.3.1 Main Toolbar . 20 3.3.2 Job Toolbar . 22 3.3.3 Actions Toolbar . 22 3.3.4 Location Toolbar . 22 3.3.5 Panel Toolbar . 22 3.4 Panels . 23 3.4.1 List Panel . 23 3.4.2 Sidebar . 24 3.4.3 Folder History . 25 3.5 Command Line / Terminal Emulator . 25 3.5.1 Command Line . 25 3.5.2 Terminal Emulator . 26 3.6 Function (FN) Keys Bar . 26 3.7 Folder Tabs . 27 3.8 Buttons . 27 4 Basic Functions 28 4.1 Controls . 28 4.1.1 General . 28 4.1.2 Moving Around . 28 4.1.3 Selecting . 29 4.1.4 Executing Commands . 29 4.1.5 Quick search . 30 4.1.6 Quick filter . 30 The Krusader Handbook 4.1.7 Quick select . 30 4.1.8 Context Menu . 30 4.2 Basic File Management . 31 4.2.1 Executing Files . 31 4.2.2 Copying and Moving . 31 4.2.3 Queue manager . 32 4.2.4 Deleting - move to Plasma Trash . 32 4.2.5 Shred Files . 32 4.2.6 Renaming Files, Creating Directories and Link Handling . 32 4.2.7 Viewing and Editing files . 32 4.3 Archive Handling . 33 4.3.1 Browsing Archives . 33 4.3.2 Unpack Files .
    [Show full text]
  • The Filelight Handbook
    The Filelight Handbook Max Howell Martin Sandsmark The Filelight Handbook 2 Contents 1 Introduction 5 2 Configuring Filelight6 2.1 Scanning . .6 2.2 Appearance . .7 3 Using Filelight 8 3.1 Starting Filelight . .8 3.1.1 From the Application Launcher . .8 3.1.2 From the Command Line . .8 3.2 Scanning folders . .8 3.3 Exploring Filemaps . .8 4 Menu and Command Reference 10 5 Credits and License 11 5.1 Filelight . 11 5.2 Documentation . 11 Abstract Filelight creates an interactive map of concentric segmented-rings that helps visualize disk usage on your computer. The Filelight Handbook Chapter 1 Introduction Filelight allows you to quickly understand exactly where your diskspace is being used by graphi- cally representing your file system as a set of concentric segmented-rings. You can use it to locate hotspots of disk usage and then manipulate those areas using Dolphin or Konqueror. 5 The Filelight Handbook Chapter 2 Configuring Filelight The Filelight settings dialog has two tabs for configuring the Filelight options. The two tabs are Scanning and Appearance. Below is a description of the settings tabs. The Filelight settings dialog can be found by clicking Settings ! Configure Filelight. 2.1 Scanning The scanning tab allows you to configure how Filelight scans folders. The Do not scan these folders is used to exclude certain folders from your scan. This option is very useful for skipping folders that you may not have permissions to read, or folders that are part of a virtual filesystem, such as /proc. To add a folder to the list, click the Add..
    [Show full text]