View unanswered posts | View active topics It is currently Mon Feb 06, 2012 9:21 pm



This section is under re-development. It is not finished, and not fully functional. The current development stage is pre-alpha and as such, not every feature is even implemented yet.

Planet Black0ps




Options



rss Planet-Black0ps



Users


Diagmato
Xproterg
Corey
Shaun
Lalizig
Coolhand2
Elsie


Total entries: 74
Total comments:

Corey, test
Sun May 30, 2010 4:44 pm


testing 123



 



hello



 



blah 1



The first team meeting

Diagmato, General
Sat May 29, 2010 9:50 pm


Peapple Ltd had its first full team meeting today in Cardiff. Reeves and Dave popped westward along the long stretch of the M4 to Swansea ready for the meeting in Cardiff.



The meet up was a restaurant in Riverside called the "Riverside Cantonese". It was the first Chinese restaurant meal i've ever had, and certainly won't be the last. We ordered different plates of food which go in the centre of the table, for everyone to take their pick. It was essentially our own personalised buffet, and had some spicy vegetarian plates, as well as duck in blackbean sauce, and a nice seafood dish with stuff I couldn't put a name to.



After filing up, we hopped to TGI Fridays for a drink whilst discussing the development of the project. There were mock-ups I hadn't yet seen, which answered questions about other parts of the site skeleton I hadn't yet got on to. It was nice seeing the site on an iPhone too, thankfully rendered correctly.



Back to Li's, and it was time to dig the cameras out. We recorded an introductory video just to show how things are going, and what we hope to provide from the project. We took a few team photos which came out fantastic. 



Team-wise, we got on extremely well. I can't say a bad thing about the whole day. Here's to the start of something amazing!



Testing new editor

Diagmato, Testing
Sat May 29, 2010 1:10 am


The big test



This is the first blog entry to be created using Black0ps' new entry/article editor. It is a Word-like interface which even has a full screen mode. Best of all it allows for safe input of user-generated HTML code without needing bbcode.



Positions work a treat!




  1. Cool


  2. Extra cool


  3. Wrigley's extra cool



...and higlighting!



Font colours too, for that matter



Plus the usual bold, underline, italic, strikeout (not demo'ed in case you thought it was broken, hah!).



There is also a paste from Word option.





Image uploads work!



The Newbie Code Obsession

Diagmato, From Wordpress
Tue May 11, 2010 2:03 pm

Some of you are going to know what this is about just by the title, and can probably relate to it. Others will hopefully learn something from it, and relax a bit. The situation is best described with an example conversation that happened recently:


Him: “Can you please find what’s wrong with this code?”


Me: “Hmm, sure, send it to me”


Him: “Ok, but before I do, you have to PROMISE, on your life, you won’t use it or share it to anyone else. It took me ages.”


Me: “…I won’t. ”


Him: “Good :) . If I see any file handling on your site than I know you have lol”


Me: “…Except for the, you know, fact that it handles image uploads, maps, and whatnot already? Don’t accuse me of ripping off your code when i’m just trying to help.”


He saw sense in the end, but it’s not the first time that’s happened.


The problem is that some people get so attached to their ‘hard’ effort, that they think the world is about to try and take it from them, even for the most basic of tasks.


So, if this sounds like you (the one paranoid that your code is so amazing, that it will somehow appear across the world whenever someone needs that functionality), then you really need to think about this:



  • What makes your code so special? Why is it no one else in the world can do the same function, or even better?

  • If someone does see your code, why do you think they will rip it off and use it as their own?


Part of being a programmer is that you find solutions to a problem. That should also be a fun task – one that gives you some sort of satisfaction for completing it, much like a difficult puzzle. You certainly don’t get that when dragging in someone elses code, and you certainly won’t learn much from it either. On top of that, if there are any bugs with the code, the basic programmer will struggle to find it, the expert programmer will probably end up re-writing most of it anyway. Suddenly then, it’s no longer your code. In this circumstance however, an expert programmer just won’t take your code because he/she can easily do it anyway. In fact, if someone was going to “steal ideas from your site”, then they would code their own version, rather than hope they can get your exact code, and implement it.


In the example above, the function was one which looped over the contents of a directory, and unlink()’ed all the files, THEN deleted the directory itself. The bug was that, if there was a subdirectory, it wouldn’t delete the directory itself because it still had contents, and unlink() doesn’t remove directories (rmdir() doesn’t delete a directory that has anything still inside it either). The fact of the matter is, it wasn’t exactly some incredible solution to the world’s problems, and any site that handles files in pretty much any way is likely to do something similar.


The other point I want to make is, don’t take someone elses code and try to pass it on as yours. Especially if you are then going to ask someone to help you fix it. The moment they ask you a question about it, and you can’t answer it, it becomes obvious. Someone sent me a function that actually had me going for a bit – it was a cleverly done MySQL query using all sorts of degtorad() and distance calculations, for a google map, to work out how far one destination was from another. As soon as I tested him by asking why he was converting to radians, he got completely stuck and thankfully owned up.


Finally, if this has sucked the life out of your hard work, then don’t let it. The idea is, you learn from your mistakes. There is no shame in asking for help, just, in trying to pretend you did it all.  You are going to run into situations where, something you are excited about coding isn’t going to impress anyone – either that have already done it, or something similar, or something far harder. Difficulty is relative – you will get satisfied in this case, but don’t be alarmed when others don’t share that excitement, and certainly don’t keep going on about it “in case no one could hear you”, because they did – just, it wasn’t actually impressive to them.



Xbox Live Achievements – on a webpage?

Diagmato, From Wordpress
Mon May 03, 2010 6:10 pm

Xbox Live brought about a way for gamers to prove their individual successes with any game on the console. Some were easy – part of the storyline of the game, some were rewards for going above and beyond – some were rewards for doing something very secretive. The end-result is that some gamers tried to milk every last drop from their game in order to collect all the achievements for a game, and thus, a higher gamerscore for their profile.


In a last minute dash of experiment, I decided to make an Xbox Live Achievements system for a website, starting with a section that hasn’t officially been released yet. The idea is that:



  • Members collect points for contributing to the site

  • Members can see just how much they’ve helped, even compared to other members

  • Members who earn over an X amount of points get rewarded


This provides the user with a few basic reward mechanisms. For completing an achievement, the achievement pops up top centre of the screen for a few seconds, showing how many points it earned them, and which achievement it actually is. Their forum profile lists a table of all their current achievements, and totals.


Achievement Popup


Achievements List


How successful this does is yet to be seen. Aside from the obvious gimmickry, it provides the site’s staff the ability to easily reward members with valuable rewards, and the quick ability to show other members exactly why one of their fellow members are about to receive a brand new iPad, or a £20 iTunes voucher, or something to say thank you in a big way. (for the record though, such rewards haven’t been decided – I am not going to promise an iPad for getting 5000 points just to find out someone Slashdot’s this, and suddenly 200 people qualify. Not that someone would do that anyway).


There are basic rules to define an achievement – an achievement:



  • Must be obtainable by anyone. An achievement to be the author of 50% of the articles on a site is going to be near impossible if there are 200 articles on the site.

  • Must have a value to indicate the effort required for the achievement – reviewing 100 maps just for 5 points is just daft, especially if another member just gained a prize for adding three galleries for 10 points.

  • Can’t be revoked. If someone achieves something, they shouldn’t have it taken away from them, even if they become an aggressive troll.


Now, I certainly don’t think this is going to transform the site overnight, if at all. A lot of members seemed to like the idea, but a lot are also Xbox owners. The system is built in such a way that it is not dominating – if someone doesn’t like the achievements, chances are they won’t see much of the system anyway, but it is there for those who do. Implementation was quick and straightforward, so if this does nothing in the long run, then it’s not the world’s biggest shame.



…and one step more

Diagmato, From Wordpress
Sat Apr 17, 2010 11:01 pm

It takes a few months for a season to come and go, and it seems, the pace of my life. I am no longer employed by the previous company – we parted on good terms. I’m not going to sit and rant about it because, for one, i’m not angry. The company just couldn’t seem to keep the business afloat for a variety of mistakes. All I will say is though, if you are going to create a web development firm, then it is a good idea to know what web development actually is – the directors and seniors were not developers. A manager just should understand something about the core of the business or something will go very wrong, as it did.


So, why am I not angry? Because as it currently stands, I am my own boss. A freelancer. I have my own clients, and the next few months are well and trully taken care of. Beware though, none of the clients have anything to do with the company – the contract with them absolutely forbids a developer from externally contacting a client or enticing clients away from the company, and one, I’m not going to try and take on a legal team I can’t afford to fight, and two, the clients of that company wanted sites which just don’t interest me.


To keep a potential book shorter, here are the good parts of all this:



  • I am making a lot more money than when I had the full time job (no kidding!) and less money is going out

  • I work my own hours. If I want a couple hours mid day to break the day up a bit, then I can do that. As long as I get the work done, then things are fine

  • There are almost no travel costs. Ok despite petrol being expensive these days, that was not the problem – time was. Now I just use the car for meeting face-to-face with clients

  • I can maintain my own sites. Again the rule is, as long as I deliver for the clients

  • I can build my skill base by experimenting with new technologies. Again, as long as I deliver for the clients

  • I have far more time to actually live, compared to the full time job


I have to admit though, I have been very lucky with this. I certainly doubt many freelancers get to start off with a client who is so well off, “anything you ask for is yours – just get me that site!” His site is technologically the most advanced I will have worked on, which makes it fun. He has asked for features which would tax the most powerful dedicated servers. But he is rewarding well for it. It involves two months entirely dedicated to his site, just for the first stage – get it done, get it out, and that doesn’t involve designing the site – just the raw technical details. There’s the prospect of working with him too – maintaining the site, managing it, and keeping it feature-wise up to date. He wants to start something big – very big, and I feel rather honoured to be a huge part of that, not to mention EXTREMELY thankful for pulling me into the way of life I have aimed for, for so long.


Sorry for the way this post was written – I am excited, and that’s after two weeks of leaving the company. The aim if this post is to encourage people of what could be, and what the benefits are. If you are reading this as someone maybe going into college, leaving college, starting uni, leaving uni, somewhere in-between, or just wanting to change career, then maybe I can provide a few thoughts.



  • If your mind drifts when you work on your own projects, or college/uni work, and you think this will still happen if you go freelance, chances are it won’t. Getting the first paycheck is extremely rewarding, and will push you on and on for weeks to come. You will wake up excited to carry on working, even if the job is mediocre. Trust me, it is better than uni work in pretty much every way, not to mention the financial security will keep a huge stress off your mind.

  • If you are aiming for a full time job in the industry, then it is better to be afraid of ending up in a job which would be too easy. A job that challenges you will keep you going, especially if you are in a room full of like-minded people.

  • If you are in a full time job, it is better to ask and fail, than to wonder what would have happened. From personal experience, if I had not bothered the technical manager in the first week, and really showed I wanted to be on the bespoke team, I doubt I would have been a senior developer, at least way ahead of planned. (Actually, be careful with this one – failure could mean they cut your contract).

  • Be careful with who you meet. He/she could be the key to a fantastic future, or might know someone who is.

  • A full time job will get you mixed with like-minded people, who also know people. Some of you will have different skill sets and different desires. Depending on the company, you could also find people who want to break out and go it alone – but just didn’t have the final piece of the team (beware though, as some companies will have a clause in the contract that STRICTLY forbids this).

  • Yes, there are thousands of freelancers. Tens of thousands. But there is only one of you, and also many people near you who will help you. All it could take is for one very well off client to meet you, and you have a good few months sorted. Each client is another task added to your portfolio too, and each could eventually want you to do more work.

  • Having one simple, monotonous task when you just want to get on with the big task by another client is still a good thing. You still get paid, you make another person happy, they will recommend you, and the job itself shouldn’t actually feel that bad.

  • If you want to go freelance, you need a strong understanding of what you are doing. If all you have created is a forum, then you are not ready. Put it this way – if the client wants an e-commerce site, can you slap one together within a week, by modifying an e-commerce application you haven’t yet seen? Of course it will take you longer, but you should be able to get a good understanding of someone else’s application, especially after a good few hours of pulling it apart.


Finally though, freelancing isn’t the bliss-end-of-all-bad. You will eventually meet a client who just wants more and more, without paying for it, or who won’t pay you until it is done. You cannot just rush into it because there is the chance of cash on its way next week. You need to agree on something, in writing, with the client, BEFORE DOING THE JOB, and make absolutely sure you both know where you stand. It is better to not get the job than to waste weeks of development for a client who won’t pay you because he first wants “this changed”, “that changed”, “oh wait this changed too”, “and this”.


P.S – I am new to freelancing. The thoughts above are only my experiences, which could be drastically different to other people’s. Rest assured there are a LOT of freelancers out there who would disagree with me. Again, I have been lucky so far, and thus, wrote about this very positively.



One more step along the road I go

Diagmato, From Wordpress
Fri Apr 02, 2010 5:38 pm

How do I start a post after so long of not posting? Do I bore you with the usual “it’s been a while” and promise not to dissapear again? I’ll save all that and just accept the fact it might happen again. It all depends on how I wish to use this blog from now on.


I cannot believe how long it has taken to do the last job. It was the company’s most ambitious job they have taken on so far, and all I can hope is that lessons were learnt across the board.


Let’s start with the communication barriers. Take one manager who isn’t, and never has been, a developer. Take a PA who does what she is told very well, and a developer. The process starts.



  1. Manager meets client, finds out she wants a poker game on a website. He gets the PA to find existing software we can use (to try and save time).

  2. The PA finds “a poker application” in PHP. Manager accepts this, as it plays a game of poker.

  3. The developer gets the code, and changes it to do what we need it to.

  4. Manager FINALLY states that “the cards and chips need to animate smoothly”. Uh oh.


I’m sure by now you can see the problem. Everyone had different degrees of detail. PHP cannot “smoothly animate images across a page” – Javascript can, but this turned out to be a disaster. Take into account that the Javascript was polling the server every two seconds to see what it needed to do next – on top of that it was supposed to handle animations. By now you should be thinking of Flash, which, if we used it from the start (Which would have been the case if the developers were the ones to actually sit down with the client and find out exactly what she wanted), the project would have been done quicker, and better, because it would have been completely in its own league. Instead, we had a bunch of languages designed to put information on a page, trying to run a game of poker, developed by someone who had never played it poker before.


The code we first used was awful. It did the job, but felt like it was written by someone who had just started with PHP, which, if so, would have been an achievement in itself because of the amount of code, working flawlessly. The problem was that variables were given stupid, non-self-explanitory names, the same loops kept appearing in different places (rather than a nice function somewhere), and the general file layout, and “common” tasks to each page were very…shameful. After a few weeks trying to use it, we scrapped it, and I wrote it all from scratch, using an absolutely huge “table” class, which stored an array of “seat” classes. Tasks for the game were broken into steps, and intuitive functions were created to handle each problem during the game. Some of these tasks took far more code than expected, especially working out who won, and with what.


The biggest problem in the end turned out to be mostly my lack of understanding of the game. The rules I was basing it off didn’t include “side pots”, and different rulesets would miss out parts of other rulesets. The last couple of weeks were just awful – trying to plug in bits of code to get the class to understand the different rules turned out to be one huge, horrible headache. Every day felt like a drag, as I would spend hours trying to fix one thing, without the help of a debugger other than echoing messages throughout the class, or dumping them to the database and checking the last few hundred records to see what was happening, in which order.


The reward for getting that task done, other than a vastly improved understanding of web development, is the next task. One worth £22,000, which is over twice as large as the previous most expensive, ambitious project – which was – you hopefully guessed it, the poker site.


Regarding my previous post – I was promoted just before breaking up for Christmas, and have granted the company the ability to take on projects that previously would have been close to impossible for them. They have rewarded me rather well in return too. It requires more responsibility, but has paid off any debt I had before, and then some. I won’t pretend everything is fancy dory though – a full time job doesn’t half take up your time. It would be different if I went home and did something completely different, but programming is my major hobby too. Finding the balance between the programming, and doing something to break it up a bit is a challenge in itself – the simple approach is to not let something dominate your life for too long – break it up, do something different, then dive back in.



A long-required update

Diagmato, From Wordpress
Sun Dec 20, 2009 1:47 pm

It’s been quite a couple of months, enough to fill this entire page in just one post. Life has now taken an entirely different pace, and the past year feels very distant. So here you get the short story.


It all started a couple of months ago – I lost my car. We still own it, but dad’s car finally gave up the ghost, and as he paid for my car, and it’s insurance, and because he required one to get back and forth work, he took mine. I couldn’t exactly argue, as all I only used it on weekends. Not having a car is quite a leg-breaker at the best of times, but this time it was a stark reminder that I literally have nothing to my name, in fact, if everyone was to call in repayments, I would be considerably in debt (personally, £1,000 in debt is something I consider very bad, let alone the rest).


So, the old way of life couldn’t continue. I could no longer afford to spend 6 months developing something only for it to be side-tracked and move on to something else – too many “start something, never finish”. On top of that, there is no getting anywhere without money, and 3 pages of bank statements of outgoings and no incomings was heading for a distaster very quickly. The only income I was getting was about 60p a week from adsense, which, as soon as I even had a tin of fish for lunch, for one day, was outdone.


So, I went to monster.co.uk, and put up a CV. One company however, gave a job description which stood out amongst the others – a company which seemed was looking exactly for the skills I most excel in. So I applied, chased up, and was soon granted an interview, which went very well. The next day, the job was mine. The next week, I was to start.


So, it started. It’s an upstairs, rather open office layout with each developer getting a large corner desk each. Everyone gets along nicely. Everyone works together nicely. The teams work well, and the day is very productive. A small sales team sits in the corner with an endless list of phone calls which continues to suprise me – they themselves are not developers, but they sound very enthusiastic about what we do. Every call feels like a pat on the back to the developers, who are really the wheels of the vehicle – hard workers, carrying a lot of weight, but who gets the entire vehicle to their goal.


The first week was a mix of dissapointment and suprise – I was dissapointed, they were suprised. I thought I was working very slow, but at the end, they revealed that they gave me the site no one else wanted to do because it was so hard. They expected at least a week, but I did it in 3 1/2 days, including learning their system, their libraries, and packages. The suprise rests with them – the people who looked as if they paid a fiver for a £100 ring. On top of that, the job pays very well – far higher than most university leavers get, often in the same decade they left. It was the first job I applied for, and the first to give me an offer. It is reasonably local, and a very powerful company whose founders shared the same visions I did all this time – they have their own private yacht, have spread to many cities worldwide, yet still feel somewhat small – as if each staff member is valued, rather than just a swarm, replacable at the drop of a coin. They are doing an all-expenses-paid three course formal meal for christmas, and have generous holiday allowance. On top of all that, in 6 weeks I could very well be promoted to the “bespoke” team, which is the very nitty-gritty development, and pays even more, and is more what I want to do.


One thing is very important to mention – university did not get me here. The skills the company were after were not covered in any module, even in the third year. University very slightly touched on PHP and MySQL but at such a basic level, that it won’t even blip a company’s radar. If you want to get anywhere you need to show a passion for it – you need to learn at your own initiative outside of education.


It’s certainly not games development, but it pays the bills, and then some. It does not feel like a drag going to work on a monday morning. Team work is very rewarded, and people share similar interests, generally. It has also not stopped me getting on with my own work at home, especially when dad actually gets a car, which would spare me three hours a day of extra travelling (his job is along the motoway in the opposite direction, past roadworks and another large town’s traffic).



Creating an Effective Sun

Diagmato, From Wordpress
Mon Oct 26, 2009 3:16 pm

Developing the sun was suprisingly easy. The most essential thing to bare in mind is that it is a directional light slowly rotating it’s position around the Z-Axis a distance away from the origin at a given speed. With this, you can guess what the parameters from the sun would be:



  • Distance (radius of circle which sun moves along)

  • Speed (Rate at which sun moves)

  • Starting position/time of day


The sun is expected to be in a certain position depending on the time of day. At 12:00 PM, the sun would be at it’s highest position, in our case, 90 degrees along it’s route. We therefore need to convert seconds into degrees, which is achieved with the following equation:


degrees = (seconds * 360) / 86400;


Note that there are 86,400 seconds in a day (60 seconds per minute, 60 minutes per hour, thus 60 * 60 = 3600, * 24 hours = 86,400 seconds). Because both ranges of values (0 – 360, 0 – 86,400) start from 0, we can strip out the minimum range values from the equation leaving the simplified version above. If this is new to you, you will see the full equation used to convert ranges later on, when it comes to working out the colour for the sun.


Each frame, the sun’s position, and colour are updated. To do this accurately, the system’s clock comes into play, to give us the time elapsed since the last frame. We use this, and our speed of time variable, to work out how much to adjust the sun’s position. Just apply this new value to the rotation method you use in your choice of graphics Framework. Remember to subtract any previous rotation from this value, otherwise the sun will be picking up speed frame after frame rather than travelling at a constant speed. My implementation handled this when calculating time, as such:


timeDelta = gameTime.ElapsedGameTime.TotalSeconds * speedOfTime – oldTimeDelta;


Where oldTimeDelta is set to timeDelta each frame.


A seperate “timeOfDay” variable is used to keep track of the time by incrementing itself with the timeDelta every frame. If this variable becomes greater or equal to 86,400, then 86,400 is deducted from timeOfDay, keeping itself accurately within the range of seconds in a day. Also a seperate “sunRotation” variable holds the exact amount the sun has rotated in total, and is incremented every frame, and kept within 0 – 360 in the same fashion as “timeOfDay”. This sun position is going to be important with the colour interpolation. “TimeOfDay” itself isn’t critical, but was used during debug to ensure the positioning was correct – it is not absolutely required.


Colour Interpolation


To keep a convincing simulation of the sun, we need to adjust it’s light depending on the time of day. A fresh, yellow-ish colour was chosen for dawn, a full white colour was chosen for noon, an orange colour was used to represent sunset, and night time (dusk) was given a dark blue, to simulate a moonlight. We still wanted the world to be visible during night, so using an absense of colour meant that the world was obviously too dark. The blue gave an effective representation of night time, and is a method used in a number of games.


Interpolation between the colours was actually the hardest part, but nicely, not actually hard. All it boils down to is maths, and the following method:



  • Store each “keyframe” colour as a Vector3 (float3) with values between 0.0 – 1.0.

  • Set the sun colour to an interpolated colour between the two colours representing the time nearest the current time.


The colours are set to four points during the day – it is dawn when the sun is at 0 degrees, 0 seconds. It is noon when the sun is at 90 degrees, 21,600 seconds. Sunset is when the sun is at 180 degrees, 43,200 seconds, and dusk is at midnight, 270 degrees, 64,800 seconds.


For each stage during the day, we need to know the following values:



  • The colour to interpolate FROM

  • The colour to interpolate TO

  • The MINIMUM value in a range to convert from (degrees)

  • The MAXIMUM value in a range to convert from (degrees)


For example, let’s say the sun is between dawn and noon. The “from colour” is set to dawn, the “to colour” is set to noon. The minimum value in the degree’s range is 0, the maximum is 90 degrees. With these values, we can create the interpolated colour using the following calculation:


newValue = (  ( (oldValue – oldMin) * (newMax – newMin) ) / (oldMax – oldMin)  ) + oldValue


And in code:


sunColour.R = (  ( (sunRotation – degMin) * (toColour.R – fromColour.R) ) / (degMax – degMin)  ) + fromColour.R;

sunColour.G = (  ( (sunRotation – degMin) * (toColour.G – fromColour.G) ) / (degMax – degMin)  ) + fromColour.G;

sunColour.B = (  ( (sunRotation – degMin) * (toColour.B – fromColour.B) ) / (degMax – degMin)  ) + fromColour.B;


Where sunRotation is the amount the sun has rotated cumulatively.


Just to clarify, if the sun was moving between noon and sunset, then the fromColour would be noon, the toColour would be sunset, the degreeMin would be 90, and the degreeMax would be 180.


The rest of the solution is just passing the colour and sun position to a directional light shader. This assumes you know how to handle this yourself, otherwise you really shouldn’t be jumping into this yet.


General Notes and Conclusion


As it currently stands, although the effects are nice to look at, it could be improved in a number of ways. Firstly, I have not mentioned the sky, which in reality, this would change considerably. The skydome in my scene is a good mid-day blue sky with a few clouds, which does a poor job of simulating sunset, and certainly does a bad job at night time. A hopeful solution to this would be to give the skydome a solid, non-textured surface, and represent the clouds as objects of some sort. The colour of the skydome would then be updated depending on the position of the sun. The sky at night is also missing the moon, which could be set up in much the same way as the sun, although as the sun is controlling the lighting, the moon could simply have to follow a path at the opposite side from the sun.


A vast improvement would be to involve shadows. Seeing large shadows cast from a mountain would be far better to look at than a scene without shadows. Where there is light, there is shadow, which is not currently the case with my scene.


The colours are also not very accurate. The yellow for dawn being the most blatant – it’s just too yellow. The colours were supposed to be very typical whilst also being strong enough to demonstrate that the sun’s colour is interpolating correctly.


Whilst care has been taken to ensure the artist’s use of the sun would be straight-forward, the biggest usability enhancement would be to allow the sun to be placed manually in the scene. This is a simple enhancement – the sun’s position would be set to the intersection between a bounding sphere set to the same radius and origin as the sun (the radius of the theoretical sphere the sun moves along, NOT the sun itself’s size). This uses basic picking techniques to check where the mouse’s “pick ray” intersects the bounding sphere of the world.


When I get around to any of these enhancements, I will be sure to write about it.



Change of Location

Diagmato, From Wordpress
Mon Oct 26, 2009 12:04 pm

I have been keeping this blog up to date, generally, which is more than can be said for my old one. That’s despite running it on a very low powered server through a residential connection. It’s about time I did it some justice by putting it on a much faster server along with other sites I run. That way I can also see if people are actually reading this blog! Clicking something on the admin panel and actually going to the next page within the same minute helps.


A good sign is that I have been enthusiastic about giving a head’s up on development. Maybe someone can learn something from any techniques – if so, then that’s a nice bonus too.



Switching Between Projects

Diagmato, From Wordpress
Tue Oct 20, 2009 11:23 am

The weekend was good – I revisited some graphics programming, and after all this time, I had some catching up to do. Admittedly, I forgot exactly how to translate and rotate in XNA, and had to revise over an old camera class to spark my memory. It’s all good now though. I started the development of a sun – it moves across the sky, and, if you set the time of day, it will re-position the sun based on the time. This is no difficult feat though – there are 84,600 seconds in the day. The sun will be moving in a complete 360 degrees. So we convert the values from 0 – 84,600 to 0 – 360, and feed this function the time of day (in seconds).


The sun also does not behave so predictably colour-wise, however. So far, the sun has a static colour, which would be good for mid day, but bad for sunrise and sunset (and night time!). So for this, I have three colours – dawn, noon, and dusk. The time of day is used to interpolate between the colours as the sun moves across the sky.


Now comes something slightly more advanced. If the user wishes to position the sun manually, we need to do some collision detection. We use a bounding sphere the same size as the sun’s theoretical sphere (the radius is the distance from the world origin),  and then, with basic picking, see where the mouse’s pick ray intersects the sphere. The resulting coordinate is the new location for the sun, or it can be drag/dropped to avoid accidental replacement if the user accidentally clicks the sky. The value of the sun’s roll (the sun orbits the Z-axis – we have so far used +z for North, +x for East) is then converted to seconds in order to calculate the colour.


There are loads of concepts being queued up for the graphics work. The blessing of a hard but fun, rewarding task is also a problem elsewhere. Skinning models, calculating light, calculating procedural grass and terrains absolutely eclipses PHP work. Programming is fun when it is challenging, and PHP offers very little challenge – just monotonous coding, usually in slightly different ways. The biggest reward of website development is seeing people use the functionality and get something from your site. The best part of graphics is everywhere – you are creating your own worlds. There are so many concepts to get through that it offers a constant challenge.


Maths, in my opinion, is the greatest strength you can possibly bring to graphics programming. It is everywhere. It is complicated. My maths from school was pretty bad, and I can safely say that most the maths I’ve learned has come from graphics work. It is getting more understandable, but I really do wish I got into it back before things were so critical.



Theming, actually not that bad

Diagmato, From Wordpress
Wed Oct 14, 2009 12:22 pm

Before, I expressed a problem I had with designing a website. Now, I am writing in a better, more confident mood about it.


Actually, the hardest part was finding colours that work together. A problem here is that it is relative. But a counter to that is that if someone is looking for particular content, they won’t sit and review the site’s theme. But again, to counter that, first impressions mean a lot.


The obvious is for the theme to look clear, so that the individual can find what they want as quickly an efficiently as possible. That would be one good first impression. No one likes visiting a site they haven’t been to before, and spending even minutes trying to find what they are looking for.


People who regularly come back to the site also don’t want to sit in front of a theme that makes their eyes bleed. For the background of the site, it was a tough choice – to go against the site’s main use of blue and peach, I tapped into green’s range, ever so slightly. The result was less taxing on the eyes than the same almost-grey-but-purple shade.


I’m also suprised at the detail added by simple drop shadows and rounded rectangles. They are small details, but they make a suprising difference. When using the old theme, the site feels old. The new theme makes it feel fresh, and also more robust, as if the quality of the theme reflects the quality of the functionality.


These are still beginner approaches, but they do make a difference. This has given me an interest in image editing to some degree. Finding my way around GIMP and Photoshop would make things a lot nicer when it comes to editing textures for the game engine.


Can’t Wait for Christmas


Ah yes, Christmas is not too far off. But i’m not looking forward to it for the presents and feasts – my partner in crime and I have decided to set aside a few weeks to work full time on the game engine. The result should be a significant part of a small RPG engine. That is, we should have procedurally generated terrain, with realistic grass, omni-directional shadow maps, a nice particle engine, an inventory system, convincing water, vegetation, and detailed texture mapping on the terrain (with the vegetation following suit). Anything less than the majority of those features would cause a bitter resent for the time and how it was used.



Post Launch Day

Diagmato, From Wordpress
Thu Oct 01, 2009 11:28 pm

29th September. Time’s ticking by, and the site has really taken shape. Is it ready for the public? Can it survive the public scrutiny? Are the bugs ironed out?


Time will tell.


Either way, the site has been released at long last.


To give it a nice, memorable date, I spent the remaining 5 hours of Wednesday making sure everything was going smooth. The site was then uploaded, the database cleared of test data, and the countdown began – the idea being to initialise the site as close to midnight as possible. The site’s “birthday” then being 1st October 2009.


As I type, there are now 11 events. After hours of data inputting, I came across a rather serious dilemma. You see, Britain is divided into counties. These counties have changed over the years, some changed during another change. We are now left with some nice large, general counties, some sub-divided counties, some created to help the Post Office, others created to serve lieutenancies. The trouble here is that I don’t know which county sets to use. One idea is to use all of them, but different sources of information provide conflicting data on which county’s serve which purpose.


In the end, I didn’t see much harm in adding all county’s. Except when you try to find all towns/cities in, say, Wales, and the data there is different to how you know it. Take Swansea – it should go in the County of Swansea, yet Yahoo’s directory lists it under West Glamorgan. Which is correct depending on how you look at it, but will someone searching via county get the results they expect?


In an ideal world, people would be fully aware that Swansea (and County of Swansea) is in West Glamorgan, which is in turn, in Glamorgan – the original county. But will people select those? That’s not even the entire point – the point is, this is adding a complication to what should be a very quick way of getting information. If someone is trying to find Singleton Hospital, then one would assume they would select Swansea as a county. But in this case, the user would not find the event, as the event is listed under West Glamorgan.


So here comes the solution – parenting. County of Swansea is added as a child county to Mid Glamorgan, which is in turn a child county of Glamorgan. Selecting either in this relationship shows the necessary events. But this adds a problem that I, as an individual, am not going to know accurately about, say, Scottish county’s. Information online seems rather disagreeable too. A best guess is to take various maps of the county’s from different years, and compare positions.


Towns have also added a problem. Penarth, and Sully were added as towns. Yet an event in Sully is addressed as Penarth. This is apparently, correct. So now, there’s the problem that there is a lot of towns that are part of other towns. As far as I am aware, Sully is a rather small area and cannot really be regarded as a town.


As people add events, hopefully this will filter out which towns can be discarded. All I have learned from this is that Yahoo’s directory could be a bit sharper.



End of the old, start of the new

Diagmato, Development
Fri May 01, 2009 12:42 am
At long last, the final assignment of the third year was handed in. The forseeable future seems open to all sorts of development, in my time, for my purposes, without any looming deadlines for some write up, or small application in another programming language to ’solve’ a task I am not interested in.

The dissertation was ok - it had a lot of potential, but I cannot say I am happy with the outcome so far. The demo crashed during presentation to both supervisors, and the results of the terrain appeared far poorer than when I was writing up the conclusion documentary. Overall not too good, but the end of the dissertation does not mean the end of that project - obviously I will not be writing up pages and pages of research, implementation planning and conclusions - no. It is time for the fun stuff - uninterrupted development. The project has a lot of potential, at least personally, for creating resources procedurally. During research, the book - “Texturing & Modeling - a Procedural Approach”(David S. Ebert, Ken Perlin et al.) offered the temptation to explore more of what noise-based techniques can do, other than produce rather powerful featureful terrain.

Accidentally, my Fractal Brownian Motion implementation produced a heightmap which resembled a concrete texture from Duke3D, and also a rather blurry grass texture in place of the alpha map. There was not much more that needs to be done to start tweaking sliders to adjust colour ranges to noise values in order to produce textures procedurally.The same toolset could easily be used for generating the terrain, but hopefully much better than the dissertation’s snapshot of the application.

In honesty, when I first started the project, my interest laid solely with producing terrain. During the first few meetings, I had not heard of Perlin Noise, or Multifractals, and thus, did not start off with an interest in this area. However now, I leave university hopefully with the degree (in case it ever comes in useful, but more on this perhaps another day), and the desire to carry on with procedurals, at least to develop them to be an invaluble tool. Being graphics-based, it is a good approach to take this to shaders, and to three dimensional textures.

If you guessed a nice, Voxel terrain engine from the last paragraph, then you would be correct. GPU Gems 3 has a nice article on Voxel Terrains - I have been hard pushed to find much more on the topic, so maybe I should change that, and also demonstrate it with OpenGL - also doubling up as a nice Geometry Shader tutorial.

The future seems bright and free at the moment - just, with a loom of whether or not missing two assignments will still be sufficient to get the degree, if only to leave university trully behind.


GeoMipMapping

Diagmato, Development
Mon Oct 13, 2008 2:25 am
Started: 11th October 2008


I had been thinking of how to go about this for a while – it is something I was never inclined to look into using tutorials. Previous 'experience' with this subject has only gone as far as a brief "it needs to render less detail the further away the terrain is from the camera". The quadtree algorithm gave inspiration, but I will get onto that later – for now I just wanted to see if the idea worked, THEN quad tree's can come into it when i'm satisfied. As it write this, so far it seems to have worked almsot spot on how I imagined it to.

The idea was this – divide the heightmap into a series of 'nodes', each of which would be responsible for the height values they contain.The further each respective node is from the camera, the less detail it needs to worry about.

If that sounds familiar to concepts in books that is because it is. Seriously, this is a situation where anyone with some form of experience will come up with similar, if not the same idea. I am by no means claiming I invented this idea – all I am trying to say is that this is the idea to go about it that came to mind.

1st attempt

The first attempt involved a lot of numbers and offsets into the grid. I spent some time in front of a white board drawing out what I had pictured in my mind – a large grid of 6x6 nodes with different resolutions of triangle strips depending on their distance from the camera. Each node was given a coord at each corner, and each patch was given an X and Z coord at each corner. A lot to draw, but it probably saved off all sorts of time trying to re-imagine the numbers and offsets in my mind.

The loop to fill the node data was too much for what it should be. I tried adding each height value to each corresponding node, so that rendering would require looping over each node, then looping over its patch coords with no possibility for a node to overlap its neighbour. Again, too much for what it is, and an added frustration was that collision detection would have had to loop over all nodes to find the height values.

2nd attempt

Much better. A struct full of the height values, texture coordinates, colour values, etc. This was filled up as before with the bruteforce terrain. The nodes would simply reference this array of structs with an index into the height values struct. Filling up the node data was just a case of dividing the terrain size by the (configurable) patches-per-node value, so that we are left with a count of nodes (for both X and Y). Then, each node is given an id, its centre coord calculated, and an x and z start (which is used in the rendering code to offset into the height value array to get the correct coords).


With that done, rendering the terrain was straight forward. Loop over the nodes, and use their x/z start values to offset into the height values, to plot each height value.

Amongst rendering, we check to see how far away the camera is from the current node – if it is greater than a (configurable) threshold value, we reduce the detail level (by a multiple of 2) so that the rendering loop skips over some of the height values. The further the node, the more we reduce the detail level.
What we are left with is a 1024x104 terrain which displays suprisingly similar to a bruteforced version, but with much more FPS. We are also left with 'popping' terrain, and cracks. Damn.

This is where the id's come in. Each node is supposed to be able to refer to its neighbouring nodes. The node struct contains an up, dn, lf, rt value which links to its respective neighbours. This will (hopefully) allow us to easily check neighbouring nodes for their level of detail, and (somehow) blend the triangle strips so that the crack is eliminated.

Anyhow, progress shots:


(Stage 1 - Nodes and indexed vertices loading fine)


(Stage 2 - Heights added)


(Stage 3 - For test purposes, rendered a vertical line at each node's centre coordinate)


(Stage 4 - Errornous attempt at adding detail levels to nodes)


(Stage 5 - detail levels fixed - before... (see next image))


(Stage 5 - detail levels fixed - after (yes, I am aware its only applying to the one column of nodes at the moment))

Proposed Improvements
-Fix distance checking - only first row seems to be changing detail
-Implement neighbour checking, and avoid rendering height value which the lesser detailed patch does not render
-Investigate detail 'popping'


MD2 Loading/Rendering

Diagmato, Development
Mon Oct 13, 2008 2:12 am
Started: 7th October 2008

(Note - if this looks familiar, it is probably because we both have the same book - "Focus on 3D models". I used it's MD2 model for developing this loader for. I have indicated where I have used the book as I go along.)

I wanted more...character to the engine. The MD3 rendering seems just a bit too out of reach at the moment, so the idea is to get more understanding with models, using simpler formats first. MD2 was a good candidate for this.

Loading was straightforward except for the vertices. Ill expand on this in a moment.

The model file itself is simple – the header, which contains the ID, version, offsets, and count of each corresponding data sections. I simply read in the entire file, then used an unsigned char pointer to start at each offset and work its way to the count of each type. For triangles, this seems to be a simple memcpy of iNumTriangles * sizeof(SMD2Triangle).

Frames were the tricky ones, and ended up with me looking up a solution in "Focus on 3D Models". There are 'iNumFrames' frames in the model, and each has 'iNumVertices' vertices each. I had trouble thinking out the best approach to memcpy this data – the solution was to do it in small chunks – read in the scale, then the translation, then the char array for the name. Then its onto looping over iNumVertices, and reading in the vertices like so:


pFrame[i].pVerts[j].fVert[0] = ucpReadBuffer[0] * pFrame[i].fScale[0] + pFrame[i].fTrans[0];
pFrame[i].pVerts[j].fVert[1] = ucpReadBuffer[2] * pFrame[i].fScale[2] + pFrame[i].fTrans[2];
pFrame[i].pVerts[j].fVert[2] = ucpReadBuffer[1] * pFrame[i].fScale[1] + pFrame[i].fTrans[1];
ucpReadBuffer += 4;


...Which is inside a for() loop, inside the for() loop which iterates over each frame. The vertex values are essentially compressed – we multiply the raw values by the scale + translation to get the real coords (converting from short to float). Finally, we increment the read buffer by the number of bytes just read in (plus 1 byte for a reserved value), so that the next loop iteration ends up with the necessary data, and not the data we just used.


Rendering was simple for now – I just used the first frame for testing purposes, and looped over the count of vertices:


glVertex3f(pFrame[0].pVerts[j].fVert[0], pFrame[0].pVerts[j].fVert[1], pFrame[0].pVerts[j].fVert[2]);




Of course, this doesnt render the model – just its vertices (which was done in GL_POINTS mode). Rendering a more physically solid model was done by implementing the triangle data, which holds indexes into the vertex struct array, within the current frame. It is not as complicated as it sounds:


for(int i = 0; i < header.iNumTriangles; i++)
{
glVertex3fv(pFrame[0].pVerts[ pTriangle[i].sVertexIndicies[0] ].fVert);
glVertex3fv(pFrame[0].pVerts[ pTriangle[i].sVertexIndicies[1] ].fVert);
glVertex3fv(pFrame[0].pVerts[ pTriangle[i].sVertexIndicies[2] ].fVert);
}


As it stands though, it seems errornous. The feet are connecting to the tail of the model, which should not be happening:




Improved 8th October 2008

I fixed the problem with the triangles connecting the tail to the toes, and so forth. I was offsetting the read pointer by the number of triangles, instead of the offset value:


ucpReadBuffer = ucpFileBuffer;
ucpReadBuffer += header.iOffsetTriangles;

(The second line used to be ucpReadBuffer += header.iNumTriangles).

The model now renders fine – just, it needs texturing, and animating.


(MD2 rendering successfully, but without textures)


Initially, texturing came as a suprise. The model I am using apparently has a skin count of 0, so the loop I was using to read in each skin (texture), wasnt looping. I added an entry to the skins for it to account for the default skin. This seems a cheap, nasty workaround, but I havent read much into it yet.

Initially, mapping the texture to the model was full of errors. The coordinates are calculated as follows:


pTexCoord = new SMD2TexCoord[header.iNumTexCoords];

for(int i = 0; i < header.iNumTexCoords; i++)
{
pTexCoord[i].fTex[0] = (float)ucpReadBuffer[0] / header.iSkinWidthPx;
pTexCoord[i].fTex[1] = (float)ucpReadBuffer[2] / header.iSkinHeightPx;

ucpReadBuffer += 4;
}


The coordinates follow ID's little compression idea, of converting the vertices to short values which take up less memory than a float. They have provided the values to divide by to get the float, which is the skin width and skin height from the file's header.

We are incrementing the 'read buffer' by 4 bytes, which is the size of two short variables. We deal with both the s and t (u and v) texcoords one pair at a time.

The texcoords are mapped out as follows:


glTexCoord2fv(pTexCoord[ pTriangle[i].sTexIndicies[0] ].fTex);
glTexCoord2fv(pTexCoord[ pTriangle[i].sTexIndicies[1] ].fTex);
glTexCoord2fv(pTexCoord[ pTriangle[i].sTexIndicies[2] ].fTex);

In amongst the vertex calls in the same render loop.

The problems I had were:

-Not referring to the correct TexIndicies[]
-Not putting the TexIndicies as the index of the pTexCoord
-Texture image was upside down

All were fairly quick to fix – the last problem took the longest – Initially I thought I had calculated the coordinates wrong, or placed them wrongly in the render loop. I noticed that the model's tail underside was where it's mouth was, which in the texture itself, is the wrong way around. The texture was originally a bitmap, which is stored upside down, so I flipped the image vertically, and finally, the model is showing as it should be. As a note, I saved the image as a tga, as at this point, I dont have a bitmap reader.


(Not referring to the correct TexIndicies[])



(Texture image was upside down)




Now, it just has to be animated!


Improved 10th October 2008

I have added a bounding box to the model. As the vertex data is loading in, I did a number of checks to find out which was the lowest and highest xyz values. Those values are then passed to a 'cube' struct which is then used to calulate a vertex array for drawing the actual bounding box. I did it this way as I seem to keep coming across the need to draw a cube, so I made a function to calculate and draw it.


(Gun turret model with bounding box)


Cubemapping

Diagmato, Development
Mon Oct 13, 2008 1:47 am
Started: (Roughly before 19th September)
Improved: 3rd October 2008


I have had a mix of results from this. The cubemap successfully applies to the water, but rotates the wrong way, even when trying to apply an inverted texture matrix. It also squashes when the camera is close to the water, no matter which direction it looks. The only success I have had with sorting this is to render the water as a grid, which seems to stop the cubemap from bending over the large, single quad.

The improvement last night made the result much better – all I did was enable blending before both textures (the normal map is texture0, the cubemap is texture1). The blending uses the alpha of the colour we apply, but the cubemap is rendered onto the water surface and is still visible.




(Blended cubemap)

I am unsure what will happen with regards to the normal map, when it comes to per-vertex lighting. Hopefully it will still work regardless of its relation with the cubemap, and the blending.

Proposed Tests
-Render the water as two triangles instead of a quad (an attempt to fix the bending cubemap)

3rd October update
Fixed cubemap distortion by rendering water as a 16x16 triangle strip (16 triangle strips with 16 patches). The idea is that, when it comes to making water wavy, it will likely do this by manipulating the heights of each vertex that makes up the water, so two birds with one stone, hopefully!


(Cubemap displaying without warping)


Terrain Texturing

Diagmato, Development
Mon Oct 13, 2008 1:40 am
Improved: 3rd October 2008

Previously, terrain was textured by applying a tiny texture to each square created by a series of 4 vertexes in a triangle strip. This was improved so that a larger texture is tiled across the terrain as a whole, in that we calculate each vertex's texture coord as such:

vertex[x][z].s = x * (textureTileCount / terrainWidth);
vertex[x][z].t = z * (textureTileCount / terrainLength);

We only need to calculate the bracketed equation once, so it was placed outside the loop for generating the coords, and its value assigned to a variable. No point in the computer doing the same homework twice, aye? :)

To test this, I adjusted the tileCount. The results were successful – a tileCount of 1 ended up with extremely thick grass, a tileCount of 20 ended up with much thinner grass (the texture was a rather detailed grass texture).

Here it is in action:


(Before)


(After)


Proposed Improvements
-Multitexturing for added detail (DONE)
-Normal-oriented texturing (for cliff faces, etc)
-Lighting support




Multitexturing

The next improvement for this concept was with multitexturing support - getting surfaces below the water level to show a muddy texture as opposed to a grass texture. This came somewhat close, but there was no grass texture. What I tried was to only render the coords for the second texture (the mud) and not the grass. This caused anything above the water level to have a seriously stretched version of the mud texture.

The solution I believe is to plot out the textures as usual, but adjust their blending, so that the mud texture shows through the grass texture.

What I have left this concept with (for now) is a terrain that is blending between rather clean looking grass, and mud, as seen in the below screenshot (going forward in time a little here):



Writing to TGA, mass image dumping

Diagmato, Development
Mon Oct 13, 2008 1:31 am
Started: 3rd October 2008

Last night, I worked on the TGA writing function. It only supports image type 2 at the moment (raw, uncompressed). To write to this format, we just need to setup the header with the necessary values (most are 0, except for image type, and the width and height, which are the values of the viewport (iViewport[2], iViewport [3]). Then after the header, we just write the image data, with the size obtained through the width * height * bytes per pixel (3 in this case). The image is read from the OpenGL Front buffer, which will gather the viewport rendering including both perspective and orthographic.

To take a screenshot, currently the controls are ctrl + right mouse click. But this will keep taking screenshots as long as they are both held down, and unless the person controlling it has the reflexes of an agent in The Matrix, they will get a number of files.

The save tga function does the work of checking for a unique file name. It iterates an integer, prefixes it to the filename, and tries to open it. If it successfully opened a file, then there is already a file with the name it is trying to use, so it increments the integer, and tries again until it fails to open a file, and thus creates and writes the new file. This makes it handy for dumping screenshots for exporting to a movie clip (with videomach for example). This needs to be improved – currently, the more screenshots there are, the longer it takes for it to search for the next filename iteration, and this quickly becomes noticable when the computer is trying the same process on every frame.


(first ever working screenshot using in-engine code)

Proposed Improvements

-Keep a record of the last successful iteration so that the computer does not need to test potentially 50 files just to save the next one, each frame.
-Add support for saving RLE-encoded tga's
-Add support for taking one screenshot, or a series of screenshots



Improved - 3rd October 2008

Texture class now remembers the last file number saved, so it only needs to check once if a file exists before writing it.


A bunch of updates

Diagmato, Development
Mon Oct 13, 2008 1:14 am
I really need to keep updating as I go along. The last entry was 13th September, which, checking a log file, all sorts of concepts have been worked on since then.

So for the next few blog entries, I have started with a manually written date to indicate when they were worked on.

Various concepts were toyed with but didnt get far. Others are actually worth mentioning. Here's some (in no particular order):

- Implemented extension loading and GLSL support
- Implemented cubemapping, tested on a spherical object. Successful, but scrapped.
- Implemented sound using SDL_Mixer
- Implemented runlength encoded TGA loading
- Implemented screenshot function and TGA writer
- Implemented font functions (for displaying text in-scene)
- Experimented with half-life .mdl files using source code from their SDK (scrapped - will write my own version when needed)


GLSL Shader attempt at lighting



GLSL shader attempt using specular and diffuse lighting (emphasis on attempt)


Skyboxes!

Diagmato, Development
Sat Sep 13, 2008 10:29 pm
I was growing tired of the OpenGL scene looking so...lifeless. Just a floating terrain with a red background. It was time to make it begin to feel like a game engine.

I declined to rush off in search of tutorials - the first idea was to get a huge cube surrounding the 'world bounds', and texture them with a skybox texture. So I did, and, the results were what feels like a giant wall with a texture, statically in place where you could walk up to it, as if its some backdrop in a movie set:






Not good. Tutorial time.

After a read around, I learnt that the skybox is actually tiny, and just wraps around the 'camera'. When the camera moves, so does the skybox, giving the feeling that it is infinitely far away:





So, as the camera is moved, it passes its XYZ position to the skybox class, which updates the position of the skybox. Depth testing is disabled before the skybox is drawn, then enabled straight after - if we didnt do this, then all we would see is the skybox, and everything else would be hidden, as in reality, the skybox is infront of (mostly) everything else in the scene.


Heightmap umm, fixed

Diagmato, Development
Wed Sep 10, 2008 10:50 pm
That iceberg looking heightmap rendering from before was wrong - its not supposed to look nearly like that. Problem was that I was setting each height into a signed variable, so anything above a certain height became a negative height.

Uni draws closer, and my project is procedural terrain generation. I decided to improve on the heightmap rendering:



In a sense, it accidentally resembles mars, with its darker area's believed to have one held water - compared to the next image, where the water level is risen:



It has so many improvements needed - when water rises, all puddles in the area dont miraculously rise at the same time - it flows around, rather than raises from the ground in sync with other puddles (unless its a very wet field, or sand). But working out the physics to get water to flow is well beyond me.


There is one other advance in this 'snapshot' - the GUI. I have been working on a GUI framework in openGL - you instantate buttons, panels, etc, and, say, for buttons, you assign them a function pointer for them to run when onClick, onMouseUp, onMouseDown, etc. Its designed to replicate features from other GUI's, and the actual code to instantiate and set it all up is similar to Java. It was suprisingly easy to setup how a button calls a function - just need to adapt it to be able to work with methods of other classes, which would make the GUI so much more flexible to work with.

An added gem is that, when the button is clicked, it changes its texture id to use a 'select' version of the texture. Just need a good artist to draw up some buttons properly.


Significant Progress

Diagmato, Development
Sun Aug 17, 2008 10:07 pm
Spent a weekend over Terry's - amongst a good bash of gaming, was a very good coding spree. When the people working on the same project are in the same room sharing ideas and a fresh pair of eyes on each others errors, things get done VERY quickly.

The biggest problem seemed to be the Tilegrid. At the moment, I have a quick testing function which pumps a struct array of vertexes full of x,y,z coords in a grid fashion. The individual tiles then point to each vertex which represents their corners. This way, when it comes to the map editor - if a tile is raised, then its adjacent tiles will automatically slope up towards the newly raised tile as they share the same vertices as the raised tile's closest edge to the said tile.

If you're trying to picture what I mean by a Tilegrid - think of Red Alert 2, Tiberian Sun, and various Isometric games like the SimCity series.

Arran did a good slice of work on the building models - some nice stuff there.

Terry did a good job with unit interaction - so far a marine moves where the mouse was clicked (on the terrain). It's model animates appropriately too. It just needs to implement 'picking' in order to select the marine, and tell it to move, rather than the marine always responding to the mouse.

Ive made major progress with the GUI system - ive tried to make it as straightforward as I can, following the GUI setup rules of other languages (it has a close resemblance to Java). So far it supports panels, buttons, and buttongrids. The latter simply makes it easy to add a grid of buttons, and itl work out the sizes and coordinates automatically.

Here's the all-important progress shot :). The texture sucks, but im no graphics artist. I couldnt find a martian ground texture, so I copied a tiny square from an image of the surface of mars. The GUI has a nuisance white placeholder texture, but it is working fine - I just havent made a sidebar texture. The buttons in the bottom left are there temporarily for testing the raise/lower functions of the tiles.



Costco!

Diagmato, General
Sun Aug 10, 2008 6:56 pm
Recently, the new Costco Wholesale store opened in Cardiff. I went to the opening day twice, and have been there again recently. I have never been so impressed by a store.

Dotted around the food sections are taste counters - everything from Japanese rice snacks, chocolate cake (my goodness that was LUSH cake), fish (squid, octopus etc), Beef, Lamb, Tomatoes, wine, beer, cheese, wild forest mushroom, and crisps made not only by potato, but by parsnips, carrots, beetroot etc. Suprisingly, they tasted usually like crisps, but with a nice variety of flavour. Either way, you could go there, and try things you never knew you would like - not only that, but, after entering the store hungry - after visiting all the taste stands, my stomach was no longer complaining.

Its very hard to find something bad to say about this place, other than seriously restrictive membership. Their rules are tight, but if you are legible for membership, it is well worth its yearly fee.

Again with the food - fancy a bar of, say, Dairy Milk? Well imagine walking out with a display box full, for £5. Replace Dairy Milk with your favourite chocolate bar, and it should still be the same situation. You see, they also sell to independent retailers.

As for drinks - I walked out with 24 cans of Relentless (that Red Bull competitor), for roughly £15. I cant remember the exact price, but each can was around 80p, compared to the usual price of around £1.50.

Amongst the usual brands available to the UK were ones from America - Hersheys chocolate is available, including their chocolate syrup (for ice creams, chocolate milkshakes etc). Not in the usual tiny bottles that will perhaps do 10 bowls worth, but in proper restaurant buffet sized containers, in packs of two.


The bit that grabs my attention the most is in the bakery section - a giant chocolate fudge cake, restaurant quality. For all those brits reading this - ever popped to a restaurant, and had a chocolate fudge cake for dessert? Theyre rather rich tasting, usually served warm. These days theyre around £3.25 for one slice. Imagine paying £6.00 for the ENTIRE cake. Great for parties.


Off the topic of food though (well, the actual products themselves ;)) - in the bakery section, you can see the staff making the cakes there and then, for that day. This isnt the usual Morrisons or Sainsburys stuff where they go out back, or hide behind stacks of bread loafs - theyre plainly visible, and very professional. The same happens with the butchers.

They also do laptops, Apple Mac's, Office equipment and furniture, garden stuff, appliances - some really good stuff.

And finally, on the way out is a nice little food area - a HUGE slice of pizza for £1.50, and a large drink with free refills (Coca-Cola brand).


Heightmapping

Diagmato, Development
Sun Aug 03, 2008 11:41 am
For a change of scene from PHP for a bit, I had a huge coding spree with C++. Ill tell you now, the more I use this language, the more I like it.

I was getting bored of rendering a quad or two (or the un-finished Quake BSP classes pumping out a bunch of coloured brushes), so I decided it was time to give the graphics card a bit more work, and render something a bit more interesting, like a natural landscape.

So, I did!



I wrote a reader for a .raw image, which is nothing but the actual 'raw' image data. Just fread() the pointer to the file, for the size of its width * height, and you have the image data.

The heightmap is somewhat interesting - the colour value for each pixel denotes a vertex's height. So, if the pixel at 37,48 had a colour value (as a byte) of 127 (greyish), then the height value (as a float) would be 127/256.0 = 0.49609375. So, when rendering the heightmap - we glVertex3f() the x position (from the for() loop), the z position (from the sub-for() loop), and use the height value we calculated earlier for that individual vertex's height. So in this case, it would be:

glVertex3f(37, 0.49609375, 48); //X, Y, Z

For the ONE vertex. But bare in mind that, for terrain, were using GL_TRIANGLE_STRIP, which wants 4 vertices specified in a 'Z' pattern:


//Top left
pointHeight = this->pointHeights[x][z];
glVertex3f(x, pointHeight, z);

//Top Right
pointHeight = this->pointHeights[x+1][z];
glVertex3f(x+1, pointHeight, z);

//Bottom Left
pointHeight = this->pointHeights[x][z+1];
glVertex3f(x, pointHeight, z+1);

//Bottom Right
pointHeight = this->pointHeights[x+1][z+1];
glVertex3f(x+1, pointHeight, z+1);


Not too bad when it comes to rendering, but the bit that had me stumped was actually filling up the pointHeights[][] array. For ages I was referencing the vertex in the texture data as texture->textureData[x*z], which was wrong. It should be:

texture->textureData[(x*terrainWidth) + z]


So to summarise, filling the values and rendering the values are the same for() and sub-for(). The worst part was getting the maths right when loading up the pointHeights array.


This is not meant to be a tutorial on it - maybe one day ill write one though. At the moment im certainly not convinced that ive done it as efficiently as it could be.

Now the question is - why on earth cant I get this .raw texture to map to a quad?!?


Summer BBQ

Diagmato, General
Thu Jul 31, 2008 8:27 pm
Last night was quite an event. Very good event, but partly unexpected. The expected part went as far as a BBQ on the go - it wasnt the weather for it, but ah well. It didnt rain (which was VERY lucky considering the cloud cover, and the way its absolutely pouring down today) so no problem really. I went there expecting a spot of food and a social, and ended up having to stay the night after getting a bit carried away with a drinking game.

Whilst working our way through the food, Hannah decided to absolutely puzzle the majority of us with a not-really-commonly-heard-of trick called "Schnapps is the name of the game", where, someone watching (and not part of the trick) gives a word to one of the two people doing the trick, without telling the other person. The latter person then has to repeat what the word was after a series of clicks. Its clever, but simple how its done. I now know how the trick is done (a google search for it wont really give an accurate description of it). I'm not sure whether to reveal it - that spoils the trick!

Anyhow, the drinking game - probably a common one, but it was good - going around the circle of people - you say a celebrity name, and the person after has to say another celebrity name which, the first letter of his/her first name is the first letter of the previous celebrity's last name. E.g, person 1 says "Viggo Mortensen", then person 2 could say "Michael Jackson". The hard part - in the panic of the 4 second time limit, and the game starting after I had downed a number of triple shots - I could think of first names, but not last names, so 8/10 times, I ended up downing a triple shot.

Lets just say, night time was a war. I was determined not to have a hangover the next day - on came one heck of a nasty headache - one which cannot be relieved from massaging the head, and an awful amount of nausea. I had been told a while ago that the headache is caused by the brain being starved of fluids, so I drank glass after glass after glass of water. That triggered off the stomach, so I went through the process of 'praying to the great white god' (bending over the toilet, purging my stomach with the occasional bad language in between). With that over and done with, and my stomach finally not complaining about its contents, I drank another number of glasses of water. Then came round two. Then more water, then round three, then no water. The headache actually eased off, but the stomach? Nope.

The night was a rather long, un-sleepable, painful one. If I moved, it was an effort not to have to revisit the bathroom. Somehow, with some luck, I did get to sleep, waking up in the same predicament. Everyone else who stayed the night were downstairs chatting about the night before - as much as I wanted to go downstairs, I couldnt move. If I did get downstairs, I doubt id have been well enough to do anything more than just sit there, so I tried to catch up on sleep. Somehow, I did, and by midday, the symtoms were nothing more than the occasional small re-occurance of nausea.

It was all good though - annoying aftermath, but it followed an excellent social.


Last day at work

Diagmato, General
Thu Jul 24, 2008 10:14 pm
And so it ends!

Deja vu, blog-post wise. It wasnt long ago I blogged about starting the job - just two posts later, and the position is over.

I didnt get the sack, there's no case of mis-conduct. I resigned, and not on bad terms. The work placements tutor came in to have a meeting with me and my supervisor - turns out the placement just was not technical enough. The job was essentially that which an admin assistant could do ('admin', NOT as in running servers and keeping them up to date, but as in office admin) - essentially it was copying and pasting content into the new version of the site.

I have to admit ive had mixed feelings about this. Ok, so, the job was incredibly monotonous, but the staff there were just incredibly friendly. It is so far the only place, as far as I can remember, where I have been able to just say something and not think whether it is going to annoy someone, or not get a response. It was great there - my supervisor was just excellent - very easy to talk to, and very relaxed.

Saying goodbye sucked. One final tour of the office, but this time to say my goodbyes, before heading to the ICT entrance to hand over my keycard. Then one last goodbye to my supervisor before a very strange walk to the car, with the saddening thought that this is the last time I ever walk down this driveway.


Biggest. coincidence. ever.

Diagmato, General
Tue Jul 22, 2008 5:42 pm
...Well for me anyway!

I was driving to work - M4, westbound. Just passed junction 33, and ended up behind a small van which was travelling at a decent speed, but not the full limit. I let go of the accelerator and let the car distance itself from the van, whilst thinking to myself "What if his tyre bursts?" I cant say what made me think this to myself - I naturally keep a 2 second distance from the vehicle in front anyhow. Either way, what happens next couldnt have been made up.

The van starts 'leaning' to the side - it goes into the middle lane to overtake someone, and as he speeds up, boom! His tyre rips off leaving a dark, muddy-coloured cloud, and bits of rubber flying outwards. He luckily manages to get to the hard shoulder without losing control of the vehicle, leaving people in the leftmost lane to have to carefully move around the remains of the tyre, as it carried on with its momentum. For the rest of the journey to work, I was gobsmacked. The one time ive ever pictured the vehicle in front's tyres bursting (ive never seen it happen before), and next thing, it actually happens.

Before you look at me weird - no, I dont think im phychic! Just, the word 'coincidence', for me, has been completely defined.


First Day at Work

Diagmato, General
Mon Jul 07, 2008 10:36 pm
And so it starts! Day 1, working as a web developer for South Wales Fire & Rescue Headquarters.

I didnt really have any first day nerves - well, not as such. In my mind I was fully confident - I was only phased by the initial complexity of the old building (Lanelay hall itself). Had to pop there a couple times to get a few forms sorted, but nothing bad.

I rest my case about the staff being friendly - very friendly actually. My manager's great! Extremely helpful and understanding, and great to 'general chat' to (as we get on with work of course :)). There are three of us tucked in a room which used to be the ICT department's kitchen - in all honesty though, I did not notice that until it was pointed out. Its a quiet little room - easy to concentrate in, but at the expense of no air conditioning! Can't have it all I s'pose. There are windows, and there is a fan nicely behind my chair, so if summer does decide to show itself, there are some ways of making the temperature bearable. There's just the three of us in that room (in respect of other staff's privacy, I'm not mentioning names) - the team itself is, as expected, very friendly.

After having a guided tour of the place, it was time to get on with work. First day, first week, so a suitable time to get used to the software they use (Sharepoint 2007). It seems to be a content management system, but the pages themselves are just pages - we create a new page, wallop some content in, set it to a template, and voila. Not really the way i'm used to, which is to pull the data for each page from a database. Then again, its using aspx, and I come from a PHP background - my aspx skills are generally beginner at the moment, but im a fast learner :). Keeping a positive note, its interesting to see Microsoft's side of the web development fence.

Getting to sleep last night seemed to be an absolute strike of luck. I honestly cant see how I managed to eventually get to sleep, but I started the day with 4 hours sleep. I didnt stay up all night, I just need to seriously adjust to a proper sleeping pattern.

First full time job - seems daunting in one sense. Spending 5 days a week on the same computer doing the same job for 8 hours - brings back my old "is this really how were meant to spend a life?" question. That has popped up a few times, and I have had (what I expected) a few second thoughts when I start to give in and pay attention to the negatives, but generally i'm bouncing back and looking at the positives. The money to me is NOT a positive - its a bonus. I cant look at a job and think "woohoo! money!". The job has to have some meaning to it. It's early days, and a culture shock, but here's hoping a good regular schedule will keep things on track.

Free gym, too!


OpenGL!

Diagmato, Development
Tue Jun 17, 2008 12:31 am
This category is rather...lonely. It has so far had rants when I was working on globetron, yet that was a couple years ago!

I have been dabbling in C++ for quite a bit - specifically with OpenGL. A friend got me into it, and helped with loads of teething problems. Ive gotten used to the language quite nicely now, but i'm certainly no John Carmack. Either way, i'm going to use this blog category to focus on creating a log of what ive done, when, etc.

As a primer, so far:

-Used win32 and OpenGL, plowed through some of Nehe's tutorials.
-Used SDL and OpenGL, created a basic map loader (without textures) for Quake 2, 3, and half life bsp files.
-Written functions to load in a .tga (datatype 2), and map the texture to a quad. Supports a number of textures, so each quad can have a different texture.

Not exactly the most amazing progress so far - well, pretty much not amazing at all especially if you are seasoned in OpenGL development. But yeah - its progress, its been fun, and it's been rewarding.

So now the next challenge - ill hopefully have a bsp loader that also loads textures, applies them correctly, and may even support half life's .map format as well. That is of course, after/as well as tidying up the actual project code.



Crash bang you're hired!

Diagmato, General
Wed May 28, 2008 3:25 pm
Despite such an eventful month, i'm even suprised I havent updated my blog in a good while. I'm not on about the usual "uni finally over!!!", "exams over!!!" etc (but those included ;)). Well, lets see here:

6th May - car crash. Yeeps - the Fiat Punto ive kept in close to immaculate condition ends up with extreme rear-end damage. The sods law of it is that if the rear quarter panel wasnt as damaged, the car would not have been a write-off - the dent is deep, but because it's a welded on part, its heck expensive to replace. The rear hatch door (tailgate) and bumper are extremely damaged, and are being replaced - spent Sunday up the scrap yard (K & L Dismantlers). We found the shell of a black Punto, same age, same model, so we grabbed the parts we needed. The bumper was the hard one to take, as the remains of the car had no wheels, so the bumper was inches off the ground. What made it worse was the awful weather - I was wearing a new pair of jeans, and on their first day, they got rather wet. Oddly, its a grey Punto, but now with a black rear bumper, and an Orange hatch, but obviously, theyre being re-sprayed. As long as the quarter panel is pulled back into shape, were laughing. The car wont be worth much if trying to sell it, but ah well. Thing is, itl still look immaculate, its engine is in excellent condition, its done 53,000 miles, the damage was simply cosmetic, its been checked over - just that darn quarter panel would have caused the car to be on the next truck to the crusher. I intend to drive that car until it cannot be driven anymore - its never let me down before, and so what if it has to be labelled as a write-off? I really cannot see me selling it on. Every engineer who has had a look at it (found someone who was willing to fix it for £450, as long as we got the replacement parts), said how the car is in excellent condition for its age. Virtually no rust at all (were talking less than 1% of the entire bodywork has any signs of rust), clean engine, no leaks, nothing damaged, nothing stopped working - it seems to be the one Punto in the batch that refuses to fail.

Its coming up to the start of the sandwich year - I had a job interview for South Wales Fire & Rescue - I cant actually thing of a bad thing to say about that day, other than bashing my head on the top of the rather low doorframe when leaving the room I was interviewed in. No harm done, and a lot gained.

The interview took place between me, the manager I would be working with, and the recruitment manager. Now, bare in mind in previous interviews, I have not handled it too well - my mind has a habit of going blank, and this was the case with the Sun Microsystems interview, but here, I could confidently answer the questions, and as it is a subject I am enthusiastic about, this carried through as well. So here's hoping for a year of real productivity, and a fantastic experience in an organisation so friendly, people say hello to you even just sat in reception as a visitor!

Oh, and here comes the obligatory uni is over, and so are the exams! For a year this time, not just a summer. I would also like to point out that, if I went to uni with no web development experience, I would have sat there clueless in the job interview. It goes to show that uni is not as it's cracked up to be, at least with Glamorgan, who define "software development" as drawing diagrams in UML, and not actually touching code AT ALL.


Books cover everything

Diagmato, General
Sun Apr 27, 2008 6:00 pm
A quick trip to town to get a new pair of smart trousers was quickly followed by a trip to a couple bookstores to see what computer-related books they had in stock. I was particularly looking for books on Actionscript - the RIAD assignment has got me rather curious about Flash, and Flex. what I saw was a huge array of books on different websites, such as:

-Facebook (must have been 4 different books on this, x10 copies of each)
-Creating a business on Ebay
-Becoming rich from Ebay
-Most popular websites

Along with masses of books for:

-Ubuntu Linux
-Fedora 6
-Suse 10 Enterprise
-Linux
-Linux for dummies
-* for dummies (as in, everything possible)
-Computers for Seniors
-freeBSD
-Windows XP
-Windows Vista (suprisingly only one book, one copy)
-The forgotten manual for Linux
-The forgotten manual for Photoshop

These are just a handful, but what made me 'pfft' was the extremes these books go to advertising themselves. "The forgotten manual for *" for example - it would take a serious dumbass to think that this was some book someone happened to find in the depths of Adobe, or a back office of Novell. "Photoshop cheats" was another - how exactly is it cheating to actually use Photoshop? What form of unknown method does this book teach that some industry expert, or someone with learning patience cant learn from just reading another book, or browsing online?

I'm not here to bash them though - well I am to some degree as I just did, but awell. Thing is, I like these types of books - just, ones which arent trying too hard to grab my attention on the bookshelf. I have a book called the "OpenGL Superbible" - straight to the point. It sounds more professional - rather than being called "The amazing secrets of OpenGL no one else knows!!!" or "The hidden manual for OpenGL" or "OpenGL Cheats". Its "bible" is somewhat fitting (not in a religious sense). It has so much information, its a good reference in the rear 1/3 of the book, and the tutorial sections are fairly good (damn good in places) and a nice read whilst answering a call of nature, or just a read before nodding off to sleep. Doing either of those with a laptop and a pdf is a bit...awkward.

The university decided to be incredibly generous this last week. They had a table with a sign saying "Help yourself!" Ontop was a pile of unwanted books - Cobol, Visual Basic, JSP, Networking, Structured programming, Pascal, and more. These books are heavily out of date mind - I cant see how the lecturers, in their job would need these anymore, but they have been a damn good read. Some of them I doubt ill read again, but some of the programming ones have HUGE details on creating your own binary trees, linked lists, etc. To me thats golddust, and heavily recommended if using C++. Its things like being able to implement such concepts that make a programmer stand out from the rest - the knowledge advantage they give you is at least likely to help provide a solution to a rather complex problem.


Regarding Flash - I cant say ive been dissapointed using it - I just wish there was a lot more time. Ive only just got round to implementing CellRenderers for DataGrids (I'm using ActionScript 2.0). Its not been too bad in all - Interacting with PHP isnt too bad - just, it took me days to work out why the heck it was rushing ahead before PHP had a chance to build the variables to send back to Flash. For days I ended up with a DataGrid that had sod all, except for selectable, blank rows. The solution was to setup the datagrid AFTER the dataProvider was fully loaded with the variables from PHP. ActionScript seems to be a bit 'moody' compared to other languages, but tame it, and you will NOT be dissapointed with the results. As a web developer primarily, i'm looking forward to having a sit down with this and really walloping out some great stuff (Actionscript 3 next time). It still feels strange to be adding classes as movie clips, etc. Flex though, seems a good, fit-for-purpose version. Flash is capable, but too much of it hints that its meant for managing movie playback, etc.


Assignment-wise, 2 days before this RIAD has to be in. This is proving to be a hectic last minute couple of days rush, thanks to spending DAYS working out why the heck the data from PHP just wont load into the DataGrid in time. Other than that, a java project using design patterns - Ive done alot of this assignment thankfully, and that has to be in friday. Really wishing I started the Flash much sooner though.


The next batch...

Diagmato, General
Tue Mar 11, 2008 3:43 pm
Oh, the joys of University life. I guess having the free time to get on with assignments is a good thing, but 5 of them? Nothing's new of course - this happened in college, and last year in uni, but wow:

-Write a bank account management system using ADO.NET in VB.NET
-Write a vending machine simulator in Java, then write it AGAIN using Factory Patterns
-Create a 10 minute video
-Find a website and convert it into a Rich Internet Application (Using Flash, PHP/MySQL)
-Create the Use-Case diagrams, and Class diagrams for a system (cant remember the details)

So, yeah, a busy couple of months ahead. It's not too bad though, just, I wish I could spend the time finishing this website. There's an endless list of ideas, but development has been rather non-existent for a while - not from a lack of interest, but I really would like to pass this year and get a degree. Essentially it's a case of managing priorities.


Regarding other projects - A friend and I are planning to make a Doom RTS - one already exists, but is unfinished and abandoned - its a shame - its a pretty nice little game even in it's current state. We wont be using his source code as he wrote it in GameMaker 5 - we will use C++. It will use an Isometric view similar to Red Alert 2, will feature multiplayer, and keep the characteristics of the actual Doom characters - remember, its DOOM RTS, and not Doom with Shadows of the Empire, or whatever, from Star Wars. Its DOOM RTS, not Doom with Duke 3D making an appearance, and it certainly is not Doom 3 converted to RTS - we're focussing on Doom 1 & 2.

So yeah, a busy outlook for the forseeable future.


Swansea University

Diagmato, General
Thu Sep 20, 2007 3:40 pm
Yesterday I took my cousin to Swansea Univerisity's open day. I was also curious to see what another university offered.

They seem to paint a brighter picture of the place than when you are actually there - pictures of the place look so clean and bright, but it was rather dull, out-dated, and generally VERY un-welcoming. It was a miserable wet day, but it seems, even the sun can't do this place any favours.

What I liked about Swansea University was that their Computer Science degree covers some MUCH more interesting and useful modules than Glamorgan, which seems as if the lecturers have diluted the modules in a hope that students will understand, say, programming in Java, more successfully than if we were doing C++. Thing is, Java doesnt seem near as useful in the industry compared to C++ which, personally, I havent found to be the utter nightmare the lecturers seem to make it out to be.

Starting from the beginning of the day - we arrived at Swansea's gates, only for a guard at the front gate to direct us 200 yards away to some muddy car park. We the walked back to the university in the rain - again, not their fault, and understandable that there is no way they can fit lecturers cars, and guests all into the on-campus parking. But they could have invested in sign posts at least.

Again with the signs - they seperated their toilets to having "toilets for guests". The gents was easy to find, but the ladies was not. So many people ended up using the disabled toilet as there were no signs to even hint where the female's toilets were. This signage problem was throughout - we did have a visitors guide telling us which rooms to go to - which almost ALL had been switched to other rooms. So really, the visitors guide was un-accurate and pretty much worthless.

After the first course intro, we decided to grab lunch - we found a couple signs saying where all the food places were and which ones were open to guests or closed to public. Okay, very welcoming - lets bung all the visitors into one cafe which only sells pasta and cheese. In the end we bought a few sandwiches from a tiny corner shop which you had to queue up for just to get into the bloody thing!

Most the university felt like a building site, with large yellow cranes, scaffolding, and whatnot. Other than that, there were a few nice, modern looking buildings, but others were considerably worn looking, and the inside was decorated like a hospital.

The lecturers sounded dull as dishwater as they gave their intro to each course - one suprisngly said he was "enthusiastic" despite sounding as if he pre-recorded the speech whilst up at 4am after a long day. Another lecturer went on for what felt like an hour, ending with "so, that was the course in a nutshell". This was such a long boring, dull speech that a number of people actually got up and left the room. This speech included reading what was on an overhead projector sheet which, you know, being in university, we can read...

I didnt see much of the university as a whole, but from what I did see (wherever we were directed to), left a lot to be desired. In comparison, Glamorgan feels like a far more happy place which is important for a work environment.


phpBB3 release candidate

Diagmato, Development
Wed May 23, 2007 7:38 pm
The release candidate for the new phpbb software has been released, and this prompted a rush to the site to download the software, and install on a test server.

Im amazed just how well it works! The forums were converted without errors, from phpbb2, even though it had a few homemade hacks for various site features.

As for the code - it sure is a darn site bigger than phpbb2, but far more thought about. It has features which ive been meaning to plonk into the site for years, but "never got around to it". Now its just a little adjusting here and there, and it can be used site-wise.

I'm already in the process of implementing it site-wise, ready for the final release itself. This really seems a lot easier to do than getting phpbb2 seamlessly part of the site.

Stay tuned!


Globetron - finished.

Diagmato, Development
Sun Oct 01, 2006 9:07 pm
The bugs have been splattered, and the theme finally done. It looks a bit too blue for my complete liking, and parts resemble lego blocks, but its not bad, I guess.

Now to sit here and wait for customers/get advertising and attract customers! And go through University, and work on black0ps...


First University work given - blog.

Diagmato, General
Thu Sep 28, 2006 7:22 pm
We have just been given a task from our Academic Tutor at the University, which is to create and manage a blog. Umm. Hmmz...

I suppose its not all bad, or bad at all. I do have a habit of documenting everything that goes on, and having one more blog targeted to another audience wouldnt be bad.

I probably rattled on too much, but its at the following link if you are interested in an extra read at all.

Uni Blog


Enrolment day at University

Diagmato, General
Tue Sep 26, 2006 7:46 pm
University has finally arrived! After being there again, and actually getting a timetable, now i'm finally excited to be there.

I'm doing Software Engineering - a specialist Computer Science degree, which, obviously specialises in software development and maintenence. It's a good looking subject, and very on-topic compared to what I put up with in College.

Speaking of College, it looks terribly TERRIBLY run down compared to University. The University is surrounded by lush views of the hill-sides, which makes a change from heavy city traffic and concrete jungles. The friendly atmosphere of all the existing students, particularly those working on the enrolment day to get new students settled in, was amazing. They raised a smile, they were polite, they were helpful, and in no ways rude. They were, almost entirely, female though, which isn't a bad thing.

Because of the time we were given the introduction, Gareth and I managed to beat the enrolment queues. This was lucky, because the others we went with were itnroduced half hour later, and ended up with at least a 4-hour wait for enrolment. There were two queues to go through - some initial check, followed by having your photo taken on the system, and printed onto an ID card.

Student life doesn't seem to be as bad as people make out - at least for University. The timetable is surprisingly minimal - most lessons are only half-hour long! I only have one lesson longer than half hour. We do get alot of long breaks though, which would be better spent doing the actual assignments.

All in all, I can easily see myself liking University, loads.


Globetron - sigh.

Diagmato, Development
Sun Sep 24, 2006 4:16 pm
If there is one thing I hate about programming, it's finding bugs which seemed to be overlooked, at the last minute. This one isnt a bug, its more, something I completely overlooked. So, thats another few hours of development required before release.

University starts soon, and I dont want to spend free time trying to get this, which was supposed to be released weeks ago, finished. Being a lone developer assigned to a project really gets dull quickly. Well, never again. Globetron is the last script I make solely, as for two, I dont have the free time to manage more than two sites, mainly the bug fixing.

The continuous editing of other files to make way for the new changes, especially the database ones (although not the most difficult, as the script will compain there and then), is the biggest downer right now. In this case, its editing email templates and getting the email function to replace the variables as needed. Not difficult, but again, monotonous. If this had been a team effort, it wouldnt be so bad, as some of the other teething problems could be solved at the same time.

Also the script is complaining about having two email functions on the same page. Darn. Shouldnt take long to fix though, I certainly, absolutely hope.


Just use gnome...

Diagmato, Computer Related
Thu Sep 21, 2006 9:15 pm
It wasn't too long ago when Linus Torvalds said to the open source world, "Just use KDE". During that time, I was a full time KDE user - I really didn't like Gnome. That quickly changed.

On my laptop, I was, as expected, using KDE. Annoyingly, the fans ended up blasting on full speed, and the system kept getting very warm. The fans ended up staying on full blast for the length of time that the laptop was powered on. Then I tried Gnome, and it was silent. Sometimes I ha to check to make sure the laptop was on - there was just no noise, finally!

One of the reasons people dis-like Gnome is because of its "dumbed down" approach. It hides most of the configuration options, giving the user only what they think is needed. KDE on the other hand, asks you for everything except your pets name. There is a rediculously high number of options, and many of these are in multiple places. You have the KDE control center, then the same options when you right click and configure desktop.

The thing is, Gnome does have many configuration options - they just aren't placed in large config panels left right and centre. It gets the job done, and it does it without taking up as many resources.

After using Gnome even for the shortest time, KDE looks cheap. You may argue that looks aren't everything - true, but for a start, we are dealing with a desktop environment, and if it feels poor, it won't please the user, and won't make them as happy to use their pc.


Globetron.net almost released

Diagmato, Development
Thu Sep 21, 2006 9:02 pm
This project has taken well over the expected time to create, and I have vowed never to start a new PHP project unless it's with a team of people. It does get fairly lonesome doing an entire piece of scripting by yourself. Would certainly help if someone else was here to do some of the monotonous functions.

Anyhow, I have just uploaded it all to the server, and guess what. Those darn emails dont seem to be working again, and sessions is tripping over itself when setting cookies. Note that this problem didn't occur on the development servers, else I would never have uploaded it...

It really takes the cake when one server acts different than the other - I dont have the settings which the live server has, but I cannot see why the setcookie problem is happening on the live server, and on neither of the development servers.

I'll get to the bottom of it hopefully. Tomorrow, really hopefully. At least, before University starts next month.


Thoughts on the world

Diagmato, General
Wed Aug 09, 2006 1:15 am
First off, it has been a while since I last posted an entry here, but im sure no one came here to read the obvious. I havent had as much interest in online activities since visiting Virginia, and as such, this site has gathered a little dust around the edges.

Well anyway, I didnt start writing this to talk about dust, I came here to reflect on things - particularly humans in general.

It is nature for animals, including humans, to conflict with one another. We see it all the time with animals, and despite everyone's attempts to hide it, this happens with each other aswell.

Is someone strangling another human a sign of this? Obviously, but this is not where it starts. The only difference in this case between humans and animals is that humans, in most cases, wont lash out their anger on the person they have a problem with. This is how most of us have been brought up to do, and because sitting in a brick room with a less than pleasant room-mate for a great deal of days just to have random strangers define what happens to you in front of a severely over-paid wig-bearing hammer-weilding judge isnt exactly anyone's cup of tea. Yet, this control does not control people - we still can do battle with someone in a different way.

Thinking about it, no one can be responsible for their feelings - if you dont agree with that, then last time you were angry, could you just switch that off? When someone did something bad to you which you did not deserve, did you forgive them and (continue to) trust them right away? Did you worry in anyway that things would spark up again, or the situation would repeat? If yes, then you are a better man/woman than most of the planet, but if no, then dont think there is something wrong with you, as the same applies to pretty much the entire human race.

I have decided to take an observers seat in life, in which I look at why people react how they do, and not base an opinion on them for it - there is always a reason behind why Joe Schmoe is so angry that he hit his friend. People's first reaction would be to blame him for his actions, but think about this - if he hadnt of felt anger, would he have lashed out like that?

Both sides of the gender are in a constant battle with their 'team mates' - girls speak about 'girl power', but in reality, go to a party, and girls are in a big effort to be better looking than their friends, or others in the room. This can get pretty nasty in alot of circumstances - maybe not including violence - this can be limited only to one of the girls there, going home thinking that she isnt worth anything, or that her attempts at being attractive were all for nothing.

You can tell a girl time and time that looks arent everything, and if you havent been punched by her, who took it as 'youre ugly, but other than that you do have qualities', then most the time they will not bare this in mind, even from the most genuine of guys. The moment her 'enemy' comes in 'looking good', then shes off believing that she needs to look better to get anywhere.

I am not blaming girls for anything, and I am aware that there are girls who couldnt care less about how they look, and as a result, they are now happily in a relationship with one of the most caring, genuine guys you could meet. Other than that, as maturity kicks in, sense starts to show, and it is no longer a despirate battle for the most exciting guy from the party, but a time to focus on getting youre life sorted.

Guys are just as bad, or in alot of cases even worse, but in a different way. Rather than trying to look better than the idiot next to him, it is instead a battle to get the best looking girl as a status symbol, to prove to his mates that he is more sought after by the best looking girls which somehow translates to 'the best girls'. Alot of guys in this position, however, dont believe what they are doing - that they arent going to be serious with the one they happen to meet at the party.


...Rather than rattling on for hours about something which doesnt take a genius, or even me to work out, time to get somewhere with this. Humans are animals, and we are not unlike them at all. The difference is, we sit and suffer through bad feelings, or rant them off to others in at least an attempt to get them on side with you, rather than get things sorted with that person who's doing something out of order. In a natures way of things, emotions were meant to cause us to act on something to stop the situation.

Basically, think about the other person and why they are doing what they are, as in most cases, its because of a feeling that they didnt have a choice about feeling.


meh

Lalizig, Stuff
Mon Jun 05, 2006 7:24 pm
it's been a slow day, finally got out of bed to find raccons got into the trash.... was messy

got back in bed and slept for another hour, didnt change, played KH2 for about 5 minutes, finally got final form, and went downstairs for a breakfast of tortilla chips and leftover guacomole. oh, and about 4 sweet potatoes with butter, brown sugar, cinnimon, and nutmeg. too good to believe.


Freedom!

Diagmato, General
Sat Jun 03, 2006 10:53 pm
College has not yet finished (give it two more weeks) but I have released V5 of the site.

This is a big weight off my shoulders, enough to completely tackle the final two weeks of college, without much other worries. I've been looking at PHP for such a long time now, i'm surprised i'm not speaking it instead of english.

Now I can officially relax! After the college work, then packing for summer, then setting myself up on another pc for the next three months. Then it's back to coding, amongst making the most of summer. Cycling will be cool.


Bzzzzt OW!

Diagmato, General
Tue May 30, 2006 11:12 am
The title of this entry does not refer to some Michael Jackson phrase, but more like the sound of a tiny drill poking a nerve in my teeth.

Today, I went to the dentist for a filling. Ive never had something like this done before, but I was by no means nervous. If there is pain, I tense my fists, think of the strain going into my fists, and ignore the other pain. Seems to work each time.

I arrived, lay down on the dentist chair, and they started some initial check. "all's well" I heard. It makes a change when a dentist doesn't criticise your ability to clean your own teeth. So, next they informed me about the injection. Previously, I have heard people say how painful this is. What a load of tosh. It just felt a little awkward for a few seconds, until the entire half of my mouth was knocked out.

Whilst waiting for the anasthetic to completely kick in, they began drilling on the back of my two lower front teeth. Nothing major needed doing - just, I had missed a bit whilst brushing. This is where the title of this entry comes in. The drill was used right down the bottom of the tooth, just above the gum. After roughly half a minute of digging for gold, YOUCH! Suddenly, the nerves in my face decided to make themselves known. This was such a strong amount of pain that my jaw automatically closed, causing the drill to go into the weak flesh underneath my tounge. Ow, again. Although that pain was tiny compared to what just happened. After an apology from the dentist, I was told the gum would somehow cover that area of the tooth. It must have done. Drinking a cold glass of milk doesnt seem to cause any trouble.

Well, the filling went ok. I didn't have the car in which to drive home, as dad was using it. So, I power-walked home. This is just short of two miles, and I did not have breakfast. I expected to become weak and tired by the time I reached the top of Heol Hir (Its a street name in Llanishen) - translated, its "Long Road", Heol meaning road). However, I managed to get all the way home, a tiny bit breathless, but not bad for a programmer ;).


Suse 10.1 XGL / VBA

Diagmato, General
Sat May 20, 2006 5:22 pm

VBA



Last Thursday (its Saturday now) I learnt more about VBA than I ever did with any language, in the time given. In the afternoon, I was sat there thinking "where do I start?". By night time, I had pretty much finished the second Applications Software Development assignment, which asks for a bunch of userforms for adding faults, adding staff and technicians, searching for faults, etc. I have to hand it to Microsoft, that is one seriously easy to learn language. Seeing more result than error at such an early stage of using the language was quite impressive. It has encouraged me to get to grips with RealBasic, which is similar to Visual Basic, but cross-platform.

Suse 10.1 XGL



Yesterday, I went through the time consuming process of:

-Backing the /home directory and documents directory to the external drive
-Telling Suse 10.1's installer to format the second disc with ext3, rather than FAT32 (I have Windows able to read and write to this now)
-Copying the backed up files back to the system, but carefully (individually, rather than one big cp -r command)

Now, there was no real need to do this, as /home was on a seperate partition. I could have told Suse 10.1 to only mount the existing /home partition, rather than format it. But im overly cautious. Suse 10.0 was beginning to keel over, so I didn't want to take any chance what-so-ever.

The end result was the most impressive and usable desktop ive ever seen. Windows just cannot compare with Mac or Linux (KDE/Gnome with XGL)'s desktop. The fun features and intuitive usability make it so rewarding to use. In particular, the cascading windows:



sleep

Lalizig, Stuff
Tue May 02, 2006 3:54 pm
tired... need sleep.... must study for exams.... gah!


Test

Xproterg, Funnyman
Sun Apr 23, 2006 6:04 pm
Test


Where's James?

Diagmato, General
Thu Apr 20, 2006 9:33 pm
Im here again, after quite an eventful week. Been offered a job i'll fully enjoy, and it feels like i've come back from a small holiday, and i've also worked out that this computer is the source of all my problems. Well, a category of them.

Since as far back as I can remember, i've non-stop worked - either it is college assignments, or coding new bits for the site, or adventuring into other programming languages. It has just gotten far too monotonos. There was a time where I associated computers with entertainment, but recently (as in, the pre-seeable past) i've looked upon it as work-related.

College is the biggest downer of all. Honestly, if you ever hear anyone mention "National Diploma IT", I urge you to use whatever means necassary to change their mind, unless you absolutely hate them. College somehow translates "programming" into making a powerful database system out of Excel, recording macro's to copy and paste data from the "form" (just a grid bordered up on "worksheet 1"), followed by listening to the tutor kiss Microsoft's ass, repeatedly, every lesson. I feel sorry for the caretaker, having to mop up my vomit everytime the tutor does a round of that...

College also feels like a complete, utter, waste of time. Take Web Management for example. Now were onto looking at LAMP (Linux, Apache, Mysql, PHP/Perl) servers. Now, I use Linux everyday. I use Apache, Mysql, and PHP every day. Ive set up LAMP servers from scratch, on many a distro. To have to sit there in silence, for 1 1/2 hours, as the tutor explains the most basic, and sometimes stupid information about the topic, is just un-bearable. I know there are people in the class who still havent yet realised there's another operating system than Windows, but the tutors insist that I absolutely must be there every lesson, or I will miss out on some important information. Its no different than teaching a football player to kick, an athelete to run, or a swimmer to brave completely going under water.

Its because of college that i've been completely put off from computers. My interests lay in programming with proper languages, and not recording macro's in a proprietary, locked down application.

I just have to mention how terrible Nortons Anti-virus is. We updated it and did a full system scan on my aunt's PC. It reported everything as fine. I installed AntiVir, and it found 12 viruses - 6 of them being "dialer.exe's", and others being trojan horses. Dont you just HATE it when you try to convince something to someone, with full proof, just to have them pull an "I know better, read their site, they say theyre awesome so it must be true" attitude. No, that was not my aunt that did that - Nortons is now removed and binned. Its just worrying that someone else is parting with £50 every year for an application that just DOES NOT WORK, then accusing me everytime he gets a virus.


Medication - who'd have it, eh?

Diagmato, General
Tue Apr 04, 2006 2:16 pm
This entry is going to make me sound dependant on drugs - just to be warned. Just bare in mind I only take medication if I absolutely need it.

I have been having side effects from my medication, which causes very strong Insomnia. Most nights ive been laying there, until mostly 6AM trying to get to sleep. Then, I end up with 3 hours sleep before needing to drive off to college. Very stupid idea, unless I wanted to cause a car crash. so, I end up automatically stopping the awful sound of the alarm clock, and falling back to sleep faster than a computer geek whilst in an opera house. Next thing I know, its mid-day.

The IVA is finally over, so I decided to make extra effort to get to lessons. I haven't been to Computer Hardware for over a month now, due to its unfortunate timetable position of 10:30AM. I know it could be worse (9AM for example) but Im just not going to get behind the wheel of a car, with 3 hours sleep behind me.

The herbal sleeping tablets aren't working. Well, they probably are, but the Insomnia is so strong that they're just inferior. So, in an emergency situation of actually trying to have the ability to get up in the morning, I tried stronger, Knock-out tablets. Oh they worked! Rather too well. It was impossible to get up until 1PM, and even then I was almost collapsing my way downstairs.

A coffee or five later, here I am typing this blog entry, downloading CentOS 4.3, and about to write development documentation for other developers of this site (namely Shaun). Would make a big difference having two developers tackling the 64ft TODO list, which seems to grow faster than Jacks beanstalk.

College wise, I was looking forward to at least a week of rest from assignments, seeing as the IVA is done and dusted. Instead we were handed two assignments at once from one subject, there's another being handed out today (which I hope will get emailed, as I missed the lesson) from End-User support, there's still one to be finished for Applications Software Development, there's one yet to be handed out to me for Computer Hardware, there's still two previous ones to be handed back in for Computer Hardware (albeit completed), I was handed back the Web Management assignment to correct a rather daft error, and ive pretty much given up completely on Application of Number. It's not a needed subject to pass with (which makes a change) and its not normal circumstances - there is just no way I can fit in such a large maths-based project in with another 15 or so assignments. Its just not going to work.

Easter Holiday to the college means "Easter stress-filled homework fortnight". I'd love to see the day where "holiday" actually means "holiday". Student life is a pain - always pennyless, cars cost more than they EVER will to maintain, and free time - what's that? Either time is taken up doing college work, or a part time job (which I don't even have) or it's time actually in college.


Motivation!

Diagmato, General
Fri Mar 24, 2006 7:43 pm
Recently, ive generally been very unmotivated to do anything, especially college related. Sods law, end of next week, the IVA has to be handed in. Ouch.

This has pretty much been fixed now though. All I needed was a good nights sleep. To get that, all I needed was a few herbal sleeping tablets. To get that, all I needed was £5. To get that, all I needed was to reach into my wallet.

The tablets didn't actually make me feel tired - im not sure what they did - judging by the ingredients, I cant see how they would help. Just dont make the mistake of crunching these tablets - my mouth was under attack by the most disgraceful taste ive ever known. Imagine eating the rotting wood from a tree, after its just been raining in Autumn. Then imagine feeling like your stomach has been lined with tree bark. Did I mention how bad the taste was?! Yeah, it was bad. Just dont get curious and try it for yourself, like people seem to do when you tell them not to do something.

In case curiosity does get the better of you, the tablets are called "Nytol herbal". Seriously, you will hate your taste buds, and your sense of smell if your teeth happen to force their way towards each other, whilst the tablet happens to be in the way.

Im still in the middle of porting the new version of the site - the theme will really be something worth looking at, whilst remaining somewhat simple. Unfortunately, the IVA has to come first though, and its quite a job replacing the code for every page with that of the new code. It feels so much better to use than this rather dated approach.

Finally, gap years! These last two years of college have been packed with assignment after assignment - I need a big break - one to completely recover, meet new people, make up my mind about life, finish this site, go cycling more, line my pockets with cash, and enjoy myself. Then ill be refreshed ready for university (albiet, a year later than first expected, but no problem!).


errr.....

Lalizig, Stuff
Tue Mar 07, 2006 1:15 pm
What? News?!?! NEVER!


Today

Lalizig, Stuff
Mon Mar 06, 2006 4:07 pm
Today started spring break for me. I logged onto Black0ps and looked around at the new shinyness of the forum. Cool. Kudos to James.


National Diploma IT Practitioners

Diagmato, General
Tue Feb 28, 2006 2:25 pm
This may be different for other colleges, but for where I am, this course just doesn't make sense.

Its the second year. In this year, we get a choice of three paths - business, networking, or programming. I chose programming.

For programming, the subjects we have to take really dont fit in. Two of them especially:

End-user Support

Here we learn about supporting end users. Okay, its not too bad I guess - a programmer needs to be able to support end-users of his/her software, but were not exactly doing anything like that - instead were looking at how businesses such as NTL support users.

Systems Justification

This aims at finding a solution to a problem. No, not a software replacement or so, but finding a computer package and various bits of software which the end-user needs. Things which a programmer really doesn't need to study for.

Perhaps if those were the only choices the college could have picked from the specialist units, then fair enough. But other options were Operating Systems, and E-commerce. Wouldnt you have thought those would suit a programmer more?

Next issue is about the way things are marked. not so much the normal assignments, but the key skills work. The key skills assignments have to be just perfect, all the way down to grammar, spelling, and so on. Then, it needs a tracking sheet, which needs to be filled in perfect. This all takes absolute masses of time. Then theres the worst part. Only a few of the students key skills work gets marked, and everyone in the class passes or fails that key skills module based on the work of one or two students. So, there's some of us putting in every effort for the marks, then the key skills examiners pick people in the class who could'nt really care less about key skills, and suddenly, those who put the effort in are treated like idiots.

People should be graded on their ability, and not their luck. Were marked as if everyone in the class is the same, when its absolutely NOT the case. Humans are all different from each other - were not like a pc where, once installed, it runs in the same way as each other.


Lonely Operating System

Diagmato, General
Thu Feb 23, 2006 3:30 pm
Here comes another moment where im stuck deciding whether to stick with Linux, or go with Windows.

This hasnt been sparked by something not working in Linux - everything is working perfect. Instead, whenever I look at Windows, I get a feeling that life is more simple there. In reality, it isnt. I guess its to do with having been on Windows more than ive been on Linux, in total. That and, the main people I know, use Windows.

This also follows from yesterday, at the university. Seeing Windows on the big screen, and seeing what we will be doing.

I guess I can always dual boot, but then im left feeling torn between both operating systems. Windows does look more proffessional, I give it that, but im in no mood to even start transferring email clients back to Windows.

Having Windows on one PC and Linux on the other would be a good bet, but then id still use one PC far more than the other. Darn!

Maybe a laptop will solve all this - having one just for gaming or so. I dont frequently update hardware, and desktop machines take up alot of desk space, compared to a flat little laptop. however, knowing me, id end up putting Linux on the laptop aswell, as a dual boot "just incase". Then, im right back where I started.

Not being able to play games is a slight downer. Rebooting the pc just to play a game for half hour really wastes time - especially when theres things here and there running.


The sun after the storm..

Diagmato, General
Wed Feb 22, 2006 7:24 pm
Well, life is starting to look up again, or at least it feels like it. Should be able to finally jump back onto the wagon called "life", and ride it all the way.

Job wise, who knows. A friend in college is sounding hopeful about a part time job in a cinema, which would be good. Apaprently its severly boring most the time, but its money. Something I need right now.

The Punto is going great! Very fast little car. Comparing it to another R reg car in the family - the other car is like a mature cat - lazing around, cant be bothered doing much. The Punto is like a kitten - full of energy, and raring to go. Its as if its been sitting bored on the driveway, and just wants to run as fast as possible - so much "stored up" energy.


Message Board

Lalizig, Acquire The Fire
Wed Feb 22, 2006 1:01 am
Well, decided to join the Battle Cry Message board, and it turns out I was only one of the several hundred that joined the following week of the Norfolk AtF. Already I have helped several people needing prayer, and have been able to contribute to several discussions involving our generation. The whole point is to spread the message to our generation, and this board is a great way for me to give and recieve ideas, share recent victioies, and ask for prayer. It's pretty great, considering no one is bitter and everyone is striving for the same goal.


Norfolk Convention

Lalizig, Acquire The Fire
Mon Feb 13, 2006 1:54 pm
Got back from the Acquire the Fire convention yesterday. Completely awesome... there were people in the aisles starving for some of God's love. There were people on the ground on their knees, crying out to God to forgive them. The praise and worship was absolutely amazing - so many teens gathered in one building, desperate for God. The holy spirit touched me in a way that I'll never be the same again. at one point i started laughing for joy uncontrollably. the atmosphere was so full of the spirit.... you just step in the room and wow. it was one of the most amazing things i've ever been to. it showed me that there really is nothing more important than the Great Commision.


Lightning Talks

Diagmato, General
Wed Feb 08, 2006 12:00 am
dont take the title so literally - im not talking about a group discussing lightning. Think lightning fast presentations in front of an audience, all sitting waiting to give their talk.

Each talk cannot last longer than 5 minutes. Its a bit of a shame though - not much can be said in 5 minutes, and time really seems to fly by. It does raise an eyebrow of curiosity though - probably whilst ive typed this, a few of the audience have googled for various topics.

So, who turned up? Quite a crowd. Alan Cox - a master kernel hacker, who has been interviewed by Linux Format magazine. Briefly said hello, which soon turned into a question about the kernel. Probably an overly common question, too.

Ever heard of imdb.com? Go look at it - you probably have been on the site sometime in the past. It is the Internet Movie Database. One of the guys responsible for it was at the lightning talks, giving a talk about the site over the years. 15 million unique hits a month - wow. Just, wow.

Tesla gave a talk on editing wikipedia. She does alot of this - learnt a few things about wikipedia, and was rather interesting to watch. However, im unlikely to edit wikipedia, so it hardly applied to me :(.

Neil did a talk on optimisation for google. There\'s alot more that could have been said if there was more time, but 5 minutes is really short for such a topic. Would have liked to have seen more of that one.


Well, now ive been asked to do a talk on setting up a media centre on Linux. How am I going to cram all that into 5 minutes? Theres compiling the correct kernel modules, installing the player, setting up recording schedules - thats just for getting the TV section to work. Maybe they shouldnt be lighting talks - more like snail talks. Although then comes the problem of whether 15 or more people will give a talk - would take all day!

After the talk we all walked down to Earnest Willows Bar. Spent it talking about setting up a network, burning CD's etc, to Brent. Im really getting the urge to make a setup program for a complicated task - perhaps an all-out configuration of apache, mysql, and php, when compiled from scratch? Maybe.


Just one of those days...

Diagmato, General
Mon Feb 06, 2006 10:49 pm
Ever had a day where you just cant be bothered doing anything? Today it happened to me.

I usually have a screenful of Java or php scripts. More like, a virtual desktop full of them. It really makes organising the screen far easier.

Today was a different story - the screen was instead full of msn conversation windows, and forums. In a rather down mood, its nice to see how things are going in other peoples lives. Its nice to hear peoples opinions on various topics, even if im not going to participate in the discussion.

Usually the success of creating something "new" is enough to cheer me up, but I just couldnt work up the mood to program something. There are numerous tasks I need to do, but there was the decision of which task to get on with. If I did one task, then im not working on another task, and that seemed to stop me doing anything productive.

Well, as I type this, and rant out the problem, its slowly easing me into getting things done.

I did not go to college today, but I didnt really miss anything. There's an assignment to be handed in tomorrow, and ive only done one of the tasks. There's no way ill get it done in time, and no way ill even be able to attempt it in this mood. My personal tutor understands that - just hoping the class tutor does.

Ive been rather ill again today, but thats pretty much cleared up again.

Tomorrow, SWLUG is holding lightening talks. Will be my first visit to one, and im looking forward to it! Then its on to the local bar for a social meet up again.


Car valeting

Diagmato, General
Wed Feb 01, 2006 9:04 pm
The third blog entry in a row - really got to calm down with this.

Today, we decided to wash the cars. The two Escorts, so they can be taken away in some form of decency (neither of them work, they just sit on the drive making us look like a bankrupt car showroom). Also my car, and the Citroen. Big mistake.

Well, cleaning them was no mistake - the Citroen really needed a clean. The Punto didnt. The mistake was doing it in the absolute freezing cold. Steam was coming off the spounges due to the warmth of the water. However the water seemed to cool down overly fast - especially on the surface of the vehicle. Wiping down a car with freezing water, in freezing weather for HOURS - my fingers went blue. Then came the really worst bit...

I decided to try warming my hands back by keeping them in a basin full of rather hot water. At first it was very soothing - until my fingernails complained. The pain was enormous! It felt like someone set my nails on fire, but the rest of my hand was a normal temperature. It lasted for 10 minutes at least. Not even stepping out into the cold would seem to stop the intense pain. Touching something would only make it worse, so I sat there in wraithing pain unable to actually do anything.

We finished washing the already clean Punto in time to drive to town and pick up a friend. In return, he burnt me a new cd for the car. Finally, more variety!


Feeling great!

Diagmato, General
Tue Jan 31, 2006 4:41 pm
Today I was completely independant - no worrying over bus times, or walking into the next district to catch a bus. The car lets me get up an hour later than usual, rather than walk into college like a zombie, being unable to concerntrate.

So, its Tuesday.The busiest day in college, with no real breaks - just straight through lessons. Adding to that, I have been away from college since christmas (a month now). I was expecting to come home after first lesson or so, but I had no trouble!

Actually I lie - I did have trouble. I woke up far earlier than needed, and really couldnt wait to drive the car. Hours seemed to take forever, but when I jumped in the car - yay! I love driving, and it put me in a good enough mood to take on the day.

Makes a change from sitting in bed ill all day, with chaotic thoughts keeping me down.

Less than a week ago I was excited about getting a Seat Ibiza. The Punto seemed like a "second choice", but im really glad to have it. Ive adjusted to it perfectly, and its a seriously fun drive!

Well, blogging seems to be somewhat addictive at the moment. It gives me something to read over on a rainy day, and see how things came to be. Im not writing in the hope that someone else will read, because who wants to read about my life? ;)


Back to college, sort of

Diagmato, General
Mon Jan 30, 2006 4:41 pm
Decided to give college a go - driving in rather than fussing with busses was a big enough step to get me going. Avoided first lesson, as I didn't want to be half asleep throughout the day.

So, we got in the car, stopped at my aunts to drop off a birthday card, but lost track of time. We had 5 minutes to speed towards college in time. Surprisingly, we made it.

Was a while since I previously went in to college, but it felt as if I hadn't been there for years.

The second lesson of the day started, which was Web Management. I wish I hadn't turned up. We did nothing but have a look at a paragraph of "why you should make your site accessible". The lesson after wasn't needed either - you could use that time to get on with work, or just go home. I stayed, to try and get to speed with assignments. We have a comms tech assignment which is just seven questions. Distinctions rest on it too, but it is nicer than having one large assignment slapped at you with just a couple weeks to get it done (amongst 4 others).

If you have read this far, then sorry I cant make this more interesting to read. Feeling rather down at the moment, with almost nothing on my mind. Tomorrow is a hectic day - three lessons, one and a half hours long, with no breaks. These are the "strange" lessons aswell, which are once per week, so missing them is a big deal. Could hardly get on with one lesson today, and that was with alot of resting. Tomorrow will be...complicated.


Ibiza vs Fiesta vs Clio

Diagmato, General
Wed Jan 18, 2006 6:02 pm
Yesterday, I went out to test drive new cars. I tried a Ford Fiesta 1.4 zetec (the newest model), a Renault Clio Campus 1.2, and a Seat Ibiza (Award model, I assume) 1.2.

Fiesta

The Fiesta was seriously comfortable - the driver and passanger seat were height adjustable, and so was the steering wheel. This allowed me to get the perfect driving position, which really couldn't be flawed.

The clutch was easy to get used to - did not stall the car once. No over-revving with the accelerator either. Brakes were not the sharpest, which made it easy to get used to.

The suspension was tough, so bumps in the road were easily felt, however its 1.2 finesse version has softer suspension.

Steering was harder than perhaps all over cars despite being power steering. could be better, but still easy to control.

As far as it looks, its like a slightly smaller Ford Focus, which is more of a fmaily car. This shouldn't be the case - the supermini's should remain supermini's!


Clio

The Clio is a more classy looking car. Seems alot more suited to young drivers than a Fiesta.

The clutch was a little strange to get used to, but was accomplish-able. It seemed to change how strong it pushes back against your foot, but ive driven worse, in the car I used to pass my driving test (which was also a Clio).

The seating position was not good. My head was less than an inch away from the roof, and if I lean forward, I would touch the fold down with my forehead. Seats were not height adjustable. Also seemed to slope to the left, even on flat roads. Would have given me a terrible back ache after a short while.

Seemed alot more willing to go than the Fiesta, despite being a 1.2.

Steering was excellent. Can't fault it. Nice size steering wheel, if points can be scored on that? No? awell.

Main gripe I had was with the clutch - pushing it all the way down, my foot would get caught on something above the pedal surface. Avoidable, if I use the very top of my foot, however.


Ibiza

As far as looks go, this car wins already. You see many MANY Corsa's, Fiesta's, Clio's, Micra's and Punto's. However, Ibiza's are in rather short supply. They are not mass-produced - only 6,000 are made per year.

They look very unique - an angry look to the front of the car. For a supermini, its rather large and spacious. Looks good in most colours. Black really makes it look classy.

The seating was perfect. I cannot remember if it was height adjustable, but the comfort was better than any car I had previously sat in. The driving position seemed perfect. If not, the steering wheel is height and distance adjustable.

I tested this car during the dark hours. turning the key, and switching the lights on - the inside of the car was incredable! A red glow from all controls and digital displays. Really made the car feel alot more expensive than it is, and was a fantastic surprise.

Steering is definately something to boast. It is sharper during slow speeds, and less powerful during high speeds. This is automatically adjusted by the car. I did not know about this until afterwards, but the steering really was comfortable.

Very good head room and leg space. The car really felt large. Unsure about space in the back, but no complaints from the rear passenger.

The only gripe, AT ALL, which I had with this car was the overly busy roundabout coming off the link road near the showroom. But that is hardly the fault of the car.



Overall, the Ibiza really stands out. Compared to all other supermini's, it looks very unique, is very spacious, and has a surprisingly low insurance group (group 2). It has a volswagen engine, which could hardly be more reliable. Look at reviews on parkers guide, and whatcar. almost everyone said they would buy the car again. Almost everyone rated the car very highly. Almost everyone did not complain about break downs.

Really looking forward to being the proud owner of a Seat Ibiza!


Car hunting - in person

Diagmato, General
Sun Jan 15, 2006 6:08 pm
Before when we looked for cars, we did it online. But today, we actually went out to look for cars.

They were a bit more expensive than we hoped, but found one that stands out in every way. Power steering, electric windows, central locking, 1.25 zetec and a CD player. good little car - made in 2001. Ford Fiesta 2 door, silver.

finally ill be able to actually get to places without walking 1 1/2 miles to the bus stop. The freedom would be amazing! Then its onto tackling the second problem - a job. But having transport would open up far more options than just looking around town.

We will see how things go tomorrow in a test drive. Yet again off college due to ill health - sometimes I wonder whether ill ever get better.

I seriously want that car!


Summer rules!

Diagmato, General
Sat Jan 14, 2006 4:17 pm
Its been a hectic week - been off ill almost all the time but things are finally getting better. Should be in college full time again, starting Monday.

Im really looking forward to the summer. Not sure how much I can say yet, but 2 weeks of Florida are ALSO in the planning. Cant wait to ride Montu in Busch Gardens again - that was one quality roller coaster!

Just got 5 months left of college. Ive been accepted in all my choices for university. Will be needing a car to get back and forth - should not be a problem though.

Looking forward to seeing the back of Winter - dark nights really gets depressing.


Computer Blues

Diagmato, General
Sat Jan 07, 2006 12:57 pm
Finally, the new external hard drive caddy arrived - its a sata connection, which makes it vastly fast compared to the old USB case. Its just like writing to an internal hard drive - almost no difference to the speed.

The case connects to the motherboard through a small hole on one of the expansion slot covers. Its just a wire, plugged into the motherboard, like a normal internal sata drive. Unsure whether I can just turn on the external case half way through using the pc though.

Anyway, I decided to put Windows and Linux on. I have one hard drive for both operating system files, and a second hard drive entirely for documents. This drive is shared between both os'es.

Windows is being a real pain with the LAN card. Its always saying "A network cable is unplugged", despite the wire sitting nicely in the socket. The drivers are installed as normal. Yet it just wont work. However, Linux works perfectly with the card. The LAN card is a Marvell Yukon Gigabit LAN card built into the motherboard (Asus A8V Deluxe AI Series).

Well, i'll get it working eventually. The worst case scenario would be squeezing a network card into a pci slot, which there's now a short supply of.


Yah my first blog post

Shaun, w00t
Sat Jan 07, 2006 12:26 pm
This is pretty cool, i'd like to thank James for the hard work he has put in to get this thing done and online.


Moderators

Diagmato, Testing
Fri Jan 06, 2006 1:29 pm
This is an entry visible only to moderators and special projects leader.


Notables

Diagmato, Testing
Fri Jan 06, 2006 1:29 pm
This is an entry visible only to notables and above


Members

Diagmato, Testing
Fri Jan 06, 2006 1:28 pm
This is an entry visible only to members and above


Registered

Diagmato, Testing
Fri Jan 06, 2006 1:28 pm
This is an entry visible only to those who have registered.


Public

Diagmato, Testing
Fri Jan 06, 2006 1:27 pm
This is an entry viewable to everyone.


Mystery Section Release!

Diagmato, General
Thu Jan 05, 2006 11:01 pm
At long last! This section is released. Took alot of work but it was worth it. Didnt get the final three features done though, due to ill health mainly. Never mind, this is one big weight off my shoulders.

As I type this, im about to announce to the black0ps members about this section. ThorRunes seen it before its release, due to help needed on a problem that seems unsolvable. Mod_rewrite doesnt seem to like urls at the moment, but it should be sorted before long.

At least now if my hard drive fails, i wont lose serious weeks worth of work!


cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by Vjacheslav Trushkin for Free Forums/DivisionCore.