Subcategories on Hackage

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

Subcategories on Hackage

Tillmann Vogt-2
Hi,

There are some categories on Hackage that have become so large that it
is hard to find something, i.e. Data(414 packages) and Graphics (191).
Thats why I suggest to use subcategories separated from the category
with a dot. To show that this makes sense I made subcategories for
graphics libraries at the end of this email.
Whatever happens to hackage2 this would be an immediate improvement.

How
------
I would volunteer for the manual categorization and let the community
look over it.
I could upload the changes with a script but the version number has to
increase even if only the category has changed. I also don't want to be
responsible for a massive spike in the upload statistics.
Shouldn't the cabal file be excluded from the versioning policy? => It
is allowed to upload a library with the same version number if only the
cabal file has changed. One should write a notifiaction mail to all
owners to reply if they don't agree. Then after a week executing the
script that applies the changes.


Categories for Graphics:

Graphics.2d
    bacteria program: braindead utility to compose Xinerama backgrounds
    barchart library and program: Creating Bar Charts in Haskell
    chalkboard library and programs: Combinators for building and
processing 2D images.
    chalkboard-viewer library: OpenGL based viewer for chalkboard
rendered images.
    Chart library: A library for generating 2D Charts and Plots
    dia-base library: An EDSL for teaching Haskell with diagrams - data
types
    dia-functions library: An EDSL for teaching Haskell with diagrams -
functions
    diagrams library: Embedded domain-specific language for declarative
vector graphics
    diagrams-cairo library: Cairo backend for diagrams drawing EDSL
    diagrams-core library: Core libraries for diagrams EDSL
    diagrams-lib library: Embedded domain-specific language for
declarative graphics
    explore program: Experimental Plot data Reconstructor
    funcmp library: Functional MetaPost
    gloss library: Painless 2D vector graphics, animations and simulations.
    gloss-examples programs: Examples using the gloss library
    GoogleChart library: Generate web-based charts using the Google
Chart API
    graphics-drawingcombinators library: A functional interface to 2D
drawing in OpenGL
    haha library and program: A simple library for creating animated
ascii art on ANSI terminals.
    HDRUtils library: Utilities for reading, manipulating, and writing
HDR images
    hevolisa program: Genetic Mona Lisa problem in Haskell
    hevolisa-dph program: Genetic Mona Lisa problem in Haskell - using
Data Parallel Haskell
    Hieroglyph library: Purely functional 2D graphics for visualization.
    HPlot library and program: A minimal monadic PLplot interface for
Haskell
    hs-captcha library: Generate images suitable for use as CAPTCHAs in
online web-form security.
    hs-gchart library: Haskell wrapper for the Google Chart API
    hsparklines library: Sparklines for Haskell
    internetmarke program: Shell command for constructing custom stamps
for German Post
    plot library: A plotting library, exportable as eps/pdf/svg/png or
renderable with gtk
    plot-gtk library: GTK plots and interaction with GHCi
    printxosd program: Simple tool to display some text on an on-screen
display
    scaleimage program: Scale an image to a new geometry
    testpattern program: Display a monitor test pattern
    wumpus-basic library: Basic objects and system code built on
Wumpus-Core.
    wumpus-core library: Pure Haskell PostScript and SVG generation.
    wumpus-drawing library: High-level drawing objects built on
Wumpus-Basic.
    wumpus-microprint library: Microprints - "greek-text" pictures.
    wumpus-tree library: Drawing trees
    zsh-battery program: Ascii bars representing battery status

Graphics.3d
    Attrac program: Visualisation of Strange Attractors in 3-Dimensions
    cal3d library: Haskell binding to the Cal3D animation library.
    cal3d-examples programs: Examples for the Cal3d animation library.
    cal3d-opengl library: OpenGL rendering for the Cal3D animation library
    FieldTrip library: Functional 3D
    gnuplot library and program: 2D and 3D plots using gnuplot
    HGL library: A simple graphics library based on X11 or Win32
    hgl-example program: Various animations generated using HGL
    IcoGrid library: Library for generating grids of hexagons and
pentagons mapped to a sphere.
    nymphaea program: An interactive GUI for manipulating L-systems
    reactive-fieldtrip library: Connect Reactive and FieldTrip
    reactive-glut library: Connects Reactive and GLUT

Graphics.Fractal
    fractal program: Draw Newton, Julia and Mandelbrot fractals
    gmndl program: Mandelbrot Set explorer using GTK
    hfractal program: OpenGL fractal renderer
    mandulia program: A zooming visualisation of the Mandelbrot Set as
many Julia Sets.

Graphics.Raytracing
    glintcollider program: A simple ray tracer in an early stage of
development.
    glome-hs library and program: ray tracer
    GlomeTrace library: Ray Tracing Library
    GlomeVec library: Simple 3D vector library
    HRay program: Haskell raytracer
    jort program: JP's own ray tracer

Graphics.Layout
    graph-rewriting-layout library: Force-directed node placement
intended for incremental graph drawing
    pango library: Binding to the Pango text rendering engine.

Graphics.Algorithm
    triangulation library: triangulation of polygons
    splines library: B-Splines, other splines, and NURBS.

Graphics.RasterFormats
    AC-PPM library: Trivial package for writing PPM images.
    bitmap library: A library for handling and manipulating bitmaps.
    bitmap-opengl library: OpenGL support for Data.Bitmap.
    exif library: A Haskell binding to a subset of libexif
    fig library: Manipulation of FIG files
    graphicsFormats library: Classes for renderable objects.
    hsmagick library: FFI bindings for the GraphicsMagick library
    Imlib library
    jpeg library: A library for decoding JPEG files written in pure Haskell
    pgm library: Pure Haskell implementation of PGM image format
    SDL-image library: Binding to libSDL_image
    stb-image library: A wrapper around Sean Barrett's JPEG/PNG decoder
    tga library: Reading and writing of tga image files

Graphics.VectorFormats
    cairo library: Binding to the Cairo library.
    craftwerk library and programs: 2D graphics library with integrated
TikZ output.
    craftwerk-cairo library: Cairo backend for Craftwerk.
    craftwerk-gtk library and program: Gtk UI for Craftwerk.
    HPDF library: Generation of PDF documents
    hps library: Haskell Postscript
    hps-cairo library: Cairo rendering for the haskell postscript library
    HsHaruPDF library: Haskell binding to libharu
(http://libharu.sourceforge.net/)
    poppler library: Binding to the Poppler.
    svgcairo library: Binding to the libsvg-cairo library.
    SVGPath library: Parsing the path command from SVG
    svgutils library and program: Helper functions for dealing with SVG
files

Graphics.3dFormats
    collada-output library and program: Generate animated 3d objects in
COLLADA
    collada-types library: data exchange between graphic applications
    graphics-formats-collada library: Load 3D geometry in the COLLADA format
    obj library: Reads and writes obj models.

Graphics.Engine  (OpenGL and libraries that make it easier to use OpenGL)
    GLURaw library: A raw binding for the OpenGL graphics system
    GLUT library: A binding for the OpenGL Utility Toolkit
    GLFW library: A Haskell binding for GLFW
    GLFW-b library: GLFW bindings
    GLFW-b-demo program: GLFW-b test\/example\/demo
    GLFW-OGL library: A binding for GLFW (OGL)
    GPipe library: A functional graphics API for programmable GPUs
    GPipe-Collada library: Load GPipe meshes from Collada files
    GPipe-Examples programs: Examples for the GPipes package
    GPipe-TextureLoad library: Load GPipe textures from filesystem
    hogre library: Haskell binding to a subset of OGRE
    hogre-examples programs: Examples for using Hogre.
    haskgame library: Haskell game library.
    IrrHaskell library: Haskell FRP binding to the Irrlicht game engine.
    lambdacube-bullet program: Example for combining LambdaCube and Bullet
    lambdacube-engine library: 3D rendering engine entirely written in
Haskell
    lambdacube-examples programs: Examples for LambdaCube
    nehe-tuts programs: Port of the NeHe OpenGL tutorials to Haskell.
    OGL library: A context aware binding for the OpenGL graphics system
    OpenGL library: A binding for the OpenGL graphics system
    OpenGLCheck library: Quickcheck instances for various data structures.
    OpenGLRaw library: A raw binding for the OpenGL graphics system
    OpenGLRaw21 library: The intersection of OpenGL 2.1 and OpenGL 3.1 Core
    rsagl library: The RogueStar Animation and Graphics Library
    scenegraph library: Scene Graph

Graphics.Fonts
    font-opengl-basic4x6 library and program: Basic4x6 font for OpenGL
    freetype2 library and program: Haskell binding for FreeType 2 library
    FTGL library: Portable TrueType font rendering for OpenGL using the
Freetype2 library
    SDL-ttf library: Binding to libSDL_ttf
    SFont library: SFont SDL Bitmap Fonts
    stb-truetype library: A wrapper around Sean Barrett's TrueType
rasterizer library.
    SVGFonts library and program: Fonts from the SVG-Font format

Graphics.OSspecific
    GLHUI library: Open OpenGL context windows in X11 with libX11
    ige-mac-integration library: Bindings for the Gtk/OS X integration
library.
    minimung program: Shows how to run grabber on Mac OS X
    Win32 library: A binding to part of the Win32 library
    X11 library: A binding to the X11 graphics library
    X11-extras library: Missing bindings to the X11 graphics library
    X11-rm library: A binding to the resource management functions
missing from X11.
    X11-xdamage library: A binding to the Xdamage X11 extension library
    X11-xfixes library: A binding to the Xfixes X11 extension library
    X11-xft library: Bindings to the Xft, X Free Type interface library,
and some Xrender parts
    x11-xim library: A binding to the xim of X11 graphics library
    X11-xshape library: A binding to the Xshape X11 extension library
    Xauth library: A binding to the X11 authentication library
    xhb library: X Haskell Bindings
    xosd library: A binding to the X on-screen display

Graphics.UserInterfaces
    glade library: Binding to the glade library.
    gtk library: Binding to the Gtk+ graphical user interface library.
    gtk-serialized-event library: GTK+ Serialized event.
    gtkglext library: Binding to the GTK+ OpenGL Extension
    gtkimageview library: Binding to the GtkImageView library.
    gtksourceview2 library: Binding to the GtkSourceView library.
    lui library: Purely FunctionaL User Interface
    soegtk library: GUI functions as used in the book "The Haskell
School of Expression".

Graphics.Vector
    AC-Vector library: Efficient geometric vectors and transformations.
    AC-Vector-Fancy library: Fancy type-system stuff for AC-Vector
    Vec-OpenGLRaw library: Instances and functions to interoperate Vec
and OpenGL.
    Vec-Transform library: Extends the Vec package with some 4x4
transform matrices
    vect library: A low-dimensional linear algebra library, tailored to
computer graphics.
    vect-opengl library: OpenGL support for the `vect' low-dimensional
linear algebra library.

Graphics.Visualization
    graphviz library and program: Graphviz bindings for Haskell.
    hubigraph library: A haskell wrap for Ubigraph
    splot program: A tool for visualizing the lifecycle of many
concurrent multi-staged processes.
    timeplot program: A tool for visualizing time series from log files.

Games
    HTicTacToe program: An SDL tic-tac-toe game.

Graphics (not subcategorized yet)
    AC-Colour library: Efficient RGB colour types.
    AC-EasyRaster-GTK library: GTK+ pixel plotting.
    assimp library: The Assimp asset import library
    Chitra program: A platform independent mechanism to render graphics
using vnc.
    colour library: A model for human colour/color perception
    CV library: OpenCV based machine vision library
    cv-combinators library and programs: Functional Combinators for
Computer Vision
    derivation-trees library: Typeset Derivation Trees via MetaPost
    gd library: A Haskell binding to a subset of the GD graphics library
    ghci-diagrams library: Display simple diagrams from ghci
    graph-rewriting-gl library: OpenGL interface for interactive port
graph rewriting
    HOpenCV library and program: A binding for the OpenCV computer
vision library
    IFS library and program: Iterated Function System generation for Haskell
    Noise library: A Haskell coherent noise generator based on libnoise
    ObjectIO library
    OpenCLRaw library: The OpenCL Standard for heterogenous
data-parallel computing
    OpenVG library: OpenVG (ShivaVG-0.2.1) binding
    OpenVGRaw library: Raw binding to OpenVG (ShivaVG-0.2.1 implementation).
    probability library: Probabilistic Functional Programming
    SGdemo program: An example of using the SG and OpenGL libraries
    SDL library: Binding to libSDL
    SDL-gfx library: Binding to libSDL_gfx
    SDL-mixer library: Binding to libSDL_mixer
    SDL-mpeg library: Binding to the SMPEG library
    smallpt-hs program: A Haskell port of the smallpt path tracer.
    Sprig library: Binding to Sprig
    treemap-html library: Generates HTML for Data.Tree as TreeMap
    treemap-html-tools library and programs: Treemap related commands
for producing foldable TreeMap HTML.
    vte library: Binding to the VTE library.
    webkit library: Binding to the Webkit library.
    wordcloud library: Library for generating word/tag clouds.

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Subcategories on Hackage

Vo Minh Thu
2011/6/4 Tillmann Vogt <[hidden email]>:

> Hi,
>
> There are some categories on Hackage that have become so large that it is
> hard to find something, i.e. Data(414 packages) and Graphics (191). Thats
> why I suggest to use subcategories separated from the category with a dot.
> To show that this makes sense I made subcategories for graphics libraries at
> the end of this email.
> Whatever happens to hackage2 this would be an immediate improvement.
>
> How
> ------
> I would volunteer for the manual categorization and let the community look
> over it.
> I could upload the changes with a script but the version number has to
> increase even if only the category has changed. I also don't want to be
> responsible for a massive spike in the upload statistics.
> Shouldn't the cabal file be excluded from the versioning policy? => It is
> allowed to upload a library with the same version number if only the cabal
> file has changed. One should write a notifiaction mail to all owners to
> reply if they don't agree. Then after a week executing the script that
> applies the changes.
>
> [snip]

Hi,

I would simply prefer tags.

Actually, there is a problem that becomes even worse in your proposal:
packages appearing in multiple categories, and packages not appearing
in some expected category.

A simple example in your proposed categories: HDRUtils library: should
it be in 2d, RasterFormats, or maybe in 2dFormats, ... with tags, 2d,
raster, format, can be used, but also hdr, image, etc.

I don't remember what was proposed for hackage 2.

Cheers,
Thu

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Subcategories on Hackage

Yves Parès
Why not hierarchical tags? (Tags organized in directories, well, basically, tags with slashes or dots)
This is the most flexible IMHO.

2011/6/4 Vo Minh Thu <[hidden email]>
2011/6/4 Tillmann Vogt <[hidden email]>:
> Hi,
>
> There are some categories on Hackage that have become so large that it is
> hard to find something, i.e. Data(414 packages) and Graphics (191). Thats
> why I suggest to use subcategories separated from the category with a dot.
> To show that this makes sense I made subcategories for graphics libraries at
> the end of this email.
> Whatever happens to hackage2 this would be an immediate improvement.
>
> How
> ------
> I would volunteer for the manual categorization and let the community look
> over it.
> I could upload the changes with a script but the version number has to
> increase even if only the category has changed. I also don't want to be
> responsible for a massive spike in the upload statistics.
> Shouldn't the cabal file be excluded from the versioning policy? => It is
> allowed to upload a library with the same version number if only the cabal
> file has changed. One should write a notifiaction mail to all owners to
> reply if they don't agree. Then after a week executing the script that
> applies the changes.
>
> [snip]

Hi,

I would simply prefer tags.

Actually, there is a problem that becomes even worse in your proposal:
packages appearing in multiple categories, and packages not appearing
in some expected category.

A simple example in your proposed categories: HDRUtils library: should
it be in 2d, RasterFormats, or maybe in 2dFormats, ... with tags, 2d,
raster, format, can be used, but also hdr, image, etc.

I don't remember what was proposed for hackage 2.

Cheers,
Thu

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Subcategories on Hackage

Tillmann Vogt-2
In reply to this post by Vo Minh Thu
Am 04.06.2011 11:08, schrieb Vo Minh Thu:

> 2011/6/4 Tillmann Vogt<[hidden email]>:
>> Hi,
>>
>> There are some categories on Hackage that have become so large that it is
>> hard to find something, i.e. Data(414 packages) and Graphics (191). Thats
>> why I suggest to use subcategories separated from the category with a dot.
>> To show that this makes sense I made subcategories for graphics libraries at
>> the end of this email.
>> Whatever happens to hackage2 this would be an immediate improvement.
>>
>> How
>> ------
>> I would volunteer for the manual categorization and let the community look
>> over it.
>> I could upload the changes with a script but the version number has to
>> increase even if only the category has changed. I also don't want to be
>> responsible for a massive spike in the upload statistics.
>> Shouldn't the cabal file be excluded from the versioning policy? =>  It is
>> allowed to upload a library with the same version number if only the cabal
>> file has changed. One should write a notifiaction mail to all owners to
>> reply if they don't agree. Then after a week executing the script that
>> applies the changes.
>>
>> [snip]
> Hi,
>
> I would simply prefer tags.
>
> Actually, there is a problem that becomes even worse in your proposal:
> packages appearing in multiple categories, and packages not appearing
> in some expected category.

Well, what is the difference between a tag and a category? The second
sounds more mathematical.
A sub tag or a sub category is better because some categories have
clearly a "sub" relation. I.e. I cannot imagine 2d-image-formats to be
part of some other category than graphics. But generally I agree that
more tags are also a solution, but how to display this without
increasing the page size. So I think in the end it is tradeoff between
display size and reasonable narrowing of where a category can belong.

> A simple example in your proposed categories: HDRUtils library: should
> it be in 2d, RasterFormats, or maybe in 2dFormats, ... with tags, 2d,
> raster, format, can be used, but also hdr, image, etc.

I don't mean that a library should appear in only one (sub-)category,  
HDRUtils may appear in all the categories you mention. but if someone
wants to know what raster image formats are supported he immediately
finds it ind RasterFormats.

> I don't remember what was proposed for hackage 2.
>
> Cheers,
> Thu
>
>


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Subcategories on Hackage

Stephen Tetley-2
On 4 June 2011 10:42, Tillmann Vogt <[hidden email]> wrote:

> Well, what is the difference between a tag and a category? The second sounds
> more mathematical.

Although it doesn't exist (yet), tags would support a filtering view.
As for categories, I'll be the first to play the joker and mention the
essay "Ontology is overrated"...

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Subcategories on Hackage

Sebastian Fischer-2
In reply to this post by Tillmann Vogt-2
http://www.shirky.com/writings/ontology_overrated.html

On Sat, Jun 4, 2011 at 10:02 AM, Tillmann Vogt
<[hidden email]> wrote:

> Hi,
>
> There are some categories on Hackage that have become so large that it is
> hard to find something, i.e. Data(414 packages) and Graphics (191). Thats
> why I suggest to use subcategories separated from the category with a dot.
> To show that this makes sense I made subcategories for graphics libraries at
> the end of this email.
> Whatever happens to hackage2 this would be an immediate improvement.
>
> How
> ------
> I would volunteer for the manual categorization and let the community look
> over it.
> I could upload the changes with a script but the version number has to
> increase even if only the category has changed. I also don't want to be
> responsible for a massive spike in the upload statistics.
> Shouldn't the cabal file be excluded from the versioning policy? => It is
> allowed to upload a library with the same version number if only the cabal
> file has changed. One should write a notifiaction mail to all owners to
> reply if they don't agree. Then after a week executing the script that
> applies the changes.
>
>
> Categories for Graphics:
>
> Graphics.2d
>   bacteria program: braindead utility to compose Xinerama backgrounds
>   barchart library and program: Creating Bar Charts in Haskell
>   chalkboard library and programs: Combinators for building and processing
> 2D images.
>   chalkboard-viewer library: OpenGL based viewer for chalkboard rendered
> images.
>   Chart library: A library for generating 2D Charts and Plots
>   dia-base library: An EDSL for teaching Haskell with diagrams - data types
>   dia-functions library: An EDSL for teaching Haskell with diagrams -
> functions
>   diagrams library: Embedded domain-specific language for declarative vector
> graphics
>   diagrams-cairo library: Cairo backend for diagrams drawing EDSL
>   diagrams-core library: Core libraries for diagrams EDSL
>   diagrams-lib library: Embedded domain-specific language for declarative
> graphics
>   explore program: Experimental Plot data Reconstructor
>   funcmp library: Functional MetaPost
>   gloss library: Painless 2D vector graphics, animations and simulations.
>   gloss-examples programs: Examples using the gloss library
>   GoogleChart library: Generate web-based charts using the Google Chart API
>   graphics-drawingcombinators library: A functional interface to 2D drawing
> in OpenGL
>   haha library and program: A simple library for creating animated ascii art
> on ANSI terminals.
>   HDRUtils library: Utilities for reading, manipulating, and writing HDR
> images
>   hevolisa program: Genetic Mona Lisa problem in Haskell
>   hevolisa-dph program: Genetic Mona Lisa problem in Haskell - using Data
> Parallel Haskell
>   Hieroglyph library: Purely functional 2D graphics for visualization.
>   HPlot library and program: A minimal monadic PLplot interface for Haskell
>   hs-captcha library: Generate images suitable for use as CAPTCHAs in online
> web-form security.
>   hs-gchart library: Haskell wrapper for the Google Chart API
>   hsparklines library: Sparklines for Haskell
>   internetmarke program: Shell command for constructing custom stamps for
> German Post
>   plot library: A plotting library, exportable as eps/pdf/svg/png or
> renderable with gtk
>   plot-gtk library: GTK plots and interaction with GHCi
>   printxosd program: Simple tool to display some text on an on-screen
> display
>   scaleimage program: Scale an image to a new geometry
>   testpattern program: Display a monitor test pattern
>   wumpus-basic library: Basic objects and system code built on Wumpus-Core.
>   wumpus-core library: Pure Haskell PostScript and SVG generation.
>   wumpus-drawing library: High-level drawing objects built on Wumpus-Basic.
>   wumpus-microprint library: Microprints - "greek-text" pictures.
>   wumpus-tree library: Drawing trees
>   zsh-battery program: Ascii bars representing battery status
>
> Graphics.3d
>   Attrac program: Visualisation of Strange Attractors in 3-Dimensions
>   cal3d library: Haskell binding to the Cal3D animation library.
>   cal3d-examples programs: Examples for the Cal3d animation library.
>   cal3d-opengl library: OpenGL rendering for the Cal3D animation library
>   FieldTrip library: Functional 3D
>   gnuplot library and program: 2D and 3D plots using gnuplot
>   HGL library: A simple graphics library based on X11 or Win32
>   hgl-example program: Various animations generated using HGL
>   IcoGrid library: Library for generating grids of hexagons and pentagons
> mapped to a sphere.
>   nymphaea program: An interactive GUI for manipulating L-systems
>   reactive-fieldtrip library: Connect Reactive and FieldTrip
>   reactive-glut library: Connects Reactive and GLUT
>
> Graphics.Fractal
>   fractal program: Draw Newton, Julia and Mandelbrot fractals
>   gmndl program: Mandelbrot Set explorer using GTK
>   hfractal program: OpenGL fractal renderer
>   mandulia program: A zooming visualisation of the Mandelbrot Set as many
> Julia Sets.
>
> Graphics.Raytracing
>   glintcollider program: A simple ray tracer in an early stage of
> development.
>   glome-hs library and program: ray tracer
>   GlomeTrace library: Ray Tracing Library
>   GlomeVec library: Simple 3D vector library
>   HRay program: Haskell raytracer
>   jort program: JP's own ray tracer
>
> Graphics.Layout
>   graph-rewriting-layout library: Force-directed node placement intended for
> incremental graph drawing
>   pango library: Binding to the Pango text rendering engine.
>
> Graphics.Algorithm
>   triangulation library: triangulation of polygons
>   splines library: B-Splines, other splines, and NURBS.
>
> Graphics.RasterFormats
>   AC-PPM library: Trivial package for writing PPM images.
>   bitmap library: A library for handling and manipulating bitmaps.
>   bitmap-opengl library: OpenGL support for Data.Bitmap.
>   exif library: A Haskell binding to a subset of libexif
>   fig library: Manipulation of FIG files
>   graphicsFormats library: Classes for renderable objects.
>   hsmagick library: FFI bindings for the GraphicsMagick library
>   Imlib library
>   jpeg library: A library for decoding JPEG files written in pure Haskell
>   pgm library: Pure Haskell implementation of PGM image format
>   SDL-image library: Binding to libSDL_image
>   stb-image library: A wrapper around Sean Barrett's JPEG/PNG decoder
>   tga library: Reading and writing of tga image files
>
> Graphics.VectorFormats
>   cairo library: Binding to the Cairo library.
>   craftwerk library and programs: 2D graphics library with integrated TikZ
> output.
>   craftwerk-cairo library: Cairo backend for Craftwerk.
>   craftwerk-gtk library and program: Gtk UI for Craftwerk.
>   HPDF library: Generation of PDF documents
>   hps library: Haskell Postscript
>   hps-cairo library: Cairo rendering for the haskell postscript library
>   HsHaruPDF library: Haskell binding to libharu
> (http://libharu.sourceforge.net/)
>   poppler library: Binding to the Poppler.
>   svgcairo library: Binding to the libsvg-cairo library.
>   SVGPath library: Parsing the path command from SVG
>   svgutils library and program: Helper functions for dealing with SVG files
>
> Graphics.3dFormats
>   collada-output library and program: Generate animated 3d objects in
> COLLADA
>   collada-types library: data exchange between graphic applications
>   graphics-formats-collada library: Load 3D geometry in the COLLADA format
>   obj library: Reads and writes obj models.
>
> Graphics.Engine  (OpenGL and libraries that make it easier to use OpenGL)
>   GLURaw library: A raw binding for the OpenGL graphics system
>   GLUT library: A binding for the OpenGL Utility Toolkit
>   GLFW library: A Haskell binding for GLFW
>   GLFW-b library: GLFW bindings
>   GLFW-b-demo program: GLFW-b test\/example\/demo
>   GLFW-OGL library: A binding for GLFW (OGL)
>   GPipe library: A functional graphics API for programmable GPUs
>   GPipe-Collada library: Load GPipe meshes from Collada files
>   GPipe-Examples programs: Examples for the GPipes package
>   GPipe-TextureLoad library: Load GPipe textures from filesystem
>   hogre library: Haskell binding to a subset of OGRE
>   hogre-examples programs: Examples for using Hogre.
>   haskgame library: Haskell game library.
>   IrrHaskell library: Haskell FRP binding to the Irrlicht game engine.
>   lambdacube-bullet program: Example for combining LambdaCube and Bullet
>   lambdacube-engine library: 3D rendering engine entirely written in Haskell
>   lambdacube-examples programs: Examples for LambdaCube
>   nehe-tuts programs: Port of the NeHe OpenGL tutorials to Haskell.
>   OGL library: A context aware binding for the OpenGL graphics system
>   OpenGL library: A binding for the OpenGL graphics system
>   OpenGLCheck library: Quickcheck instances for various data structures.
>   OpenGLRaw library: A raw binding for the OpenGL graphics system
>   OpenGLRaw21 library: The intersection of OpenGL 2.1 and OpenGL 3.1 Core
>   rsagl library: The RogueStar Animation and Graphics Library
>   scenegraph library: Scene Graph
>
> Graphics.Fonts
>   font-opengl-basic4x6 library and program: Basic4x6 font for OpenGL
>   freetype2 library and program: Haskell binding for FreeType 2 library
>   FTGL library: Portable TrueType font rendering for OpenGL using the
> Freetype2 library
>   SDL-ttf library: Binding to libSDL_ttf
>   SFont library: SFont SDL Bitmap Fonts
>   stb-truetype library: A wrapper around Sean Barrett's TrueType rasterizer
> library.
>   SVGFonts library and program: Fonts from the SVG-Font format
>
> Graphics.OSspecific
>   GLHUI library: Open OpenGL context windows in X11 with libX11
>   ige-mac-integration library: Bindings for the Gtk/OS X integration
> library.
>   minimung program: Shows how to run grabber on Mac OS X
>   Win32 library: A binding to part of the Win32 library
>   X11 library: A binding to the X11 graphics library
>   X11-extras library: Missing bindings to the X11 graphics library
>   X11-rm library: A binding to the resource management functions missing
> from X11.
>   X11-xdamage library: A binding to the Xdamage X11 extension library
>   X11-xfixes library: A binding to the Xfixes X11 extension library
>   X11-xft library: Bindings to the Xft, X Free Type interface library, and
> some Xrender parts
>   x11-xim library: A binding to the xim of X11 graphics library
>   X11-xshape library: A binding to the Xshape X11 extension library
>   Xauth library: A binding to the X11 authentication library
>   xhb library: X Haskell Bindings
>   xosd library: A binding to the X on-screen display
>
> Graphics.UserInterfaces
>   glade library: Binding to the glade library.
>   gtk library: Binding to the Gtk+ graphical user interface library.
>   gtk-serialized-event library: GTK+ Serialized event.
>   gtkglext library: Binding to the GTK+ OpenGL Extension
>   gtkimageview library: Binding to the GtkImageView library.
>   gtksourceview2 library: Binding to the GtkSourceView library.
>   lui library: Purely FunctionaL User Interface
>   soegtk library: GUI functions as used in the book "The Haskell School of
> Expression".
>
> Graphics.Vector
>   AC-Vector library: Efficient geometric vectors and transformations.
>   AC-Vector-Fancy library: Fancy type-system stuff for AC-Vector
>   Vec-OpenGLRaw library: Instances and functions to interoperate Vec and
> OpenGL.
>   Vec-Transform library: Extends the Vec package with some 4x4 transform
> matrices
>   vect library: A low-dimensional linear algebra library, tailored to
> computer graphics.
>   vect-opengl library: OpenGL support for the `vect' low-dimensional linear
> algebra library.
>
> Graphics.Visualization
>   graphviz library and program: Graphviz bindings for Haskell.
>   hubigraph library: A haskell wrap for Ubigraph
>   splot program: A tool for visualizing the lifecycle of many concurrent
> multi-staged processes.
>   timeplot program: A tool for visualizing time series from log files.
>
> Games
>   HTicTacToe program: An SDL tic-tac-toe game.
>
> Graphics (not subcategorized yet)
>   AC-Colour library: Efficient RGB colour types.
>   AC-EasyRaster-GTK library: GTK+ pixel plotting.
>   assimp library: The Assimp asset import library
>   Chitra program: A platform independent mechanism to render graphics using
> vnc.
>   colour library: A model for human colour/color perception
>   CV library: OpenCV based machine vision library
>   cv-combinators library and programs: Functional Combinators for Computer
> Vision
>   derivation-trees library: Typeset Derivation Trees via MetaPost
>   gd library: A Haskell binding to a subset of the GD graphics library
>   ghci-diagrams library: Display simple diagrams from ghci
>   graph-rewriting-gl library: OpenGL interface for interactive port graph
> rewriting
>   HOpenCV library and program: A binding for the OpenCV computer vision
> library
>   IFS library and program: Iterated Function System generation for Haskell
>   Noise library: A Haskell coherent noise generator based on libnoise
>   ObjectIO library
>   OpenCLRaw library: The OpenCL Standard for heterogenous data-parallel
> computing
>   OpenVG library: OpenVG (ShivaVG-0.2.1) binding
>   OpenVGRaw library: Raw binding to OpenVG (ShivaVG-0.2.1 implementation).
>   probability library: Probabilistic Functional Programming
>   SGdemo program: An example of using the SG and OpenGL libraries
>   SDL library: Binding to libSDL
>   SDL-gfx library: Binding to libSDL_gfx
>   SDL-mixer library: Binding to libSDL_mixer
>   SDL-mpeg library: Binding to the SMPEG library
>   smallpt-hs program: A Haskell port of the smallpt path tracer.
>   Sprig library: Binding to Sprig
>   treemap-html library: Generates HTML for Data.Tree as TreeMap
>   treemap-html-tools library and programs: Treemap related commands for
> producing foldable TreeMap HTML.
>   vte library: Binding to the VTE library.
>   webkit library: Binding to the Webkit library.
>   wordcloud library: Library for generating word/tag clouds.
>
> _______________________________________________
> Haskell-Cafe mailing list
> [hidden email]
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Subcategories on Hackage

Tillmann Vogt-2
Am 04.06.2011 15:00, schrieb Sebastian Fischer:
> http://www.shirky.com/writings/ontology_overrated.html
>

I think I have read that article a long time ago. I just looked at it
again. Very lengthy but true.
In the middle there is a section when ontologies work well and ... it
all applies to Hackage.

When Does Ontological Classification Work Well?

Domain to be Organized

  Small corpus           3k libraries is nothing compared to the whole
web (referring to the yahoo example), or every book on earth
Formal categories   already exist, just need some improvement
  Stable entities         Haskell is a mathematical language, and if
there is one thing that will never change then it is math
  Restricted entities  access only after personal email
  Clear edges             ?

Participants
  Expert catalogers                               Maybe the best
educated programmers in the world
  Authoritative source of judgment   Maybe
  Coordinated users                             It could be better
  Expert users                                        mostly

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Subcategories on Hackage

Felipe Lessa
On Sat, Jun 4, 2011 at 10:41 AM, Tillmann Vogt
<[hidden email]> wrote:
> Formal categories   already exist, just need some improvement

I don't see how the categories we have are near formal categories, but
I digress.

>  Stable entities         Haskell is a mathematical language, and if there is
> one thing that will never change then it is math

I also can't see this so clearly.  It is like saying that books are
just letters on paper, and nothing will change that.  What we need to
categorize is what is being done with Haskell, not Haskell itself.

>  Restricted entities  access only after personal email

We have the opposite, any one can upload a library to Hackage and I
don't think anyone wants to change that.

>  Clear edges             ?

See his example, where he says that there are no blended elements.  A
Haskell library may have characteristics from two or more different
categories.

>  Expert catalogers                               Maybe the best educated
> programmers in the world

We don't have any catalogers at all!  =(

>  Authoritative source of judgment   Maybe

We also don't have an authoritative source of judgement, but that is
something easier to change.

>  Coordinated users                             It could be better

There is almost no coordination at all.

>  Expert users                                        mostly

Yes, mostly, I agree =).


tl;dr: I don't think ontologies are suitable for Hackage.

Cheers!

--
Felipe.

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Subcategories on Hackage

wren ng thornton
In reply to this post by Tillmann Vogt-2
On 6/4/11 9:41 AM, Tillmann Vogt wrote:
> Am 04.06.2011 15:00, schrieb Sebastian Fischer:
>> http://www.shirky.com/writings/ontology_overrated.html
>
> I think I have read that article a long time ago. I just looked at it
> again. Very lengthy but true.
> In the middle there is a section when ontologies work well and ... it
> all applies to Hackage.

I'm not so sure of that.

> When Does Ontological Classification Work Well?
>
> Domain to be Organized
>
> Small corpus    3k libraries is nothing compared to the whole web
> (referring to the yahoo example), or every book on earth

Sure, it's small by library standards; but then again, libraries have
curators. Libraries don't have to deal with everyone just filling out
their own metadata when donating a book to the library. In comparison to
others corpora of its kind, Hackage is of middling size and still
growing. The relevant corpora here are things like CPAN, CTAN, CRAN and
the like; not the whole internet, nor even a university library.

> Formal categories    already exist, just need some improvement

The categories aren't formal. Formal categorization means things like
the names of biological species or the various constructs of abstract
algebra, things which have a fixed and definite definition. Even the
ontology of biology suffered a major upset over the last two decades as
genetic sequencing demonstrated that the previous organization of
species was woefully wrong.

