The online racing simulator
Searching in All forums
(993 results)
amp88
S2 licensed
Quote from S3ANPukekoh3 :this

<4498 x 2840 px image>

Could you please edit your post to remove the very large image? If you have to use an image, please use a smaller one.
amp88
S2 licensed
Quote from bbman :I wouldn't read too much into it... First, the mic wasn't quite up to the task (evidenced by the regular audio clipping) and second, first hand experience taught me what you hear in a video/broadcast doesn't correlate to the real thing at all...

In comparison to the other cars in the clip it sounded significantly quieter, plus I'm (very) unlikely to hear them in the real world, so video/broadcast is all I really have to go on. I'm not saying it sounds terrible or anything, just that first impressions aren't that great. The first outing of the AMG cars last year sounded a lot better, IMO, for example.
amp88
S2 licensed
Quote from FireMike15 :

Like a bawz.

In case anyone wants to know, this is the source (Cameron Waters @ Bathurst).
amp88
S2 licensed
The Sights and Sounds of the V8 Test Day. The Volvo/Polestar sounds a bit underwhelming and quieter than the rest of the field.
amp88
S2 licensed
Quote from tristancliffe :Top Gear has been like this since 2002. It's not meant to be informative or serious. It's meant to be people messing about in cars.

Not true - the first series of 'new' Top Gear (at least) did show some attempt at being informative. Literally (yes, I do mean literally) the first segment on the first episode of 'new' Top Gear featured Clarkson driving a Citroen Berlingo Multispace on a 'proper' road test on real roads and gave what appeared to be a reasonably informative review. There are lots of other examples I could use from the first series of 'new' Top Gear where they appeared to be attempting to be informative (such as a segment on running cars on used vegetable oil, shopping around dealerships looking for better prices on new cars when they were trying to get rid of stock before new models and a 'proper' road test of a Mazda 6 on real roads). All of these were in the first episode. The change in the format and content of 'new' Top Gear happened over time.

The increase in the non-PC, lazy and idiotic 'comedy' also came over time.

edit: Incidentally, a few PC-related clips:

Note: The first 2 clips contain several clearly racist terms and 'swear words', used to demonstrate a point. If you don't want to hear 'the N word' or 'the C word' don't open these links.

Stewart Lee on Political Correctness
Stewart Lee - Political Correc ... (41st Best Stand Up Show)
Stewart Lee's Comedy Vehicle: Political Correctness gone mad

Nobody banned Christmas!
Last edited by amp88, .
amp88
S2 licensed
I also had problems with the H60 line a while back. You can read about my experience here.
amp88
S2 licensed
Quote from amp88 :I wouldn't be surprised if pole was in the 1:58s.

Way too optimistic on my part judging by the first session. Still 2 sessions to come, but times are likely to get worse as the track temp climbs.
amp88
S2 licensed
Quote from Mackie The Staggie :What are the chances of somebody breaking the 2 minute mark this weekend then?

I wouldn't be surprised if pole was in the 1:58s.
amp88
S2 licensed
They look like the original wheels of the Ford Sierra RS500 Cosworth (or some copy of them).
amp88
S2 licensed
Quote from BigPeBe :What's the song on this old Skogenracing video?
http://www.4shared.com/file/6wIGTmaj

MyGrain - Translucent Dreams (via Shazam)
amp88
S2 licensed
Quote from Stig209 :I'd say Williams has the best dildo-solution next to Red Bull

I think you're overlooking Force India...
amp88
S2 licensed
Quote from dawesdust_12 :Have you actually tried to stream to twitch with ShadowPlay? I can't seem to get it to stream for more than 1 minute. It's terrible

I don't have a Twitch account.
amp88
S2 licensed
Quote from dawesdust_12 :The thing that DX9 support aids greatly in (other than driver bugs) is with recording/streaming of LFS. FRAPS seems to be the only application that can record LFS in DX8 mode. Most streaming applications won't operate in "Game" mode (which is more performant) with DX8 applications, so required a DX9 proxy DLL or to run it in Windowed mode (which is slow).

