Tag Archive for 'Open Source'

Page 2 of 4

Intelligent Escaper-Unescaper – Herramienta Online para hacer Unescape y Escape (con procesamiento de parámetros de URLs y más)

Con esta herramienta online, podés hacerle fácilmente escape y unescape a tus strings (entre otras cosas muy útiles explicadas abajo)…

Si querés agregar esta herramienta a tus favoritos, quizás prefieras esta dirección más corta: http://www.neoegm.com/software/intelligent-escaper-unescaper/. [Apretale botón derecho y utilizá la opción que te ofrezca tu navegador para agregarla a tus favoritos.]


Keep reading…

Incoming search terms for the article:

Mover el Recuadro de Eventos de Facebook hacia Arriba actualizado a la versión 1.1

FacebookEventsToTop

Acabo de actualizar el script para Mover el Recuadro de Eventos de Facebook hacia Arriba a la versión 1.1 para solucionar el problema que hacía que el recuadro de eventos no subiera algunas veces al cargar la página o refrescar.

Visitá el post original para descargar la versión actualizada.

Incoming search terms for the article:

Clase Lista simple para C++

Tal como publiqué hace algunos días la Clase String Simple para C++ como un ejercicio de aprendizaje de C++, ahora estoy liberando una Clase Lista simple para C++.

La librería standard tiene una clase list. Pero, mientras se está aprendiendo, es una buena idea saber cómo poder desarrollar tu propia clase list.

Esa es la razón por la que hice la clase List. No está pensada para proyectos profesionales (para ellos, deberías utilizar la list de la librería standard), sino como una ayuda para aprender C++.

template <class TYPE>
class List
{
	/* ... */

public:
	//Construction and destruction
	List() { /* ... */ }
	~List() { /* ... */ }
	
	List(const List& rlList) { /* ... */ }
	
	//Assignment operator
	List& operator=(const List& rlList);

	//Information
	int Length() { /* ... */ }
	bool Empty() { /* ... */ }

	//Element managing
	int Add(TYPE& rtData);
	TYPE* Elem(int nPos);
	bool Delete(int nPos);
	void DeleteAll();
	
	//Search
	int Find(TYPE& rItem, int nStartAt = 0);

	//Operadores
	TYPE& operator[](int nPos) { /* ... */ }	//Elem
	int operator<<(TYPE& rdData) { /* ... */ }	//Add

protected:
	void FreeList();
	void Init() { /* ... */ }
};

//Output
template <class TYPE>
std::ostream& operator<<(std::ostream& oStream, List<TYPE>& rlList);

Seguir leyendo…

Incoming search terms for the article:

Cracker para el Pinball 3D de Windows (Cadete del Espacio) – Cómo Modificar los Puntajes

Todo el mundo conoce el juego de Pinball que apareció con el Windows 95 Plus!… Todavía está en las versiones actuales de Windows…

Pinball_Cracker_Game

A pesar de que pueda parecer increíble, todavía hay unos cuántos fanáticos de este juego…

Hice este programa en 1999 (hace un tiempito 8-)) para poder modificar los puntajes máximos guardados y lograr así que esos fanáticos crean que les ganamos…

Pinball_Cracker_Game_High_Scores

(Es recomendable ser un poco más sutil que yo)

Seguir leyendo…

Incoming search terms for the article:

Convertir de Celsius a Fahrenheit Online

Debido a que estuve bastantes visitas en mi versión wxWidgets del conversor de Celsius a Fahrenheit, decidí preparar una versión online que permita realizar fácilmente la conversión.

Celsius:
Fahrenheit:



GNU GPL v3 Convert Celsius to Fahrenheit Online está liberado bajo la licencia GNU GPL v3

Acá está el código fuente completo:

<script type="text/javascript">
// *****************************************************************************
// Description: Convertir de Celsius a Fahrenheit Online by NeoEGM
// Author: Ezequiel Miravalles
// Last modification: 16/08/2009
// URL: http://www.neoegm.com/es/tech/online-tools/convert-celsius-to-fahrenheit-online/
// *****************************************************************************

/*******************************************************************************
	Copyright (C) 2009 Ezequiel Gastón Miravalles

	This program is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this program.  If not, see <http://www.gnu.org/licenses/>.
*******************************************************************************/

function isNumber(x)
{ 
  return ( (typeof x === typeof 1) && (null !== x) && isFinite(x) );	//From http://snippets.dzone.com/posts/show/6937
}

function Round(number, digits)
{
	return Math.round(number * Math.pow(10,digits)) / Math.pow(10, digits);
}

function CelsiusToFahrenheit(celsius, fahrenheit)
{
	var num = celsius.value;
	
	if (num == "" || !isNumber(Number(num)))
		alert("Por favor ingresar un número");
	else
		fahrenheit.value=Round((9/5)*num+32, 2);
}

function FahrenheitToCelsius(fahrenheit, celsius)
{
	var num = fahrenheit.value;
	
	if (num == "" || !isNumber(Number(num)))
		alert("Por favor ingresar un número");
	else
		celsius.value=Round((5/9)*(num-32), 2);
}
</script>

<table>
<tr>
<td>Celsius:</td>
<td><input type="text" name="celsius_field" id="celsius_field" style="width:100px" /></td>
<td><input type="button" value="A Fahrenheit" onclick="CelsiusToFahrenheit($('celsius_field'), $('fahrenheit_field'))" /></td>
</tr>
<tr>
<td>Fahrenheit:</td>
<td><input type="text" name="fahrenheit_field" id="fahrenheit_field" style="width:100px" /></td>
<td><input type="button" value="A Celsius" onclick="FahrenheitToCelsius($('fahrenheit_field'), $('celsius_field'))" /></td>
</tr>
</table>

Incoming search terms for the article:

Mover el Recuadro de Eventos de Facebook hacia Arriba

Facebook tiene algunas funcionalidades muy interesantes… Una de ellas es la posibilidad de tener un recordatorio de los cumpleaños de tus amigos y de los eventos a los que te suscribiste…

Pero (siempre hay un pero 8-))… No están en un lugar muy cómodo…

Así que… Decidí hacer un script para moverlos a arriba de todo :)

FacebookEventsToTop

¿¿Cómo lo instalo??

Incoming search terms for the article:

Office Document Property Resetter (Reseteador de propiedades de archivos de Office)

Este es un programa que hice hace dos años para solucionar un problema que tenía un amigo mío. Él tenía en su trabajo un grupo de archivos de Word y Excel creados en diferentes computadoras y quería limpiar sus propiedades para que no mostraran el Autor/Tïtulo/Tema/etc. que estaban configurados…

Office_Document_Property_Resetter_DOC_Prop_1

Este habría sido un problema simple de resolver si hubieran sido unos pocos archivos… Podrían haberse limpiado manualmente…

Office_Document_Property_Resetter_Word_Menu

Office_Document_Property_Resetter_Word_Prop_1

Pero había muchísimos!

Así que… Hice este programa :)

Office_Document_Property_Resetter_Main

Seguir leyendo…

Incoming search terms for the article:

Clase String simple para C++

Todo programador de C++ sabe que la librería standard tiene una clase string. Pero, mientras se está aprendiendo, es una buena idea saber cómo poder desarrollar tu propia clase string.

Esa es la razón por la que hice la clase String. No está pensada para proyectos profesionales (para ellos, deberías utilizar la string de la librería standard), sino como una ayuda para aprender C++.

class String
{
	char *m_pszString;	//Allocated buffer
	int m_nAllocated;	//Allocated length

public:
	//Construction and destruction
	String() { /* ... */ }
	~String() { /* ... */ }

	//Copy constructors
	String(const char *pszString) { /* ... */ }
	String(const String& rsString) { /* ... */ }

	//Operators (assignment)
	String& operator=(const char *pszString);
	String& operator=(const String& rsString) { /* ... */ }

	//Operators (concatenation)
	String& operator+=(const char *pszString);
	String& operator+=(String& rsString) { /* ... */ }
	String operator+(String rsString);

	//Operators (comparison)
	bool operator<(String sString) { /* ... */ }
	bool operator<=(String sString) { /* ... */ }

	bool operator>(String sString) { /* ... */ }
	bool operator>=(String sString) { /* ... */ }

	bool operator==(String sString) { /* ... */ }
	bool operator!=(String sString) { /* ... */ }

	//Operations
	void Clear();
	String Lower() { /* ... */ }
	String Upper() { /* ... */ }

	//Information
	int Length() { /* ... */ }

	//Cast operators
	operator const char*() { /* ... */ }

protected:	//Helper functions
	/* ... */
};

//Output e input
std::ostream& operator<<(std::ostream& oStream, String& rsString);
std::istream& operator>>(std::istream& iStream, String& rsString);

Seguir leyendo…

Incoming search terms for the article:

cppMemDbg – Librería fácil de usar de detección de fugas de memoria para C++

Esta librería es la secuela para C++ de cMemDbg.

Tal como cMemDbg, es una librería muy fácil de usar que sirve para ayudar a detectar y trazar fugas de memoria (memory leaks).

Su utilización es muy similar a la cMemDbg, pero con soporte para los operadores de C++ (new, new[], delete and delete[]).

Hay muchas soluciones para esto en la red, pero esta tiene la particularidad de ser realmente simple de implementar.

>new  003D26D8  36  [Main.cpp:127]
>new  003D2708  36  [Main.cpp:128]
>ERROR  Bad free type  free => delete  003D2708  36
(Main.cpp:128)
>free  003D2708  36  (Main.cpp:128)  [Main.cpp:129]
>free  003D2708  0    [Main.cpp:130]
>ERROR  Trying to free unallocated memory: 003D2708
[Main.cpp:130]
>delete[]  003D3EB0  7  (String.cpp:59)  [String.h:41]
[...]
>delete[]  003D24F0  4  (String.cpp:59)  [String.h:41]
>delete  003D2490  40  (Lista.h:120)  [Lista.h:112]
>INFO  PROBLEM: Memory leak found (36 bytes)
>INFO  Unfreed block  003D26D8  36    [Main.cpp:127]

Keep reading…

Incoming search terms for the article:

SMS Scheduler (Programador de mensajes de texto)

4 de la mañana… Te estás yendo a acostar tarde… De repente, te acordás de que tenías que enviarle a alguien un mensaje con información importante que debería tener a las 9 de la mañana…

Obviamente no querés levantarte a las 9:00… Si le enviaras el mensaje en este momento, probablemente lo despertarías si no tuviera apagado su celular (se lo merecería! :))…

Así que… ¿Qué podés hacer? Este programa es la respuesta…

SMS_Scheduler_1

Seguir leyendo…

Incoming search terms for the article: