3D Pinball for Windows (Space Cadet) Cracker – How To Modify High Scores

Everybody knows the Pinball game that appeared with Windows 95 Plus!… It’s still in current Windows versions…

Pinball_Cracker_Game

Although it may seem incredible, there are still some fanatics of this game…

I’ve made this program in 1999 (some time ago 8-)) to let you modify the High Scores so you could make those fanatics believe you had beaten them…

Pinball_Cracker_Game_High_Scores

(You should be a little more subtle than me)

Keep reading…

Convert Celsius to Fahrenheit Online

Since I’ve been having lots of visits in my wxWidgets version of the Celsius to Fahrenheit converter, I’ve decided to prepare an online javascript version which lets you easily make the conversion.

Celsius:
Fahrenheit:



GNU GPL v3 Convert Celsius to Fahrenheit Online is licensed under the GNU GPL v3

Here is the complete source code:

<script type="text/javascript">
// *****************************************************************************
// Description: Convert Celsius to Fahrenheit Online by NeoEGM
// Author: Ezequiel Miravalles
// Last modification: 16/08/2009
// URL: http://www.neoegm.com/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("Please type a number");
	else
		fahrenheit.value=Round((9/5)*num+32, 2);
}

function FahrenheitToCelsius(fahrenheit, celsius)
{
	var num = fahrenheit.value;
	
	if (num == "" || !isNumber(Number(num)))
		alert("Please type a number");
	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="To 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="To Celsius" onclick="FahrenheitToCelsius($('fahrenheit_field'), $('celsius_field'))" /></td>
</tr>
</table>

Cappuccino La Virginia – Friend’s Day

These are two very funny Argentinean advertising spots made by La Virginia for their cappuccino coffees in 2008’s Friend’s Day…

They are both in spanish…

Move Facebook Events Box to Top

Facebook has got very interesting features… One of them is the possibility of having a reminder of your friend’s birthdays and events you have subscribed to…

But (there’s always a but 8-))… They’re not in a very handy place…

So… I’ve decided to make a script to move them to the top :)

FacebookEventsToTop

How do I install it??

How To Fold a T-Shirt (9 Techniques)

These are a some videos I’ve found (some quite old) which teach you how to fold a T-Shirt in different (and, in some cases, interesting) ways…

I watched the first one the last year…

Sometimes I get surprised by the things you can find on Internet…


Technique 1

This is the original video that started with all the T-Shirt folding series: “How To Fold A T-Shirt In 2 Seconds”…

Watch the other videos… There are lots of techniques!

What happens when the CPU heatsink is removed?

This is a very good video I’ve seen some time ago. I think Fepe sent it to me. It’s from Tom’s Hardware Guide.

It shows what happens to different CPUs when you remove their heatsink.

Watch the sequel…

Optical Illusion – Spinning Silhouette

This is a very interesting image I’ve received a lot of time ago in an e-mail. I’ve been searching a bit but couldn’t find the original creator.

The special thing about this picture is that, when you look at it for the first time, it will be spinning either clockwise or counter-clockwise, but if you keep focusing, you’ll watch it rotating to the oposite direction or even bouncing between sides (half circles), either looking front or back.

It’s a good excercise to be mastered.

Office Document Property Resetter

This is a tool I’ve made two years ago to solve a problem a friend of mine had. He had at his work a bunch of Word and Excel files created in different computers and wanted to cleanup their properties so they didn’t show the configured Author/Title/Subject/etc. tags.

Office_Document_Property_Resetter_DOC_Prop_1

This would have been a simple problem to solve if there were a few files… They could be cleaned up manually…

Office_Document_Property_Resetter_Word_Menu

Office_Document_Property_Resetter_Word_Prop_1

But there were lots of them!

So… I made this tool :)

Office_Document_Property_Resetter_Main

Keep reading…

Simple C++ String Class

Every C++ programmer knows that the standard library has a string class. But, while learning, it’s a good idea to know how to develop your own string class.

That’s why I made the String class. It’s not intended for professional projects (for them, you should use the standard library’s string), but as help to learn 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);

Keep reading…

cppMemDbg – Easy to use C++ memory leak detection library

This library is the C++ sequel to the cMemDbg.

Just as the cMemDbg, it is a very easy to use library which can help you to detect and track memory leaks.

Its usage is very similar to the cMemDbg, but with support for the C++ operators (new, new[], delete and delete[]).

There are lots of solutions for this on the net, but this one has the particularity of being really simple to implement.

>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…