PDA

View Full Version : [GALLERY] Rob's WIPs



Rob Oplawar
April 27th, 2008, 04:54 PM
/bandwagon

But srsly, time to get crit on my latest models.

First up, My ODST helmet:

*posts old thing to make new thing look better*
http://www.spacebrick.net/pictures/gallery/helmet.jpg
Lol omg. I made that in 2006. My first attempts at biped modeling were epic fail.

Hopefully I've improved since then:
http://www.spacebrick.net/pictures/gallery/helmet_render_03.jpg
The one on the right is the helmet WoL made for the ODST biped for Bridge- I included it because I want my helmet to go with the same biped as a different head permutation.
http://www.spacebrick.net/pictures/gallery/helmet_render_04.jpg
I modeled a high poly reference version first- the superhigh LOD ingame will have about half the poly count of this make that about a third.
The knobs and stuff on the side are placeholders for what will be eventually textured in.

So, yeah, aside from the detailing and shape tweaking that I have left to do, what do you guys think?

Disaster
April 27th, 2008, 04:55 PM
Nice work. I like it. Looking forward to seeing more of this. :awesome:

rossmum
April 27th, 2008, 06:56 PM
Looks good.

Bad Waffle
April 27th, 2008, 06:57 PM
It looks to me like you pretty much used my helmet as a geometry reference to get the proportions right so your helmet didnt look like shit ;o

Rob Oplawar
April 27th, 2008, 07:07 PM
heh, you'd think so, but actually I didn't import that model until the helmet was basically as it is now. I plane modeled based on my front- and side-view sketches:
http://www.spacebrick.net/pictures/gallery/helmet_render_05.jpg

Although I did import your helmet for the very purpose of double-checking my proportions. So yeah, I guess you're right. ;D

Bad Waffle
April 27th, 2008, 07:26 PM
oh you BSer. I tried modelling the helmet from those proportions, di'int wurk. LIER.

Syuusuke
April 27th, 2008, 07:38 PM
WoL's ODST head looks like a huge sad face from the side.

That looks nice Rob.

Rob Oplawar
April 27th, 2008, 07:50 PM
Well, I was modifying the proportions as I went- for example, I shortened the visor considerably- and it turns out I made the same major proportion changes as you did. Great minds think alike, eh?

e: oh what the heck. Have another WIP- if you'll recall, sometime back I was working on an mp conversion of the first level of Doom 95. So recently I started work on a new room for that:
http://www.spacebrick.net/pictures/blog_gallery/less_phail4.jpg
bonus points for anyone who figures out what room this is from the original Doom map.

TeeKup
April 27th, 2008, 08:50 PM
Holy shit. I LOVE those helmets, ingame now mister. D:

Mass
April 27th, 2008, 09:48 PM
I hope we actually get some use out of that.

:smith:

Bad Waffle
April 27th, 2008, 10:42 PM
Holy shit. I LOVE those helmets, ingame now mister. D:

my helmet (right) is already ingame, as well as the rest of the biped ;)

Rob Oplawar
April 27th, 2008, 11:32 PM
oh yeah, when are you gonna stop holding out on em and show em some smexy renders/screenshots?

DaneO'Roo
April 27th, 2008, 11:36 PM
Rob, that interior sectrion looks awesome. Finish please.

Bad Waffle
April 28th, 2008, 02:01 AM
oh yeah, when are you gonna stop holding out on em and show em some smexy renders/screenshots?

When i can be arsed to open 3ds for something other than work.

Rob Oplawar
April 28th, 2008, 09:27 PM
Ok, I brought down the poly count for the Super-High LOD:
http://www.spacebrick.net/pictures/gallery/helmet_render_06.jpg
http://www.spacebrick.net/pictures/gallery/helmet_render_07.jpg
It's still at 1196 polies- I can stand to lose some in the visor and around the visor area, so I'll trim some more there before trying my hand at unwrapping this bitch.

Before I do that, anybody got any major changes they'd like to see in the geometry?

Bad Waffle
April 28th, 2008, 09:35 PM
Ok, I brought down the poly count for the Super-High LOD:
http://www.spacebrick.net/pictures/gallery/helmet_render_06.jpg
http://www.spacebrick.net/pictures/gallery/helmet_render_07.jpg
It's still at 1196 polies- I can stand to lose some in the visor and around the visor area, so I'll trim some more there before trying my hand at unwrapping this bitch.

Before I do that, anybody got any major changes they'd like to see in the geometry?

oh my god. What did you do. What did you do. You arent supposed to make triangles when you downres something >_<

TeeKup
April 28th, 2008, 09:44 PM
Wait........whats with the random Switch on the side of the helmet? Why not a pressure sensitive button or something more futuristic. >.>

Also pay attention to the MC visor, his entire body was low poly but his visor really wasn't. You can do the same with yours.

Rob Oplawar
April 28th, 2008, 09:46 PM
quads are superior to triangles why exactly? I found it made a smoother curve with the same number of polygons this way.

Tweek
April 29th, 2008, 03:25 AM
oh my god. What did you do. What did you do. You arent supposed to make triangles when you downres something >_<

bullshit.

stop telling bullshit.

Rob Oplawar
April 30th, 2008, 02:47 AM
Should I post some code here? Would anybody be at all interested in seeing/criticizing it? The code I would post is some part of the core PHP code for my forum system I'm working on: http://www.spacebrick.net

DaneO'Roo
April 30th, 2008, 03:37 AM
Tweek is right. My fucking 3d teacher was making us model this face using polygons, and I said, "um miss why can't I just traingulate it, it seeing as everyone is getting massive smoothing and normal errors and the like?". "NONONONO WRONG THAT IS WRONG NO TRIS ALLOWED IN 3D MODELLING EVER AVOID AT AL COSTSSSS"

:everyone elses model in the class BUT mine looks like shit because I didn't follow orders:

:3

Bodzilla
April 30th, 2008, 04:17 AM
liked the one on the left moar D:

Rob Oplawar
April 30th, 2008, 04:21 AM
you crazy upsidedownians, up and posting in the middle of the night.

ohwait-
FUCK INSOMNIA

Rob Oplawar
May 1st, 2008, 01:21 PM
Arg, all this photoshop slicing and dreamweaver crap makes me angry. That's not how you make a website.
This is how you make a website:


include("../model/config.php");
include("../model/dbconfig.php");
include("../business/functions.php");
include("../business/Templates.php");
include("../business/checkLogin.php");
setRedirect("spacebrickPM/inbox.php");
include("private/PrivateMessage.php");

html("Inbox");
PrivateMessage::printStyleAndScript();
layoutTopMenu($horizontalMenu);
PrivateMessage::printMessageListAjax($_SESSION['my_index']);

layoutTopMenu(false);
html();


==> makes
http://www.spacebrick.net/pictures/blog_gallery/Screenshot.png
e: lolwtf ubuntu took a screenshot of the screenshot taker thing.

Hunter
May 1st, 2008, 01:32 PM
...I think I will stick to basic HTML Lol.

Keep it simple, e.g. <img src=""> <a href=""></a>

Lol. I will stay at the level thanks.

Rob Oplawar
May 1st, 2008, 01:44 PM
heh, and that was the simplest part of it. Wait til I show you the actual PrivateMessage class. ;D

e: here, html for u:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>spacebrick.net - Inbox</title>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="http://localhost/php/spacebrick/web/slate.css" rel="stylesheet" type="text/css">
</head>
<body>

<link type="text/css" rel="stylesheet" href="http://localhost/php/spacebrick/spacebrickPM/web/spacebrickPM.css">

<script type="text/javascript">
var basedir='localhost/php/spacebrick/';
var pmdir='spacebrickPM/';
</script>
<script type="text/javascript" src="http://localhost/php/spacebrick/spacebrickPM/web/spacebrickPM.js">
</script>
<script type="text/javascript" src="http://localhost/php/spacebrick/spacebrickPM/web/circularStack.js">
</script>
<script type="text/javascript" src="http://localhost/php/spacebrick/spacebrickPM/web/spacebrickPMAjax.js">
</script>
<div class="outerContainer hfill" id="outerContainer">
<table border="0" cellspacing="0" cellpadding="0" class="outerTable hfill">
<tr><td class="outerTD hfill" align="center">

<div class="innerContainerWide">
<table border="0" cellspacing="0" cellpadding="0" class="hfill">
<tr><td class="topMenuBar">
<form action="http://localhost/php/spacebrick/changeTheme.php" method="post" id="themeForm">
<p><a href="javascript:themeFormSubmit()">select theme</a>:<br />
<select name="theme" onChange="themeFormSubmit()">
<option value="0" selected='selected'>slate</option>

<option value="1">noimg</option>
<option value="2">simple</option>
<option value="3">blank</option>
</select>
<input type="submit" style="display:none;"></p>
</form>
<script type="text/javascript">
<!--
function themeFormSubmit() {
document.getElementById("themeForm").submit();
}
//-->
</script>

</td><td class="topMenuBar hfill"><h2><a href="http://localhost/php/spacebrick/">spacebrick.net</a></h2>
</td><td class="topMenuBar topLoginMenu"> <div class="coverAlert bgi2" id="loginAlert" style="visibility:visible">
<p>This website requires Javascript.</p>
<a class="inPage" href="http://localhost/php/spacebrick/help.php#javascript">Click here for info.</a>
</div>
<div class="coverAlert bgi2" style="display:none;" id="timeoutWarning">
<p>Your session is about to expire.<br />

<a class="inPage" href="javascript:ajaxLogin()">Click here</a> to refresh your session and remain logged in- you will not lose any work on this page.</p>
</div>
<div class="coverAlert bgi2" id="timeoutAlert" style="display:none;">
<p>Your session has expired.</p>
</div>
<p class="note" id="usercp">logged in as: <a href="http://localhost/php/spacebrick/viewUser.php?uid=rob_oplawar">rob_oplawar</a>

<a href="http://localhost/php/spacebrick/usercp.php" class="block">user control panel</a>
<a href="http://localhost/php/spacebrick/logout.php" class="block">logout</a></p>

<form action="http://localhost/php/spacebrick/login.php" method="post" id="loginForm" class="topLoginMenu">
<p class="note" style="display:none;" id="loginMenu"><a href="javascript:loginFormSubmit()" class="block">login:</a>
<input type="text" value="username" name="username" onFocus="focusUsername()" style="width:100%" /><br />
<input type="password" name="password" style="width:100%" /><br />
<input type="submit" style="display:none;" /></p>

</form>

<script type="text/javascript">
<!--
function focusUsername() {
if(document.getElementById("loginForm").username.value=="username") document.getElementById("loginForm").username.value="";
}
function loginFormSubmit() {
document.getElementById("loginForm").submit();
}

document.getElementById("loginAlert").style.visibility="hidden";
var timer;
function warnTimeout() {
document.getElementById("timeoutWarning").style.display="block";
timer=setTimeout("alertTimeout()",60000);
}
function alertTimeout() {
document.getElementById("timeoutWarning").style.display="none";
document.getElementById("timeoutAlert").style.display="block";
document.getElementById("loginMenu").style.display="block";
document.getElementById("usercp").style.display="none";
timer=setTimeout("document.getElementById(\"timeoutAlert\").style.display=\"none\"",15000);
}
function init() {
clearTimeout(timer);
document.getElementById("timeoutWarning").style.display="none";
document.getElementById("timeoutAlert").style.display="none";
document.getElementById("loginMenu").style.display="none";
timer=setTimeout("warnTimeout()",840*1000);
}
init();

function ajaxLogin() {

//create request, depending on browser's method
var httpRequest;
if (window.XMLHttpRequest) {
httpRequest = new XMLHttpRequest();
if (httpRequest.overrideMimeType) {
httpRequest.overrideMimeType('text/xml');
// See note below about this line
}
} else if (window.ActiveXObject) {
try {
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}

if (!httpRequest) {
alert("Sorry, your browser doesn't support this feature. You'll have to refresh the page to remain logged in.");
return;
}

//define a callback function when response is received from server
httpRequest.onreadystatechange = function() { handleResponse(httpRequest); };

//do this so server doesn't discard post data sent
//httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

//send GET request to page specified, asynchronous = true

httpRequest.open('GET', 'http://localhost/php/spacebrick/ajaxcheck.php', true);

httpRequest.send('');

//return false
return;
}

function handleResponse(httpRequest) {

if (httpRequest.readyState == 4) {
// the response is received
if (httpRequest.status == 200) {
//status is good
if(httpRequest.getResponseHeader("Content-Type")=="text/html"){
if(httpRequest.responseText!="0") init();
else alert("Sorry, your session has already expired. You'll have to re-enter your information.");
}
} else {
alert("Sorry, the ajax action didn't work- you'll have to refresh the page to refresh your session.");
}
}
}
//-->
</script>
</td></tr>
<tr><td colspan="3">
<ul id="horizontalMenu"><li><a href="http://localhost/php/spacebrick/sitemap.php">sitemap</a></li><li><a href="http://localhost/php/spacebrick/viewCategory.php">all categories</a></li><li><a href="http://localhost/php/spacebrick/viewCategory.php?catid=news">news</a></li><li><a href="http://localhost/php/spacebrick/viewCategory.php?catid=bulletins">bulletins</a></li></ul>
</td></tr>

</table>
<div class="bodyDivWide">
<div id="privateMessageAjaxNavbar">
<p><a href="javascript:spacebrickPMAjax.goToInbox()">Inbox</a> |
<a href="javascript:spacebrickPMAjax.goToOutbox()">Outbox</a> |
<a href="javascript:spacebrickPMAjax.goToDeletedbox()">Deleted Messages</a> |
<a href="javascript:spacebrickPMAjax.back()">Back</a> |

<a href="javascript:spacebrickPMAjax.forward()">Forward</a> |
<a href="javascript:spacebrickPMAjax.refresh()">Refresh</a>
<form action="http://localhost/php/spacebrick/spacebrickPM/editMessage.php" method="get" id="privateMessageNewForm" onSubmit="return spacebrickPMAjax.SubmitNew('')"><p><input type="submit" value="New Message"> To:<input type="text" name="uid"></p></form>
</p>
</div>
<div id="privateMessageAjaxContainer">
<div class="privateMessageUsage">
<div class="privateMessageUsageBar">
<div class="privateMessageInboxUsageBar" style="width:161px"><p>23</p></div>

<div class="privateMessageOutboxUsageBar" style="width:126px"><p>18</p></div>
</div>
<div class="privateMessageUsageStats"><p><span class="privateMessageInbox">Inbox: (23/50)</span> | <span class="privateMessageOutbox">Outbox: (18/50)</span> | <span class="privateMessageUsage">Total: (41/100)</span> | Unread: -5</p></div>
</div>

<div class="privateMessageInbox">
<form id="spacebrickPMInbox" action="http://localhost/php/spacebrick/spacebrickPM/inbox.php" method="Post" onSubmit="return spacebrickPMAjax.inboxAction()">
<input type="hidden" name="action">
<input type="hidden" name="box" value="in">
<table cellspacing="0" cellpadding="0" class="privateMessageBox">
<thead><tr><th colspan="8"><p>Inbox</p></th></tr></thead>
<tfoot><tr>
<td colspan="8"><p>With selected:

<input type="submit" value="Delete" onClick="return spacebrickPM.inboxDelete()">

<input type="submit" value="Mark As Read" onClick="return spacebrickPM.inboxMarkRead()">

</p></td></tr>
</tfoot>
<tbody>
<tr><th class="privateMessageCheck"><input type="checkbox" id="inCheckAll" name="checkAll" onChange="spacebrickPM.checkAll('in')"></th>
<th class="privateMessageIcon">&nbsp;</th>
<th class="privateMessageForward"><p>Fw:</p></th>
<th class="privateMessageReply"><p>Re:</p></th>

<th class="privateMessageFrom"><p>From:</p></th>
<th class="privateMessageSubject"><p>Subject:</p></th>
<th class="privateMessageSent"><p>Sent:</p></th>
<th class="privateMessageReceived"><p>Received:</p></th>
</tr>
<tr class="privateMessageRowAlt">
<td class="privateMessageCheck"><input type="hidden" name="index0" value="25"><input type="checkbox" name="in0" id="in0"></td>

<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(25)">FW</a></p></td>
<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(25)">RE</a></p></td>
<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=rob_oplawar'>rob_oplawar</a></p></td>
<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(25)">BBCode Test</a></p>
</td>
<td class="privateMessageSent"><p>April 21 at 1:30PM</p></td>

<td class="privateMessageReceived"><p>57 minutes ago</p></td>
</tr>
<tr class="privateMessageRow">
<td class="privateMessageCheck"><input type="hidden" name="index1" value="21"><input type="checkbox" name="in1" id="in1"></td>
<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(21)">FW</a></p></td>
<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(21)">RE</a></p></td>

<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=rob_oplawar'>rob_oplawar</a></p></td>
<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(21)">moar spam</a></p>
</td>
<td class="privateMessageSent"><p>April 21 at 12:10PM</p></td>
<td class="privateMessageReceived"><p>April 22 at 09:50AM</p></td>
</tr>
<tr class="privateMessageRowAlt">

<td class="privateMessageCheck"><input type="hidden" name="index2" value="20"><input type="checkbox" name="in2" id="in2"></td>
<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(20)">FW</a></p></td>
<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(20)">RE</a></p></td>
<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=rob_oplawar'>rob_oplawar</a></p></td>
<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(20)">spam</a></p>
</td>

<td class="privateMessageSent"><p>April 21 at 12:08PM</p></td>
<td class="privateMessageReceived"><p>April 30 at 11:00AM</p></td>
</tr>
<tr class="privateMessageRow">
<td class="privateMessageCheck"><input type="hidden" name="index3" value="19"><input type="checkbox" name="in3" id="in3"></td>
<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(19)">FW</a></p></td>

<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(19)">RE</a></p></td>
<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=rob_oplawar'>rob_oplawar</a></p></td>
<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(19)">Testing spam</a></p>
</td>
<td class="privateMessageSent"><p>April 21 at 12:07PM</p></td>
<td class="privateMessageReceived"><p>April 30 at 11:25AM</p></td>

</tr>
<tr class="privateMessageRowAlt">
<td class="privateMessageCheck"><input type="hidden" name="index4" value="18"><input type="checkbox" name="in4" id="in4"></td>
<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(18)">FW</a></p></td>
<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(18)">RE</a></p></td>
<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=rob_oplawar'>rob_oplawar</a></p></td>

<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(18)">test</a></p>
</td>
<td class="privateMessageSent"><p>April 21 at 10:56AM</p></td>
<td class="privateMessageReceived"><p>April 21 at 12:28PM</p></td>
</tr>
<tr class="privateMessageRow">
<td class="privateMessageCheck"><input type="hidden" name="index5" value="17"><input type="checkbox" name="in5" id="in5"></td>

<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(17)">FW</a></p></td>
<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(17)">RE</a></p></td>
<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=rob_oplawar'>rob_oplawar</a></p></td>
<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(17)">example</a></p>
</td>
<td class="privateMessageSent"><p>April 21 at 10:03AM</p></td>

<td class="privateMessageReceived"><p>April 21 at 11:55AM</p></td>
</tr>
<tr class="privateMessageRowAlt">
<td class="privateMessageCheck"><input type="hidden" name="index6" value="16"><input type="checkbox" name="in6" id="in6"></td>
<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(16)">FW</a></p></td>
<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(16)">RE</a></p></td>

<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=rob_oplawar'>rob_oplawar</a></p></td>
<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(16)">Increment in and out</a></p>
</td>
<td class="privateMessageSent"><p>April 20 at 2:18PM</p></td>
<td class="privateMessageReceived"><p>April 20 at 2:23PM</p></td>
</tr>
<tr class="privateMessageRow">

<td class="privateMessageCheck"><input type="hidden" name="index7" value="15"><input type="checkbox" name="in7" id="in7"></td>
<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(15)">FW</a></p></td>
<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(15)">RE</a></p></td>
<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=rob_oplawar'>rob_oplawar</a></p></td>
<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(15)">FW: Follow-Up: Follow-Up: Testing!</a></p>
</td>

<td class="privateMessageSent"><p>April 20 at 1:44PM</p></td>
<td class="privateMessageReceived"><p>April 20 at 2:18PM</p></td>
</tr>
<tr class="privateMessageRowAlt">
<td class="privateMessageCheck"><input type="hidden" name="index8" value="11"><input type="checkbox" name="in8" id="in8"></td>
<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(11)">FW</a></p></td>

<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(11)">RE</a></p></td>
<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=rob_oplawar'>rob_oplawar</a></p></td>
<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(11)">Follow-Up: Testing!</a></p>
</td>
<td class="privateMessageSent"><p>April 20 at 12:54PM</p></td>
<td class="privateMessageReceived"><p>April 20 at 1:02PM</p></td>

</tr>
<tr class="privateMessageRow">
<td class="privateMessageCheck"><input type="hidden" name="index9" value="14"><input type="checkbox" name="in9" id="in9"></td>
<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/reply.gif" alt=""><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(14)">FW</a></p></td>
<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(14)">RE</a></p></td>
<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=rob_oplawar'>rob_oplawar</a></p></td>

<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(14)">RE: Testing!</a></p>
</td>
<td class="privateMessageSent"><p>April 20 at 1:42PM</p></td>
<td class="privateMessageReceived"><p>April 20 at 1:42PM</p></td>
</tr>
<tr class="privateMessageRowAlt">
<td class="privateMessageCheck"><input type="hidden" name="index10" value="13"><input type="checkbox" name="in10" id="in10"></td>

<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/reply.gif" alt=""><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(13)">FW</a></p></td>
<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(13)">RE</a></p></td>
<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=rob_oplawar'>rob_oplawar</a></p></td>
<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(13)">Follow-Up: Follow-Up: Follow-Up: Testing!</a></p>
</td>
<td class="privateMessageSent"><p>April 20 at 1:10PM</p></td>

<td class="privateMessageReceived"><p>April 20 at 1:43PM</p></td>
</tr>
<tr class="privateMessageRow">
<td class="privateMessageCheck"><input type="hidden" name="index11" value="12"><input type="checkbox" name="in11" id="in11"></td>
<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/reply.gif" alt=""><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""><img src="http://localhost/php/spacebrick/spacebrickPM/web/attachment.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(12)">FW</a></p></td>
<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(12)">RE</a></p></td>

<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=rob_oplawar'>rob_oplawar</a></p></td>
<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(12)">Follow-Up: Follow-Up: Testing!</a></p>
</td>
<td class="privateMessageSent"><p>April 20 at 1:01PM</p></td>
<td class="privateMessageReceived"><p>April 20 at 1:16PM</p></td>
</tr>
<tr class="privateMessageRowAlt">

<td class="privateMessageCheck"><input type="hidden" name="index12" value="10"><input type="checkbox" name="in12" id="in12"></td>
<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(10)">FW</a></p></td>
<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(10)">RE</a></p></td>
<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=rob_oplawar'>rob_oplawar</a></p></td>
<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(10)">Follow-Up: Testing!</a></p>
</td>

<td class="privateMessageSent"><p>April 20 at 12:54PM</p></td>
<td class="privateMessageReceived"><p>April 20 at 2:37PM</p></td>
</tr>
<tr class="privateMessageRow">
<td class="privateMessageCheck"><input type="hidden" name="index13" value="9"><input type="checkbox" name="in13" id="in13"></td>
<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""><img src="http://localhost/php/spacebrick/spacebrickPM/web/attachment.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(9)">FW</a></p></td>

<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(9)">RE</a></p></td>
<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=rob_oplawar'>rob_oplawar</a></p></td>
<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(9)">Testing!</a></p>
</td>
<td class="privateMessageSent"><p>April 20 at 12:36PM</p></td>
<td class="privateMessageReceived"><p>April 20 at 12:53PM</p></td>

</tr>
<tr class="privateMessageRowAlt">
<td class="privateMessageCheck"><input type="hidden" name="index14" value="8"><input type="checkbox" name="in14" id="in14"></td>
<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(8)">FW</a></p></td>
<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(8)">RE</a></p></td>
<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=rob_oplawar'>rob_oplawar</a></p></td>

<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(8)"></a></p>
</td>
<td class="privateMessageSent"><p>April 20 at 12:35PM</p></td>
<td class="privateMessageReceived"><p>April 21 at 11:55AM</p></td>
</tr>
<tr class="privateMessageRow">
<td class="privateMessageCheck"><input type="hidden" name="index15" value="4"><input type="checkbox" name="in15" id="in15"></td>
<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""></td>

<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(4)">FW</a></p></td>
<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(4)">RE</a></p></td>
<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=the_guardians'>the_guardians</a></p></td>
<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(4)">important message!</a></p>
</td>
<td class="privateMessageSent"><p>April 15 at 10:00AM</p></td>

<td class="privateMessageReceived"><p>April 17 at 1:16PM</p></td>
</tr>
<tr class="privateMessageRowAlt">
<td class="privateMessageCheck"><input type="hidden" name="index16" value="24"><input type="checkbox" name="in16" id="in16"></td>
<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/reply.gif" alt=""><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(24)">FW</a></p></td>
<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(24)">RE</a></p></td>

<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=rob_oplawar'>rob_oplawar</a></p></td>
<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(24)">Re: important message!</a></p>
</td>
<td class="privateMessageSent"><p>April 21 at 1:26PM</p></td>
<td class="privateMessageReceived"><p>April 22 at 09:43AM</p></td>
</tr>
<tr class="privateMessageRow">

<td class="privateMessageCheck"><input type="hidden" name="index17" value="23"><input type="checkbox" name="in17" id="in17"></td>
<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/reply.gif" alt=""><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(23)">FW</a></p></td>
<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(23)">RE</a></p></td>
<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=rob_oplawar'>rob_oplawar</a></p></td>
<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(23)">Re: important message!</a></p>
</td>

<td class="privateMessageSent"><p>April 21 at 1:17PM</p></td>
<td class="privateMessageReceived"><p>April 22 at 09:45AM</p></td>
</tr>
<tr class="privateMessageRowAlt">
<td class="privateMessageCheck"><input type="hidden" name="index18" value="3"><input type="checkbox" name="in18" id="in18"></td>
<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(3)">FW</a></p></td>

<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(3)">RE</a></p></td>
<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=rob_oplawar'>rob_oplawar</a></p></td>
<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(3)">Hi me!</a></p>
</td>
<td class="privateMessageSent"><p>April 15 at 09:37AM</p></td>
<td class="privateMessageReceived"><p>April 17 at 1:16PM</p></td>

</tr>
<tr class="privateMessageRow">
<td class="privateMessageCheck"><input type="hidden" name="index19" value="1"><input type="checkbox" name="in19" id="in19"></td>
<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(1)">FW</a></p></td>
<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(1)">RE</a></p></td>
<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=the_guardians'>the_guardians</a></p></td>

<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(1)">Untitled</a></p>
</td>
<td class="privateMessageSent"><p>April 15 at 09:36AM</p></td>
<td class="privateMessageReceived"><p>April 15 at 09:45AM</p></td>
</tr>
<tr class="privateMessageRowAlt">
<td class="privateMessageCheck"><input type="hidden" name="index20" value="5"><input type="checkbox" name="in20" id="in20"></td>

<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(5)">FW</a></p></td>
<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(5)">RE</a></p></td>
<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=the_guardians'>the_guardians</a></p></td>
<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(5)">Old message</a></p>
</td>
<td class="privateMessageSent"><p>April 14 at 3:13PM</p></td>

<td class="privateMessageReceived"><p>April 17 at 1:17PM</p></td>
</tr>
<tr class="privateMessageRow">
<td class="privateMessageCheck"><input type="hidden" name="index21" value="6"><input type="checkbox" name="in21" id="in21"></td>
<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(6)">FW</a></p></td>
<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(6)">RE</a></p></td>

<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=the_guardians'>the_guardians</a></p></td>
<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(6)">older message</a></p>
</td>
<td class="privateMessageSent"><p>February 23 at 12:34AM</p></td>
<td class="privateMessageReceived"><p>April 17 at 1:19PM</p></td>
</tr>
<tr class="privateMessageRowAlt">

<td class="privateMessageCheck"><input type="hidden" name="index22" value="7"><input type="checkbox" name="in22" id="in22"></td>
<td class="privateMessageIcon"><img src="http://localhost/php/spacebrick/spacebrickPM/web/message.gif" alt=""></td>
<td class="privateMessageForward"><p><a href="javascript:spacebrickPMAjax.ForwardMessage(7)">FW</a></p></td>
<td class="privateMessageReply"><p><a href="javascript:spacebrickPMAjax.ReplyMessage(7)">RE</a></p></td>
<td class="privateMessageTo"><p><a href='http://localhost/php/spacebrick/viewUser.php?uid=the_guardians'>the_guardians</a></p></td>
<td class="privateMessageSubject"><p><a href="javascript:spacebrickPMAjax.ViewMessage(7)">oldest message</a></p>
</td>

<td class="privateMessageSent"><p>July 23, 2006 at 12:01PM</p></td>
<td class="privateMessageReceived"><p>April 17 at 1:21PM</p></td>
</tr>
</tbody>
</table>
</form>
</div>
</div>
<div id="privateMessageAjaxStatus">

</div>
</div>
<div class="contentBox" style='display:block;'><p>Currently Online Users: <a href="http://localhost/php/spacebrick/viewUser.php?uid=rob_oplawar">rob_oplawar</a> | 1 users total.</p></div> </div>

</td></tr>
</table>
</div>
</body>

</html>

That HTML is generated from the PHP code above. The script includes and stylesheet links are temporarily in the wrong place, since I'm currently changing the way my code takes care of that, but otherwise the HTML and CSS and Javascript are 100% valid.
[/massivepost]

Hunter
May 1st, 2008, 01:58 PM
:O *in shock*
.
.
.
..
....
.....
.......
Now your just showing off lol.
You a web designer or just looked into the subject a lot?

Edit: That means you could help me to do this? Read bottom post (Mine) (http://www.modacity.net/forums/showthread.php?t=9800)

Rob Oplawar
May 1st, 2008, 03:16 PM
No, see, what I'm saying is I'm a web developer, rather than a web designer- while Zeph makes pretty templates using photoshop to generate HTML, I get my hands dirty and write thousands of lines of code instead of mucking about with making it look good.

So in answer to your question, no. lol.

Hunter
May 1st, 2008, 03:33 PM
Web Developer is what I men't Lol. I call them the same thing :D.

Rob Oplawar
May 2nd, 2008, 02:15 PM
I'm hosting a Halo 1/Starcraft LAN party next week.
It is traditional for me to draw up a simple character representing the game that will be played at the LAN party and put the picture on the invitation, so here's my latest:
http://www.spacebrick.net/pictures/blog_gallery/invitation.jpg

Damn, that came out really well, considering I only spent an hour or two on it.
e: I can't draw hands for shit.

ee: here's the first one I ever did for a LAN party, many many moons ago:
http://www.spacebrick.net/pictures/blog_gallery/lit_small.jpg
I have improved much. :D

eee: Here's another one I did- in the final invitation the elite was holding an X-Box and pushing aside some text- I was hosting a LAN party on behalf of my friend for his birthday, so the elite was pushing aside the words "3rd monthly party at Rob's house!", to be replaced by the words "Rick's Birthday Party at Rob's House!" It was silly and fun. =)
http://www.spacebrick.net/pictures/blog_gallery/elite_push_small.jpg

NuggetWarmer
May 2nd, 2008, 03:01 PM
Those are cool! :o Good work!

Rob Oplawar
May 2nd, 2008, 10:44 PM
Ok, I had so much fun drawing that MC that I just had to do it again.
Silly me, I tried a self-portrait. I read Ctrl-Alt-Del a lot, so I tried to do myself in that style. XD
Before you look inside the spoilers, know a couple of things:

This was way harder than the MC because MC's armor is all hard lines and such, which are easy with a mouse. But this is all curvy, and it's really hard to draw curves with a mouse.
Plus, I haven't tried drawing cartoon people since like 5th grade, and I don't consider myself that type of artist.
That said, I think I did respectably well on this.
http://www.spacebrick.net/pictures/blog_gallery/portrait.jpg
Ok, so I modified myself slightly- I have pretty bad acne which I left off altogether, and I cut my hair a couple of months ago so it isn't that long anymore. But the rest is pretty accurate- the clothes are even based off of what I'm currently wearing.
Ok, also, I cheated on the face a bit- the first time I sketched it was a disaster, so I used a reference pic of myself fairly heavily to get it right the second time around.

e:
roboplawar (9:48:16 PM): yep, there are two reasons my hands are in my pockets
roboplawar (9:48:34 PM): first, because that's where they usually are when I'm standing, and second, because I can't draw hands for shit

Rob Oplawar
May 3rd, 2008, 05:02 PM
I really enjoy drawing in this style. Sheesh, I'm at it again, with yet another drawing. This time I'm doing a big picture that's going to take me a long time to finish, but once I'm done that should get it out of my system.
I'm doing a picture of the character you play as in BCE and his squad of 6 ODSTs posing in a darkened hallway.

So far I've got the main character done. I need to get more efficient at doing this- it took me nearly two hours just to do this one character. At this rate, it's gonna take me at least 14 hours more to finish this drawing.
http://www.spacebrick.net/pictures/blog_gallery/player.jpg

Con
May 3rd, 2008, 07:01 PM
The barrel of the gun isn't aligned, but you probably know that. I love your new sig too :)

Mass
May 3rd, 2008, 07:06 PM
The barrel of the gun isn't aligned, but you probably know that. I love your new sig too :)
Thanks, I made it.

Rob Oplawar
May 3rd, 2008, 09:12 PM
I guess I'll go ahead and introduce the characters here as I draw them:

Squad Alpha of the UNSC Argo Helljumper division.

http://www.spacebrick.net/pictures/blog_gallery/welsch.jpg
Cpl. Peter Welsch
Age: 24
Specialization: Assault
Weapon: Battle Rifle
Color Code: Green
Carries ammunition backpack
Background: Grew up operating farming equipment in the rural town of Dry Lake- at age 18 he joined the UNSCDF because of the career advancement opportunities it provides.

e: btw, this one took and hour and a half to draw. Am I speeding up, or was there less to do in this image? =P

rossmum
May 3rd, 2008, 10:34 PM
That's awesome.

Pooky
May 3rd, 2008, 10:55 PM
How are you going to distinguish them if they all have helmets

Maybe you could do something Republic Commando style and have them paint their armour

Sever
May 3rd, 2008, 11:01 PM
The armors' secondary colors, I believe, seeing that the first one was white and the second one is green.

Rob Oplawar
May 3rd, 2008, 11:24 PM
^ right. They each have a unique secondary color, and also there will be a couple of head and body permutations (3 will have WoL's helmet instead of mine, and the fourth will have a another helmet I haven't shown yet, and some like Welsch will have backpacks), and also they carry a couple of different weapons and have different combat parameters.

e: Yeah, I might note that currently they are all in the map with exactly the same biped, but even so I've become pretty adept at identifying each one of them pretty quickly, based on the weapon he's holding and the way he uses it. But then again, I'm like, their creator. Of course I can tell my childrens apart.
Mostly I use this knowledge of which is which to scold them:
"Goddammit Welsch, the door is the other way! Why are you going that way?!"
"Parsons, move your ass! You're blocking the rest of the squad!"
etc. etc.


ee: I dun got bord :X
http://www.spacebrick.net/pictures/blog_gallery/mr_odst.jpg

eee: Oshi, I'm really bored. Stop me before I embarrass myself. Oops, too late.
http://www.spacebrick.net/pictures/blog_gallery/dont_worry.jpg

Mass
May 4th, 2008, 10:28 AM
I lol'd.

rossmum
May 4th, 2008, 10:39 AM
^ right. They each have a unique secondary color, and also there will be a couple of head and body permutations (3 will have WoL's helmet instead of mine, and the fourth will have a another helmet I haven't shown yet, and some like Welsch will have backpacks), and also they carry a couple of different weapons and have different combat parameters.

e: Yeah, I might note that currently they are all in the map with exactly the same biped, but even so I've become pretty adept at identifying each one of them pretty quickly, based on the weapon he's holding and the way he uses it. But then again, I'm like, their creator. Of course I can tell my childrens apart.
Mostly I use this knowledge of which is which to scold them:
"Goddammit Welsch, the door is the other way! Why are you going that way?!"
"Parsons, move your ass! You're blocking the rest of the squad!"
etc. etc.


ee: I dun got bord :X
http://www.spacebrick.net/pictures/blog_gallery/mr_odst.jpg

eee: Oshi, I'm really bored. Stop me before I embarrass myself. Oops, too late.
http://www.spacebrick.net/pictures/blog_gallery/dont_worry.jpg
That sounds fucking awesome. I've been hoping for so bloody long somebody would make more up-to-date AIs in a Halo-based project.

Also, nice drawings.

Rob Oplawar
May 4th, 2008, 03:55 PM
thx. Too bad I'm never ever working on Bridge again, ever.
Nope. Not ever again.
I swear.
There's absolutely no possibility that I intend to work on it this summer. Or that I've actually been working on it recently. Nope. None at all.

<_<
>_>

rossmum
May 4th, 2008, 04:45 PM
Of course not.

I, meanwhile, have been working on my King Tiger ceaselessly while attending all my classes and passing my midsemester exams with flying colours.

Rob Oplawar
May 4th, 2008, 09:44 PM
hey, stfu, Algorithms is a boring class. How am I supposed to get a good grade in a class that's that boring?

rossmum
May 4th, 2008, 11:01 PM
that was extreme sarcasm btw

i'm getting my ass kicked

legionaire45
May 5th, 2008, 01:12 AM
hey, stfu, Algorithms is a boring class. How am I supposed to get a good grade in a class that's that boring?
Make it fun :downs:.

High School sucks. Oh, and your coding stuff is scary D: . I can do very basic pages with HTML and CSS, but all that php shit makes me want to cry.

Rob Oplawar
May 5th, 2008, 08:04 AM
man I love php. I'd be happy working in that language for the rest of my life. Well, prolly not, but I'd be happy with it as a starting career.

The gnarliest regular expression I've ever written

preg_match_all("![\s$oe]([a-z]+)=((\"[^$ce]+\")|([^\s$ce]+))(?=[\s$ce])!i", $str, $attributeArray, PREG_SET_ORDER);
e: jeez, I wrote half of that thing, but it was months ago, and looking at it now, I have no idea how it works. All I remember is that it's for pre-parsing text submitted in a post field to get it ready for the BBCode parser, and my modification added <br>s everywhere a user entered one except following the BBCode tags, which once parsed into HTML can break if extra <br>s are included.
For example, say someone included a list:

one


It would be an error in the HTML for that to be parsed as
<ul><br>
<li>one</li><br>
</ul>

My PM fetcher:

/**
* Fetches the private message with my_index = $index from the database and returns it as a
* PrivateMessage object, or false on fail.
* Requires mysqli database link $dbLink to be active- fails if not.
*
* @param int Index of desired private message
* @return PrivateMessage | boolean Recovered PM, or false if not found
* @access public
*/
static function fetch($index) {
if(!PrivateMessage::$dbLink) return false;
if(PrivateMessage::$messages[$index]) {
if(PrivateMessage::$messages[$index] instanceof PrivateMessage) return PrivateMessage::$messages[$index];
else return false;
}
if($result = PrivateMessage::$dbLink->query('SELECT * FROM `' . PMTABLE . "` WHERE `my_index` = $index LIMIT 1;")) {
if($result->num_rows!=1) return false;
$pm = new PrivateMessage($result->fetch_assoc());
$result->close();
PrivateMessage::$messages[$index]=$pm;
return $pm;
}
PrivateMessage::$messages[$index]="";
return false;
}

Rob Oplawar
May 22nd, 2008, 01:39 AM
Another work in progress for all you folks (unfortunately the cartoon drawing thing was a very short boredom induced phase, but maybe I'll get back to it someday).

http://www.spacebrick.net/argo.svg

You will need an SVG viewer to view this image- Firefox has one built in and IE has a plugin for it, and you can get standalone viewers for it.
So, what's really cool about it is that that image is defined by just a hundred or so lines of XML, that I wrote by hand just now. I mean, fucking ace, that picture's code, and that code's a picture! I think I'm in love.

e: Use your browser's increase/decrease text size functions to zoom in and out, and right-click and view source to check out the code that produces it. How awesome is that? ;D

Patrickssj6
May 22nd, 2008, 04:04 AM
Any SVG generators out there?

Rob Oplawar
June 30th, 2008, 09:00 PM
http://www.spacebrick.net/pictures/gallery/odsts.jpg
http://www.spacebrick.net/pictures/gallery/odsts.jpg
: )

Con
June 30th, 2008, 09:23 PM
Bricks. I shat them.

Bad Waffle
June 30th, 2008, 10:18 PM
what the fuck did you do to my babies?

thehoodedsmack
June 30th, 2008, 10:30 PM
KILL IT!!! KILL IT!!!

Other than the slight arm-splosion, they look really nice.

Boba
June 30th, 2008, 10:55 PM
what the fuck did you do to my babies?
Yeah, what did you do? :v:

Also: They're fucking tiny!

Rob Oplawar
June 30th, 2008, 11:13 PM
what the fuck did you do to my babies?

WoL, this is the biped tag you gave me, with no alterations. If you don't like it, why don't you like, I dunno, finish it! >=U

Also: No, they're the same size at the normal Marine. The room they're in is just huge.

Boba
July 1st, 2008, 01:38 AM
I'm actually comparing them visually to the weapons. >_>

ExAm
July 1st, 2008, 05:53 AM
Same wackiness stands in the original game, actually.

Roostervier
July 1st, 2008, 10:17 AM
I'm actually comparing them visually to the weapons. >_>
Well, ODSTs are normal humans and not Spartans, so naturally the weapons will look a bit bigger.

TeeKup
July 1st, 2008, 10:48 AM
http://www.spacebrick.net/pictures/gallery/odsts.jpg
http://www.spacebrick.net/pictures/gallery/odsts.jpg
: )

BADASS.

Chainsy
July 1st, 2008, 12:59 PM
The one holding the sniper has a backwards foot. :lol:

Rob Oplawar
July 1st, 2008, 01:29 PM
I've been trying to get WoL to fix the rigging for months now.

e: it just occurred to me that I'm posting WoL's work in my WIP thread. I never meant to take credit for it- I just needed a place to put a BCE screenshot and didn't want to make a new thread for it. So, official disclaimer:

This is WoL's biped in my map.

It's a pretty slick biped, tho. I wouldn't mind taking credit for it. : )

Bad Waffle
July 5th, 2008, 02:05 PM
the rigging doesnt make animations go whack, something else is wrong.

DaneO'Roo
July 7th, 2008, 11:00 PM
Mind posting renders? From looking at the screens, the biped looks pretty gross imo.

Rob Oplawar
July 7th, 2008, 11:16 PM
We interrupt this discussion to bring you this stunning news so that I can avoid ranting about WoL again:

I found this program that recursively counts all the comments and whitespace and lines of code in all php files in all subdirectories of a certain starting point. So I ran it on my workspace, where all of my php lives.

June 18:
Global Summary (2.32 MB, actual: 2.08 MB)
-----------------------------------------------
Number of lines of code: 44206
Number of directive lines: 115
Number of empty lines: 6828
Number of comment lines: 7352
Number of empty comment lines: 3322
-------------------------------------------
Total number of lines: 61823
-----------------------------------------------

416 file(s) processed.

Today (19 days later):
Global Summary (2.42 MB, actual: 2.16 MB)
-----------------------------------------------
Number of lines of code: 46039
Number of directive lines: 115
Number of empty lines: 7033
Number of comment lines: 8071
Number of empty comment lines: 3578
-------------------------------------------
Total number of lines: 64836
-----------------------------------------------

426 file(s) processed.

Damn, man, I'm screaming along at 1000 lines per week. BTW, that workspace only represents about 2 years of work.

Bad Waffle
July 13th, 2008, 12:11 AM
Mind posting renders? From looking at the screens, the biped looks pretty gross imo.

oh god, its ugly. i havent posted renders because the skin is so disgusting. i gotta redo the vast majority of it.

Rob Oplawar
September 1st, 2008, 01:11 PM
There's an art to writing regular expressions, so I'm putting this in my sutdio thread: I just "finished" the most complicated regular expression I have ever written. It's pretty convoluted, so I'm not 100% sure of its validity, so if anybody knows RegExps really well, I'd appreciate it if you could point out any mistakes I made.

/^(http(s?)\:\/\/)?([a-z0-9_\-]+@)?([a-z0-9_\,\(\)\-]+\.)+[a-z0-9\,\(\)\-]+((\\|\/[a-z0-9_\,\(\)\-]+)+(\.[a-z0-9\-]+)?)?(\?([a-z0-9\+\.\=\&\-]|(%[a-f0-9]{2}))+)?(\#([a-z0-9\+\.\=\&\-]|(%[a-f0-9]{2}))+)?$/i



/^(http(s?)\:\/\/)?([a-z0-9_\-]+@)?([a-z0-9_\,\(\)\-]+\.)+[a-z0-9\,\(\)\-]+((\\|\/[a-z0-9_\,\(\)\-]+)+(\.[a-z0-9\-]+)?)?(\?([a-z0-9\+\.\=\&\-]|(%[a-f0-9]{2}))+)?(\#([a-z0-9\+\.\=\&\-]|(%[a-f0-9]{2}))+)?$/i
/* regexp breakdown:
* /^(http(s?)\:\/\/)? match url beginning with http:// or https:// or one without that
* ([a-z0-9_\-]+@)? match url with user, ie, rob_oplawar@
* ([a-z0-9_\,\(\)\-]+\.)+ match one or more domains/subdomains : server.test.spacebrick. (or beginning of ip address: 192.168.1. )
* [a-z0-9\,\(\)\-]+ match top level domain: localhost or com/net/org etc. (or end of ip address: 100)
* ((\\|\/[a-z0-9_\,\(\)\-]+)+ match one or more folders/files: /folder1/folder2/file
* (\.[a-z0-9\-]+)? match file extension if it exists: .php
* )? match even if there is no folder/file part of url
* (\?([a-z0-9\+\.\=\&\-]|(%[a-f0-9]{2}))+)? match query string
* (\#([a-z0-9\+\.\=\&\-]|(%[a-f0-9]{2}))+)? match fragment/anchor
* $/i match end of url, and match case insensitive.
*/

So, did I leave anything out?

e: it just occurred to me that the way I've written it to match either a series of subdomains or an ip address it could match 192.168.1.com or www.spacebrick.100; I need to rewrite it to match one or the other, but not a combination of the two.

Rob Oplawar
September 1st, 2008, 01:57 PM
doublepost, on a different topic:

So a couple of weeks ago I sketched up my concept for the APC challenge, and then a week or so ago I colored it in, with the intention of modeling it this week; unfortunately for the contest, I was commissioned on short notice to do something else (which is amazingly awesome and also super-ultra-mega secret) and then got a sinus infection, and never got around to modeling it. It's just as well, because I don't think I would have been happy with it at as low as 7500 polies, as it's the sort of thing that is meant to be absurdly detailed and pretty.

Also, please note that I am an engineer first, a 3D "artist" second, and a 2D "artist" somewhere waaaay down the list, as I'm not too good at it. And I colored it in with a mouse, so it looks like a 1st grader colored it. So sue me.

Anyway, here is my concept, for your viewing pleasure.
http://www.spacebrick.net/pictures/blog_gallery/steam_shaded.jpg

rossmum
September 1st, 2008, 02:11 PM
Steampunk APC.

Fuck yes.

Rob Oplawar
September 1st, 2008, 02:21 PM
^this man gets it.

Apoc4lypse
September 3rd, 2008, 09:13 PM
Steampunk APC.

Fuck yes.

definately, although I'd prolly personally do something different with the actual exhaust/steam pipe on the top.

Bad Waffle
September 4th, 2008, 02:24 AM
although having the opening in the front--it works for the design. i say forget the apc thing, ditch the opening in the front, and put a giant steampunk laser on the top to make a tank.

Rob Oplawar
September 4th, 2008, 05:28 PM
I've decided that if I ever do decide to model that concept I'm going to reconcept the concept, as I'm not really happy with that design anymore.


Also, in a fit of severe task-avoidance I just spent the afternoon redoing the Bullet-Proof T-Shirt logo (for those of you who don't know, BPTS productions is who I credit most of my collaborative creative works to).
Here is the old:
http://www.spacebrick.net/pictures/blog_gallery/logo.jpg
And here is the new:
http://www.spacebrick.net/pictures/blog_gallery/bpts.png
It didn't strictly need to be redone, but I wanted a cleaner, higher res version of it, so I just started over.
The original PSD is absurdly large, so I shouldn't have the "it's too low res" problem again.

Mr.MonT
September 4th, 2008, 05:40 PM
How many polygons so far?

Rob Oplawar
September 4th, 2008, 07:22 PM
Alright, I am told by certain "expert parties" that this logo lacks character and is too wordy. The "productions" I can do without, but I'm not dropping "Bullet-Proof T-Shirt". So, wise guys, if you think you can do better, I'd like to see a concept sketch for a new logo.

No srsly, it'd be kinda neat for the logo to get redone by somebody in the community.

ExAm
September 4th, 2008, 07:24 PM
I've decided that if I ever do decide to model that concept I'm going to reconcept the concept, as I'm not really happy with that design anymore.


Also, in a fit of severe task-avoidance I just spent the afternoon redoing the Bullet-Proof T-Shirt logo (for those of you who don't know, BPTS productions is who I credit most of my collaborative creative works to).
Here is the old:
http://www.spacebrick.net/pictures/blog_gallery/logo.jpg
And here is the new:
http://www.spacebrick.net/pictures/blog_gallery/bpts.png
It didn't strictly need to be redone, but I wanted a cleaner, higher res version of it, so I just started over.
The original PSD is absurdly large, so I shouldn't have the "it's too low res" problem again.Looks a bit overstretched, and sort of like a banner for a subpar school website.

As both a grammar and graphics nazi I am now obligated by my subconscious to redesign this logo.

Zeph
September 4th, 2008, 07:27 PM
Why not use illustrator for that?

Chainsy
September 4th, 2008, 07:27 PM
I might make something later. Why not have a basic outline of a gun with the words forming the main body of the gun?

Rob Oplawar
September 4th, 2008, 07:29 PM
@zeph: cause I don't have illustrator, and before you tell me to download it: I don't pirate software.
@Chains: cause that's a hilariously overused graphic design cliche.

Chainsy
September 4th, 2008, 07:36 PM
maybe use the words to make a triangle and in the center theres a bullet hole decal?

ExAm
September 4th, 2008, 07:49 PM
I done made a design. Will post when scanned.

Pooky
September 5th, 2008, 01:41 PM
Why not make a big t-shirt that says "Bullet Proof" on it, with some bullet dents in it?

Heathen
September 5th, 2008, 01:42 PM
That. (new this)
I like Pooky's idea.

Zeph
September 5th, 2008, 01:43 PM
@zeph: cause I don't have illustrator, and before you tell me to download it: I don't pirate software.
@Chains: cause that's a hilariously overused graphic design cliche.

You're telling me your campus doesn't have a copy of illustrator somewhere you could use?

MMFSdjw
September 5th, 2008, 02:16 PM
the logo is not incredibly bad, I guess, if the folk you made it for like it.
but really it's just got way too much going on. with the outline, shadow, 3d-ness on the text, there's just so much going on it just kinda makes me want to look away.

The best logos are the simple ones, just make a nice symbol like the t-shirt with bullet holes, then pick a nice font and put them next to eachother & size them so they look nice.

Like this, took about 2 mins in freehand.
http://photos-g.ak.facebook.com/photos-ak-sf2p/v335/30/120/41113111/n41113111_34772790_8294.jpg
There's probably a better font out there but this one works well enough.



oh, and stretched text makes baby jesus cry.

SnaFuBAR
September 5th, 2008, 03:23 PM
Yeah... except... a t-shirt with holes in it says the complete opposite of bullet proof.

needs more shirt with bullets ricocheting brb making image.

fake E: cba, but you get it

iMobius
September 5th, 2008, 03:45 PM
Thats amazing

MMFSdjw
September 5th, 2008, 04:11 PM
Yeah... except... a t-shirt with holes in it says the complete opposite of bullet proof.

needs more shirt with bullets ricocheting brb making image.

fake E: cba, but you get it

it's called irony. like the ban comic sans logo being writen in comic sans
http://bancomicsans.com/image/nocomicsans180x180.gif

Rob Oplawar
September 5th, 2008, 07:34 PM
^That. (I could get used to this that). I like it full of holes.
I'm liking some of the suggestions I'm hearing.
So basically, I'm gonna get rid of the "Productions", tone down the layer effects (the shadow and outline and whatnot), unstretch the text, and maybe rearrange it a bit.

Zeph: Well, while I'm sure someone on campus has it, I cba to go out and track down a copy for myself. I did this on my home machine, which is in my apartment, not on campus.


e: meh, I cba to come up with a new logo right now. Graphic design is not and never has been my strong point.

Heathen
September 5th, 2008, 09:57 PM
Make it a penicorn. Google that.


Srsly though. I like the one with the holes. Its better than the original. The Minimalistic style is great too.

TeeKup
September 5th, 2008, 10:33 PM
WHY

Rob Oplawar
October 10th, 2008, 05:33 AM
Note about C++: debugging segmentation faults resulting from null pointers at four in the morning is no fun. No fun at all.


Yes, I just used my gallery thread as a pointless blog. Sue me. It's late way too early, and I'm tired.

e: I'ma go ahead and post a pic before I go to bed.
I've been playing around with geometric constructions, and today I decided that since the number 7 is so awesome I should find a geometric construction for a regular heptagon. Turns out it's impossible, or so they say. I came up with something that's damn close, but if you look closely you can see that it's ultimately incorrect. I'm not giving up, tho. There must be a way...
http://www.spacebrick.net/pictures/blog_gallery/heptagon_approximation.jpg
ee: btw, that's slightly enhanced with photoshop, to exaggerate the lines, as my guidelines were quite light.

ExAm
October 10th, 2008, 01:34 PM
Geometric constructions were the only thing I really liked about Geometry class.

Rob Oplawar
October 12th, 2008, 08:16 PM
Okay now. I want to get some feedback on some code I wrote, but this means I'm going to have to actually post the code online. In the header of the code you will see a GPL summary type thing saying the code is available under the terms of the GPL, SO: this counts as an official release type thingy, and from this point forward my code can be taken and used and modified by anybody who pleases, yadda yadda yadda. Don't abuse it please, as the code is not done. (You'll see at the bottom of the header the three tasks that need to be completed in the file).


Aaaaanyway, here's the deal: I used some other open-source code elsewhere in my web framework, and I appreciated the level of commenting in it, and tried to duplicate that to make my code developer-friendly, but I think I went way overboard. Fully half of the file is consumed by comments and whitespace. Here's the thing, tho: the majority of the commenting comes in the form of annotations, which are really useful if your IDE looks for that sort of thing (so that you can look up access, parameters, and return types of functions without digging into the file yourself).

Still, when I look at that file, my first reaction is "Jesus Christ, this code is morbidly obese with unnecessary comments".

So what do you think? Should I leave in all the annotations that do no good for the developer looking at the file but help the developer that has included the file for use, or should I cut all that crap out to make the file easier to look at directly?

(lol, I almost posted this without linking the code. Here it is (http://www.spacebrick.net/files/InputValidator.txt).)
e: lol, with the php extension, my host was interpreting the file and displaying the output, which in the case of this backbone framework file was nothing. I added a .txt extension to fix that.
ee: ok wiseguy, the site insisted on interpreting it if php was in there at all, so now it's just got a plain .txt extension. Just remember that it's supposed to be a .php file.


eee:


newInputValidator.php (46.8 KB, actual: 41.6 KB)
-----------------------------------------------
Number of lines of code: 471
Number of directive lines: 0
Number of empty lines: 88
Number of comment lines: 560
Number of empty comment lines: 381
-------------------------------------------
Total number of lines: 1500
-----------------------------------------------JESUS CHRIST. Ok, now I know I did this wrong. I think what I'm gonna do is replace all the annotations on member variables with single line comments describing their purpose.

Rob Oplawar
October 20th, 2008, 12:26 AM
*doublepost*
*looks up* oh hey, I rewrote that file so now it's roughly 1200 lines, 550 of which are code. I'm happy with the way it is now, because it's self-documenting.


Anyway, I'm here to show something new:
2XOkgwUGaSE
see if you can guess what I'm working on. :-3
No, I'm not making animations, and yes, the geometry shown is very wtf. You'll see...

Sever
October 20th, 2008, 12:43 AM
Oh I know what you're working on... heh heh heh!
mainly because you've told me, lol

Rob Oplawar
October 20th, 2008, 01:32 PM
*see heptagon post above*
I have a theory for how do geometrically construct a heptagon, but I can't seem to prove that it's correct. I have 6 pages of scribbled trig and algebra, and so far all I've managed to do is derive 3 trigonometric identities. ARG! How frustrating.
I had one equation that looked really promising- it was all in terms of alpha, which I'm trying to prove is equal to pi/7, but it simplified all the way down to
sin^2(alpha) +cos^2(alpha)=1. DAMMIT.

e: wtf, bbcode doesn't support subscript and superscript? >: (

klange
October 20th, 2008, 03:33 PM
Read up: http://mathworld.wolfram.com/Heptagon.html
(It is entirely impossible to construct a heptagon using pure Greek construction. But it's easy when you are given a fixed distance to copy off of (http://random.oasis-games.com/heptagon_medium.png))

Hotrod
October 20th, 2008, 05:57 PM
That animation looks quite nice, keep it up!

teh lag
October 20th, 2008, 06:07 PM
That animation looks quite nice, keep it up!


I'm not making animations

Those are the H1 animations... :v:

Rob Oplawar
October 20th, 2008, 09:47 PM
Yes, but where's the proof that a heptagon is not constructible?
You can't say "Nobody knows of a method therefore it can't be done". Not that I really doubt that it's true that you can't construct a regular heptagon with Greek construction, but I won't be content until I see an actual proof.
The method I'm using sort of fudges the rules of Greek construction, and it;s quite similar to the method you linked me.
And yeah, Hotrod, those are H1 animations. I imported them into my file to test if they are going to clip my geometry. They do, but no more than they already clipped the original pelican.

klange
October 21st, 2008, 04:19 AM
Yes, but where's the proof that a heptagon is not constructible?
You can't say "Nobody knows of a method therefore it can't be done". Not that I really doubt that it's true that you can't construct a regular heptagon with Greek construction, but I won't be content until I see an actual proof.
The method I'm using sort of fudges the rules of Greek construction, and it;s quite similar to the method you linked me.
And yeah, Hotrod, those are H1 animations. I imported them into my file to test if they are going to clip my geometry. They do, but no more than they already clipped the original pelican.
It was proven algebraically some time ago (1700's?)
(Also, the second link in my post was my construction using a Neusis construction)

Hotrod
October 21st, 2008, 04:59 PM
Oops, I must have skipped over that last line where you said that, my bad.

Nice...Pelican? Marine? Ass?

Rob Oplawar
October 21st, 2008, 07:49 PM
It was proven algebraically some time ago (1700's?)
I suspected as much.


(Also, the second link in my post was my construction using a Neusis construction)
*takes a gander* Hm, that looks extremely similar to what I'm doing. I think it's essentially the same thing, although I can't seem to discern the steps you used to construct that.
Also, what program are you using to do that?
Also also, I still can't seem to derive the algebraic proof of why that method works. Sigh.

klange
October 21st, 2008, 08:40 PM
*takes a gander* Hm, that looks extremely similar to what I'm doing. I think it's essentially the same thing, although I can't seem to discern the steps you used to construct that.
Also, what program are you using to do that?
First I generate the angle pi/7 using the Neusis construction. Then I construct a circle at the outer edge, followed by a mirror of the pi/7. This gets me part of a 14ngon, which I can then cut down to a heptagon and then draw the inner circle. From there it's a bunch of equally sized circles to get myself the rest of the way around.

The lack of pure accuracy is because I drew it all in Inkscape. Didn't want to bother with a CAD, and I don't have any geometry-specific apps with me.

Rob Oplawar
October 22nd, 2008, 11:47 AM
This is directed mostly at p0lar/Admiral Bacon (for they are fellow PHPers), but anybody who knows a bit about software architecture design is welcome to chip in.

So as you may already know, I am writing my own open-source forum software (pretty much just for the hell of it, as I realize belatedly that there are plenty of quite good open source forums out there already).
One of the trickiest problems I've run into so far is localization. I can't seem to get a good pattern for it to fit in with my other code.

I'm doing some things kind of strangely right now- I'm experimenting with __autoload (for a couple of reasons- 1st to reduce the size of the include blocks at the head of my code and also allow a script to dynamically decide which files it needs to include, so that those that aren't used on a specific load can be left out).

So anyway, my forum has many different modules which may be added, removed, and expanded at will by both the site administrator and the user, which is why autoload is so great for that. But when I use autoload to load a module, it also loads the language file (and any other required resources) for that module.

So here's my problem: before loading any language files, I have to specify the language I want. But the language is user specifiable, so in order to get the preferred language I have to load the user module (the user login/preferences system is implemented as a module so that it can be expanded or entirely replaced by the site administrator, to allow more customizeability).


As I was typing this, though, I realized the solution- the way I have implemented it, the localization loading is part of the framework, which all modules depend on, so I could simply have the user module specify the initial language as it is being loaded--

no, that won't work- if I'm depending on autoload, other modules are quite likely to be loaded first.

I think any way I go about this, the User module is going to have to be manually loaded and the language files manually selected, after which modules can be autoloaded.


What do you guys think?

Especially AdmiralBacon- I saw that your forum supports localization. How did you go about implementing that?

edit: I got it working.
Oh my goddness, it is quite epic.

here's what the headers of all the view scripts look like now:

require_once('business/framework.php');
mysqliSession::initiate(); //My equivalent of session_start, using mysql in lieu of files.
loadLanguageFile();

I'm considering making a class to encapsulate framework functions such as loadLanguageFile(), or maybe I might just put them in a namespace; either way it's likely to become Framework::loadLanguageFile();

well, you guys like? I love php. It makes me go :pervert:.

edit again: hm. I don't think I ever call mysqliSession::initiate() and loadLanguageFile() separately-- do you suppose I ought to have mysqliSession::initiate() call loadLanguageFile() before returning? The dependency goes in the right direction...
Actually, no, I won't do that, because I don't want the session handler to be so strongly coupled.

Rob Oplawar
October 29th, 2008, 11:50 AM
EUREKA!

For about a year and a half now I've had the lurking problem of recursive database queries to fetch arbitrary forum subtrees. Until recently, I've been pretty much ignoring it, but for the past few weeks I've been wracking my brain for a solution. I wasn't happy with my previous solution of simply forbidding arbitrary subtree lookups and only allowing the user to view a thread in its entirety or a single post within the thread or a straight chain of replies to a single post.

But today I solved it! I added a single indexed field to the database, which only adds a small size and insert time overhead, and bingo! It now takes two queries to lookup an arbitrary subtree: one query to lookup information on the root node, and a second query to fetch all of its descendants based on the information found.

Considering that most of the time it takes to execute a SELECT SQL query comes from the network communication and/or context switching, this reduces my query time from quadratic (query for the node, then all its children, then its children's children, etc) to CONSTANT.

Of course this optimization comes with a couple of drawbacks, the primary drawback being increased insert time. In the worst case, an insert causes an update on all descendants of the parent node of the new node being inserted, which takes O(n) longer than the best case insert. But considering the best case insert is constant time, and the insert cases are extremely biased towards the best case side, and also considering that forum-goers are more willing to wait a few seconds while their post is inserted than to wait a few seconds trying to load the next page of results, I am quite happy with this result.

Holy shit, I am damn pleased with myself.




Also, on the subject of that localization stuff:
It is working flawlessly, it is awesome, and all of my file headers look like this:

require_once('business/framework.php');
This forum of mine just got a whole lot better. Booyah!

Heathen
October 29th, 2008, 12:04 PM
Congrats.....?

ExAm
October 29th, 2008, 02:29 PM
EUREKA!The geekiness of this post is waaaaay over my level ;_;

Rob Oplawar
January 10th, 2009, 03:51 PM
function displayTree(&$array,$indent='') {
echo "$indent".$array['letter']."\n";
foreach($array['child_array'] as $child)
$this->displayTree($child,$indent);
}

$result=TreeRow::$dbLink->query("SELECT * FROM `" . MYSQLI_TEST_TABLE . "` WHERE 1 ORDER BY tree_index ASC, treesort_index ASC");
$rows = array(0=>array('child_array'=>array()));
while($row=$result->fetch_assoc()) {
$row['child_array']=array();
$rows[$row['my_index']]=$row;
$rows[$row['parent_index']]['child_array'][$row['my_index']]=&$rows[$row['my_index']];
}
displaySubtree($rows[0]);
AWESOME! Reference variables make this so much easier.
(the above code fetches rows from an associative database and returns them reorganized into their tree structure)

Output:

a
b
c
d
e
f
g
h
i
j
k
l
m
n

ExAm
January 10th, 2009, 04:31 PM
Code should be defined as "A shitload of input for a tiny output".

Rob Oplawar
January 10th, 2009, 11:15 PM
This is for debug/testing purposes.
Oh, the things that shitload of input can do... :D
The way I know I formed the database table right is that it takes very little code to do some extremely cool stuff with it.

e: OH GOD my code exploded. I ended up with an array referencing itself in one of its members. It looks like this:


$x = array('x' =>
array('x' =>
array('x' =>
array('x' =>
...
)
)
)
)


print_r is very nice- it actually printed out the text *RECURSION* instead of just entering into an infinite loop! That saved me several minutes of head scratching.

Rob Oplawar
May 19th, 2009, 07:22 PM
Bump. I maed a quine (http://en.wikipedia.org/wiki/Quine_%28computing%29).

http://greeble.net/quine.php
(view source to see it correctly, because by default php under apache sends the mime type as html, so your browser incorrectly displays the result)

Or you could just look at the code here. :rolleyes:

<?php $str='<?php $str=\'%s\';
printf($str,str_replace(chr(39
),chr(92).chr(39),$str));print
("?>");//A Quine by Oplawar.';
printf($str,str_replace(chr(39
),chr(92).chr(39),$str));print
("?>");//A Quine by Oplawar.?>

Rob Oplawar
August 12th, 2009, 08:44 PM
ITT: Rob pretends he's a photographer.

All Images: http://spacebrick.net/pictures/blog_gallery/Jerry/

My favorites (insert witty remark about slow connections here):

http://spacebrick.net/pictures/blog_gallery/Jerry/CIMG0916.JPG
http://spacebrick.net/pictures/blog_gallery/Jerry/CIMG0929.JPG
http://spacebrick.net/pictures/blog_gallery/Jerry/CIMG0939.JPG
http://spacebrick.net/pictures/blog_gallery/Jerry/CIMG0941.JPG
http://spacebrick.net/pictures/blog_gallery/Jerry/CIMG0924.JPG


He just sat there as though he knew he was posing for pictures. Good Jerry!
e: In fact, at first I had placed him on the lit side of the post, and he immediately crawled around the edge-- he knew better than me where to find good lighting! :)

Yes, this means he has been released now.

kid908
August 12th, 2009, 08:49 PM
OMFG it's Jerry. I always though Jerry was a mouse tho.

Some of the photos look a bit over exposed.

Maybe work on the focusing a bit?

Overall, looks decent.

Rob Oplawar
August 12th, 2009, 08:52 PM
Yah I'm no good with shutter speeds. Dammit Jim, I'm a doctor, not a photographer!

e: Man, any photographer who knows what he's doing can laugh at me, but still, I'm really happy at the level of detail I got. I mean, all I had to do was point and click. I love digital cameras.

ee:
what does it eat? small rabbits and lost children?
lol

Scooby Doo
August 13th, 2009, 11:13 AM
more pics dood...

looks good though :)

Reaper Man
August 13th, 2009, 11:56 AM
The last pic is awesomely composed, nice job!

Rob Oplawar
August 13th, 2009, 05:40 PM
Thanks!
I would have taken more like that, but I was afraid he was going to fall on my hand. :rolleyes:

Rob Oplawar
September 28th, 2009, 03:30 PM
Have some doodles! >:U
http://photos-c.ak.fbcdn.net/hphotos-ak-snc1/hs263.snc1/9026_770749365033_10240225_45112954_3265766_n.jpg
http://photos-g.ak.fbcdn.net/hphotos-ak-snc1/hs243.snc1/9026_770748312143_10240225_45112854_2852286_n.jpg
http://photos-b.ak.fbcdn.net/hphotos-ak-snc1/hs263.snc1/9026_770747678413_10240225_45112777_3147333_n.jpg

Rob Oplawar
November 16th, 2009, 01:53 AM
Bump and triple post.

I recently updated my company website- it's one of my more rushed designs:
http://deepspacesystems.com
It's currently live, but I'm still looking for ways to improve it. Thoughts? I'm aware it's not exactly professional work- I'm a web developer, not a web designer.

Oh, and I've only tested in Firefox and IE 6, both running on Linux (explorer via wine). I fully expect the design to break in other browsers- as it is, the menu doesn't work in IE 6... Can any CSS gurus help me clean up the layout? While we're at it, suggestions on changing the HTML?

e: by the way, that rover graphic is a 3D model I made for the company a year or two ago. The design belongs to the company, so I'll have to get permission to share renders and/or details about the design. I'll try and do that so I can put some up in this thread.

ExAm
November 16th, 2009, 03:16 AM
Is it really necessary to point out that it's owned by a woman?

paladin
November 16th, 2009, 04:25 AM
Is it really necessary to point out that it's owned by a woman?


My thoughts exactly.:raise:

Rob Oplawar
November 16th, 2009, 10:24 AM
I didn't write the copy, but yes, it's pretty bad. The bosses are currently writing up new text for the whole site.
The reason they mention that it's woman-owned is because there is a tax law that regards a company that is owned by a woman as "disadvantaged", and therefore gives the company tax breaks. Lmao, sexist laws trying to counteract sexism.

Rob Oplawar
December 12th, 2009, 11:16 PM
The primary model used in my computer animation final project:
http://spacebrick.net/pictures/blog_gallery/robot.jpg

The animation came out all wonky. I'm going to continue to add detail to the model, and eventually make a super-awesome animation with it. Someday.

NuggetWarmer
December 13th, 2009, 02:47 PM
Cool.

Rob Oplawar
January 9th, 2010, 11:22 AM
This isn't exactly a WIP, but I'm not about to make another studio thread.
I made this cup/pencil holder in middle school:
http://spacebrick.net/pictures/blog_gallery/lizard1.jpg
http://spacebrick.net/pictures/blog_gallery/lizard2.jpg

CrAsHOvErRide
January 9th, 2010, 11:28 AM
*If you saw something else at first rep here*

il Duce Primo
January 9th, 2010, 08:57 PM
I made one of those not too long ago in my toilet.

Inferno
January 9th, 2010, 10:20 PM
This isn't exactly a WIP, but I'm not about to make another studio thread.
I made this cup/pencil holder in middle school:
*IMGs*

Guess what!

Instead of making a clever joke I'm just going to state the obvious.

It looks like that bowl....
...Was a piece of shit


YEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAA

Roostervier
January 9th, 2010, 11:15 PM
robs wips? more like jimmys wips

Rob Oplawar
January 10th, 2010, 10:23 AM
my feelings... :smith:

Rob Oplawar
March 16th, 2010, 03:05 AM
Tonight my insomnia resulted in, among other things, a tiny bit of productive learning.
http://spacebrick.net/pictures/blog_gallery/greeble_ray.png
I used my greeble logo model to learn about mental ray lights and materials in max. In addition to this one, I made several renders with metal, neon, glass, water, etc materials applied to various parts of the logo. :P

e: the render's not great, and I don't plan on actually using it- if I did I would continue to tweak several things I still don't like about it- but it sure puts my original version of the logo to shame, lol:
http://greeble.net/web/default/logo_large.png