ShadowPlay records fullscreen vanilla LFS. ShadowPlay can be used to save locally and/or to stream to Twitch.
amp88
S2 licensed
Quote from majod :Sony DSC RX100

Good luck with it

I've read some very nice reviews for it in the past, so I can't wait to see what you do with it. Some of your previous posts in the Camera Showoff thread have been pretty epic.
amp88
S2 licensed
I'd been looking at getting a telephoto lens for a while and after much consideration and several checks of my bank balance, I plumped for the Tamron 70-300 F4-5.6 VC USD. From reviews, this lens seems to give decent image quality and it's pretty good in terms of value for money. Of course, I'd prefer to have one of the F2.8 or F4 lenses with constant aperture throughout the focal range, but even the cheapest of those is significantly more costly than this was. So...I got it at the start of the year and had to wait a while for some decent weather to go out and shoot in. I went to Strathclyde Park and Baron's Haugh hoping to get some interesting subjects. The wildlife turned out not to be as varied as I would have wanted, but there were a lot of swans, so...

Full Gallery




amp88
S2 licensed
Quote from Boris Lozac :I thought i knew all the rules.. Thanks, but is it something that's actually beeing punished in rl?

Unfortunately not. The FIA seems to only punish drivers who gain position by exceeding the track limits, not those who merely gain a time advantage. Numerous drivers were cutting multiple times per lap in qualifying during the 2013 F1 season and they weren't punished. It's been a growing problem in the last few years.
amp88
S2 licensed
Quote from Boris Lozac :Wait what? Since when are curbs not part of the track? Its valid by rsr app, that's all i want to see, 1:40/41 valid by rsr.

Quote from FIA :20.2 Drivers must use the track at all times. For the avoidance of doubt the white lines defining the track edges are considered to be part of the track but the kerbs are not.

Source
amp88
S2 licensed
Quote from Boris Lozac :Anyway, can't go faster then this (legal lap)

You were all 4 wheels off track (i.e. outside the white lines) numerous times in this lap. You were also arguably over at the Variante Alta, but it's not as clear cut as those in the attached image, so I didn't include it. If you're going to complain about invalid laps of other people at least try to post valid laps of your own.

edit: updated image
amp88
S2 licensed
Quote from amp88 :Another possibly difficult one from me. I've got a small fragment of this song stuck in my head and I can't identify it. I think it might have been used on a film score, in the classical/modern classical genre. No idea of the original instrument. Here is a very short clip of me whistling the only fragment I know. As ever, TIA for any input.

Turns out it was from the start of Goldfrapp - Lovely Head.
amp88
S2 licensed
OK, so now a few queries to try and get some useful information.

To view all Roles on all Shifts. Roles which currently have Users assigned will also display the Username of the assigned User. Roles which currently need users to fill them will be displayed with NULL details for the Username:

SELECT S.SHIFTID, R.ROLEID, STARTDATE, ENDDATE, CODE, USERNAME
FROM SHIFTS S
JOIN ROLES R
LEFT OUTER JOIN SHIFTCREWS SC ON S.SHIFTID = SC.SHIFTID AND R.ROLEID = SC.ROLEID
LEFT OUTER JOIN USERS U ON SC.USERID = U.USERID
ORDER BY S.STARTDATE

To view which Shifts need Users to fill Roles:

SELECT S.SHIFTID, R.ROLEID, STARTDATE, ENDDATE, CODE
FROM SHIFTS S
JOIN ROLES R
LEFT OUTER JOIN SHIFTCREWS SC ON S.SHIFTID = SC.SHIFTID AND R.ROLEID = SC.ROLEID
WHERE SC.SHIFTID IS NULL
ORDER BY S.STARTDATE

To view Users who could potentially fill a Role on a ShiftCrew which needs someone. This is a very simple approach, so it only looks for Users who have the required certification for the Role (and it's valid at the time of the Shift) who aren't already on the ShiftCrew for this shift only. That is, this query will display Users who are on the ShiftCrew for the previous or following shift. As Dustin points out above, the logic for finding Users capable of covering slots on a ShiftCrew could get quite complicated pretty quickly, so perhaps this is something better done either by a human supervisor or with a more complex algorithm in PHP. There are plenty of potential problems with finding a replacement User. For instance, say you're looking for an MVO to fill a crew. One of your existing crew members is currently in the CPR role but she's qualified for both CPR and MVO. The only Users who are available for the Shift are only qualified in CPR. The obvious solution is to move the woman who's currently in the CPR role into the MVO role then bring in a replacement for the CPR role. However, to code that into SQL along with other rules/laws (restrictions on number of hours worked per week / in a row etc) would get very messy fast.

In the query below I've manually set the ShiftID and RoleID to 1 and 2, respectively. The ShiftID value of 1 is found twice in the code (once within the bracketed section for the EXISTINGCREW and once in the WHERE clause of the overall statement. The RoleID value of 2 is found once in the code (in the WHERE clause of the overall statement). These values for ShiftID and RoleID are determined using the above query ("To view which Shifts need Users to fill Roles").

SELECT S.SHIFTID, R.ROLEID, S.STARTDATE, S.ENDDATE, R.CODE, USERNAME
FROM SHIFTS S
JOIN ROLES R
JOIN ROLECERTIFICATIONS RC ON R.ROLEID = RC.ROLEID
JOIN CERTIFICATIONS C ON RC.CLASSID = C.CLASSID
JOIN USERCERTIFICATIONS UC ON C.CERTIFICATIONID = UC.CERTIFICATIONID
JOIN USERS U ON UC.USERID = U.USERID
LEFT OUTER JOIN (
SELECT USERID
FROM SHIFTCREWS SC
WHERE SC.SHIFTID = 1
) EXISTINGCREW ON UC.USERID = EXISTINGCREW.USERID
WHERE SHIFTID = 1 AND R.ROLEID = 2 AND UC.VALIDFROM <= S.STARTDATE AND UC.VALIDTO >= S.ENDDATE AND EXISTINGCREW.USERID IS NULL

The above query can be adapted to find Users for unfulfilled CoverRequests too, with the same caveats as above on filtering.

Anyway, a quick effort that you may be able to take some inspiration from or use as a base to grow. Feel free to ask any questions.

In case it's of any use, I've attached my Java code I wrote for this to this post (renamed as .txt for attachment filter).
amp88
S2 licensed
Note: Had to split this over 2 posts due to length.

I took a quick stab at this; very rough, and nowhere near a complete solution, but you might be able to use some of it as a base to build on.

Tables:

Users (very simple, no password (hash) field, forename/surname, date user created etc):

CREATE TABLE IF NOT EXISTS Users (
UserID INTEGER PRIMARY KEY,
Username VARCHAR(32) UNIQUE NOT NULL)

Certifications (such as 'BLS', 'ALS - AEMT-P'):

CREATE TABLE IF NOT EXISTS Certifications (
CertificationID INTEGER PRIMARY KEY,
ClassID INT NOT NULl,
Code VARCHAR(16) NOT NULL,
Description VARCHAR(32),
UNIQUE(Code, Description))

UserCertifications (keeping track of which certifications each user has and when those certifications are valid):

CREATE TABLE IF NOT EXISTS UserCertifications (
UserCertificationID INTEGER PRIMARY KEY,
UserID INTEGER NOT NULL REFERENCES Users(UserID),
CertificationID INTEGER NOT NULL REFERENCES Certifications(CertificationID),
ValidFrom DATE NOT NULL,
ValidTo DATE NOT NULL,
UNIQUE (UserID, CertificationID, ValidFrom, ValidTo))

Roles (the positions on the ambulance crew, such as 'MVO', 'CPR'):

CREATE TABLE IF NOT EXISTS Roles (
RoleID INTEGER PRIMARY KEY,
Code VARCHAR(16) UNIQUE NOT NULL)

RoleCertifications (to keep track of which certification is required for each role in the crew):

CREATE TABLE IF NOT EXISTS RoleCertifications (
RoleID INTEGER NOT NULL REFERENCES Roles(RoleID),
ClassID INTEGER NOT NULL REFERENCES Certifications(ClassID),
PRIMARY KEY(RoleID, ClassID))

Shifts (start/end date for each crew, e.g. 2014-01-04 19:00 to 2014-01-04 23:00):

CREATE TABLE IF NOT EXISTS Shifts (
ShiftID INTEGER PRIMARY KEY,
StartDate DATE NOT NULL,
EndDate DATE NOT NULL,
UNIQUE (StartDate, EndDate))

ShiftCrews (the users actually assigned to each role within a given shift). For the moment I stuck the 'Permanent' position in this table, but I think there should be a separate entity for tracking which Permanent positions each user has been assigned to, including the start/end dates for that assignment and when it was created.

CREATE TABLE IF NOT EXISTS ShiftCrews (
ShiftCrewID INTEGER PRIMARY KEY,
ShiftID INTEGER NOT NULL REFERENCES Shifts(ShiftID),
RoleID INTEGER NOT NULL REFERENCES Roles(RoleID),
UserID INTEGER NOT NULL REFERENCES Users(UserID),
Permanent BOOLEAN NOT NULL,
UNIQUE (ShiftID, UserID),
UNIQUE (ShiftID, RoleID))

CoverRequests (to store requests from permanent crew members for cover):

CREATE TABLE IF NOT EXISTS CoverRequests (
CoverRequestID INTEGER PRIMARY KEY,
ShiftCrewID INTEGER NOT NULL UNIQUE REFERENCES ShiftCrews(ShiftCrewID),
OriginalUserID INTEGER NOT NULL REFERENCES Users(UserID),
DateRequested DATE NOT NULL,
NewUserID INTEGER REFERENCES Users(UserID),
DateCoverFound DATE)

Now, populating with sample data:

Users:

INSERT INTO Users (Username) VALUES ('svettel');
INSERT INTO Users (Username) VALUES ('falonso');
INSERT INTO Users (Username) VALUES ('mwebber');
INSERT INTO Users (Username) VALUES ('lhamilton');
INSERT INTO Users (Username) VALUES ('kraikkonen');
INSERT INTO Users (Username) VALUES ('nrosberg');
INSERT INTO Users (Username) VALUES ('rgrosjean');
INSERT INTO Users (Username) VALUES ('fmassa');
INSERT INTO Users (Username) VALUES ('jbutton');
INSERT INTO Users (Username) VALUES ('nhulkenberg');
INSERT INTO Users (Username) VALUES ('sperez');
INSERT INTO Users (Username) VALUES ('pdiresta');
INSERT INTO Users (Username) VALUES ('asutil');
INSERT INTO Users (Username) VALUES ('dricciardo');
INSERT INTO Users (Username) VALUES ('jevergne');
INSERT INTO Users (Username) VALUES ('egutierrez');
INSERT INTO Users (Username) VALUES ('vbottas');
INSERT INTO Users (Username) VALUES ('pmaldonado');
INSERT INTO Users (Username) VALUES ('jbianchi');
INSERT INTO Users (Username) VALUES ('cpic');
INSERT INTO Users (Username) VALUES ('hkovalainen');
INSERT INTO Users (Username) VALUES ('gvdgarde');
INSERT INTO Users (Username) VALUES ('mchilton');

Certifications. I defined constants within my Java code for the ALS/BLS etc ClassIDs (ALS = 1, BLS = 2, MVO = 3, CPR = 4). I've added two separate ALS certifications here (one for AEMT-P and one for AEMT-CC, but as you can see they both have the same ClassID, so a User with either one is able to fill the ALS role on a ShiftCrew):

INSERT INTO Certifications (ClassID, Code, Description) VALUES (1, 'ALS', 'AEMT-P');
INSERT INTO Certifications (ClassID, Code, Description) VALUES (1, 'ALS', 'AEMT-CC');
INSERT INTO Certifications (ClassID, Code, Description) VALUES (2, 'BLS', NULL);
INSERT INTO Certifications (ClassID, Code, Description) VALUES (3, 'MVO', NULL);
INSERT INTO Certifications (ClassID, Code, Description) VALUES (4, 'CPR', NULL);

UserCertifications. I've added some Users with multiple Certifications for 2 reasons: 1) I assume this is actually possible in real life and 2) To test the code to stop a user who is already assigned to a ShiftCrew from being shown as a candidate to fill another Role on that ShiftCrew.

INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-05-20', '2014-05-20' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'svettel' AND CODE = 'ALS' AND DESCRIPTION = 'AEMT-P';
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-06-10', '2014-06-10' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'falonso' AND CODE = 'MVO' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-02-20', '2014-02-20' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'mwebber' AND CODE = 'CPR' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-09-20', '2014-09-20' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'lhamilton' AND CODE = 'ALS' AND DESCRIPTION = 'AEMT-CC';
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-11-15', '2014-11-15' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'nrosberg' AND CODE = 'BLS' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-10-15', '2014-10-15' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'nrosberg' AND CODE = 'MVO' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-12-12', '2014-12-12' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'kraikkonen' AND CODE = 'BLS' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-01-20', '2014-01-20' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'rgrosjean' AND CODE = 'ALS' AND DESCRIPTION = 'AEMT-CC';
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-04-01', '2014-04-01' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'fmassa' AND CODE = 'MVO' AND DESCRIPTION IS NULL; " +
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-02-01', '2014-02-01' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'fmassa' AND CODE = 'BLS' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-07-20', '2014-07-20' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'jbutton' AND CODE = 'MVO' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-06-15', '2014-06-15' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'nhulkenberg' AND CODE = 'CPR' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-08-20', '2014-08-20' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'sperez' AND CODE = 'BLS' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-10-01', '2014-10-01' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'pdiresta' AND CODE = 'BLS' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-06-01', '2014-06-01' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'pdiresta' AND CODE = 'MVO' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-01-10', '2014-01-10' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'asutil' AND CODE = 'MVO' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-02-28', '2014-02-28' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'dricciardo' AND CODE = 'MVO' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-03-01', '2014-03-01' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'jevergne' AND CODE = 'CPR' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-03-01', '2014-03-01' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'jevergne' AND CODE = 'BLS' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-07-20', '2014-07-20' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'egutierrez' AND CODE = 'MVO' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-02-20', '2014-02-20' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'vbottas' AND CODE = 'ALS' AND DESCRIPTION = 'AEMT-P';
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-11-03', '2014-11-03' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'pmaldonado' AND CODE = 'BLS' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-06-20', '2014-06-20' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'jbianchi' AND CODE = 'CPR' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-04-30', '2014-04-30' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'cpic' AND CODE = 'MVO' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-02-20', '2014-02-20' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'hkovalainen' AND CODE = 'MVO' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo) " +
SELECT UserID, CertificationID, '2013-01-10', '2014-01-10' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'gvdgarde' AND CODE = 'CPR' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-01-10', '2014-01-10' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'gvdgarde' AND CODE = 'MVO' AND DESCRIPTION IS NULL;
INSERT INTO UserCertifications (UserID, CertificationID, ValidFrom, ValidTo)
SELECT UserID, CertificationID, '2013-04-19', '2014-04-19' FROM USERS JOIN CERTIFICATIONS WHERE USERNAME = 'mchilton' AND CODE = 'MVO' AND DESCRIPTION IS NULL;

Roles:

INSERT INTO Roles (Code) VALUES ('ALS');
INSERT INTO Roles (Code) VALUES ('BLS');
INSERT INTO Roles (Code) VALUES ('MVO');
INSERT INTO Roles (Code) VALUES ('CPR');
INSERT INTO Roles (Code) VALUES ('5TH');

RoleCertifications. Note that the 'BLS' role has both the BLS and ALS ClassIDs and the '5TH' role has the ALS/BLS/MVO and CPR ClassIDs, since it can be filled by anyone. Also, I'm again using the ClassID constants defined above (ALS = 1, BLS = 2, MVO = 3, CPR = 4).

INSERT INTO RoleCertifications (RoleID, ClassID) SELECT ROLEID, 1 FROM ROLES WHERE CODE = 'ALS';
INSERT INTO RoleCertifications (RoleID, ClassID) SELECT ROLEID, 2 FROM ROLES WHERE CODE = 'BLS';
INSERT INTO RoleCertifications (RoleID, ClassID) SELECT ROLEID, 1 FROM ROLES WHERE CODE = 'BLS';
INSERT INTO RoleCertifications (RoleID, ClassID) SELECT ROLEID, 3 FROM ROLES WHERE CODE = 'MVO';
INSERT INTO RoleCertifications (RoleID, ClassID) SELECT ROLEID, 4 FROM ROLES WHERE CODE = 'CPR';
INSERT INTO RoleCertifications (RoleID, ClassID) SELECT ROLEID, 1 FROM ROLES WHERE CODE = '5TH';
INSERT INTO RoleCertifications (RoleID, ClassID) SELECT ROLEID, 2 FROM ROLES WHERE CODE = '5TH';
INSERT INTO RoleCertifications (RoleID, ClassID) SELECT ROLEID, 3 FROM ROLES WHERE CODE = '5TH';
INSERT INTO RoleCertifications (RoleID, ClassID) SELECT ROLEID, 4 FROM ROLES WHERE CODE = '5TH';

Shifts. I wrote a quick bit of Java to populate the Shifts table. I defined a start and end date (the 3rd of February and 9th of February 2014 respectively) and I went through from the 3rd to the 9th adding shifts based on the day of the week. For weekdays I added 2 shifts per day (19:00-23:00 and 23:00-07:00 the next morning). For weekends I added 4 shifts per day (07:00-13:00, 13:00-19:00, 19:00-23:00 and 23:00-07:00 the next morning). This is obviously a naive implementation (it doesn't respect holidays or special shifts), but obviously it was done for simplicity.

INSERT INTO Shifts (StartDate, EndDate) VALUES ('2014-02-03 23:00', '2014-02-04 07:00');
INSERT INTO Shifts (StartDate, EndDate) VALUES ('2014-02-04 19:00', '2014-02-04 23:00');
INSERT INTO Shifts (StartDate, EndDate) VALUES ('2014-02-04 23:00', '2014-02-05 07:00');
INSERT INTO Shifts (StartDate, EndDate) VALUES ('2014-02-05 19:00', '2014-02-05 23:00');
INSERT INTO Shifts (StartDate, EndDate) VALUES ('2014-02-05 23:00', '2014-02-06 07:00');
INSERT INTO Shifts (StartDate, EndDate) VALUES ('2014-02-06 19:00', '2014-02-06 23:00');
INSERT INTO Shifts (StartDate, EndDate) VALUES ('2014-02-06 23:00', '2014-02-07 07:00');
INSERT INTO Shifts (StartDate, EndDate) VALUES ('2014-02-07 19:00', '2014-02-07 23:00');
INSERT INTO Shifts (StartDate, EndDate) VALUES ('2014-02-07 23:00', '2014-02-08 07:00');
INSERT INTO Shifts (StartDate, EndDate) VALUES ('2014-02-08 07:00', '2014-02-08 13:00');
INSERT INTO Shifts (StartDate, EndDate) VALUES ('2014-02-08 13:00', '2014-02-08 19:00');
INSERT INTO Shifts (StartDate, EndDate) VALUES ('2014-02-08 19:00', '2014-02-08 23:00');
INSERT INTO Shifts (StartDate, EndDate) VALUES ('2014-02-08 23:00', '2014-02-09 07:00');
INSERT INTO Shifts (StartDate, EndDate) VALUES ('2014-02-09 07:00', '2014-02-09 13:00');
INSERT INTO Shifts (StartDate, EndDate) VALUES ('2014-02-09 13:00', '2014-02-09 19:00');
INSERT INTO Shifts (StartDate, EndDate) VALUES ('2014-02-09 19:00', '2014-02-09 23:00');
INSERT INTO Shifts (StartDate, EndDate) VALUES ('2014-02-09 23:00', '2014-02-10 07:00');

ShiftCrews. This is actually assigning Users to particular Roles within Shifts. Again, going back to the mention of the Permanent bit above, this isn't a very good solution, but I just wanted to get some ideas down. To populate this I wrote a simple bit of Java code again for the permanent positions. Basically I gave certain users Shifts (such as weekdays 19:00-23:00) and just went from the StartDate to the EndDate (the 3rd Feb - 9th Feb 2014 adding them to the ShiftCrews on the correct days. If you were going to do this in the real environment you would probably be doing a longer period (such as 6-12 months or whatever), so you'd probably want to do until the end of that period or until their certification for the role expired. Those implementation details are a bit beyond the scope of this post, though.

A couple of non-permanent assignments:

INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent)
SELECT SHIFTID, ROLEID, USERID, 0 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-03 19:00' AND CODE = '5TH' AND USERNAME = 'nrosberg';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent)
SELECT SHIFTID, ROLEID, USERID, 0 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-03 19:00' AND CODE = 'ALS' AND USERNAME = 'lhamilton';

Permanent assignments:

INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-03 23:00' AND CODE = 'MVO' AND USERNAME = 'egutierrez';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-03 23:00' AND CODE = 'CPR' AND USERNAME = 'jbianchi';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-03 23:00' AND CODE = 'ALS' AND USERNAME = 'vbottas';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-03 23:00' AND CODE = 'BLS' AND USERNAME = 'pdiresta';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-03 23:00' AND CODE = '5TH' AND USERNAME = 'sperez';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-03 19:00' AND CODE = 'CPR' AND USERNAME = 'gvdgarde';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-03 19:00' AND CODE = 'MVO' AND USERNAME = 'mchilton';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-04 23:00' AND CODE = 'MVO' AND USERNAME = 'egutierrez';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-04 23:00' AND CODE = 'CPR' AND USERNAME = 'jbianchi';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-04 23:00' AND CODE = 'ALS' AND USERNAME = 'vbottas';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-04 23:00' AND CODE = 'BLS' AND USERNAME = 'pdiresta';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-04 23:00' AND CODE = '5TH' AND USERNAME = 'sperez';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-04 19:00' AND CODE = 'CPR' AND USERNAME = 'gvdgarde';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-04 19:00' AND CODE = 'MVO' AND USERNAME = 'mchilton';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-05 23:00' AND CODE = 'MVO' AND USERNAME = 'egutierrez';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-05 23:00' AND CODE = 'CPR' AND USERNAME = 'jbianchi';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-05 23:00' AND CODE = 'ALS' AND USERNAME = 'vbottas';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-05 23:00' AND CODE = 'BLS' AND USERNAME = 'pdiresta';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-05 23:00' AND CODE = '5TH' AND USERNAME = 'sperez';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-05 19:00' AND CODE = 'CPR' AND USERNAME = 'gvdgarde';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-05 19:00' AND CODE = 'MVO' AND USERNAME = 'mchilton';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-06 23:00' AND CODE = 'MVO' AND USERNAME = 'egutierrez';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-06 23:00' AND CODE = 'CPR' AND USERNAME = 'jbianchi';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-06 23:00' AND CODE = 'ALS' AND USERNAME = 'vbottas';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-06 23:00' AND CODE = 'BLS' AND USERNAME = 'pdiresta';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-06 23:00' AND CODE = '5TH' AND USERNAME = 'sperez';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-06 19:00' AND CODE = 'CPR' AND USERNAME = 'gvdgarde';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-06 19:00' AND CODE = 'MVO' AND USERNAME = 'mchilton';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-07 23:00' AND CODE = 'MVO' AND USERNAME = 'egutierrez';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-07 23:00' AND CODE = 'CPR' AND USERNAME = 'jbianchi';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-07 23:00' AND CODE = 'ALS' AND USERNAME = 'vbottas';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-07 23:00' AND CODE = 'BLS' AND USERNAME = 'pdiresta';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-07 23:00' AND CODE = '5TH' AND USERNAME = 'sperez';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-07 19:00' AND CODE = 'CPR' AND USERNAME = 'gvdgarde';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-07 19:00' AND CODE = 'MVO' AND USERNAME = 'mchilton';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-08 23:00' AND CODE = 'MVO' AND USERNAME = 'egutierrez';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-08 23:00' AND CODE = 'CPR' AND USERNAME = 'jbianchi';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-08 23:00' AND CODE = 'ALS' AND USERNAME = 'vbottas';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-08 23:00' AND CODE = 'BLS' AND USERNAME = 'pdiresta';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-08 23:00' AND CODE = '5TH' AND USERNAME = 'sperez';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-08 07:00' AND CODE = 'BLS' AND USERNAME = 'pmaldonado';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-08 07:00' AND CODE = 'MVO' AND USERNAME = 'hkovalainen';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-08 07:00' AND CODE = 'CPR' AND USERNAME = 'jevergne';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-09 23:00' AND CODE = 'MVO' AND USERNAME = 'egutierrez';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-09 23:00' AND CODE = 'CPR' AND USERNAME = 'jbianchi';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-09 23:00' AND CODE = 'ALS' AND USERNAME = 'vbottas';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-09 23:00' AND CODE = 'BLS' AND USERNAME = 'pdiresta';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-09 23:00' AND CODE = '5TH' AND USERNAME = 'sperez';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-09 07:00' AND CODE = 'BLS' AND USERNAME = 'pmaldonado';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-09 07:00' AND CODE = 'MVO' AND USERNAME = 'hkovalainen';
INSERT INTO ShiftCrews (ShiftID, RoleID, UserID, Permanent) SELECT SHIFTID, ROLEID, USERID, 1 FROM SHIFTS JOIN ROLES JOIN USERS WHERE STARTDATE = '2014-02-09 07:00' AND CODE = 'CPR' AND USERNAME = 'jevergne';

An unfulfilled CoverRequest. If the CoverRequest is fulfilled you would populate the NewUserID and DateCoverFound fields then modify the appropriate row in the ShiftCrew table to change the Permanent value from TRUE to FALSE (1 to 0) and update the UserID to the NewUserID value.

INSERT INTO CoverRequests (ShiftCrewID, OriginalUserID, DateRequested) SELECT ShiftCrewID, U.UserID, '2014-01-04' FROM SHIFTCREWS SC JOIN SHIFTS S ON SC.SHIFTID = S.SHIFTID JOIN ROLES R ON SC.ROLEID = R.ROLEID JOIN USERS U WHERE STARTDATE = '2014-02-06 19:00' AND R.CODE = 'MVO' AND USERNAME = 'mchilton';

amp88
S2 licensed
OK...well, I can't offer any input on the 'web' side of things (HTML/PHP), but I might be able to help you with the SQL side if you can provide more details.

Can you provide details of your current database? Can you provide examples of SQL statements that you're struggling to write (e.g. assigning a crew member to a crew for a single instance/permanently or finding any crews which require members to be assigned (which I'm assuming is what you mean by "Finding Coverage For This Week"))?
amp88
S2 licensed
Your post and the development site you've linked to are pretty difficult to understand. Are you just venting or are you looking for input?
amp88
S2 licensed
The rear wing looks a bit vulnerable sitting out over the rear of the bootlid there. Not from being hit by another car up the backside, of course, but from cars going side-by-side there are a couple of things which could make contact. The door mirrors of other cars would probably be OK (they'd be more likely to fold back than damage the wing support), but the rear quarter panel area on other cars could potentially impact on the wing supports. Another potential danger area is if a driver has a half-spin and backs into a wall. In some/most cases with a protected rear wing (i.e. not overhanging the bootlid) the car would be able to drive away with probably slightly dented rear bodywork. For this it looks like you'd almost certainly have a broken rear wing, which would probably take several minutes to swap in the pits, depending on the fastening mechanism. I appreciate that the location is based on the car's shape, but it just doesn't look very safe sitting out there.

Apart from that I think the front grill looks pretty good. Now let us hear the engine running in anger, please
amp88
S2 licensed
Quote from sinbad :Wow. What's the install process like? I have rbr on disc but not installed, is it going to be worth the effort?

Just extract the archive into your AC install folder. The RBR check is an 'honour' policy type dealio.
FGED GREDG RDFGDR GSFDG