read XML with PHP

//xml.xml :

<?xml version="1.0" encoding="utf-8" ?>
<Kategorien>
<Kategorie>
<ID>1</ID>
<Name>PHP</Name>
<link>http://www.tsql.de/php.php</link>
</Kategorie>
<Kategorie>
<ID>2</ID>
<Name>SQL</Name>
<link>http://www.tsql.de/transact-sql/howto.htm</link>
</Kategorie>
<Kategorie>
<ID>3</ID>
<Name>CSharp</Name>
<link>http://tsql.de/csharp.htm</link>
</Kategorie>
</Kategorien>

//xmlread.php :

$Kategorien = simplexml_load_file('php-xml-lesen.xml');

echo $Kategorien->Kategorie[0]->Name.'<br />';
echo $Kategorien->Kategorie[0]->ID.'<br />';
echo $Kategorien->Kategorie[0]->link.'<br />';

source

Coordinating Runnable tasks using CountDownLatch

ExecutorService executorService = Executors.newFixedThreadPool(5);
int tasksCount = 10;
final CountDownLatch latch = new CountDownLatch(tasksCount);
for (int i = 0; i < tasksCount; i++ ) {
executorService.execute(new Runnable() {
public void run() {
try {
// Do some work;
} finally {
latch.countDown();
}
}
});
}
try {
latch.await();
} catch (InterruptedException e) {
// todo >> handle exception
}
// All done!
// Do some more work
}

source

flash object

<object type="application/x-shockwave-flash" data="swf/intro.swf" width="550" height="80">

<param name="movie" value="swf/intro.swf" />
<param name="menu" value="false" />
<param name="quality" value="high" />
<param name="bgcolor" value="#B0C7D5" />
<img src="img/alt.jpg" width="550" height="80" alt="" title="" />

</object>

source

Logging from inside a rails model

RAILS_DEFAULT_LOGGER.error

source

Two Lists

//******************************************************************************
// Función nativa de Javascript que se ha modificado por otra.
// Elimina un (o mas) elemento(s) de un array:
Array.prototype.remove = function(from, to) {
var rest = this.slice((to || from) + 1 || this.length);
this.length = from < 0 ? this.length + from : from;
return this.push.apply(this, rest);
};
//******************************************************************************

/*
* 		Clase Two_lists
*
* 		Permite que interactuen 2 elementos SELECT y 2 elementos INPUT del TYPE=BUTTON, para que
* 		que los elementos OPTION de dentro de los SELECT, puedan moverse de un SELECT a otro.
* 		Para hacer el movimiento, se selecciona el OPTION y se pulsa el botón correspondiente.
* 		También se puede hacer seleccionando múltiples OPTIONs con las teclas Ctrl o Shift, siempre
* 		que el SELECT tenga MULTIPLE=MULTIPLE. Para mover uno de manera más práctica, haciendo doble
* 		click también se moverá de SELECT.
*
* 		Para instanciar la clase, hay que pasar cuatro parámetros :
* 		* El primer SELECT
* 		* El segundo SELECT
* 		* El INPUT que mueve del primer SELECT al segundo
* 		* El INPUT que mueve del segundo SELECT al primero
*
* 		La clase posee cuatro funciones a parte de la constructora:
* 		* moveOptionToSelect2 (option)
* 			Mueve el option a nivel interno, es decir, en las 2 arrays internas con los datos de todos
* 			los OPTIONS, mueve el item referenciado al option de un array al otro, y después elimina el
* 			option del HTML.
* 		* moveOptionToSelect1 (option)
* 			Idem anterior, pero en el otro sentido.
* 		* updateSelect1 ()
* 			Actualiza los OPTIONs del primer SELECT, según el array interno referenciado a ese SELECT.
* 			Vacía el SELECT, y lo rellena creando los OPTIONS con sus datos.
* 		* updateSelect2 ()
* 			Idem anteior, pero en el segundo SELECT.
*
*/

var Two_lists = new Class({
Implements: [Options],

select1 : 	null,
select2 : 	null,
asignar :	null,
liberar :	null,
options1 : 	new Array(),		// Array interno con los datos de los OPTIONs del primer SELECT
options2 : 	new Array(),		// Array interno con los datos de los OPTIONs del segundo SELECT

options: {},

//***********************************
// INITIALIZE
//	Función constructora. Requiere por parámetros los dos elementos SELECTs del HTML, y los
//	dos INPUTs que interactuarán en la clase.
//***********************************
initialize: function(select1, select2, asignar, liberar){

// guarda el objeto implícito para dentro de las funciones
var self = this;

this.select1 = select1;
this.select2 = select2;
this.asignar = asignar;
this.liberar = liberar;

//generar el array con todos los options del select1
this.select1.getElements('option').each( function(option) {
self.options1.push({
'id' : option.get('value'),
'name' : option.get('html'),
'state' : true
});
});

//generar el array con todos los options del select2
this.select2.getElements('option').each( function(option) {
self.options2.push({
'id' : option.get('value'),
'name' : option.get('html'),
'state' : true
});
});

//crea el evento de asignar para el botón
this.asignar.addEvent ('click', function () {
var options_selected = self.select1.getElements('option').filter( function(option){
return option.get('selected');
});

options_selected.each ( function (option) {
self.moveOptionToSelect2(option);
});
self.updateSelect2();
});

//crea el evento de liberar para el botón
this.liberar.addEvent ('click', function () {
var options_selected = self.select2.getElements('option').filter( function(option){
return option.get('selected');
});

options_selected.each ( function (option) {
self.moveOptionToSelect1(option);
});
self.updateSelect1();
});

//crea el evento de asignar para el doble click en el option
this.select1.addEvent ('dblclick', function () {
self.asignar.fireEvent('click');
});

//crea el evento de asignar para el doble click en el option
this.select2.addEvent ('dblclick', function () {
self.liberar.fireEvent('click');
});

},

//***********************************
// MOVE OPTION TO SELECT2
//	Realiza el moviento de los items en las arrays internas, y elimina el OPTION del HTML
//***********************************
moveOptionToSelect2 : function( option ) {

// guarda el objeto implícito para dentro de las funciones
var self = this;

// calcula la posición donde se encuentra el option en el array de options del select original
var position;
this.options1.each( function(item, index) {
if (item.id == option.get('value')) {
position = index;
}
});

// hace el intercambio en los arrays
this.options2.push(this.options1[position]);
this.options1.remove(position);

// borra el option del select original
option.destroy();

},

//***********************************
// MOVE OPTION TO SELECT1
//	Realiza el moviento de los items en las arrays internas, y elimina el OPTION del HTML
//***********************************
moveOptionToSelect1 : function( option ) {

// guarda el objeto implícito para dentro de las funciones
var self = this;

// calcula la posición donde se encuentra el option en el array de options del select original
var position;
this.options2.each ( function(item, index) {
if (item.id == option.get('value')) {
position = index;
}
});

// hace el intercambio en los arrays
this.options1.push(this.options2[position]);
this.options2.remove(position);

// borra el option del select original
option.destroy();

},

//***********************************
// UPDATE SELECT1
//	Vacía el primer SELECT de todos los OPTIONs, y los vuelve a crear según el array interno.
//***********************************
updateSelect1 : function() {

// guarda el objeto implícito para dentro de las funciones
var self = this;

// borra los options del select de destino, y lo regera según el array
this.select1.empty();

this.options1.each ( function(item) {
if (item.state) {
op = new Element('option', {
'id': 'dominio-' + item.id,
'value': item.id,
'html': item.name
});
op.inject(self.select1);
}
});

},

//***********************************
// UPDATE TO SELECT2
//	Vacía el segundo SELECT de todos los OPTIONs, y los vuelve a crear según el array interno.
//***********************************
updateSelect2 : function() {

// guarda el objeto implícito para dentro de las funciones
var self = this;

// borra los options del select de destino, y lo regera según el array
this.select2.empty();

this.options2.each ( function(item) {
op = new Element('option', {
'id': 'dominio-'+item.id,
'value': item.id,
'html': item.name
});
op.inject(self.select2);
});

}
});

source

Crear una lista de carpetas con PHP

<?php // Crear una lista de carpetas con PHP
echo "<h3>Index</h3>
";
echo "<table>
";
$directorio = opendir(".");
while ($archivo = readdir($directorio))
{
$nombreArch = ucwords($archivo);
$nombreArch = str_replace("..", "Atras", $nombreArch);
echo "<tr>
<td>
<a href='$archivo'>
";
echo "<img src='ico_folder.gif' alt='Ver $nombreArch'";
echo " border=0>
";
echo "<b>&nbsp;$nombreArch</b></a></td>
";
echo "
</tr>
";
}
closedir($directorio);
echo "</table>
";
?>

source

Imprimir la fecha en español utilizando PHP aunque el idioma del servidor sea el inglés.

/*************************************
Devuelve una cadena con la fecha que se
le manda como parámetro en formato largo.
*************************************/
function FechaFormateada2($FechaStamp)
{
$ano = date('Y',$FechaStamp);
$mes = date('n',$FechaStamp);
$dia = date('d',$FechaStamp);
$diasemana = date('w',$FechaStamp);

$diassemanaN= array("Domingo","Lunes","Martes","Miércoles",
"Jueves","Viernes","Sábado"); $mesesN=array(1=>"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio",
"Agosto","Septiembre","Octubre","Noviembre","Diciembre");
return $diassemanaN[$diasemana].", $dia de ". $mesesN[$mes] ." de $ano";
}

//Para utilizar la función, se le manda una fecha como parámetro, por ejemplo, si se quisiera imprimir la fecha actual, utilizaríamos el siguiente código:

$fecha = time();
echo FechaFormateada2($fecha);

source

MihirMoneMapMakerv1.1.3

/* Last Update: 30 Sept 08 - 1745 hrs */

package project;

import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.HashMap;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JToolBar;
import javax.swing.border.BevelBorder;
import javax.swing.border.SoftBevelBorder;

public class MapMaker implements ActionListener{
private JFrame frame;
private JButton button;
private JPanel mainPanel, upPanel, westPanel, eastPanel, centerPanel;
private HashMap<String, ArrayList> items;

public void initializeItems() {
items.put("nature", Nature.initializeTrees());
items.put("road", Road.initializeRoads());
items.put("vehicle", Vehicle.initializeVehicles());
items.put("building", Building.initializeBuildings());
items.put("signs", Signs.initializeSigns());
}

public MapMaker() {
items = new HashMap<String, ArrayList>();
initializeItems();
frame=new JFrame("Countryside Tour Planner") ;
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

// create the 2 buttons for TREE and ROAD and add action listeners
MainItemToolBar mobj = new MainItemToolBar();
mobj.makeMainItemToolBar(items);

// this panel will hold TREE and ROAD buttons
upPanel=new JPanel();
upPanel.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));
upPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
upPanel.add(mobj.getMainItemToolBar());
ArrayList<JButton> mainToolBarButtons = mobj.getButtons();
for(int i=0; i<mainToolBarButtons.size(); i++)
mainToolBarButtons.get(i).addActionListener(this);

// WEST PANEL holds the sub item icons and is initialized to TREE sub icons
westPanel=new JPanel();
westPanel.setBorder(new BevelBorder(BevelBorder.LOWERED));
SubItemToolBar sobj = new SubItemToolBar();
sobj.makeSubItemToolBar(items.get("nature"), "nature");
westPanel.add(sobj.getSubItemToolBar());

// EAST PANEL holds the properties window
eastPanel = new JPanel();
Box3D boxObj = new Box3D();
boxObj.setClr("green");
boxObj.setModifiable(true);
boxObj.setVisible(true);
boxObj.setRaised(true);
PropertiesPanel pobj = new PropertiesPanel(boxObj);
eastPanel.add(pobj.getPropertiesToolBar());

// CENTER PANEL holds the canvas for drawing
centerPanel = new JPanel();
Canvas cobj = new Canvas();
cobj.setBackground(Color.WHITE);
centerPanel.add(cobj);

// MAIN PANEL holds all the other panels
mainPanel=new JPanel();
mainPanel.setLayout(new BorderLayout());
mainPanel.add(centerPanel, BorderLayout.CENTER);
mainPanel.add(upPanel,BorderLayout.NORTH);
mainPanel.add(westPanel,BorderLayout.WEST);
mainPanel.add(eastPanel, BorderLayout.EAST);

// sets the Menu bar for the frame
frame.setJMenuBar(new MenuBar());

// finalize frame and display
frame.getContentPane().add(mainPanel);
frame.pack();
frame.setSize(1000,600);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}

public void actionPerformed(ActionEvent e) {
JButton source = (JButton)e.getSource();
String option = source.getName().toLowerCase();
JToolBar toolbar = new JToolBar();
SubItemToolBar sobj = new SubItemToolBar();
westPanel.removeAll();
if(option.equals("nature")) {
sobj.makeSubItemToolBar(items.get("nature"), "nature");
toolbar = sobj.getSubItemToolBar();
} else if(option.equals("road")) {
sobj.makeSubItemToolBar(items.get("road"), "road");
toolbar = sobj.getSubItemToolBar();
} else if(option.equals("vehicle")) {
sobj.makeSubItemToolBar(items.get("vehicle"), "vehicle");
toolbar = sobj.getSubItemToolBar();
} else if(option.equals("building")) {
sobj.makeSubItemToolBar(items.get("building"), "building");
toolbar = sobj.getSubItemToolBar();
}
else if(option.equals("signs and signals")) {
sobj.makeSubItemToolBar(items.get("signs"), "signs");
toolbar = sobj.getSubItemToolBar();
}
westPanel.add(toolbar);
upPanel.revalidate();
westPanel.repaint();
westPanel.revalidate();
mainPanel.revalidate();
frame.validate();
}

public static void main(String[] args) {
MapMaker test = new MapMaker();
}
}

source

Running Doctest/Docutils

def add(x,y):
"""
>>> add(5,6)
11
"""
return x+y

if __name__ == "__main__":
import doctest
doctest.testmod()

source

ISO erstellen und mounten

// ISO erstellen
dd if=/dev/cdrom of=cd.iso

// ISO mounten
mount -t iso9660 -o loop image.iso /mnt/isoimage

source