May 2007 - Posts

A fantastic new: Windows Live Writer has reached beta 2 status!

With a new Vista-style GUI, better integration with the most common blogging platforms and some cool things, like auto-upload of images via FTP (for my community bloggers, now you can at last configure automatic uploading to the ftp images folder!), Tags and easy table formatting.

The (free) program can be downloaded here.

 

Ad

There has been a peak in the sales of an average laptop as well as the flat panel tv much later than the digital camera and certainly after the popularity of home printers.

Windows 3.1 Boot screen

I can still remember that boot screen... and the ones that followed it. A lot has happened since then...

If you wanna get nostalgic, surf to this ZDNet article with screenshots of all the windows splash/boot screens since the 1.01 version up to Vista.

Posted by Kartones | with no comments
Filed under: ,

For my current project, I've had to create installation packages with WiX, an opensource tool that allows to create very powerfull installers with XML.

I've used the 2.0 version before, but now there is a beta of the 3.0 version, called Votive, which (at last) includes project templates for Visual Studio 2005 and IntelliSense support (quite handy!).

After using it for various things (copying files to System32 folder, Program files, editing registry and XML configuration files, getting environment variable values...), I've found that it still lacks some good info, so I hope with this post things will be easier at last for those wanting to do similar tasks with this tool.

This are some tutorials I looked at while using WiX:

  • WiX Tutorial: The best one. Now with the Votive version some things are different but is still the best source to learn WiX.
  • Introduction to WiX: An official tutorial. Nothing impressive, but useful to look at the schema elements.
  • Votive: A small overview of the Votive VS integration features.


If the WiX templates don't show on the New Project window, open a VS Command-Prompt and type "devenv.exe /setup".


A nice tool to build the setup GUIs is WiXEdit, but don't expect to replace editing XML... just helps with the visual part.


If you want to edit XML files (for example to setup things in the Web.config file), with Votive you have to:

  • Add a reference to WixUtilExtension.
  • Add xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" to the <Wix> tag namespaces.
  • Use <util:XmlFile> instead of just <XmlFile> to have the tag recognized.
  • Add a localization file with this four <String> Ids: msierrXmlFileFailedRead, msierrXmlFileFailedOpen, msierrXmlFileFailedSelect, msierrXmlFileFailedSave


Windows Installer has some common standard actions/events you can control under WiX. The standard (and suggested) InstallExecuteSequence can be found here too. Remember that you can't modify a file before copying it to the destination first xD


You can specify special Windows folders (like <Directory Id="ProgramFilesFolder">) looking at this table.


If you want to execute something you've installed (not the main program), here's one method to do it:

<CustomAction Id='OtherExecution' FileKey='ExecuteSomething' ExeCommand='' Execute='deferred' Return='check' />
<InstallExecuteSequence>
  <Custom
Action='OtherExecution' Before='CreateShortcuts'>NOT Installed
</Custom>
</InstallExecuteSequence>
<File
Id='ExecuteSomething' Name='Notepad.exe' DiskId='1' Vital='yes' Source='...' />


And finally, a list of Locale IDs (LCID) can be found here.

I've got some post ideas (and some stuff) waiting for free time to write them, but right now I'm doing some migration tests with a local copy of Kartones.Net to assure that the migration to CS2007 will be painless and without problems.

Everything works perfectly apart from the themes (the new theming system means we'll have to re-skin or blogs, but now themes can be easily modified, exported and imported) and the MetaWeblogAPI extensions (but maybe now Windows Live Writer is fully supported, I've got to read more about it.

On the plus side, code highlight/coloring will be "out of the box" from the moment we migrate to CS2007, posting YouTube and Soapbox videos available too, and I've actually modified the internal settings to allow accesing blogs with http://kartones.net/blogs/kartones/ (without the /default.aspx requisite in the URL).

Also, as I've purchased a Personal license, no more file upload limits (I will be able at last to finish migrating www.lawebdeprogramacion.com to here!), no blog number limits...

Also, as Google Analytics has upgraded it's interface, the monthly reports I send to all the community bloggers will have new format but will be more easy to extract information of.
For the rest, if you feel curious, I deliver a PDF monthly report each 28th with hosting data (bandwith consumed and such), CS data (number of blogs, posts and comments), Feedburner data (average readers and peak readers) and Google Analytics data (visitors, page hits, most searched keywords, visit sources...).


I hope to have everything ready for this sunday (maybe even tomorrow, but not sure). And after that, I can get into developing custom CS modules to make the community even better :)


Update

I love when things go smoothly. Everything is working and actually, theming "problems" are fewer than expected (now everything is a lot more organized), so everything's fine :)

Posted by Kartones | with no comments
Filed under:

I've just found this fantastic YouTube video, that explains perfectly how does it feel to play videogames, why I love playing games since I can remember of...

Dont you agree?

Posted by Kartones | with no comments
Filed under: ,

Don't walk, danceI love electronic music, and since I was a child I've listened to it. I've got an MP3 mixer and with some PC software I sometimes do mixes of trance, progressive and techno music.

Since I last reinstalled my gaming/music PC I hadn't even installed the mixer's drivers, but yesterday I did it, and after a party I came home a bit drunk and thought "why not making a drunk session like in the old times with my friend Lobo666?"

So I did a 74min session with trance and progressive tracks (the last 20 minutes are hard }:) . The result is not too bad, and as some friends wanted it, here it is.

Posted by Kartones | 2 comment(s)
Filed under:

Now that I'm having quite a lot of development (and fighting with the OS) under Vista, here you are some quick tips that will help you a lot to develop efficiently with Visual Studio 2005.

  • Navigate to C:\Program Files\Microsoft Visual Studio 8\Common7\IDE, right-click on devenv.exe, Properties, Compatibility tab and check "Run this program as administrator". (This one is basic to avoid errors).
  • If some program doesn't works, doesn't saves your configuration or behaves strange, try running it as administrator. It might be trying to modify some registry setting and UAC denies access to it.
  • ipconfig /flushdns and other shell commands dont work? Based on the previous tip, remember that you can right-click the Command-Prompt and run it as administrator too.
  • Double-click on .sln files doesn't open VS2005? No problem: Right-click, Open With and navigate to devenv.exe. Working again!
  • Installed XNA Game Studio Express, a starter kit or some other project/solution templates but they don't appear on the new project/solution dialog window? open a VS2005 command prompt (as administrator), type "devenv.exe /setup" and wait few seconds. All templates should be visible now ;)
  • Remember: .NET Impersonation no longer works under UAC. You either need to launch the program with elevated privileges (you can create a manifest file), or use ShellExecute to launch a new privileged process. Running programs.

 

Soon more "complex" posts, I'm having a lot of work so now almost everything is work-related... but I'm going to give a good boost to game development  ;)

Yesterday, while travelling to work, I thought about what things PC videogames (almost) always do today that should be applied to general development.

This are my five ones:

  • Efficient and painless update system: Updates in MMORPGs are very common (both for new content and bug fixing), but almost every PC game now has updates. The best systems auto-update themselves or allow you to do it without having to search in gaming websites or the official game website. Some games (like Guild Wars) have even ingame updates, not forcing you to restart the game.
    Excepting for example Windows (with Windows Update), lots of applications aren't even designed with updates/patches in mind.
  • Secure and robust software: It may not appear so, but videogames (again, specially MMORPGs) are a good sweet for hackers. Hacking your way through the game and creating lots of virtual money or powerfull items can be very rewarding. Games use encrypted communications, thin-client logic (you don't send commands like "get me to position [4,5]" but commands like "I want to go forward"), and some even anti-keyloggers soft.
    Security concerns in applications and websites is growing a lot.
  • Good resource management: Yeah, to play Crysis in it's full flavour you will need a herculean PC, but it's true too that games extract every bit of your CPU power, optimize their memory consumption and get the most speed of every CPU instruction set extension.
    I've seen applications that are true resource-hogs.
  • Correct Localization: While in Spain this is not usual (I prefer english games because voice acting is poor too many times, but my past experiences are most games with grammar mistakes and translated without playing through the game so some things don't make sense), translations from japanese to english games (for example the Final Fantasy series) is very delicate and has a lot of work on it. Japanese texts are usually shorter, for example (this happens too with english to spanish translations).
    I came across in the past with some software that was a pain in the ass to find something in spanish just because the translation was "directly from the dictionary" (now I've got even my Windows in english).
  • Usability: A good game usually is one that is easy to play to (simulators apart). Menus, icons, GUI elements are (usually) logic and easy to understand. As nobody ever reads the manual xD, now is a requirement that every game has either a ingame tutorial or teaches you all the basics in the first level.
    As of today, still a lot of applications are quite hard to use without having to look at the help or some sort of tutorial.

Do you know other interesting things that we can learn from videogames (either PC or console)? If so, please leave a comment and share it with the rest of us :)

Today my friend Vicente and I gave a small speech at the UPSAM about XNA. Precisely, we presented a small particle engine done into a GameComponent, to acomplish some goals:

  • Showing how clean and easy is to use GameComponents (actually we use one Camera/Input GC  from fegelein) and register them as GameServices
  • Showing how to create a custom content pipeline element (for loading our particle systems)
  • Creating something different, not the typical 3D model with a light.
  • Having fun (and we did a lot, testing particles and tweaking their parameters is quite fun!)

The particle system uses emitters (we've implemented a sphereemitter, but it's very easy to create more), but we didn't have time to create a pool of particles to reuse them and optimise performance and memory consumption (maybe for a 2.0 version ;)

I want to comment all the code (rushing is bad for comments :P), refactor one or two things, and Vicente wants to check something about the randomness of the particle creation, so I've uploaded the slides (both in english and spanish, it's a short slide-deck), and in few days I'll post the sources of the engine.

You can find both the slides and the source code of the particle engine at the downloads section.

XNA Particle System

Many thanks to the people of the dotNetClubs and David Salgado (a pleasure seeing you, as always). Today I've remembered my good times at the university, when I was full of ideas and wanted to investigate, learn and code, code & code!

Posted by Kartones | 3 comment(s)
Filed under: , , , , ,

Let's finish the weekend with some crazy Youtube stuff :)

Part 1:

Part 2:

Thanks to Lobo666 for showing me the videos!

Update: Per popular request from some friends who were asking for more, here's another video, this one with Robocop vs. Neo :D

 

Posted by Kartones | with no comments
Filed under: ,

There's a new version of NUnit out there, the 2.4.1. I was eager to try the new 2.4 constrained assert model, because I feel it's more like natural language.

Instead of repeating stuff you can read in the official documentation, I will just leave two examples of how different is the new model:

Old model:

Assert.AreEqual(MovementCommands.TurnLeft, result);

New model:

Assert.That(result, Is.EqualTo(MovementCommands.TurnLeft));

And allows compose assertions too:

Assert.That(myNumber, Is.GreaterThan(0) & Is.LessThanOrEqualTo(5));

 

And, continuing with testing, another great tool I expect to use soon (maybe in my next work assignment ;),  WatiN has released the 1.1.0 version.

Apart from being quite usefull (web application testing has been quite painful until last years), it can be integrated in NUnit too (sorry MS guys, I still prefer CC.NET/NAnt before VSTS).

You can read an article of how WatiN works (from my friend Jesus) at CodeProject.

Posted by Kartones | with no comments
Filed under: , ,

In response to Game Producer's 12th Challenge, here are my top 3 video game characters.

Note: I will only choose from playable/main characters (maybe you can do anocher one of top 3 video game foes/evil characters ;)

#1 - Guybrush Treepwood (Monkey Island series)
Combining his humour with the hilarious events that happens to him... The number one ;)

#2 - Snake (Metal Gear Solid series)
The perfect warrior. I won't do any spoilers, but I've liked so much MGS3 plot (I'm a fan since the PSX MGS).

#3 -  Max Payne (Max Payne I & II)
Dark cop thrillers, good voice acting, comic-strip storytelling... Max Payne's charisma is just matched by the bullet-time :)

Posted by Kartones | 2 comment(s)
Filed under:

<FuriousMode>


I've recently posted about WinSxS under Vista. But today I had to do some tests in a Windows XP machine... and what a surprise to find that XP doesn't have any tracing tool (sxstrace.exe precisely)!!!

Are you MS guys nuts? You "fix" the DLL hell, and don't provide tools to trace the problems the new system brings?

I've spent today hours to fix some problems just because the great tracing features the sxstrace tool gives under Vista is not available under the first OS version to use this technology...

And in case you  were wondering "why don't you copy the executable and try running it" it won't work... Either you upgrade to Vista, or carry on without details of why SideBySide fails.

</FuriousMode>

 

I sometimes feel that MS just rushes so much to release things, that doesn't think about the developers, and we are sometimes even more important than the final users...

Posted by Kartones | with no comments

QuantumInstead of posting about the number of the week, I think it's more interesting to post that quantum cryptography has been hacked.

More precisely, wiretrapped (near 40% of information was sniffed). It was a scientific test and would probably fail and be detected (sooner or later it disrupts the communication and creates an anomaly spike in the signal), but as scientists were able to delay that unwanted spike (until they tried obtaining more than 40% of info correctly), proofs that security measures have to be developed to avoid future problems.

Thought the GameBoy Color was not so much? What about this tech-demo of a Resident Evil conversion?

Thought the GameBoy Advance was dead with Nintendo DS appearance? What would you say after watching this other tech-demo of Resident Evil 2 running under it?

The RE2 tech-demo is done with the BlueRoses game engine. While the screen resolution is not great, it can show cool graphics, and supports skeletal animation, morphing... it can handle up to 16.000 polygons per second and up to 100 different textures. Not bad ;)

Source: videogamesblogger.com

Posted by Kartones | 1 comment(s)
Filed under: , ,
More Posts Next page »