gmediarender 0.0.4
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 83
GMediaRender 0.0.4
GMediaRender is a UPnP media renderer for POSIX-compliant systems, such as GNU/Linux or UNIX. more>>
GMediaRender is a UPnP media renderer for POSIX-compliant systems, such as GNU/Linux or UNIX. It implements the server component that provides UPnP controllers a means to render media content (audio, video and images) from a UPnP media server.
MediaServer / AV
UPnP A/V is a three-tier system, consisting of Servers, Renderers and Controllers. With an A/V UPnP controller you can instruct a UPnP A/V Renderer (such as GMediaRender) to play multimedia content (pictures, music tracks, radio broadcasts, movies, ..) available from a UPnP A/V Server.
UPnP A/V components are available both as stand-alone consumer electronics devices, as well as are software-only implementations. Listed below are some software implementations which run on GNU/Linux.
<<lessMediaServer / AV
UPnP A/V is a three-tier system, consisting of Servers, Renderers and Controllers. With an A/V UPnP controller you can instruct a UPnP A/V Renderer (such as GMediaRender) to play multimedia content (pictures, music tracks, radio broadcasts, movies, ..) available from a UPnP A/V Server.
UPnP A/V components are available both as stand-alone consumer electronics devices, as well as are software-only implementations. Listed below are some software implementations which run on GNU/Linux.
Download (0.14MB)
Added: 2006-03-28 License: GPL (GNU General Public License) Price:
1308 downloads
Download (1.8MB)
Added: 2007-04-17 License: GPL (GNU General Public License) Price:
926 downloads
InterXim 0.0.4
InterXim is an international X11 XIM server. more>>
InterXim project is an international, locale-independent X11 XIM server.
It translates ASCII key sequences to Unicode.
The converter uses the Yudit kmap files to transform the ASCII string to Unicode KeySym.
<<lessIt translates ASCII key sequences to Unicode.
The converter uses the Yudit kmap files to transform the ASCII string to Unicode KeySym.
Download (0.52MB)
Added: 2006-09-30 License: GPL (GNU General Public License) Price:
1119 downloads
multican 0.0.4
multican is a Canon EOS class camera remote control utility. more>>
multican is a Canon EOS class camera remote control utility.
multican is able to remote control 300D, 350D, 30D, 20D, and 5D cameras and can be scripted to control up to six attached cameras.
Which functions are supported?
Several remote control functions are available in scripts, they are:
- setting shutter release speed (Tv)
- setting aperture size (Av)
- setting ISO sensitivity
- releasing shutter (currently only allows to store the image on CF)
Known Bugs:
The timing in the script strongly depends on the camera type and CF card which is used to do shooting. This is to be tested by multican user himself. If too short times are described in the script, the communication may hang, may skip some commands. Thanks to camera image caching, the shooting rate could be set under 1s if only several images are takes since the most of the EOS camera models contains an image cache, so that the images are stored into a queue and written to the CF lately.
The known bug in this multican release is that cameras need to be switched off and on again when a scripted sequence is finished and a new one is to be done. This is likely caused by the fact that the communication is not correcly terminated in the actual multicam release.
Enhancements:
- fix typos, update docs
- fix warnings
<<lessmultican is able to remote control 300D, 350D, 30D, 20D, and 5D cameras and can be scripted to control up to six attached cameras.
Which functions are supported?
Several remote control functions are available in scripts, they are:
- setting shutter release speed (Tv)
- setting aperture size (Av)
- setting ISO sensitivity
- releasing shutter (currently only allows to store the image on CF)
Known Bugs:
The timing in the script strongly depends on the camera type and CF card which is used to do shooting. This is to be tested by multican user himself. If too short times are described in the script, the communication may hang, may skip some commands. Thanks to camera image caching, the shooting rate could be set under 1s if only several images are takes since the most of the EOS camera models contains an image cache, so that the images are stored into a queue and written to the CF lately.
The known bug in this multican release is that cameras need to be switched off and on again when a scripted sequence is finished and a new one is to be done. This is likely caused by the fact that the communication is not correcly terminated in the actual multicam release.
Enhancements:
- fix typos, update docs
- fix warnings
Download (0.020MB)
Added: 2006-11-07 License: GPL (GNU General Public License) Price:
1084 downloads
Geotrace 0.0.4
Geotrace is a geographical traceroute utility. more>>
Geotrace is a geographical traceroute utility. Geotrace provide graphical view on the map. It has many geographical maps.
In order to be able to use a new map with geotrace, you only need to know one thing: the longitude/latitude of the top left and bottom right corners. Most maps you will find will be centered on 0,0 (about 5 degs south of Ghana and 10 degs west of Gabon. for those of you who dont know, its in Africa.). So, lets do it step by step:
1) Find a map. there are plenty on the web. Nasas a good place to find them (it is a mess though). Or grab one of the few maps at a site with maps for XGlobe and XPlanet.
The image must be in a format understood by gdk-pixbuf (most images youll find will be jpeg or gif which work).
2) Go to the maps/ directory in geotrace. Put the map in there and open up maps.properties
3) on the second line, youll see MAPS:World50.gif, World100.gif etc... Thats a list of all the maps. Add the name of your recently downloaded map on that line.
4) now, you need to tell geotrace what the coordinates are. Add a line to the file that looks as follows:
filename:BOUNDARY=lon1,lat1,lon2,lat2
filename: case sensitive, map has to be in the maps/ folder
lon1 and lat1: longitude and latitude of the top left corner
lon2 and lat2: longitude and latitude of the bottom right corner
As I said earlier, for most maps youll find, youll get -180,90,180,-90 which means that the map is centered on 0,0. However, the two world maps (World100 and World50) in geotrace are centered on 10W,0
You might notice that the three maps of the US have another line associated with them. Thats the alber projection. You probably wont have to deal with that.
4) Run geotrace, select your map from the drop-down and enjoy.
Version restrictions:
- Some hops may have extravagant locations, but for once, its not my fault. The netgeo server does not have fully updated records. So my advice is, just live with it
Enhancements:
- added line color and width options.
- added cmdline args. host to trace, and startup map.
- added map options: path to maps and startup map.
- warning to check paths when run for the first time.
- added status bar
- fixed draw_trace_on_map which didnt draw in certain cases (timeouts)
- fixed bug that caused crash when a hop times out and more hops repond later
- 2001-04-05
- added option: resolve host name or not
- load/save options from file (~/.geotrace) 2001-04-04
- fixed bug that caused last map in file not to be read (world100) 2001-04-03 added options for traceroute (path to exec, timeout and maxttl)
<<lessIn order to be able to use a new map with geotrace, you only need to know one thing: the longitude/latitude of the top left and bottom right corners. Most maps you will find will be centered on 0,0 (about 5 degs south of Ghana and 10 degs west of Gabon. for those of you who dont know, its in Africa.). So, lets do it step by step:
1) Find a map. there are plenty on the web. Nasas a good place to find them (it is a mess though). Or grab one of the few maps at a site with maps for XGlobe and XPlanet.
The image must be in a format understood by gdk-pixbuf (most images youll find will be jpeg or gif which work).
2) Go to the maps/ directory in geotrace. Put the map in there and open up maps.properties
3) on the second line, youll see MAPS:World50.gif, World100.gif etc... Thats a list of all the maps. Add the name of your recently downloaded map on that line.
4) now, you need to tell geotrace what the coordinates are. Add a line to the file that looks as follows:
filename:BOUNDARY=lon1,lat1,lon2,lat2
filename: case sensitive, map has to be in the maps/ folder
lon1 and lat1: longitude and latitude of the top left corner
lon2 and lat2: longitude and latitude of the bottom right corner
As I said earlier, for most maps youll find, youll get -180,90,180,-90 which means that the map is centered on 0,0. However, the two world maps (World100 and World50) in geotrace are centered on 10W,0
You might notice that the three maps of the US have another line associated with them. Thats the alber projection. You probably wont have to deal with that.
4) Run geotrace, select your map from the drop-down and enjoy.
Version restrictions:
- Some hops may have extravagant locations, but for once, its not my fault. The netgeo server does not have fully updated records. So my advice is, just live with it
Enhancements:
- added line color and width options.
- added cmdline args. host to trace, and startup map.
- added map options: path to maps and startup map.
- warning to check paths when run for the first time.
- added status bar
- fixed draw_trace_on_map which didnt draw in certain cases (timeouts)
- fixed bug that caused crash when a hop times out and more hops repond later
- 2001-04-05
- added option: resolve host name or not
- load/save options from file (~/.geotrace) 2001-04-04
- fixed bug that caused last map in file not to be read (world100) 2001-04-03 added options for traceroute (path to exec, timeout and maxttl)
Download (0.25MB)
Added: 2006-06-21 License: GPL (GNU General Public License) Price:
1229 downloads
Shmplayer 0.0.4
Shmplayer executes a single instance of mplayer in the background and controls it through a FIFO. more>>
Shmplayer executes a single instance of mplayer in the background and controls it through a FIFO. Shmplayer supports many of the features youll find in XMMS and it is easily extendible.
However, unlike XMMS, shmplayer doesnt require an X server to be active. You can even use it from a remote shell. Shmplayer has also some unique features like "jgrep" that lets you jump to the first "grepped" match of the playlist.
Enhancements:
- When jumping to the last loaded playlist, xmplayer exits from shuffle mode.
- This bug has been fixed.
- If xmplayer is already running, the "play" command rewinds the current track.
<<lessHowever, unlike XMMS, shmplayer doesnt require an X server to be active. You can even use it from a remote shell. Shmplayer has also some unique features like "jgrep" that lets you jump to the first "grepped" match of the playlist.
Enhancements:
- When jumping to the last loaded playlist, xmplayer exits from shuffle mode.
- This bug has been fixed.
- If xmplayer is already running, the "play" command rewinds the current track.
Download (0.006MB)
Added: 2006-12-13 License: GPL (GNU General Public License) Price:
1048 downloads
Simted 0.0.4
Simted is a fast growing C++ library. more>>
Simted - the official name of an engine for modelling systems of the various devices described by a system of the nonlinear ordinary differential equations (ODE).
The modern level of technical development puts forward high requirements to accuracy and time of modeling of devices: electronic, micromechanical (MEMS), thermodynamic, hydraulic, etc. Such systems can be described with the help of the nonlinear ordinary differential equations.
There is a set of the programs for solving the given systems of the equations. Simted - an engine of modeling software for the solution of nonlinear systems the ODE.
Main features:
- an open source codes on C++ are documented (Doxygene);
- user defined components;
- user defined table models;
- getting results of modeling in the gnuPlot format;
- using of own source language;
- accurate and fast integration methods and time-step selection;
Enhancements:
- A new API was created.
<<lessThe modern level of technical development puts forward high requirements to accuracy and time of modeling of devices: electronic, micromechanical (MEMS), thermodynamic, hydraulic, etc. Such systems can be described with the help of the nonlinear ordinary differential equations.
There is a set of the programs for solving the given systems of the equations. Simted - an engine of modeling software for the solution of nonlinear systems the ODE.
Main features:
- an open source codes on C++ are documented (Doxygene);
- user defined components;
- user defined table models;
- getting results of modeling in the gnuPlot format;
- using of own source language;
- accurate and fast integration methods and time-step selection;
Enhancements:
- A new API was created.
Download (1.5MB)
Added: 2005-10-19 License: GPL (GNU General Public License) Price:
1466 downloads
Archimedes 0.0.4
GNU Archimedes is the GNU package for the design and simulation of submicron semiconductor devices. more>>
GNU Archimedes is the GNU package for the design and simulation of submicron semiconductor devices. Archimedes is a 2D Fast Monte Carlo simulator which can take into account all the relevant quantum effects, thank to the implementation of the Bohm effective potential method.
The physics and geometry of a general device is introduced by typing a simple script, which makes, in this sense, GNU Archimedes a powerfull tool for the simulation of quite general semiconductor devices.
In the present release, GNU Archimedes is able to simulate electrons and heavy holes in Silicon and GaAs (Gamma and L-valleys) devices (holes are simulated by means of a simplified MEP model), and in the next release, which is in preparation, it will be able to make simulations in 1D, 2D and 3D (this release will be delivered as soon as possible).
The Scientifical and Industrial Motivations
In today semiconductor technology, the miniaturization of devices is more and more progressing. In this context, it is easy to see that numerical simulations play an important role at every level of device manufacture. In fact, the cost of designing and physically constructing prototypes for VLSI semiconductor devices is very high and without the availability of advanced simulators the efforts for devices miniaturization would, likely, be brought to a halt. From assessing the performance of individual transistors, to circuits and systems, and, consequently, with the promise of improved device performance, industries are encouraged to keep on miniaturizing with lower manufacture costs.
But, unfortunately, such simulations are not whithout their challenges... A first consequence of device miniaturization is that simulations of submicron semicondutor devices requires advanced transport models. Because of the presence of very high and rapidly varying electric field, phenomena occur which cannot be described by means of the well-known drift-diffusion models, which do not incorporate energy as a dynamical variable.
That is why some generalization has been sought in order to obtain more physically accurate models, like energy-transport and hydrodynamical models. The energy-transport models which are implemented in commercial simulators are based on phenomenological constitutive equations for the particle flux and energy flux depending on a set of parameters which are fitted to homogeneous bulk material Monte Carlo simulations. So, this is not, certainly, a satisfactory physical description of the internal electronic dynamics in a semiconductor device.
As current device technologies quickly approach the scales whereby quantum effects due to strong confinement of carriers and direct source-drain tunneling will begin to dominate, new simulation techniques are required in order to fully understand and acurately simulate the physics behind the technology operation.
Of all the simulation methods currently employed, ensemble Monte Carlo has always been, both in the accademic and industrial community, the most vigorous and trusted method for device simulation, as it is proven to be reliable and predictive, as one can easily see from the vast bibliography on this subject.
However, as Monte Carlo relies on the particle nature of the electron (in fact we consider an electron like a biliard ball), quantum effects associated with the wave-like nature of electrons cannot fully incorporated into the actual simulators, i.e. the ensemble Monte Carlo have to be lightly (or strongly, it depends on the point of view and on the methods implemented...) modified to take into account the quantum effects, at least at a first order of approximation, which is certainly enough to take into account correctly all the relevant quantum effects present in the present-day semiconductor devices (till 2015 probably...). In order to take into account the wave-like nature of electrons we use a recently introduced quantum theory, the so-called Bohm effective potential theory.
So it is challenging and very interesting to develop such a code for 2D quantum submicron semiconductor devices. This is why I have decided to implement this code, but these are not the only motivations...
The Ethical Motivations
The very sad situation you quickly observe working in a semiconductor industry, but also in all places in which researches about semiconductor devices are made, the only codes for simulation you can find are not free and are proprietary codes.
That is a very bad situation because, at the present time, if you need to develop your own code for the purpose of simulating a device it is IMPOSSIBLE to obtain an advanced one in a short time, and, trust me, this is EXTREMELY BAD for scientific research... (Immagine if you had to re-discover the Newtonian laws every time you need them...) So, you can find a huge amount of papers describing a lot of numerical methods for simulating, in a very advanced way, semiconductor devices (even in the quantum case), but nobody will give you a code on which you can construct your own method (with the unlikely exception that at least one of the programmers is a friend of yours :) ).
Even worst, if you are a semiconductor device designer and you want to simulate "realistically" a new device, you have to pay (trust me, at very high costs!) a BINARY (just a binary and not the code!) from some well-known software industry. This binary will certainly have some bugs (because it is coded by humans which are not perfect...) and you will never have the possibility of fix them on your own. Of course, you can write to the software house and tell them that there is a bug, but, how many time do you will wait for a new release without those bugs? I dont think it will be a short time...
My impression is that, after a long research on the Web for a Free Software dealing with advanced 2D semiconductor device simulation, there was not a free code for the purpose of semiconductor devices simulation (i mean under GPL license). To be sure about it, I asked to the great Richard Stallman (by mail) if it will be worth to do a code like this and he encouraged me to code it, because there wasnt a code like this as free. So I decided to write this code..
<<lessThe physics and geometry of a general device is introduced by typing a simple script, which makes, in this sense, GNU Archimedes a powerfull tool for the simulation of quite general semiconductor devices.
In the present release, GNU Archimedes is able to simulate electrons and heavy holes in Silicon and GaAs (Gamma and L-valleys) devices (holes are simulated by means of a simplified MEP model), and in the next release, which is in preparation, it will be able to make simulations in 1D, 2D and 3D (this release will be delivered as soon as possible).
The Scientifical and Industrial Motivations
In today semiconductor technology, the miniaturization of devices is more and more progressing. In this context, it is easy to see that numerical simulations play an important role at every level of device manufacture. In fact, the cost of designing and physically constructing prototypes for VLSI semiconductor devices is very high and without the availability of advanced simulators the efforts for devices miniaturization would, likely, be brought to a halt. From assessing the performance of individual transistors, to circuits and systems, and, consequently, with the promise of improved device performance, industries are encouraged to keep on miniaturizing with lower manufacture costs.
But, unfortunately, such simulations are not whithout their challenges... A first consequence of device miniaturization is that simulations of submicron semicondutor devices requires advanced transport models. Because of the presence of very high and rapidly varying electric field, phenomena occur which cannot be described by means of the well-known drift-diffusion models, which do not incorporate energy as a dynamical variable.
That is why some generalization has been sought in order to obtain more physically accurate models, like energy-transport and hydrodynamical models. The energy-transport models which are implemented in commercial simulators are based on phenomenological constitutive equations for the particle flux and energy flux depending on a set of parameters which are fitted to homogeneous bulk material Monte Carlo simulations. So, this is not, certainly, a satisfactory physical description of the internal electronic dynamics in a semiconductor device.
As current device technologies quickly approach the scales whereby quantum effects due to strong confinement of carriers and direct source-drain tunneling will begin to dominate, new simulation techniques are required in order to fully understand and acurately simulate the physics behind the technology operation.
Of all the simulation methods currently employed, ensemble Monte Carlo has always been, both in the accademic and industrial community, the most vigorous and trusted method for device simulation, as it is proven to be reliable and predictive, as one can easily see from the vast bibliography on this subject.
However, as Monte Carlo relies on the particle nature of the electron (in fact we consider an electron like a biliard ball), quantum effects associated with the wave-like nature of electrons cannot fully incorporated into the actual simulators, i.e. the ensemble Monte Carlo have to be lightly (or strongly, it depends on the point of view and on the methods implemented...) modified to take into account the quantum effects, at least at a first order of approximation, which is certainly enough to take into account correctly all the relevant quantum effects present in the present-day semiconductor devices (till 2015 probably...). In order to take into account the wave-like nature of electrons we use a recently introduced quantum theory, the so-called Bohm effective potential theory.
So it is challenging and very interesting to develop such a code for 2D quantum submicron semiconductor devices. This is why I have decided to implement this code, but these are not the only motivations...
The Ethical Motivations
The very sad situation you quickly observe working in a semiconductor industry, but also in all places in which researches about semiconductor devices are made, the only codes for simulation you can find are not free and are proprietary codes.
That is a very bad situation because, at the present time, if you need to develop your own code for the purpose of simulating a device it is IMPOSSIBLE to obtain an advanced one in a short time, and, trust me, this is EXTREMELY BAD for scientific research... (Immagine if you had to re-discover the Newtonian laws every time you need them...) So, you can find a huge amount of papers describing a lot of numerical methods for simulating, in a very advanced way, semiconductor devices (even in the quantum case), but nobody will give you a code on which you can construct your own method (with the unlikely exception that at least one of the programmers is a friend of yours :) ).
Even worst, if you are a semiconductor device designer and you want to simulate "realistically" a new device, you have to pay (trust me, at very high costs!) a BINARY (just a binary and not the code!) from some well-known software industry. This binary will certainly have some bugs (because it is coded by humans which are not perfect...) and you will never have the possibility of fix them on your own. Of course, you can write to the software house and tell them that there is a bug, but, how many time do you will wait for a new release without those bugs? I dont think it will be a short time...
My impression is that, after a long research on the Web for a Free Software dealing with advanced 2D semiconductor device simulation, there was not a free code for the purpose of semiconductor devices simulation (i mean under GPL license). To be sure about it, I asked to the great Richard Stallman (by mail) if it will be worth to do a code like this and he encouraged me to code it, because there wasnt a code like this as free. So I decided to write this code..
Download (0.57MB)
Added: 2006-06-07 License: GPL (GNU General Public License) Price:
712 downloads
qmdilib 0.0.4
qmdilib is a simple mdi library for Qt 4. more>>
qmdilib is a simple mdi library for Qt 4. The goal of this project, is to provide an easy way to modifying menus and toolbars of windows on demand.
This can be used to present different menus and toolbars to widgets inside a QTabWidget, hiding or showing a different set of menus on demand or even enabling a small plugin system.
The library is fully documented, and contains some demostrations. It should compile flawlessly (no warnings) with a single "qmake; make" on the root directory of the project.
qmdilib library is known to work on Windows and Linux, and there is no reason why it should not work on other platforms supported by Qt4. Currently only gcc is tested, but other compilers should be able to compile this library
Enhancements:
- Documentation re-created using doxygen 1.4.7
- code refactoring: qmdiClient - qmdiServer is now a public member
- new feature: qmdiActionGroup - added support for submenus
- new feature: qmdiActionGroup - added support for adding QActionGroup
- new feature: qmdiActionGroup - merge points are computed at run time from list of added groups
- code refactoring: qmdiHost - updateGUI can has been updated, see documentation
- code refactoring: qmdiServer - a lot of functions moved from qmdiTabWidget
- code refactoring: qmdiTabWidget contains less implementation details (see qmdiServer)
- code refactoring: qmdiTabBar has been removed, qmdiTabWidget uses an event filter now
- new demo: plugin demo is working now, soon to be ported to the main library
<<lessThis can be used to present different menus and toolbars to widgets inside a QTabWidget, hiding or showing a different set of menus on demand or even enabling a small plugin system.
The library is fully documented, and contains some demostrations. It should compile flawlessly (no warnings) with a single "qmake; make" on the root directory of the project.
qmdilib library is known to work on Windows and Linux, and there is no reason why it should not work on other platforms supported by Qt4. Currently only gcc is tested, but other compilers should be able to compile this library
Enhancements:
- Documentation re-created using doxygen 1.4.7
- code refactoring: qmdiClient - qmdiServer is now a public member
- new feature: qmdiActionGroup - added support for submenus
- new feature: qmdiActionGroup - added support for adding QActionGroup
- new feature: qmdiActionGroup - merge points are computed at run time from list of added groups
- code refactoring: qmdiHost - updateGUI can has been updated, see documentation
- code refactoring: qmdiServer - a lot of functions moved from qmdiTabWidget
- code refactoring: qmdiTabWidget contains less implementation details (see qmdiServer)
- code refactoring: qmdiTabBar has been removed, qmdiTabWidget uses an event filter now
- new demo: plugin demo is working now, soon to be ported to the main library
Download (0.25MB)
Added: 2007-06-30 License: GPL (GNU General Public License) Price:
847 downloads
irrlamb 0.0.4
irrlamb is a 3D game that probably involves a lot of physics and frustrating gameplay. more>>
irrlamb project is a 3D game that probably involves a lot of physics and frustrating gameplay.
<<less Download (3.4MB)
Added: 2007-07-12 License: GPL v3 Price:
834 downloads
DBIx::OO::Tree 0.0.4
DBIx::OO::Tree is a Perl module to manipulate hierarchical data using the nested sets model. more>>
DBIx::OO::Tree is a Perl module to manipulate hierarchical data using the "nested sets" model.
SYNOPSYS
CREATE TABLE Categories (
id INTEGER UNSIGNED AUTO_INCREMENT PRIMARY KEY,
label VARCHAR(255),
-- these columns are required by DBIx::OO::Tree
parent INTEGER UNSIGNED,
lft INTEGER UNSIGNED NOT NULL,
rgt INTEGER UNSIGNED NOT NULL,
mvg TINYINT DEFAULT 0,
INDEX(lft),
INDEX(rgt),
INDEX(mvg),
INDEX(parent)
);
* * *
package Category;
use base DBIx::OO;
use DBIx::OO::Tree;
__PACKAGE__->table(Categories);
__PACKAGE__->columns(P => [ id ],
E => [ label, parent ]);
# note its not necessary to declare lft, rgt, mvg or parent. We
# declare parent simply because it might be useful, but
# DBIx::OO:Tree works with low-level SQL therefore it doesnt
# require that the DBIx::OO object has these fields.
# the code below creates the structure presented in [1]
my $electronics = Category->tree_append({ label => electronics });
my $tvs = $electronics->tree_append({ label => televisions });
my $tube = $tvs->tree_append({ label => tube });
my $plasma = $tvs->tree_append({ label => plasma });
my $lcd = $plasma->tree_insert_before({ label => lcd });
my $portable = $tvs->tree_insert_after({ label => portable electronics });
my $mp3 = $portable->tree_append({ label => mp3 players });
my $flash = $mp3->tree_append({ label => flash });
my $cds = $portable->tree_append({ label => cd players });
my $radios = Category->tree_append($portable->id,
{ label => 2 way radios });
# fetch and display a subtree
my $data = $electronics->tree_get_subtree({
fields => [qw( label lft rgt parent )]
});
my $levels = Category->tree_compute_levels($data);
foreach my $i (@$data) {
print x $levels->{$i->{id}}, $i->{label}, "n";
}
## or, create DBIx::OO objects from returned data:
my $array = Category->init_from_data($data);
print join("n", (map { x $levels->{$_->id} . $_->label } @$array));
# display path info
my $data = $flash->tree_get_path;
print join("n", (map { $_->{label} } @$data));
# move nodes around
$mp3->tree_reparent($lcd->id);
$tvs->tree_reparent($portable->id);
$cds->tree_reparent(undef);
$plasma->tree_move_before($tube->id);
$portable->tree_move_before($electronics->id);
# delete nodes
$lcd->tree_delete;
This module is a complement to DBIx::OO to facilitate storing trees in database using the "nested sets model", presented in [1]. Its main ambition is to be extremely fast at retrieving data (sacrificing for this the performance of UPDATE-s, INSERT-s or DELETE-s). Currently this module requires you to have these columns in the table:
- id: primary key (integer)
- parent: integer, references the parent node (NULL for root nodes)
- lft, rgt: store the node position
- mvg: used only when moving nodes
"parent" and "mvg" are not esentially required by the nested sets model as presented in [1], but they are necessary for this module to work. In particular, "mvg" is only required by functions that move nodes, such as tree_reparent(). If you dont want to move nodes around you can omit "mvg".
Retrieval functions should be very fast (one SQL executed). To further promote speed, they dont return DBIx::OO blessed objects, but an array of hashes instead. Its easy to create DBIx::OO objects from these, if required, by calling DBIx::OO->init_from_data() (see DBIx::OO for more information).
Insert/delete/move functions, however, need to ensure the tree integrity. Heres what happens currently:
- tree_append, tree_insert_before, tree_insert_after -- these execute
one SELECT and two UPDATE-s (that potentially could affect a lot of
rows).
- tree_delete: execute one SELECT, one DELETE and two UPDATE-s.
- tree_reparent -- executes 2 SELECT-s and 7 UPDATE-s. I know, this
sounds horrible--if you have better ideas Id love to hear them.
<<lessSYNOPSYS
CREATE TABLE Categories (
id INTEGER UNSIGNED AUTO_INCREMENT PRIMARY KEY,
label VARCHAR(255),
-- these columns are required by DBIx::OO::Tree
parent INTEGER UNSIGNED,
lft INTEGER UNSIGNED NOT NULL,
rgt INTEGER UNSIGNED NOT NULL,
mvg TINYINT DEFAULT 0,
INDEX(lft),
INDEX(rgt),
INDEX(mvg),
INDEX(parent)
);
* * *
package Category;
use base DBIx::OO;
use DBIx::OO::Tree;
__PACKAGE__->table(Categories);
__PACKAGE__->columns(P => [ id ],
E => [ label, parent ]);
# note its not necessary to declare lft, rgt, mvg or parent. We
# declare parent simply because it might be useful, but
# DBIx::OO:Tree works with low-level SQL therefore it doesnt
# require that the DBIx::OO object has these fields.
# the code below creates the structure presented in [1]
my $electronics = Category->tree_append({ label => electronics });
my $tvs = $electronics->tree_append({ label => televisions });
my $tube = $tvs->tree_append({ label => tube });
my $plasma = $tvs->tree_append({ label => plasma });
my $lcd = $plasma->tree_insert_before({ label => lcd });
my $portable = $tvs->tree_insert_after({ label => portable electronics });
my $mp3 = $portable->tree_append({ label => mp3 players });
my $flash = $mp3->tree_append({ label => flash });
my $cds = $portable->tree_append({ label => cd players });
my $radios = Category->tree_append($portable->id,
{ label => 2 way radios });
# fetch and display a subtree
my $data = $electronics->tree_get_subtree({
fields => [qw( label lft rgt parent )]
});
my $levels = Category->tree_compute_levels($data);
foreach my $i (@$data) {
print x $levels->{$i->{id}}, $i->{label}, "n";
}
## or, create DBIx::OO objects from returned data:
my $array = Category->init_from_data($data);
print join("n", (map { x $levels->{$_->id} . $_->label } @$array));
# display path info
my $data = $flash->tree_get_path;
print join("n", (map { $_->{label} } @$data));
# move nodes around
$mp3->tree_reparent($lcd->id);
$tvs->tree_reparent($portable->id);
$cds->tree_reparent(undef);
$plasma->tree_move_before($tube->id);
$portable->tree_move_before($electronics->id);
# delete nodes
$lcd->tree_delete;
This module is a complement to DBIx::OO to facilitate storing trees in database using the "nested sets model", presented in [1]. Its main ambition is to be extremely fast at retrieving data (sacrificing for this the performance of UPDATE-s, INSERT-s or DELETE-s). Currently this module requires you to have these columns in the table:
- id: primary key (integer)
- parent: integer, references the parent node (NULL for root nodes)
- lft, rgt: store the node position
- mvg: used only when moving nodes
"parent" and "mvg" are not esentially required by the nested sets model as presented in [1], but they are necessary for this module to work. In particular, "mvg" is only required by functions that move nodes, such as tree_reparent(). If you dont want to move nodes around you can omit "mvg".
Retrieval functions should be very fast (one SQL executed). To further promote speed, they dont return DBIx::OO blessed objects, but an array of hashes instead. Its easy to create DBIx::OO objects from these, if required, by calling DBIx::OO->init_from_data() (see DBIx::OO for more information).
Insert/delete/move functions, however, need to ensure the tree integrity. Heres what happens currently:
- tree_append, tree_insert_before, tree_insert_after -- these execute
one SELECT and two UPDATE-s (that potentially could affect a lot of
rows).
- tree_delete: execute one SELECT, one DELETE and two UPDATE-s.
- tree_reparent -- executes 2 SELECT-s and 7 UPDATE-s. I know, this
sounds horrible--if you have better ideas Id love to hear them.
Download (0.023MB)
Added: 2007-01-13 License: Perl Artistic License Price:
594 downloads
Music daemon 0.0.4
Music daemon(musicd) is a music playing server that supports multiple formats through plugins and multiple playlists. more>>
Music daemon(musicd) is a music playing server that supports multiple formats through plugins and multiple playlists. Musicd supports plugins to enable playing of different audioformats. The plugin-api is quite similiar to one that the popular XMMS uses. Currently XMMS-plugins are not directly supported, but if I find the time, Ill make a meta-plugin to support them.
The first reason to make the player a server is to make it possible to use many different frontends and even at the same time. You can use a GUI if you like them, but anything it can do, can be done from commandline too.
The second reason is to make sure that the GUI or X does not crash the whole player. I have found that many software with a GUI tend to crash. With musicd the player is unaffected by this and you can start the interface again.
Main features:
- Musicd has its own simple text-based protocol for player-frontend communication.
- Support for unlimited number of playlists, songs per playlist and frontends connect at the same time
- Support for both IPv4 and IPv6. Also UNIX-sockets are supported for local connections.
- Currently supported audioformats: mp3 (ffmpeg), ogg vorbis (vorbisfile) and mods (libmikmod).
- Support for OSS and Solaris ouput.
- Musicd has been tested on x86 Linux and Solaris 9.
Enhancements:
- Calling play while already playing shouldnt cause deadlocks anymore
- Load command on a file that has too long line as the last line locked up the daemon, this shouldnt happen anymore
- Invalid id3tags shouldnt give random data anymore
- Invalid filenames shouldnt crash the player anymore
<<lessThe first reason to make the player a server is to make it possible to use many different frontends and even at the same time. You can use a GUI if you like them, but anything it can do, can be done from commandline too.
The second reason is to make sure that the GUI or X does not crash the whole player. I have found that many software with a GUI tend to crash. With musicd the player is unaffected by this and you can start the interface again.
Main features:
- Musicd has its own simple text-based protocol for player-frontend communication.
- Support for unlimited number of playlists, songs per playlist and frontends connect at the same time
- Support for both IPv4 and IPv6. Also UNIX-sockets are supported for local connections.
- Currently supported audioformats: mp3 (ffmpeg), ogg vorbis (vorbisfile) and mods (libmikmod).
- Support for OSS and Solaris ouput.
- Musicd has been tested on x86 Linux and Solaris 9.
Enhancements:
- Calling play while already playing shouldnt cause deadlocks anymore
- Load command on a file that has too long line as the last line locked up the daemon, this shouldnt happen anymore
- Invalid id3tags shouldnt give random data anymore
- Invalid filenames shouldnt crash the player anymore
Download (0.18MB)
Added: 2006-08-04 License: GPL (GNU General Public License) Price:
1179 downloads
jirsa 0.0.4
jirsa is an application to ease the life of the role-playing game master. more>>
jirsa is an application to ease the life of the role-playing game master.
jirsa can assist with maps, distance and travel times calculation, weather, ambient sounds, and weapons management.
Its easily expandable, since its built with several tabs. It currently supports The Lord Of The Rings RPG map and weather zones.
jirsa includes:
- maps
- distance and travel times calculation
- weather
- ambient sounds
- weapons management
<<lessjirsa can assist with maps, distance and travel times calculation, weather, ambient sounds, and weapons management.
Its easily expandable, since its built with several tabs. It currently supports The Lord Of The Rings RPG map and weather zones.
jirsa includes:
- maps
- distance and travel times calculation
- weather
- ambient sounds
- weapons management
Download (0.15MB)
Added: 2006-12-03 License: LGPL (GNU Lesser General Public License) Price:
1055 downloads
Agnix 0.0.4
Agnix project is an embedded real-time network operating system kernel. more>>
Agnix project is an embedded real-time network operating system kernel.
It is a small, educational operating system kernel for i386, supporting 32-bit protected memory mode, paging, hardware switched tasks, memory tests, PCI bus, devices, PCI IRQ routing, RT timers, network protocols.
It is available with all the source code and is fully compatible with the Linux kernel API.
Main features:
- Memory: 32-bit protected mode, support for paging
- Virtual memory: supports for memory allocation algorithms (binary and buddy)
- Tasks management: mulithreading, hardware switched tasks, round-robin scheduler
- Synchronization: spinlocks and semaphores
- Interrupts: interrupts serviced in fastirq kernel thread
- Timers: RT timers, 100Hz system clock
- Network: support for ethernet, ARP and IP protocols
- Driver interface: own driver interface named ADI (Agnix Driver Interface)
- Drivers: 8254, 8259, RTC, DMA chips, PCI bus, support for RTL-8029(AS) network card
- Power management: support for APM
- Support for busses: full support for PCI bus, PCI devices and PCI IRQs
- Terminals: support for switched terminals
- Data structures: hashing with open adressing, lists, queues
<<lessIt is a small, educational operating system kernel for i386, supporting 32-bit protected memory mode, paging, hardware switched tasks, memory tests, PCI bus, devices, PCI IRQ routing, RT timers, network protocols.
It is available with all the source code and is fully compatible with the Linux kernel API.
Main features:
- Memory: 32-bit protected mode, support for paging
- Virtual memory: supports for memory allocation algorithms (binary and buddy)
- Tasks management: mulithreading, hardware switched tasks, round-robin scheduler
- Synchronization: spinlocks and semaphores
- Interrupts: interrupts serviced in fastirq kernel thread
- Timers: RT timers, 100Hz system clock
- Network: support for ethernet, ARP and IP protocols
- Driver interface: own driver interface named ADI (Agnix Driver Interface)
- Drivers: 8254, 8259, RTC, DMA chips, PCI bus, support for RTL-8029(AS) network card
- Power management: support for APM
- Support for busses: full support for PCI bus, PCI devices and PCI IRQs
- Terminals: support for switched terminals
- Data structures: hashing with open adressing, lists, queues
Download (0.36MB)
Added: 2006-10-12 License: GPL (GNU General Public License) Price:
1109 downloads
Kexi Report Part 0.0.4
Kexi Report Part is a reporting component for Kexi 1.6 based on OpenRPT 1.2. more>>
Kexi Report Part is a reporting component for Kexi 1.6 based on OpenRPT 1.2.
Main features:
- A report viewer for Kexi
- An external report designer (KexiReportWriter) based on the OpenRPT writer program
Known Working Features
- Page Header
- Page Footer
- Report Header
- Report Footer
- Detail section
- Labels
- Lines
- Fields
- Page Browser
How To Create Report
1. Install the component following the instructions in INSTALL
2. Run KexiReportWriter to start designing a report
3. Select Database->Connect to DB
4. Browse to an existing Kexi Database and open it
5. Create a new report (File->New)
6. Assign a data source to the report (Document->Properties)
7. Create the report using labels/fields/lines
8. Assign columns to the field objects (Double click for properties)
9. Save the report. (Database->Save to DB)
10. Load the database in Kexi and double click the report to view it
Enhancements:
- Removed requirement to have kexi source available to install the plugin.Done this by including the needed kexi headers in the package. Only downside is that kexi 1.1.3 (from koffice 1.6.3) is required.
<<lessMain features:
- A report viewer for Kexi
- An external report designer (KexiReportWriter) based on the OpenRPT writer program
Known Working Features
- Page Header
- Page Footer
- Report Header
- Report Footer
- Detail section
- Labels
- Lines
- Fields
- Page Browser
How To Create Report
1. Install the component following the instructions in INSTALL
2. Run KexiReportWriter to start designing a report
3. Select Database->Connect to DB
4. Browse to an existing Kexi Database and open it
5. Create a new report (File->New)
6. Assign a data source to the report (Document->Properties)
7. Create the report using labels/fields/lines
8. Assign columns to the field objects (Double click for properties)
9. Save the report. (Database->Save to DB)
10. Load the database in Kexi and double click the report to view it
Enhancements:
- Removed requirement to have kexi source available to install the plugin.Done this by including the needed kexi headers in the package. Only downside is that kexi 1.1.3 (from koffice 1.6.3) is required.
Download (1.7MB)
Added: 2007-06-17 License: GPL (GNU General Public License) Price:
525 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above gmediarender 0.0.4 search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed