wb beta 3

A new beta has been released, unleashing some of the features already expected for some months now.

We can finally start adding all sort of bulky sized scripts onto the web servers because users will only download the scripts they need based on download profiles or their own choice.

Unfortunatelly this method is still young and needs more work to be completed, hopefully this will all be done by next beta 4..

-- nuno brito

Still Haven’t Found What I’m Looking For..

I'm trying to find a good programming language. My basic needs are writing simple program launchers and system utilities. Long term plans include rapid application development environments and game engines.

I've been using <a href="http://www.gamemaker.nl/" title="Game Maker">Game Maker</a> and, for the most part, it's been working well. It has a forgiving syntax like Visual Basic and a well designed IDE. The development environment makes visual elements easy to design and place. Events and resources are easy to navigate.

Alas, as it's focus is creation of Pac-Man clones, it lacks basic things like text input fields. Also, the licensing gets more restrictive/weird with each version.

In the future I hope to talk about what makes a good language/IDE and what alternatives I've found.

- Moon Goon

Bought myself a printer..

After spending the last few days looking at registry hives I've decided to buy a small printer to keep at home and start printing the hexadecimal view of the registry keys and respective tree structure.

I don't usually like to print anything to avoid wasting perfectly good paper - but I'm opening an exception on this case, simply because it is without doubt the best tool I've found to cross compare hives.

Thanks to it I've already spotted a few details needing correction and I'm even able to comment the code line by line using a simple pencil.. ;)
Also worth mentioning that this method also eases the view since it was dificult to go back back and forth with several open windows trying to make some sense of the tree structure.

At the moment I'm trying to duplicate the creation of a single empty key inside a previously empty hive. The code to study is roughly sized in 0x300 bytes and most data blocks already seem well created but I have a feeling that there is still a lot of details needed to expose and predict until this task is sucessfull.

I've also started using a small excel spreadsheet to help with the details and track back the changes from each test - I really hope this sort of documentation can save some time to others understand better the registry in the future.

-- Nuno Brito

The registry hive tricks..

It seems that the code to rewrite back completely new hives is giving a good fight - a few undocumented methods to create keys, strange data blocks with specific size and headers that are empty for no clear reason and specific purpose make some substancial oposition to allow being cloned properly.

But it doesn't matter.. As long as all testings get properly documented it will likely be possible to provide a working solution soon enough.

On the other hand I really understand the need to create some model dificult enough to avoid people from tampering with the registry information.

Maybe this is the reason why MS is dropping support for the registry as backbone for applications and the OS itself within the next years.

Just hope they also understand that our boot disk projects depend on a stable way to create registry hives and ensure the survival of these projects in future OS releases.

So far the registry codings have taken almost all my time on the roadmap for the next wb, sorry for being behind of schedule - funny enough as it seems that whenever a time line is drawn - it's just asking to be delayed... :)

-- nuno brito

wb 069 beta 1 & 2

A new beta was released a few days ago and I keep working on the next beta. At the moment I've tried following the topics from the roadmap but the tasks seem to be complicated to get working - just to say the least.

First I've started with the new objects on the script user interface, began using the same coding applied for previous objects, but quickly came to the conclusion that these new objects are quite different from "normal" objects and strongly oppose to runtime creation.

The first object I've tried was the embedded web browser - works like a charm on the web tab, but creating it on the fly seems problematic, tried a few workarounds, but none suceeded. Left a message on the respective support forum, maybe the author can explain how it is correctly done.

The second object was an attempt to combine external applications inside the UI of scripts - but a few problems began appearing. First, it was difficult to get the correct handle to the launched process. I used shellexecute <em>(to be vista compatible since some people say that createprocess will become unsupported?)</em> and got the correct handle from there.

Looking on MSDN also found the needed documentation to get the result I was expecting - but nevertheless it just refused to grab the given handle and make as a child window belonging to the script UI. As a quick workaround I used an older code wich would find an handle based on a partial title name of the window - this worked good enough for cmd.exe to be used as test program. Had serious problems getting the new object to be properly resized - ended up giving up on this approach and tought on using fixed values given from a menu to avoid more complications, then an even worser issue appeared - how to send the proper WM_QUIT message to make the launched application finish? It is possible to get everything working - but it might take much longer than expected since this really requires a lot of debugging and testing to get some stable working results.

After these try outs - was getting a bit tired of looking on the same code and switched to a small app designed to read registry hives and write them back on disk without using winAPI - so far so good with the reading part, but the write is a true headache.

But nevertheless, I am pleased to announce that some progress has been done!

So far I am also able to write back hives and make them recognizable to be read by my own application - now it's only missing to do the same reg.exe/regedit and see what more it takes to make them fully compatible with MS format <em>(wich is a true confusion on my opinion)</em> - just wish they took the time to optimize the way how the registry gets written back since it seems a truly messy method - deleting keys doesn't mean they are wiped from registry and newer keys are usually placed on the last data positions of hives, meaning a whole lot of time lost going back and forward to read values...

Maybe this offline hive reader also gets included inside wb on the next beta - the good news in case of sucess is a nightmare for rootkits based on hidden registry keys since this completely writes a new tree structure. While thinking about this, also noticed that one registry key containing binary data can still hold enough data to include a new set of hidden keys and this is still considered as a valid key for the registry API, so it wouldn't exactly be considered as "hidden" and suspicious <em>(I'd rather call it a stealth key) </em>- Was really happy to see a good solution to keep the registry as a safer place, but with the right know-how this would be very dificult to detect and we could massively change the whole registry tree just by changing a single byte on the hive file wich is write protected safely on disk, but nevertheless people can modify the version loaded on RAM wich then gets written back to disk - dangerous thinking.

Well, time to go back and dig in further. If anyone is willing to help out hex editing a way to figure on how this is done, feel free to jump aboard and I'll provide the tools to get started.. :)

-- nuno brito

wb 069 roadmap

Smiley has asked on the forums what were the priorities expected for the next version of Winbuilder. So here is a small roadmap that may change over time but will be used as a guideline to produce the next stable edition.
<ul>
<li> Correct Language support issues</li>
<li> Recode interface code (more objects, bugfix behaviors)</li>
<li> Complete proxy support</li>
<li> Add new commands (rename to uppercase)</li>
<li> Add simple profiles to the download center (Minimum, Recomended, Full)</li>
<li> Built-in Hive manipulation without using Windows API</li>
</ul>
Here's the link where this was discussed:

<a href="http://www.boot-land.net/forums/index.php?s=&amp;showtopic=1943&amp;view=findpost&amp;p=12197" title="wb 069 discussion post"><strong>wb 069 discussion post</strong></a>

If you have any ideas or requests for this current version, don't forget write your ideas on the above link..

:)

-- nuno brito

A nice gift..

Today was a busy day - rushed all morning to set up a wireless antenna on the place where I work to connect two computers on a small place where people take a mid-morning cofee break. Next thursday there will be a small party, so it was important to have this done quickly. This antenna is really nice - it can be used to create a wireless network within a range of 3Km - wich pretty much covers everywhere around here. It's a strange and funny feeling to go out into the green fields and send something to our network printer far away..

But today was only getting better after work. A friend of mine asked for some help setting up his home network. A dsl connection and a wireless acess point providing internet for two home computers (a laptop with Vista and a desktop one with XP). The connection was a bit troublesome to get working and took almost two hours to get this solved - I have the impression that troubleshooting network issues with XP is so much easier when compared to Vista.

On the end everything worked well and my friend happy with the result decided to give me a USB Wireless adapter - a really cool gift in my opinion..

I already have a laptop with wifi, but this is something I'd never buy myself - and since it was a gift - I will surely find something usefull to do with it. If you knew my house you'd notice an old desktop computer on my living room - maybe this way I can finally share files or stream media from one machine to another. Really nice.. :)

Back to work..

Easter vacances have finished, just went back to work.

Nice to see everything is still in it's place. You might be hearing more about Azores in the news soon since our earthquake activity on this island is increasing - letting everyone here enjoy a quick quake every 12 hours. I live on this place for some time, but it is the first time I've ever seen my computers moving around..

The Process of Unmotivated Game Coding

<p>Hi all! This is really an experiment to see what blogging and wordpress are. I know blogging is something you cannot do in public and wordpress is a <a href="http://www.seanbaby.com/nes/w20-13.htm" title="wrestling">wrestling</a> move but that's about it.</p>
<p>My topic is the process of motivation for the unmotivated. How does one fire the engine of creation without motivation? Well, not easily or timely. Here are the primary steps that lead to actually doing anything:</p>
<p><strong>1. Ennui (bored to death, life is meaningless)</strong></p>
<p>Perhaps you've completed your last <a href="http://www.atlus.com/smt/main.html" title="good game">good game</a>. You're sick. You've just gotten over your last <a href="http://www.drinksmixer.com/desc494.html" title="drinking">drinking</a> binge and nothing seems especially exciting. Whatever the reason it's a <a href="http://www.strangezoo.com/content/item/100427.html" title="dismal">dismal</a> existence - clearly the <a href="http://www.sinfest.net/archive_page.php?comicID=2315" title="Muse">Muse</a> has left you.</p>
<p><strong>2. Something reminds you of an interesting game</strong></p>
<p>Part of depression as a professional hobby is to contemplate how bad things are - and sometimes how good things were. The problem with remembering the good is that it can lead to thoughts of improvement.</p>
<p><strong>3. You start thinking about what could have been better</strong></p>
<p>What made that game you miss so good? Was it the <a href="http://flaregamer.com/b2article.php?p=114&amp;more=1" title="battle system">battle system</a>? The <a href="http://www.rockstargames.com/vicecity/" title="open gameplay">open gameplay</a>? Whatever it was, no one is gonna reproduce it in the era of First Person Shooter banality. Just like <a href="http://www.worth1000.com/emailthis.asp?entry=125955" title="Smokey the Bear">Smokey the Bear</a> said: Only you can code awesome games!</p>
<p><strong>4. Pick a technology to work on for a better game</strong></p>
<p>Best not to think about how to start - thinking leads to <a href="http://www.basement.org/archives/2006/02/thinking_good_overthinking_bad.html" title="overthinking">overthinking</a> and the imagined hurdles become bigger. Pick a single aspect of your game concept and go. Be it a menuing system or platform physics or level loading - <em>JUST GO! DO IT! DO IT NOW!!</em></p>
<p><strong>5. Code like mad</strong></p>
<p>Avoid all distractions including hungry pets and girlfriends (even the <a href="http://www.classicgaming.cc/pc/larry1/scr_lsl1v_bedroom.htm" title="inflatable">inflatable</a> ones). Focus on test runs rather than <a href="http://www.codinghorror.com/blog/archives/000130.html" title="commenting">commenting</a> because code reuse is for, er, other people. What you need now is the experience and pleasure of accomplishment.</p>
<p><strong>6. Run out of steam or hit a major roadblock</strong></p>
<p>Eventually a technical hurdle or over thinking will creep up. Don't try to fight it; give in to your hatred and rejoin the <a href="http://palpnike.ytmnd.com/" title="dark side">dark side</a>. Tuck your code into a safe folder and remember what you did and how it can fit into later endeavors.</p>
<p><strong>7. Go back to step 1.</strong></p>
<p>Ennui sets in again and you'll quickly forget the progress you've made. Thankfully, you're archived project won't. It will sit in whatever directory you saved it in until you feel the urge to code come back - this time a little wiser.</p>

WinBuilder 068

Edition 068 has been released!

This binary has added some new features when compared to the latest release, I think the most important step has been the introduction of a download center that allows people to freely share scripts and projects - unfortunately a bug still slipped through the testings, but it was quickly reported by paraglider and new binary with the issue fixed was uploaded.

It seems that the new release also jammed completely boot-land.net making it very dificult to acess the forums during all day. Maybe it is time to start thinking on adding a new server just for the downloads keeping the forum's bandwidth free from this stress, last month boot-land.net used about 400Gb of data and it should predictably increase during the next months so I think it might be wiser to think ahead and start planning some mirrors or backup servers to keep up with the increase.

Perhaps adding a torrent client inside wb would also be a good solution, but it is not a very safe solution, maybe within the next months we can come up with a creative solution for this matter.. :)

Visit to Aveiro

Just spent the weekend on Aveiro, Portugal - one of my all time favourite places to rest. It's near the sea, very calm and people are really nice. Some call it the venice of Portugal because of the traditional boats that travel around the water channels - maybe one day I can actually visit Veneza in Italy and compare both. I've worked for a year in Aveiro back in 2001 - nothing better than actually travel by boat to your workplace to give a closer touch to nature.

<a href="http://blog.boot-land.net/wp-admin/upload.php?style=inline&amp;tab=browse-all&amp;post_id=7&amp;_wpnonce=3a40275828&amp;ID=8&amp;action=view&amp;paged" title="Moliceiros"></a>

<a href="http://blog.boot-land.net/wp-admin/upload.php?style=inline&amp;tab=browse-all&amp;post_id=7&amp;_wpnonce=3a40275828&amp;ID=8&amp;action=view&amp;paged" title="Moliceiros"><img src="http://blog.boot-land.net/wp-content/uploads/2007/04/dsc05902.JPG" alt="Moliceiros" width="128" /></a>

Moliceiros

Some of the traditional boats from Aveiro