home / infca / pere (navigation links) Sóc molt cartesià.
I posats a triar algun extrem, si és imprescindible,
prefereixo passarme de racional que de sentimental

Temes amb lo Pere

En Pere Albert es un gran paio que no ha deixat de ajudarme cada cop que li he demanat. Gracies, Pere !

En Pere i la neu

Delphi
Tenim projectes a GitHub
https://github.com/sebastianet/pere-delphi-AvailabilityDisplay
PING() continu - qualitat de guifi
w500:\\Delphi\Ping_Continu
Mira qué es capaç de fer en Pere en 10 minuts
type
  TForm1 = class(TForm)
    PaintBox1: TPaintBox;
    procedure PaintBox1Paint(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.PaintBox1Paint (Sender: TObject) ;
var i,j : integer ;
    r : TRect ;
begin

  with PaintBox1.Canvas do begin

    for i:=0 to cliprect.bottom do
      for j:=0 to cliprect.right do
        pixels [j,i] := $ff0000 + 256*trunc(255*(i/cliprect.Bottom)) + trunc(255*(j/cliprect.right)) ;
  end;

  r := Paintbox1.Canvas.ClipRect ;
  Inflaterect (r,-5,-5) ;
  PaintBox1.Canvas.Brush.Style := bsClear ;
  PaintBox1.Canvas.Rectangle (r) ;

end ;

Truc per a que el tamany del contingut segueixi al continent :

El truco de canvi de tamany és la property Alignment ; posa-la a alClient i le voilà ...
Per cert, aquesta property és una de les més canyeres del Delphi.

Get Delphi 7 Professional [4/12/2003]

MD5 no em quadra :

Delphi 6 Enterprise Edition (crack) here

Way 2 Learn [23/01/2004]

La VCL de Delphi és un framework bastant complexe, molt més fàcil que la majoria de frameworks de potència similar però evidentment té una corba d'aprenentatge que cal superar. Hi han tutorials a la xarxa. Hi han llibres. Requereix temps per anar provant i fent. I llegir molt. Llegir molt codi. Estudiar molts exemples. Buscar a Google abans de fer cada cosa. Segur que trobes exemples que t'ho expliquen.
Pots començar amb el Developers Guide del Delphi Help que ve amb el producte. Llegeix en ordre els primers capítols "Tutorial" i "Programming with Delphi" (en especial, "Fundamentals", "Using Component Libraries", "Common Programming Tasks", "Building Applications"i "Developing the UI" ) i ves escribint petits programes de prova.

Llegir TString i TStringList [03.02.2004]

Borland's Delphi is a combination of a modern programming language, an integrated development environment (IDE), and the visual component library (VCL).

RadioGroup [23/01/2004]

Tal com em dius que ho tens definit, no et queda cap més remei que anar provant un a un :

  if radioButton1.checked then s:=radioButton1.caption
  else if radioButton2.checked then s:=radioButton2.caption
  else if radioButton3.checked then s:=radioButton3.caption
  else s:='NS/NC/NA';

Ara bé, hi ha una manera alternativa que t'ho simplifica molt.
Enlloc de posar un TGroup i anar-lo omplint de TRadioButtons, poses un TRadioGroup, omples el seu Items property i llavors només cal...

  if radioGroup1.ItemIndex<>-1 then
    s:=radioGroup1.Items[radioGroup1.ItemIndex]
  else
    s:='NS/NC/NA';

Hi tinc 4 coses



Java

Copia dins un arxiu Sebas.java, compila javac Sebas.java i executa java Sebas

/* * Diccionario de Comandos. Para Sebas. * * (C) 2004 Pere Albert, Barcelona. perealbert@es.ibm.com */ import java.awt.*; import java.awt.event.*; class Sebas extends Frame implements ActionListener { // interface para virtualizar el método a invocar interface ProcesadorOrden { void procesa(); } // objeto para poner en la tabla diccionario class EntradaDiccionario { String term; public int hash; // para optimizar búsqueda en diccionario public ProcesadorOrden procesador; public EntradaDiccionario(String s, ProcesadorOrden pp ) { term = s; hash = s.hashCode(); procesador = pp; } } void procesaUno() { say("Uno 1"); } void procesaDos() { say("Dos 2"); } void procesaTres() { say("Tres 3"); } // para añadir una nueva orden tan solo es necesario // añadir una fila a esta tabla diccionario, // creando una nueva EntradaDiccionario, con la orden y con el código que // se tenga que invocar. La implementación del código se hace aquí inline EntradaDiccionario[] diccionario = { new EntradaDiccionario("uno", new ProcesadorOrden() { public void procesa(){ procesaUno(); } } ), new EntradaDiccionario("dos", new ProcesadorOrden() { public void procesa() { procesaDos(); } } ), new EntradaDiccionario("tres", new ProcesadorOrden() { public void procesa() { procesaTres(); } } ), new EntradaDiccionario("cuatro", new ProcesadorOrden() { public void procesa() { say("cuatro!"); } } ), new EntradaDiccionario("primero", new ProcesadorOrden() { public void procesa() { procesaUno(); } } ), new EntradaDiccionario("sebas", new ProcesadorOrden() { public void procesa() { say("Sebas capullo"); } } ) }; // aquí está el código de buscar la orden. Se compara solo por hash // podría añadirse comparación final por string completo // por si hay colisión de hash -muy improbable- void procesaOrden(String orden) { say("Procesando orden "+orden); int h = orden.hashCode(); int i = 0; while (( i < diccionario.length) && (diccionario[i].hash!=h) ) i++; if ( i < diccionario.length) { diccionario[i].procesador.procesa(); } else { say("no sé como procesar orden "+orden); } } // todo el resto es para pruebas y que se vea algo por pantalla.... public Sebas() { addWindowListener ( new WindowAdapter() { public void windowClosing(WindowEvent e) { dispose(); System.exit(0); } } ); } List resultsList; TextField ordenField; void say(String s) { resultsList.add(s); } void go() { resultsList = new List(); Panel controlPanel = new Panel(); ordenField = new TextField(20); ordenField.addActionListener(this); Button goButton = new Button("Invoca Orden"); goButton.addActionListener(this); controlPanel.setLayout(new FlowLayout(FlowLayout.LEFT)); controlPanel.add(ordenField); controlPanel.add(goButton); setTitle("Hola Sebas"); setSize(600,400); setLayout(new BorderLayout()); add("North",controlPanel); add("Center",resultsList); show(); } public void actionPerformed(ActionEvent event) { say(event.toString()); procesaOrden(ordenField.getText()); } public static void main(String args[]) { Sebas s = new Sebas(); s.go(); } }

Cal saber

  • quin tipus d'aplicació es vol fer:
    • si aplicació web amb servlets,
    • o aplicació web amb jsps,
    • o una java application
    • o un applet
  • i si té gui pròpia
  • i si és awt, swt o swing.

Si és una aplicació web amb JSPs, mira't això : Developing Multilingual Web Applications Using JavaServer Pages Technology
Si és una aplicació Java Creating a Multilingual Application in Java

Web Sphere

WebSphere Information Roadmap
WebSphere RedBooks

WAS

El cicle de desenvolupament simplificat és :
  1. .- codificar Java i JSPs, usant WSAD. Una aplicació WAS és una aplicació J2EE. Per tant, es codifica en Java i JSPs.
  2. .- provar en el WTE (Websphere Test Environment) del WSAD
  3. .- Empaquetar l'aplicació en un EAR o WAR
  4. .- Desplegar en el WAS
    El pas 4 normalment és múltiple: pas a proves, pas a preproducció, pas a producció ...
EAR empaqueta tots els components de una Enterprise Application, És a dir, una aplicació J2EE amb EJBs etc. Entre ells, EAR empaqueta WARs. WAR empaqueta una Web Application, que no té perquè incloure components J2EE sinó només servlets, jsps etc.
De tota manera, per entendre millor les diferències si és que n'hi ha alguna, podries mirar-te algun llibre de best practices de empaquetament i desplegament d'aplicacions J2EE. Com ara el redbook WebSphere Version 5 Application Development Handbook SG24-6993-00, [T30+F:\WS\llibres\WSAD\HandBook] del que he extret aquesta informació:

J2EE packaging
J2EE applications are deployed as an enterprise archive (EAR) file. An EAR file is composed of a set of modules. Each module contains a deployment descriptor that specifies how to assemble and deploy the module in a runtime environment. Customized information can be provided at both assembly time and deployment time without having to recompile the application objects.

An EAR file is composed of any number of the following components:
EJB modules - An EJB module contained in an EJB JAR file contains one or more EJBs.
Web modules - A Web module contained in a Web application WAR file contains a single Web application. As an EAR file can contain multiple Web applications, each Web application in an EAR file must have a unique deployment context.
Application client modules - An application client module contained in a client JAR file contains a single, standalone Java application that is intended to run within an application client container. The application client JAR file contains a specialized dployment descriptor and is composed similarly to the way an EJB JAR file is composed. The JAR file contains the classes required to run the standalone client, in addition to any client libraries needed to access JDBC, JMS, JAXP, JAAS, or an EJB client.
Resource adapter modules - A resource adapter module contained in an RAR file contains Java classes and native libraries required to implement a Java Connector Architecture (JCA) resource adapter to an enterprise information system. Resource adapters do not execute within a container. Rather, they are designed to execute as a bridge between an Application Server and an external enterprise information system.

EARs can consist of the following: Zero or more EJB modules; Zero or more Web modules; Zero or more resource adapter modules; Zero or more application client modules; Optionally, additional JAR files, so-called utility JARs, containing dependent classes or other components required by multiple modules



Contingut de una DLL o un LIB

Per saber les funcions definides en una DLL o una LIB cal fer un dump del header de la DLL o LIB. Els detalls són una mica diferents si es tracta de DLL o LIB. Tots els entorns de programació tenen alguna eina per fer-ho. El MS Visual C té IMPDEF i IMPLIB. En GNU hi ha un programet que es diu DLLTOOL.

e:\eines\IMPDEF.EXE MQIC32.DLL

F:\CPP\LibView\Unzip\LibView\Release\LibView.exe + NOM.LIB


Process list

Article Microsoft : http://support.microsoft.com/kb/q175030/ - cómo enumerar aplicaciones con las API Win32

void ViewAllProcesses () { char string [256] ; HANDLE kernel ; HANDLE snapshot ; PROCESSENTRY32 proc ; CREATESNAPSHOT CreateToolhelp32Snapshot ; PROCESSWALK Process32First ; PROCESSWALK Process32Next ; kernel = GetModuleHandle ( "KERNEL32.DLL" ) ; CreateToolhelp32Snapshot = (CREATESNAPSHOT) GetProcAddress ( (HINSTANCE) kernel, "CreateToolhelp32Snapshot") ; Process32First = (PROCESSWALK) GetProcAddress ( (HINSTANCE) kernel, "Process32First" ) ; Process32Next = (PROCESSWALK) GetProcAddress ( (HINSTANCE) kernel, "Process32Next" ) ; if ( NULL == CreateToolhelp32Snapshot || NULL == Process32First || NULL == Process32Next ) return ; proc.dwSize = sizeof(proc) ; if ( NULL == CreateToolhelp32Snapshot || NULL == Process32First || NULL == Process32Next ) return; snapshot = CreateToolhelp32Snapshot ( TH32CS_SNAPPROCESS, 0 ) ; /* * Now that we have a snapshot of the system state, * we simply walk the list it represents by calling Process32First once, * then call Proces32Next repeatedly until we get to the end of the list. */ Process32First ( snapshot, & proc ) ; { show_task ( proc.szExeFile, proc.th32ProcessID ) ; // write ProcessID to output } while ( TRUE == Process32Next ( snapshot, & proc ) ) { show_task ( proc.szExeFile, proc.th32ProcessID ) ; // write ProcessID to output } }

References :
Pietrek, Matt, "Under the Hood," Microsoft Systems Journal, no. 8 (August 1996). URL
Pietrek, Matt, "Under the Hood," Microsoft Systems Journal, no. 11 (November 1996). URL

Back issues (1986-2000) URL
New Journal


Aus que m'agraden

ABEJERO EUROPEO
Pernis apirvorus / Aligot vesper
Envergadura: 119-127 cm.
Peso: 0,5-1 kg.
2004: 1.054 ejemplares.
CERNÍCALO COMÚN
Falco tinnunculus / Xoriguer comú
Envergadura: 68-82 cm.
Peso: 130-270 g.
2004: 223 ejemplares.
AGUILUCHO LAGUNERO
Circus aeruginosus / Arpella
Envergadura: 112-135 cm.
Peso: 440-1.100 g.
2004: 121 ejemplares.
GAVILÁN
Accipiter nisus / Esparver
Envergadura: 59-65 cm.
Peso: 210-300 g.
2004: 232 ejemplares.
ALCOTÁN EUROPEO
Falco subbuteo / Falcó mostatxut
Envergadura: 70-85 cm.
Peso: 140-340 g.
2004: 49 ejemplares.

Imatges (i dades) de "El Periodico" del 24/09/2005.


Estornell

Música, jocs, etc : misc

Alicia Keys :
  • 2001 - Songs in A minor
  • 2003 - diary of Alicia Keys

MAME Homepage - els jocs vells tornen !
Mappy
Jocs here.
Global [Pere]
Akí, aki ? . Aki ? [Trojans !]. Aus. Kojote
Nice service
BEST Info Site
Emux [gone] and Downloads. Top 25 emulation sites. MAME page.
Martins MAME page.
Daves Classics
Genesis
Packman : here, here,
Use Torrent !

Stephen Jay Gould - The Mismeasure of Man - Penguin, 1981
Stephen Jay Gould - La falsa medida del hombre - Ed. Crítica, Col. Biblioteca de bolsillo. See it.

El gen egoísta = The Selfish Gene - Richard Dawkins.
[T42:\\MisCosas\Llibres\ - gracias, Antonio !]



DJs music

  • Traktor DJ Studio (18,14 MB, 199 USD to buy) URL

  • Cubase

  • Final Scratch

  • PCDJ Red

  • DeeJaySystem Mark-I and MK-II

MP3 edit


Shoutcast

La emissora que dius (http://www.techwebsound.com/) és un server shoutcast. Pots veure el URL mirant l'arxiu pls. En concret per www.techwebsound.com és

[playlist]
File1=http://nyc01.egihosting.com:2020
Title1=Technicolor Web of Sound (www.techwebsound.com)
Length1=-1
File2=http://216.127.80.112:8056
Title2=Technicolor Web of Sound (www.techwebsound.com)
Length2=-1
NumberOfEntries=2
Version=2

Shoutcast és una tecnologia d'audio streaming mp3 de Nullsoft, els papis de Winamp. No té res a veure amb iTunes. iTunes és un player més. N'hi han moltíssims. El més conegut, és clar, és el propi Winamp.

D'emissores shoucast n'hi ha un munt. Jo mateix també tinc el shoutcast instalat i de tant en tant emeto, només per la gent de la intranet, és clar. Després l'arrenco i t'aviso.

Pots trobar llistats amb centenars d'emissores a shoutcast.com; o a yahoo, launchcast.com.

Algunes estacions interessants, al meu parer:


Smoothjazz.Com - The worlds best Smooth Jazz - Live From Monterey Bay
http://64.236.34.4:80/stream/1005
AccuRadio presents: BRITISH INVASION -- Songs from the U.K. during the 60s: Beatles, Stones, Hollies
http://www.shoutcast.com/sbin/tunein-station.pls?id=341667&filename=playlist.pls
M O S T L Y - C L A S S I C A L - Relax... it's good for you!
http://64.236.34.196:80/stream/1006
RADIO MACONDO: Pura Salsa, Puro Son...El Canal Salsero de ORSRADIO
http://70.85.112.138:7996
Radio TamTam online - SunuSound Live! by SenewebNetworks
http://208.45.137.232:7000
RadioMoris.Com - La Première Radio Internet de l'Ile Maurice
http://213.251.129.23:8000
Tim's Radio - Flamencoradio.net
http://flamencoradio.net:8100
Deviant On Ice || www.deviantaudio.com
http://69.64.38.59:2130
Africanspice.com - The best of Urban African Music -  Sponsored by Streamguys.com
http://64.202.98.51:7070
h a i t i F M ...Min Bon Konpa...www.haitifm.com
http://24.187.30.226:8000
 

Per cert, si vols guardar les emissions Shoutcast, hi han maneres per capturar els streams i salvar a disc. El més fàcil, el plugin de disk writer de winamp. El problema és que últimament algunes emissores no permeten el disk write. No ho he investigat a fons. També hi han programes: StationRipper, HardDiskOgg, TotalRecorder... però no els he provat mai.


Música

Mira quin CD m'ha compilat :

Beady Belle - Cewbeagappic (2003) - Nordic Jazz Curtis Stigers James Cotton - Baby don't you tear my clothes (2004) Kelis - Tasty (2003) - Sexy Soul Koko_Taylor Laura Cantrell - Not the tremblin kind (2000) - Urban Country Lisa Ekdahl n Peter Nordahl Trio Motown's Biggest Pop Hits - All #1 on Billboard's Charts Solomon Burke The Blind Boys of Alabama - Higher Ground (2002) The Smiths - Singles (1995) Virginia Rodrigues - Mares Profundos (2003) - Afrosambas

Biologia

Jean-Baptiste Lamarck :
He was an early proponent of the idea that biological evolution occurred and proceeded in accordance with natural laws.

Charles Darwin formuló su teoría de la evolución basándose en la selección natural.

Darwin argumentó que la causa primera de la evolución era la selección natural, y no la herencia de características adquiridas, como sostenía Lamarck.
La selección natural favorece las variaciones que son más adecuadas para la supervivencia y reproducción en un entorno dado.
Por ello, y a diferencia de la teoría lamarckiana, Darwin propone que las variaciones en los organismos ocurren de manera aleatoria, y no son resultado de necesidades o usos específicos de órganos.

De este modo, Darwin cambió la forma de entender la relación entre órgano y función.
Mientras Lamarck creía en la influencia del uso o desuso de órganos en su desarrollo, Darwin enfocó la evolución en términos de variación aleatoria y selección natural, donde las características útiles se conservan y las inútiles se pierden con el tiempo.


Amunt! Top Amunt!
Santa Eulalia
John William Waterhouse - Saint Eulalia - 1885

Eulàlia de Barcelona diu la tradició que era una noia que criava oques i que va ser màrtir als 13 anys durant les persecucions de Dioclecià. Tant si és cert o llegenda, el cas és que és la causa de les 13 oques que viuen al claustre de la catedral de Barcelona, on hi ha enterrades les suposadament despulles de la santa.

Santa Eulàlia és la patrona de la ciutat de Barcelona. La mare de Déu de la Mercè és la patrona de la diòcesi barcelonina, i no la patrona de la ciutat.


Amunt! Top Amunt!
Mapes

La base topogràfica, o més concretament, amb el seu Digital Elevation Model o DEM

Sources :

DEM links


En Pere i la muntanya
La muntanya

Lac Redon. A la dreta Conangles, al fons entre altres cims, el Montarto.


El meu ikigai és la neu !


ulleres verdes
Pere's links


Ep ! Site under construction. Escriu-me !
Updated 20220901  
Uf !