//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 />';
read XML with PHP
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
}
Tags: concurrency
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>
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);
});
}
});
Tags: javascript, mootools
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> $nombreArch</b></a></td>
";
echo "
</tr>
";
}
closedir($directorio);
echo "</table>
";
?>
Tags: php
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);
Tags: php
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();
}
}
Running Doctest/Docutils
def add(x,y): """ >>> add(5,6) 11 """ return x+y if __name__ == "__main__": import doctest doctest.testmod()
ISO erstellen und mounten
// ISO erstellen dd if=/dev/cdrom of=cd.iso // ISO mounten mount -t iso9660 -o loop image.iso /mnt/isoimage