When is something a 2D graphics library vs a 3D library? What about all
the shades in between, all the various options like depth parallax,
pseudo-3D, fixed perspective, sprites on 3D backgrounds,... before you
enter true 3D rendering? Something like the raster category may be a bit
more formal, but even with my feeble knowledge of graphics I know that
graphics as a whole is a mish mash of differing things and not a
formally specified domain.

> Stable entities    Haskell is a mathematical language, and if there is
> one thing that will never change then it is math

Haskell is quite mathematical, but mathematics have shifted and changed
dramatically over the years. Math changes all the time.

Programming libraries and projects even moreso. Goals and directions
change all the time. What began as a project in category A could easily
shift to become focused on category B.

> Restricted entities    access only after personal email

What Clay means here is things like a library that only deals in bound
volume books, as opposed to dealing also in other literary media
(papyrus, velum,...) or in non-literary media (music, video,...).

This does describe Hackage pretty well though. It's only for software,
and only for software written in (or for) Haskell. While that's still a
very broad domain, at least all the entities in it are of the same kind.

> Clear edges ?
>
> Participants
> Expert catalogers    Maybe the best educated programmers in the world

Even if we are the best educated, I doubt there are very many Haskellers
with expert-level experience in cataloging. How many of us work as
librarians, ontologists, or other professions in charge of organizing
and curating data? There are a few, I'm sure. Some work in databases,
and some do annotation work (e.g., the NLPers), but the average
Haskeller is not an expert cataloger. And I'm sure the experts are too
busy to have all of Hackage foisted upon them.

> Authoritative source of judgment    Maybe

Hackage has no Benevolent Dictator For Life (that I'm aware of).

--
Live well,
~wren

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Subcategories on Hackage

Evan Laforge
In reply to this post by Felipe Lessa
On Sat, Jun 4, 2011 at 7:46 PM, Felipe Almeida Lessa
<[hidden email]> wrote:
> tl;dr: I don't think ontologies are suitable for Hackage.

I think I agree.  For instance, I just uploaded fix-imports and had to
decide which categories it is in.  It manages imports, which is
IDE-like and people looking for IDE-like features might be interested,
so IDE.  It's concerned with haskell itself, so Haskell.  And it's
meant to be used with an editor, though it isn't an editor itself, so
Editor.  It's actually none of those things, but there's no specific
category for it, and if there were I think it would be too small to be
useful.  So I picked things I think people who might be interested in
it would be searching for.

I don't think a hierarchy would have helped in this case, but tags
would be appropriate.  Actually, I wound up using the categories like
tags.  I think we just need better search, e.g. +tag +tag or
something.

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Subcategories on Hackage

paolino

I think there are two reasons to browse the hackage database.

First reason reflects the common need to find a library that suites one's needs. In this case it's very easy to find it with google adding "hackage" "haskell" to the submitted word list.

Second reason is to have a nice landscape of packages when one enters the site.
For the second reason, which is real browsing, categories are a pain, whoever and however they are done. The more they are correct , the more they are difficult to understand. The more they are easy like tags the more it's difficult to put them in a hierarchy.
One well known solution is to put tags in a high dimensional space where the tag names and distance between tags is defined by statistics on the tags cloud of each tag holder (packages). In this case browsing is jumping from one tag to another *near* one in the tag space and see the packages *around* , while inserting new packages changes the position of the tags in their space.
An easiest , but somewhat wrong, solution is give each tag a dimension and have the packages in the space to browse.

Ontologies are more on formalising the meaning (seen as interrelations) of concepts, which tags are not, and I don't think even software categories are. But this is really debatable.

my 2 cents

paolino



2011/6/5 Evan Laforge <[hidden email]>
On Sat, Jun 4, 2011 at 7:46 PM, Felipe Almeida Lessa
<[hidden email]> wrote:
> tl;dr: I don't think ontologies are suitable for Hackage.

I think I agree.  For instance, I just uploaded fix-imports and had to
decide which categories it is in.  It manages imports, which is
IDE-like and people looking for IDE-like features might be interested,
so IDE.  It's concerned with haskell itself, so Haskell.  And it's
meant to be used with an editor, though it isn't an editor itself, so
Editor.  It's actually none of those things, but there's no specific
category for it, and if there were I think it would be too small to be
useful.  So I picked things I think people who might be interested in
it would be searching for.

I don't think a hierarchy would have helped in this case, but tags
would be appropriate.  Actually, I wound up using the categories like
tags.  I think we just need better search, e.g. +tag +tag or
something.

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Subcategories on Hackage

Andrew Coppin
In reply to this post by Evan Laforge
On 05/06/2011 06:55 AM, Evan Laforge wrote:

> I don't think a hierarchy would have helped in this case, but tags
> would be appropriate.  Actually, I wound up using the categories like
> tags.  I think we just need better search, e.g. +tag +tag or
> something.

+1 to all of the above.

Also, I don't think listing every package on all of Hackage in one giant
page is very useful any more. (I gather it was only meant to be a
temporary interface in the first place...)

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Subcategories on Hackage

Brandon Allbery
On Sun, Jun 5, 2011 at 07:51, Andrew Coppin <[hidden email]> wrote:
> Also, I don't think listing every package on all of Hackage in one giant
> page is very useful any more. (I gather it was only meant to be a temporary
> interface in the first place...)

+1 (really +(foldl' (+) (repeat 1))...) — Hackage is *painful* these days.

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Subcategories on Hackage

serialhex
On Sun, Jun 5, 2011 at 1:36 PM, Brandon Allbery <[hidden email]> wrote:
On Sun, Jun 5, 2011 at 07:51, Andrew Coppin <[hidden email]> wrote:
> Also, I don't think listing every package on all of Hackage in one giant
> page is very useful any more. (I gather it was only meant to be a temporary
> interface in the first place...)

+1 (really +(foldl' (+) (repeat 1))...) — Hackage is *painful* these days.

i havn't a fscking clue how to implement such a beast, but i've seen (somewhere) tags that have their own heirarchy, so you could have (for instance)

Image Stuff
 -2D
 -3D
 -Fractal
 -...etc...

and also having multiple tags would help classify things, like a 3D Fractal renderer would be under "Image Stuff - 3D" "Image Stuff - Fractal" and probably even under "Math Stuff" (yeah, i know you *love* my technical names :P )

just my 0.02 cents
hex


--
> > Other than the fact Linux has a cool name, could someone explain why I
> > should use Linux over BSD?
>
> No.  That's it.  The cool name, that is.  We worked very hard on
> creating a name that would appeal to the majority of people, and it
> certainly paid off: thousands of people are using linux just to be able
> to say "OS/2? Hah.  I've got Linux.  What a cool name".  386BSD made the
> mistake of putting a lot of numbers and weird abbreviations into the
> name, and is scaring away a lot of people just because it sounds too
> technical.
	-- Linus Torvalds' follow-up to a question about Linux

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe