Skip to main content

Posts

Showing posts from 2008

Rotate text in Web Generated Excel File

There are many reasons to generate Excel files from your website, mainly generating data reports. As far as I know there are a couple of ways to generate Excel file from your web server regardless the platform: - Component Server Side: There are several server-side components available to create excel files. Moreover, if you have MS Excel installed in your computer you can create excel files without third-party components. -Client Side: If there's Excel installed in the client machine, a client vbscript can generate the file you need. I am not sure if it works under Firefox and, running client-side scripts can create a security hole in your system. - XML Server Side. One nice feature of excel is that you can generate an excel file without the need of a component. That is, you generate an HTML-like document with the appropriate header and it will be available in Excel. Well, this is just an introduction, not the subject of this post. I will focus on XML server side Excel file, but y...

Queues with STL

In this project, I was requested to build an application to manage Queues (something like the ones you find when you want to view the latest Blockbuster movie). OK, It sounds simple, use a STL queue. Unfortunately, this is not the whole requirement. Being a graphical application, it requested to refresh the screen from time to time showing all the items in the queue. After some research I was not able to find a way to access elements inside the queue, only the Front and Back elements were accessible [if this is possible, let me know]. So, I had to take a look at other containers in STL in order to be able to get the functionality with good performance. I have selected 4 containers to accomplish this task : Queue (Only to measure it's performance), Lists, Vectors and Deques. All of them included members to work like Queues: - Queue: push(int), front(), pop() - List: push_back(int), front() and pop_front() - Vector: push_back(int), front() and erase(vector::begin()) - Deque: ...

code::blocks - OpenGL - SDL

After my previous post I decided to play with SDL and try to setup code::blocks with both OpenGL and SDL. I found it pretty simple (with code::blocks, so many things are easy, forget about gdb). Open your SDL project created previously, and set the link libraries as follow: (In case you are lost: project->Build Options->Linker Settings That's all, then you have to include the OpenGL headers or SDL headers: If you want to include only OpenGL files, you can do the following: #include <GL/gl.h> #include <GL/glu.h> SDL also includes a wrapper for OpenGL in the following file #include <SDL_opengl.h> Both should work with code generated by the Template. I have to stop here. If you need more information you can find several tutorials about SDL and OpenGL.

code::blocks and OpenGL

Last time I used OpenGL was in a University project. By that time, I had to connect using telnet (and xterm, I think, but I barely remember) to a SUN sparc station running probably Solaris. I remember it was really exciting being able to view those simple 3D models on the screen and running in real time! Lately I was reading some DirectX 10 and sudendly I was wondering what happened to OpenGL? Did It die? Is it there any develoment going on? Surprisingly I found that these libraries are alive and well. It's been used in several platforms including the iPhone so ... you can imagine the future of a technology installed in more than 5 million of devices! (Also, this library is used in both PS 3 and wii (add some other million). After this brief introduction I decided to build a program under linux, c++ and OpenGL. The IDE of choice Code::Blocks. I used this IDE to build an embedded application so I recommend it. It runs really well with no complains. One cool thing I found is that Cod...

Valve's Source - Part 3

Authoring a Logical Entity This post is related to the second modding tutorial you can find [ here ]. This is a very important tutorial as it's a real introduction to Mod programming in Valve's Source, and if you understand it you will be able to do more complex stuff. Exploring this tutorial is not clear what is it purpose or how can you test it. That's the purpose of this post, make it clearer. Please note, there's not a single example of how can you use the entity or where it can be useful. I will help on that. Go through the tutorial and, when you have completed the Build process, go back to this post. I will just mention a couple of things may help you with this process. 1. Although there's no mention about that, it's good if you start with the mod you just created in previous tutorial. 2. the sdk_logicalentity file name can be any other, what really matters is the following line: LINK_ENTITY_TO_CLASS( my_logical_entity, CMyLogicalEntity ); Where you link ...

Maya 2008 Plugin development - Part 2

Intro Fortunately, you are not tied only to the development of plugins for Maya 3D using C++, which implies a good knowledge of programming, debugging, memory management, etc. Using Python has some advantages over C++: Multiplatform: Although C++ can run in multiple platforms, you have to fit the code to the machine and use different compilers and setting for each platform (although you use open source compilers). Anyway you have to recompile. There's no such in Python. It will work in every platform. Faster coding: Coding in Python is a way easier than C++. Few setup steps are required to develop applications in Python, and obviously, results will be seen faster. Nothing is perfect, so these are the disadvantages I can think of: Speed: Being a scripted language, Python is a lot slower than C++ (Compiled) Low Level Programming: If you need to make son low level operations, then C++ (and assembler calls) is the right option. For in-house development it's ok, but if I really want...

Open Source Control Version System (Part 2)

Client Side Now that we have setup the server side application and repository, clients (developers) should have access to repositories using a client tool. A useful tool for this purpose is the TortoiseSVN . It's a subversion client for windows. (Please note that subversion is the core of the Version Control Server). It support several protocols including http (the one we will use for VisualSVN Server ) and it's really easy to use. After you have downloaded and installed the application you will be surprised that there's no applications to run (rather than the diff and merge applications) to manage files. Instead, under the windows explorer you will find new options when you right-click on a file or folder (that's what it's called a shell extension ). The first step to setup your environment is by creating a directory where your files will be stored where you take them from the repository. Of course this folder can be the location of the sources after you created a...

Valve's Source - Part 2

My First Mod This guide complements My First Mod basic tutorial from the Valve's developer web page, so please, have booth pages opened. After you have downloaded and Installed the SDK, you should run the Game and .... just to make sure everything will run ok, restart the computer (Well, I had to do it because the Source SDK didn't start when I tried to run it) This is how Source SDK looks when you double click on the application. In order to continue with the tutorial, double click on the Create a Mod link under Utilities. It takes some time to create all Mod files (All source files required to rebuild the application). When finished, a folder src is created and, below it there's the Solution. Please open it according to the Visual Studio version you have. In my particular case, it's VS2005. Following screen shot illustrates the solution location, as well as the Rocket file location and line to be changed: You go through the steps in tutorial in order to compile cha...

Open Source Control Version System (Part 1)

When Software Projects become larger and more people is involved, there's need to keep control of source code files. Usually, several users have to make changes at the same time in a core file. Doing this the wrong way may lead to delete changes made by a developer, wasting a lot of time and raising errors in the coding. Fortunately , there's Version Control software which keeps track of who is using a file, keep versions of that files, allows merging, branching and other cool stuff to keep your software project synchronized . There are several vendors and open open source versions of this software, and a couple of models. Please check the List of Revision Control Software . In this case we are going to setup a Control software using a Client-Server model with an open source application. Server Side VisualSVN is our choice, because it's Open Source, provides an easy installation package and a clean control panel. Just download it from VisualSVN . After downloading, run th...

Spherical Helix Plugin

This plugin for Autodesk Maya, will create a Spherical Helix made of a Nurbs curve. The usage for this plugin is: SphereHelix -r -h -n -r: The sphere maximum radius. By default, radius is 1 -h: The curve height from y=0. By default, height is 1 -n: The name of the Nurbs curve. By default curve name is SphereHelix#, where # is a consecutive number for existing curves. To install plugin, just download it, unzip it, copy .mll to \bin\plug-ins and load it from the plug-in manager. Following images were created with this plugin using different settings: Find out the plugin here: [ Plugin Download ]

Maya 2008 Plugin development - Part 1

Building plugins for Maya allows both Game Developers and Artist to customize Maya and speed up the workflow. So far, doing some reading and research, I found there are two ways to develop Maya plugins: Using a traditional compiled VC++ .mll plugin or by using Python. I will start this research by building a simple plugin using Visual Studio 2005 (Visual Studio 8) 1. Start by installing the Plugin Wizard First step is to setup the Visual Studio environment. Fortunately, Maya includes a Plugin Wizard for Visual Studio 8 (aka Visual Studio 2005) so you can create them easily. Plugin wizard is found in the following location: \devkit\PluginWizard Of course, you can follow the readme instructions, but there's a little change you should do in order to have the plugin working. a. Unzip the MayaPluginWizard2.0.zip file a.1 This is the new Step: Edit the MayaPluginWizard.vsz file, and change the following line: Wizard=VsWizard.VsWizardEngine.7.1 to Wizard=VsWizard.VsWizardEngine.8.0 (For ...

Valve's Source - Pre

Lately, I've been going through the process of learning about Valve's Source. Initially, you should own a valid copy of any Valve games (I actually own HL2, so I am ready to work). First step in this process is to get the Source SDK from the Valve website. It's really easy, as you only have to open the STEAM Control Panel and, under the Tools tab, you have to double click on Source SDK Base and Source SDK packages, and Steam will install and download them for you. As easy as it can be. The follow link will guide you in detail: http://developer.valvesoftware.com/wiki/SDK_Installation Please follow the instructions ... not as I did ... It's mandatory that you run the game before running the SDK, otherwise SDK won't run! When you are ready, you can launch source from Steam Control Panel. Your entry point then is to visit the SDK Reference Docs located in the Documentation Area. What's first? Creating a Map? Creating a Mod? Is there any place to start? I am lost!!! ...

Traicionera

Traicionera (Betrayer) is a song played by Jose Pastor Lopez, a tropical music singer from Barquisimeto, Venezuela. His work is appreciated here in Colombia where his songs were enjoyed by our parents. As a Tribute, and after some attemps to create animated precolumbian characters I designed and built the following musical video: Animation an rendering was developed in Lightwave 3D Version 6.5. Carlos Santa helped me with camera positions and movements. That was really helpful as my knowledge in this field is limited. Adobe premiere did its work on the edition and sound mixing.

My First book about computers and Basic

These were the first books I read about computers and programming (out of the books I read in school), where I really understood how everything worked inside of it and lead me to the path of computers. Thanks Luca Novelli!!!!!

Crysis

Crysis is the most advanced game I've ever played (so far). Graphics are stunning, although I have to say that it requires a powerful machine to run. Even on my machine with good features, the ending still runs slow with the lowest settings. Gameplay is great and every weapon has customization options. According to the developers, the whole environment is 3D. That is, even the distant mountains are 3d models, not Bitmaps. Folliage looks great too and trees can be destroyed with the weapons available. One nice features is the ability to hide beneath the bushes. Some people rather prefer direct fighting with enemies, but I love the ambush! Being invisible is a good option inside the game. You can walk undiscovered by using the Invisible tool but even with that, enemies will suspect there's something around there. Finally, I have to note that characters are very detailed, you can even see the wrinkles on the face of this man. Check out the above screenshot. Amazing!!! Isn't it...