• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

STEAM 2013 Announcements & Updates: 6, GFWL: 0 | Number of hours played bugged

Status
Not open for further replies.

Stumpokapow

listen to the mad man
Sadly, not everybody can read code.

if everybody can make wild accusations about data security, everybody can understand data security well enough to audit simple, very plain-to-read code for the programs they're making wild accusations about data security about.
 

alr1ght

bish gets all the credit :)
AVNTom added cards. It seems they had a fanart contest for them. Pretty cool.

Tg9nTTA.png
 
if everybody can make wild accusations about data security, everybody can understand data security well enough to audit simple, very plain-to-read code for the programs they're making wild accusations about data security about.

I just asked a question jeez, there's no need to be uppity about it.
 

Copons

Member
Man, it uses the jQuery library? Screw that fishy piece of credit card number and bank account info stealing program!

Yeah, jQuery is the shit. I heard it uses GFWL for event listeners so while you wait for some kind of mouseover your Xbox friends can phish your credit card details or something.


BTW, I'm 2 hours in Dark Souls and it's like... I dunno, I'm scared to go to the bathroom because my cat could assault me from behind the door (and she actually does stuff like these) and I would lose all souls and stuff I earned since the last bonfire, that was like 20 years ago that one time I went in the wood with a tent.

Correct if I'm wrong: bonfires are freakingly SCARCE or is it just my eyes that aren't able to spot them?
Because I found this bonfire in the citadel and then I go through it, I pass a white smoky door thingy and I'm on a wall path and on the other hand there is this huge troll or something that kick the shit out of me and I'm like unable to reach him with a good amount of potions.
Also, in the citadel there is this knight blocking a passage and a writing that say "prepare for a ranged fight" or something. I have a crossbow but no arrows and he hits super hard, omg what to do what to do.

Nice game btw, thank you Accent, bravo bravo, I'm hooked and shit, omg who even cares about Steambox
 

kidko

Member
I guess I just don't understand how going from Windows to Linux is such a great thing. Microsoft bashing aside, almost everyone has Windows installed, how many actually use Linux as an OS? Will we all need either two computers or a dual boot setup very soon? Will games made to run natively in SteamOS be excluded from running in the Win client of Steam? Won't this fracture the Steam library and userbase in the near future? How is that going to be a positive thing? The great thing about Steam is having all of the games available in one interface, won't this new SteamOS disrupt one of the best aspects of using Steam in the first place?

Mengy! Don't worry, dude! You sound like you're panicking :)

Valve states in the FAQ that none of this will affect the current Windows-based Steam operations. Everything you know and love about Steam will continue as it always has. You can continue using Windows and Steam and completely ignore the Steam OS stuff.

SteamOS simply adds new ways to enjoy what Steam already provides for PC. Optionally.
 

Stumpokapow

listen to the mad man
I just asked a question jeez, there's no need to be uppity about it.

One of your fellow members works very hard to make that extension. He makes it available for free, including the code that he works on. It's OK to be worried about privacy issues, but when you express yourself in a way that's insulting to other people they're going to find you to be a buzz-kill. It also happens that you're wrong about your concerns. People took the time to explain that you were wrong. I suggested that if this was important to you, to do the legwork yourself.

I'm not being uppity.

Here, here's me doing your job. This is 100% of the code related to tallying your purchases, and I've added plain English comments to every single line so you can understand exactly what it's doing (everything after the "//" in each line is considered a comment in Javascript and most language with C-derived syntax):
Code:
function account_total_spent() {
	// adds a "total spent on Steam" to the account details page
	storage.get(function(settings) { // check chrome's storage to see if the user has set the option related to showing the total spent
		if (settings.showtotal === undefined) { settings.showtotal = true; storage.set({'showtotal': settings.showtotal}); } // if the user hasn't picked either way, assume they want to see the total spent
		if (settings.showtotal) { // if the user wants to see the total spent
			if ($('.transactionRow').length !== 0) { // if the user has bought something
				var currency_symbol = $(".accountBalance").html(); // figure out which currency the user's account balance is in
				currency_symbol = currency_symbol.match(/(?:R\$|\$|€|£|pуб)/)[0]; // figure out currency continued

				totaler = function (p, i) { // this is a function we'll use later to sum up prices
					if (p.innerHTML.indexOf("class=\"transactionRowEvent walletcredit\">") < 0) { // given a particular transaction
						var priceContainer = $(p).find(".transactionRowPrice"); // find out much we spent on this transaction
						if (priceContainer.length > 0) { // if we spent something
							var priceText = $(priceContainer).text(); // extract the price
							var regex = /(\d+[.,]\d\d+)/, // make sure the price is in the appropriate format
								price = regex.exec(priceText); // extract the price numerically

							if (price !== null && price !== "Total") { // verify we're not getting junk data
								var tempprice = price[0].toString(); // convert back, forcing it to be a string
								tempprice = tempprice.replace(",", "."); // switch , for . to deal with european comma price nonsense
								return parseFloat(tempprice); // convert it into a numerical value and return
							}
						}
					}
				};

				game_prices = jQuery.map($('#store_transactions .transactionRow'), totaler); // sum up all game prices
				ingame_prices = jQuery.map($('#ingame_transactions .transactionRow'), totaler); // sum up all IAP prices
				market_prices = jQuery.map($('#market_transactions .transactionRow'), totaler); // sum up all market prices

				var game_total = 0.0; // start our total game prices at 0
				var ingame_total = 0.0; // start our total IAP prices at 0
				var market_total = 0.0; // start our total marketplace prices at 0

				jQuery.map(game_prices, function (p, i) { game_total += p; }); // take the prices we got above and add them into our running total one by one
				jQuery.map(ingame_prices, function (p, i) { ingame_total += p; }); // ditto for IAP
				jQuery.map(market_prices, function (p, i) { market_total += p; }); // ditto for marketplace

				total_total = game_total + ingame_total + market_total; // your grand total is the sum of your subtotals

				if (currency_symbol) { // make sure we've got a reference currency
					switch (currency_symbol) { // which currency do we have?
						case "&#8364;": // euro
							game_total = formatMoney(parseFloat(game_total), 2, currency_symbol, ".", ",", true) // format total game spend in the right currency with the comma nonsense
							ingame_total = formatMoney(parseFloat(ingame_total), 2, currency_symbol, ".", ",", true) // format IAP spend in the right currency with the comma nonsense
							market_total = formatMoney(parseFloat(market_total), 2, currency_symbol, ".", ",", true) // format market spend in the right currency with the comma nonsense
							total_total = formatMoney(parseFloat(total_total), 2, currency_symbol, ".", ",", true) // format grand total with the comma nonsense
							break;

						case "p&#1091;&#1073;": // ditto for rubles
							currency_symbol = " " + currency_symbol;
							game_total = formatMoney(parseFloat(game_total), 2, currency_symbol, ".", ",", true)
							ingame_total = formatMoney(parseFloat(ingame_total), 2, currency_symbol, ".", ",", true)
							market_total = formatMoney(parseFloat(market_total), 2, currency_symbol, ".", ",", true)
							total_total = formatMoney(parseFloat(total_total), 2, currency_symbol, ".", ",", true)
							break;

						default: // everything else uses periods because we're god fearing americans U S A U S A
							game_total = formatMoney(parseFloat(game_total), 2, currency_symbol, ",", ".", false)
							ingame_total = formatMoney(parseFloat(ingame_total), 2, currency_symbol, ",", ".", false)
							market_total = formatMoney(parseFloat(market_total), 2, currency_symbol, ",", ".", false)
							total_total = formatMoney(parseFloat(total_total), 2, currency_symbol, ",", ".", false)
							break;
					}

					var html = '<div class="accountRow accountBalance accountSpent">'; // add the code to display your total to the page
					html += '<div class="accountData price">' + game_total + '</div>'; // game total
					html += '<div class="accountLabel">' + localized_strings[language].store_transactions + ':</div></div>'; // putting the words Store Transactions in the right language
					html += '<div class="accountRow accountBalance accountSpent">'; // add code to display iap total
					html += '<div class="accountData price">' + ingame_total + '</div>'; // iap total
					html += '<div class="accountLabel">' + localized_strings[language].game_transactions + ':</div></div>'; // putting words Game Transactions in the right language
					html += '<div class="accountRow accountBalance accountSpent">'; // add code to display marketplace total
					html += '<div class="accountData price">' + market_total + '</div>'; // marketplace total
					html += '<div class="accountLabel">' + localized_strings[language].market_transactions + ':</div></div>'; // putting words Market Transactions in the right language
					html += '<div class="inner_rule"></div>'; // horizontal line between the above and the below
					html += '<div class="accountRow accountBalance accountSpent">'; // grand total
					html += '<div class="accountData price">' + total_total + '</div>'; // grand total
					html += '<div class="accountLabel">' + localized_strings[language].total_spent + ':</div></div>'; // words total spent in right language
					html += '<div class="inner_rule"></div>'; // horizontal line

					$('.accountInfoBlock .block_content_inner .accountBalance').before(html); // stick the code we just generated in the right place so it appears where we want on the page
				}
			}
		}
	});
}

function formatMoney (number, places, symbol, thousand, decimal, right) { // format money in the right format
	places = !isNaN(places = Math.abs(places)) ? places : 2; // if we didn't specify a number of decimal places, it's two
	symbol = symbol !== undefined ? symbol : "$"; // if we didn't specify a currency symbol, guess $
	thousand = thousand || ","; // if we didn't specify a thousands unit separator, guess ,
	decimal = decimal || "."; // if we didn't specify a decimal unit separator, guess .
	var negative = number < 0 ? "-" : "", // if the number is negative, mark it with a negative
		i = parseInt(number = Math.abs(+number || 0).toFixed(places), 10) + "", // converts number to a positive version of itself no more than ten decimal places
		j = (j = i.length) > 3 ? j % 3 : 0; // figure out how many digits there are used for inserting the , into the right place in the number
	if (right) { // all remaining code inserts comma into the right places and returns the final number with the currency symbol and stuff
		return negative + (j ? i.substr(0, j) + thousand : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousand) + (places ? decimal + Math.abs(number - i).toFixed(places).slice(2) + symbol: "");
	} else {
		return symbol + negative + (j ? i.substr(0, j) + thousand : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousand) + (places ? decimal + Math.abs(number - i).toFixed(places).slice(2) : "");
	}
};

As you can see there is no "steal your information and send it to the NSA" comment added. So now you know your fears, while well-intentioned, are not correct... and you don't need to stay far away from the extension.
 

BruteUA

Member
hello
to join the steam group what I have to do :- /

im new here D:

You must first swear an oath of loyalty, and renounce Origin, GFWL, Uplay, etc. You must own Bad Rats and have at least six hours of playtime. Finally, you must give us the link to your Steam profile.

Actually, you can skip the first two steps and just paste your Steam profile and somebody will add you.
 

jshackles

Gentlemen, we can rebuild it. We have the capability to make the world's first enhanced store. Steam will be that store. Better than it was before.
Getting people to understand that Enhanced Steam isn't stealing their account information has been the #1 hurdle I've had with most skeptical users, and the primary reason I had in releasing the source code of the extension.

It really just started out as a fun project and has grown into something really cool that now occupies a good portion of my free time without compensation. It's worth it though, because the people that do use it really love it and I've got great feedback pretty much universally.
 
Code:
...

function formatMoney (number, places, symbol, thousand, decimal, right) { // format money in the right format
	places = !isNaN(places = Math.abs(places)) ? places : 2; // if we didn't specify a number of decimal places, it's two
	symbol = symbol !== undefined ? symbol : "$"; //[B] if we didn't specify a currency symbol, guess $[/B]

As you can see there is no "steal your information and send it to the NSA" comment added. So now you know your fears, while well-intentioned, are not correct... and you don't need to stay far away from the extension.

That's what they pay him in.

Seriously, if there was anything even slightly dodgy about this extension, it would have been called by now. It's a great piece of work.
 

Joe Molotov

Member
Yeah, jQuery is the shit. I heard it uses GFWL for event listeners so while you wait for some kind of mouseover your Xbox friends can phish your credit card details or something.


BTW, I'm 2 hours in Dark Souls and it's like... I dunno, I'm scared to go to the bathroom because my cat could assault me from behind the door (and she actually does stuff like these) and I would lose all souls and stuff I earned since the last bonfire, that was like 20 years ago that one time I went in the wood with a tent.

Correct if I'm wrong: bonfires are freakingly SCARCE or is it just my eyes that aren't able to spot them?
Because I found this bonfire in the citadel and then I go through it, I pass a white smoky door thingy and I'm on a wall path and on the other hand there is this huge troll or something that kick the shit out of me and I'm like unable to reach him with a good amount of potions.
Also, in the citadel there is this knight blocking a passage and a writing that say "prepare for a ranged fight" or something. I have a crossbow but no arrows and he hits super hard, omg what to do what to do.

Nice game btw, thank you Accent, bravo bravo, I'm hooked and shit, omg who even cares about Steambox

I hope you're not using DSfix, that shit looks pretty shady, bro. Probably installs porn dialers and trojans and backdoors and GFWL.
 

Lord_Byron

Neo Member
post your steam ID / URL

http://steamcommunity.com/id/overlord_45/

thanks :D

You must first swear an oath of loyalty, and renounce Origin, GFWL, Uplay, etc. You must own Bad Rats and have at least six hours of playtime. Finally, you must give us the link to your Steam profile.

Actually, you can skip the first two steps and just paste your Steam profile and somebody will add you.

LoL

okay, i'll add bad rats in wishlist, it's something
 
Who wants a virus?

ModBot said:
I am giving away a Steam key. To enter this giveaway, send a PM to ModBot with any subject line. In the body, copy and paste the entire line below containing the key.

Rules for this Giveaway:
- If you won a game from ModBot in the last day, you are not eligible for this giveaway.
- This giveaway has a manual blocklist. The giver has identified members who abuse giveaways and restricted them from participating.
- If the key is already taken you will not receive a reply. Replies may take a minute or two:

header_292x136.jpg

A Virus Named TOM -- MB-A836BAACF70C8929 - Taken by PixyJunket
 
You must first swear an oath of loyalty, and renounce Origin, GFWL, Uplay, etc. You must own Bad Rats and have at least six hours of playtime. Finally, you must give us the link to your Steam profile.

Actually, you can skip the first two steps and just paste your Steam profile and somebody will add you.
I'm gonna attempt to get in on this parade. I would like to get in on the group as well if that'd be alright.
Please, no one gift me Bad Rats, I mean it.
http://steamcommunity.com/id/gundammu/
 

RionaaM

Unconfirmed Member
One of your fellow members works very hard to make that extension. He makes it available for free, including the code that he works on. It's OK to be worried about privacy issues, but when you express yourself in a way that's insulting to other people they're going to find you to be a buzz-kill. It also happens that you're wrong about your concerns. People took the time to explain that you were wrong. I suggested that if this was important to you, to do the legwork yourself.

I'm not being uppity.

Here, here's me doing your job. This is 100% of the code related to tallying your purchases, and I've added plain English comments to every single line so you can understand exactly what it's doing (everything after the "//" in each line is considered a comment in Javascript and most language with C-derived syntax):
Code:
function account_total_spent() {
	// adds a "total spent on Steam" to the account details page
	storage.get(function(settings) { // check chrome's storage to see if the user has set the option related to showing the total spent
		if (settings.showtotal === undefined) { settings.showtotal = true; storage.set({'showtotal': settings.showtotal}); } // if the user hasn't picked either way, assume they want to see the total spent
		if (settings.showtotal) { // if the user wants to see the total spent
			if ($('.transactionRow').length !== 0) { // if the user has bought something
				var currency_symbol = $(".accountBalance").html(); // figure out which currency the user's account balance is in
				currency_symbol = currency_symbol.match(/(?:R$|$|€|£|p&#1091;&#1073;)/)[0]; // figure out currency continued

				totaler = function (p, i) { // this is a function we'll use later to sum up prices
					if (p.innerHTML.indexOf("class="transactionRowEvent walletcredit">") < 0) { // given a particular transaction
						var priceContainer = $(p).find(".transactionRowPrice"); // find out much we spent on this transaction
						if (priceContainer.length > 0) { // if we spent something
							var priceText = $(priceContainer).text(); // extract the price
							var regex = /(d+[.,]dd+)/, // make sure the price is in the appropriate format
								price = regex.exec(priceText); // extract the price numerically

							if (price !== null && price !== "Total") { // verify we're not getting junk data
								var tempprice = price[0].toString(); // convert back, forcing it to be a string
								tempprice = tempprice.replace(",", "."); // switch , for . to deal with european comma price nonsense
								return parseFloat(tempprice); // convert it into a numerical value and return
							}
						}
					}
				};

				game_prices = jQuery.map($('#store_transactions .transactionRow'), totaler); // sum up all game prices
				ingame_prices = jQuery.map($('#ingame_transactions .transactionRow'), totaler); // sum up all IAP prices
				market_prices = jQuery.map($('#market_transactions .transactionRow'), totaler); // sum up all market prices

				var game_total = 0.0; // start our total game prices at 0
				var ingame_total = 0.0; // start our total IAP prices at 0
				var market_total = 0.0; // start our total marketplace prices at 0

				jQuery.map(game_prices, function (p, i) { game_total += p; }); // take the prices we got above and add them into our running total one by one
				jQuery.map(ingame_prices, function (p, i) { ingame_total += p; }); // ditto for IAP
				jQuery.map(market_prices, function (p, i) { market_total += p; }); // ditto for marketplace

				total_total = game_total + ingame_total + market_total; // your grand total is the sum of your subtotals

				if (currency_symbol) { // make sure we've got a reference currency
					switch (currency_symbol) { // which currency do we have?
						case "€": // euro
							game_total = formatMoney(parseFloat(game_total), 2, currency_symbol, ".", ",", true) // format total game spend in the right currency with the comma nonsense
							ingame_total = formatMoney(parseFloat(ingame_total), 2, currency_symbol, ".", ",", true) // format IAP spend in the right currency with the comma nonsense
							market_total = formatMoney(parseFloat(market_total), 2, currency_symbol, ".", ",", true) // format market spend in the right currency with the comma nonsense
							total_total = formatMoney(parseFloat(total_total), 2, currency_symbol, ".", ",", true) // format grand total with the comma nonsense
							break;

						case "p&#1091;&#1073;": // ditto for rubles
							currency_symbol = " " + currency_symbol;
							game_total = formatMoney(parseFloat(game_total), 2, currency_symbol, ".", ",", true)
							ingame_total = formatMoney(parseFloat(ingame_total), 2, currency_symbol, ".", ",", true)
							market_total = formatMoney(parseFloat(market_total), 2, currency_symbol, ".", ",", true)
							total_total = formatMoney(parseFloat(total_total), 2, currency_symbol, ".", ",", true)
							break;

						default: // everything else uses periods because we're god fearing americans U S A U S A
							game_total = formatMoney(parseFloat(game_total), 2, currency_symbol, ",", ".", false)
							ingame_total = formatMoney(parseFloat(ingame_total), 2, currency_symbol, ",", ".", false)
							market_total = formatMoney(parseFloat(market_total), 2, currency_symbol, ",", ".", false)
							total_total = formatMoney(parseFloat(total_total), 2, currency_symbol, ",", ".", false)
							break;
					}

					var html = '<div class="accountRow accountBalance accountSpent">'; // add the code to display your total to the page
					html += '<div class="accountData price">' + game_total + '</div>'; // game total
					html += '<div class="accountLabel">' + localized_strings[language].store_transactions + ':</div></div>'; // putting the words Store Transactions in the right language
					html += '<div class="accountRow accountBalance accountSpent">'; // add code to display iap total
					html += '<div class="accountData price">' + ingame_total + '</div>'; // iap total
					html += '<div class="accountLabel">' + localized_strings[language].game_transactions + ':</div></div>'; // putting words Game Transactions in the right language
					html += '<div class="accountRow accountBalance accountSpent">'; // add code to display marketplace total
					html += '<div class="accountData price">' + market_total + '</div>'; // marketplace total
					html += '<div class="accountLabel">' + localized_strings[language].market_transactions + ':</div></div>'; // putting words Market Transactions in the right language
					html += '<div class="inner_rule"></div>'; // horizontal line between the above and the below
					html += '<div class="accountRow accountBalance accountSpent">'; // grand total
					html += '<div class="accountData price">' + total_total + '</div>'; // grand total
					html += '<div class="accountLabel">' + localized_strings[language].total_spent + ':</div></div>'; // words total spent in right language
					html += '<div class="inner_rule"></div>'; // horizontal line

					$('.accountInfoBlock .block_content_inner .accountBalance').before(html); // stick the code we just generated in the right place so it appears where we want on the page
				}
			}
		}
	});
}

function formatMoney (number, places, symbol, thousand, decimal, right) { // format money in the right format
	places = !isNaN(places = Math.abs(places)) ? places : 2; // if we didn't specify a number of decimal places, it's two
	symbol = symbol !== undefined ? symbol : "$"; // if we didn't specify a currency symbol, guess $
	thousand = thousand || ","; // if we didn't specify a thousands unit separator, guess ,
	decimal = decimal || "."; // if we didn't specify a decimal unit separator, guess .
	var negative = number < 0 ? "-" : "", // if the number is negative, mark it with a negative
		i = parseInt(number = Math.abs(+number || 0).toFixed(places), 10) + "", // converts number to a positive version of itself no more than ten decimal places
		j = (j = i.length) > 3 ? j % 3 : 0; // figure out how many digits there are used for inserting the , into the right place in the number
	if (right) { // all remaining code inserts comma into the right places and returns the final number with the currency symbol and stuff
		return negative + (j ? i.substr(0, j) + thousand : "") + i.substr(j).replace(/(d{3})(?=d)/g, "$1" + thousand) + (places ? decimal + Math.abs(number - i).toFixed(places).slice(2) + symbol: "");
	} else {
		return symbol + negative + (j ? i.substr(0, j) + thousand : "") + i.substr(j).replace(/(d{3})(?=d)/g, "$1" + thousand) + (places ? decimal + Math.abs(number - i).toFixed(places).slice(2) : "");
	}
};

As you can see there is no "steal your information and send it to the NSA" comment added. So now you know your fears, while well-intentioned, are not correct... and you don't need to stay far away from the extension.
Oh shit. It's already hard enough to comment my own (shitty) code/scripts, I couldn't imagine commenting someone else's. Hat's off to you, Stump.

Though it would have been funny if you added a random line with a "This is the function that saves your neighbor's granddad's coworker's dog's name on Jshackle's Death Note" comment or something like that.

Who wants a virus?
I think Jadedcynic does :p
 

jshackles

Gentlemen, we can rebuild it. We have the capability to make the world's first enhanced store. Steam will be that store. Better than it was before.
Though it would have been funny if you added a random line with a "This is the function that saves your neighbor's granddad's coworker's dog's name on Jshackle's Death Note" comment or something like that.

My favorite comment was obviously

// everything else uses periods because we're god fearing americans U S A U S A
 

Copons

Member
K&R bracing style? I didn't know you were one of them, jshackles,

Didn't K&R use to put the opening brace below the instruction?
Or it was just for functions?

Maaaaan, I don't even know where the heck is my K&R. I miss him so much even if I don't write a single line of C since the 90s... :(
 

Baleoce

Member
I wish Steam would take the soundtrack functionality a step further and actually implement a proper store page for soundtracks. It has it for software now, and it would be pretty damn neat having Steam as a reliable base for PC (or even all-format) soundtracks.

It makes a lot of sense seen as SteamOS is trying to paint the picture of a media hub. Soundtrack sales especially would be so tempting.
 

morningbus

Serious Sam is a wicked gahbidge series for chowdaheads.
JShackles, can I get a way to show everyone who has wishlisted a game except for SteveWinwood?

Dude wishlists everything.
 

RionaaM

Unconfirmed Member
My favorite comment was obviously
HAHAHA, I hadn't seen that because I was (am) posting from my phone. Now I hope you add that to the official source code, lol

Wait... is he making fun of decimal commas? That's not nice, next he'll say that Fahrenheit is better than Celsius (never trust a person who says that).
 
Touch Fuzzy, Get Dizzy.

Bloody Diaper said:
I am giving away a Steam key. To enter this giveaway, send a PM to ModBot with any subject line. In the body, copy and paste the entire line below containing the key.

Rules for this Giveaway:
- If you are a lurker you are not eligible for this giveaway. You need five or more posts in either the current Steam thread or the previous one to be eligible
- If you won a game from ModBot in the last day, you are not eligible for this giveaway.
- This giveaway is a LIGHTNING raffle. The winners will be selected by random draw 15 minutes after the draw was created. Any games not claimed after that point will be given away first come first serve.
- If the key is already taken you will not receive a reply. Replies may take a minute or two:

header_292x136.jpg

The Polynomial -- MB-306B82AE51462BD4 - Taken by Purkake4. 11 entrants total.

t1380147385z1.png
 

nexen

Member
Didn't K&R use to put the opening brace below the instruction?
Or it was just for functions?

Maaaaan, I don't even know where the heck is my K&R. I miss him so much even if I don't write a single line of C since the 90s... :(

That's Allman style. It is the correct style.

edit: code formatting holy wars spreading to SteamGAF. Yessss
 

Thorgal

Member
if you win a Give away and you notice that one of the give away's is still unclaimed is it considered unsportsmanlike or wrong to also want to snatch the other one ?
 

morningbus

Serious Sam is a wicked gahbidge series for chowdaheads.
if you win a Give away and you notice that one of the give away's is still unclaimed is it considered unsportsmanlike or wrong to also want to snatch the other one ?

Depending on the rules of the giveaway, you might not be able to. However, if it is open, go for it.
 
I'll take one, thank you, kind sir.

You're quite welcome my good man.


We're on motherfucking SteamGAF.
If we don't like something, we sure as hell rewrite it for good.
Or at least we put hundreds of comments just to screw with strangers.

I always put random silly comments in my code for the poor sap who inherits my code in the future. One of my favorites I came across was something along the lines of:

Code:
        try
        {            
            Something();
        }
        catch (Exception e)
        {
            // TODO: Don't swallow exceptions - DG 1-1-2005
            // TODO: Good advice DG! - DM 2-3-2008
            // TODO: We should probably address this - AA 5-8-2010
            // ... and so on for several lines
        }
 

RionaaM

Unconfirmed Member
Heh. I was always pretty loose with coding style in my previous life managing software, but I would always insist on the one true path ;)
Looking at this fight made me realize I'm extremely inconsistent when it comes to this stuff. I switch between both styles all the time, and I'm very disorganized with comments and variable names.

If source code had a music analogy, mine would be "Revolution 9" (or Floyd's Ummagumma sans "The narrow way").
 

Turfster

Member
Looking at this fight made me realize I'm extremely inconsistent when it comes to this stuff. I switch between both styles all the time, and I'm very disorganized with comments and variable names.

If source code had a music analogy, mine would be "Revolution 9" (or Floyd's Ummagumma sans "The narrow way").

High-five!
Yeah, I'm all over the place on first write too.
Now, on rewrite, I try to stick to a schema for brackets and variable names, but on first write, it just needs to work damn it.
 
Status
Not open for further replies.
Top Bottom