« first day (1341 days earlier)      last day (2078 days later) » 

1:31 PM
c# question:
public event Action OnCompleteOpenEvent;
getting the error just a sec
 
don't call events like that
 
warning CS0067: The event `AbstractMenu<T>.OnCompleteOpenEvent' is never used
but
	protected virtual void OnCompleteOpen()
	{
		IsOpened = true;
		IgnoreInputs = false;

		if(OnCompleteOpenEvent != null)
			OnCompleteOpenEvent();
	}
 
event handlers should be called like that
public event Action OpenEventCompleted;
SomeObject.OpenEventCompleted = someObject_OnOpenEventCompleted;
or something like that
 
well, this is someone else's code
so I'm more annoyed by the warning than the naming :)
 
got it :D
does the warning persist after a build?
 
1:33 PM
anyway, I haven't found anything to remove this error beyond the #pragma suppress
well, this is Unity
 
is the same event defined in a base class?
 
so every time I change a file and go back to unity, i get the warning
 
Do you really need to check if event is null before calling it? I remembered that events were special in this maner.
 
I guess not, otherwise you would have noticed
and the warning would have said so
 
this is a
public abstract class AbstractMenu<T> : ManagerSingleton<T>, IMenu where T : AbstractMenu<T> {
 
1:34 PM
@Lasse yes
 
I remembered wrong then
 
unless you initialize the event with an empty lambda
 
looks like this OnCompleteOpenEvent thing is only defined in this class, AbstractMenu
 
public event EventHandler NewEvent = delegate { };
 
not in the base classes
 
1:35 PM
this ensures the event is never null
so you don't have to check it
@Almo yeah, and a subclass can't directly access a parent's events anyway
you have to wrap them in methods
 
I wonder if it's more efficient to check if it's null or add empty delegate on it
 
@Almo restart Unity, do a clean build, w/e? :D
 
But that's just premature optimization to think about that
 
:D
 
@Lasse I sorta always check for nulls
got used to it
 
1:37 PM
I guess I'll just put up with the warning
They annoy me because in my own code, I set warning = error
 
my iPhone games compile with zero warnings :)
 
My bad habit is that I don't check before I got an exception. Should check for them anyway.
 
:)
 
@Almo I can't compile without warnings
 
1:37 PM
Of course I check if it's obvious to check for null
 
that way when I do get a warning, the number of warnings goes from 0 to 1, not 155 to 156 and say hey! a new warning
 
the Orthello library for Unity has its own
 
fucking great
 
my code doesn't though
 
ok well thanks for looking at the thing
 
1:39 PM
Me not being native english speaker fails me again, what is the concept of a world? If I have several different maps separate from each other, are they considered to be different worlds?
 
@Lasse they could just be different regions
 
But you can travel from region to region just by walking, you can't walk between these maps
 
@Lasse a world should be substantially different from the others
 
I'm just thinking how I should name my classes
 
like, this world is Earth-like
the other is Mars-like, with all sorts of aliens on it
 
1:42 PM
Basically, this is where naming classes like real world objects breaks down
 
Okay, but two worlds can be similar, like have similar plants and animals, but they just have no physical connection to each other, right?
 
And you just have to use something that sorta fits and add a comment with what you mean
 
hello
 
Yeah, I guess I'm going to call these things worlds
 
Lo @joapet99
 
1:45 PM
lo?
 
lo is like yo
 
oh
 
It's hello without the hell
 
no, it's without the hel
 
@Lasse phonetically
 
1:49 PM
> "Whats better in this solution?"

No, one has mentioned here the main reason the "event != null" pattern is avoided. The problem? Race condition!

In a multi-threaded environment these checks seem innocuous but are dangerous. Without putting in an empty delegate you'd have to implement a mutex to perform the check and call in which in my completely non-scientifically proven opinion is more expensive then notifying an empty delegate.
comment on using empty delegates for events vs null checking
 
so it depends on the usage then
 
yeah seems so
 
both are ridiculous silly solutions
use an atomic pointer
god damnit I was just so proud of myself for not being a douche
 
we're talking about C#
 
We should stop talking about C# and start talking about C++, it's ++ so it's obviously better!
 
1:55 PM
I'll use the empty delegate approach for a few weeks and see what downsides/upsides I come upon
 
But C++ users can not C#
(see sharp, got it? heh? hehheh? no?)
 
speaking of C++, this was a nice read: herbsutter.com/elements-of-modern-c-style
I especially like the range for
and std::begin() and std::end() that also work on arrays
 
I just made a Vector3i because I didn't feel like using tuples for creating keys for my dictionary
I wonder if this is the right call
 
If there's a good hasher what could go wrong :P
 
oh well I could also use just plain int for the keys
oh, wait, no
I don't know what the max values are
 
2:06 PM
RT @aksirPP: Ondertussen in België. http://t.co/lsLtDz5zQt
better just post the pic in the tweet
 
@AlexM. what the hell is this
That looks like it would derail the train.
 
no shit
 
@GnomeSlice It looks like it wouldn't even slow the train down.
 
Depends on how big the train is I guess.
 
2:12 PM
yeah the wheel would just cut thru it, the train has so much weight
 
What are they trying to measure, I wonder?
 
hey there
 
@GnomeSlice that's a fire truck
It's most likely a water hose =p
 
I think that's just car tire protection for the hose
 
Why don't they just park the truck on the other side of the rails?
 
2:14 PM
Even "just" the small 612 ones we have driving around here everywhere already weight more than 100t per wagon.
 
@GnomeSlice cause it's a fire truck, they need to be on that side of the rails, maybe to fight a fire?
in The Bridge, 45 secs ago, by Arperum
@KevinvanderVelden I read that the twitterpost was mostly a joke, because that piece of railroad was closed off for a week.
Someone from belgium chimes in!
And a wild @JoshPetrie appears
 
lol the railroad pic now got cross-posted twice
quick, everyone, post it in other places too
 
I posted it to ask someone from belgium about it =p
 
work day over, going to head home
yay
 
@AlexM. done
 
2:40 PM
I just calculated that currently one single world can take up to 1536 terabytes of space if it's completly filled with blocks, and then there can be several worlds.
I think that can count as infinite
There can be 4*4*4 billion chunks filled with 32x32x32 blocks in one world
Should be enough for this
 
I don't think "infinite" means what you think it means. ;)
 
@Almo it's infinite, it just loops
Which may or may not be how the universe is infinite, so what the hell why not!
 
3:00 PM
bah, boss threatened my job
too distracted
sup nerds
 
Hello shotgun
 
anyone know what the"upgrade discount" is for verizon after 2 years into your contract
lol
 
@erebel55 completely dependent on your region
That much I know
 
ahh okay
 
3:10 PM
@Lasse Depends. How fast can a player explore, in terms of chunks per second?
 
Not fast, one block is intended to be one meter, like in minecraft
And there are 32x32x32 blocks in one chunk
 
Estimate, please.
Default Minecraft flying (creative mode) speed is 10.8m/s which translates to about 1 chunk/s when flying diagonally.
 
Well, I think it would be something like 1 meter per second at max, which is about 1.5 chunks per minute
 
Horses are faster, but limited by terrain.
 
But yeah I haven't counted flying
 
3:13 PM
You know, 1m/s could be rather slow unless you're playing a rodent ...
 
lol yeah
well, let's say 3-4 blocks per second then
But anyway, I think you get the idea
 
Jon
 
So ... a slow jog, about 1 chunk every 2 seconds.
That means you need about 158456325028528675187087900672 seconds to explore everything, give or take a few.
 
How's that 1 chunk every 2 seconds
Ah, right, you used the minecraft speed
 
Assuming a constant mean solar year of about 365.24219647 days, it's 5021285221452738448991 years of playtime.
Sorry, 5021285221452738448992, I rounded that wrong.
 
3:17 PM
Not bad eh
I'd say that's infinite
 
@MartinSojka or, about 3.6*10^11 times the age of the universe
 
Yep.
363913989089 times, says my calculator.
 
I asked wolfram alpha
 
That's practically infinite, as far as the human perspective goes. I can certainly say I won't be playing it for quite as long.
Sorry, the game just isn't that good. ;)
 
damn, I was hoping you would play it 363913989089 times the age of universe amount of time
That would actually take so much time that by then we should have home computers that are capable of storing the whole world
Since that would take up 1536 terabytes
 
3:25 PM
Since I aborted the jam timeline anyways, I guess I should do a decent javascript port before I go any further
 
@Lasse Yeah, but that's only for one snapshot of the world. What about world video?
Or streaming worlds?
 
My engine also supports several worlds apart from each other already
count that in
 
3:42 PM
well, no moderator response to my question
I'll go ahead and post the project highlight in a couple of hours
 
I couldn't tell what you were asking.
But it was something about a community ad?
 
no
I pasted the permalink to the message so that you could follow it :(
 
Yeah, it wouldn't follow.
I have some problems with the JS or scripting or whatever aspects of the site on this network. :\
(vote buttons don't often work either, which is super lame)
 
anyway, what we want to do is make this meta post where everyone posts stuff about their projects and regularly update it; then, at the end of the year, we give an award to the most popular project
 
I don't think that would be considered spam on its own. It might attract some, which we'd need to monitor for, but no more than anything else.
 
3:45 PM
aight
 
Are you going to enforce (or suggest) limits on the format, such as posting no more than N pictures?
 
I guess one defining picture per post with extra links to pictures is fine
 
I don't think it's strictly necessary at first, but might be worth considering if people start to abuse the question.
 
3:58 PM
it's not necessary but embedding pictures is not necessary either tbh
links work just fine
I'll just avoid adding the rule for now and see what happens
 
@Pip I have added some notes on strategy to my entry, and the "AI" does not cheat!
I don't really want to say how dumb the AI is, but... needless to say, I did the simplest thing I could do in the time allowed: Gratuitous use of Math.random()
 
so uh
when's the gamejam ending?
I suck at clocks
 
it ends when someone does this
11
Q: Monday morning mistake: sudo rm -rf --no-preserve-root /

Jonas NielsenHere's a an entertaining tragedy. This morning I was doing a bit of maintenance on my production server, when I mistakenly executed the following command: sudo rm -rf --no-preserve-root /mnt/hetznerbackup / I didn't spot the last space before / and a few seconds later, when warnings was floodin...

 
old
already discussed
damnit almo
YOU'RE NOT EVEN TRYING
:P
 
Math.random() AI can be quite fun. What I like to do for the quick & dirty is: Make a function to estimate how good the current situation is. Chose a bunch (five or so) actions with Math.random(). Pick the one which results in the best result. Repeat until defeated by the player.
 
4:09 PM
I think it ended 3 hours ago
 
@JoshPetrie can you close it in that case?
 
Just wanted to make sure anyone who didn't see it, saw it.
 
yup
 
Sounds good
 
4:12 PM
Romania's biggest code & algorithm challenge website is starting to add content in English
switching to English will gain them some extra popularity but will sorta alienate the project from Romania
 
Do you want to prevent votes?
 
@JoshPetrie nope, voting will go on
 
> Here's an interesting interview question I've heard recently.

You are given an 100G size file on disk which represents a square matrix of 32 bit integers. Design an efficient way to transpose that matrix given that you only have 1G of available memory.
> A solution can be obtained by splitting the initial matrix into 100 smaller sub-matrices, using files on disk. Since each sub-matrix will have 1 GB, we can load it in memory, transpose it, then write it back to disk. The final step consists of assembling all 100 sub-matrices in the correct order, into another 100GB file.

This works because:
(A B)^T = (A^T C^T)
(C D) (B^T D^T)

(assuming A, B, C and D are square sub-matrices).
> Is the file in binary or text format ? It wouldn't be that hard to interchange between them but I am curious.

LE: I'm thinking that with the binary format you could seek in that file, this enables you to even transpose it in place,
without even using any significant memory or extra disk space for even larger files. But this is slow due to all those disk read/write/seek operations.
> Read a few lines down of the matrix and start constructing the rows of the transposed matrix left to right in memory. When the memory fills, dump them to disk in a preallocated file by seeking to the beginning of each row if it's binary, or by writing each row to an individual file then cat-ing them together if it's text. You'll only have sqrt(100G) * 100 = 31600000 seeks to do then if it's binary.
 
4:18 PM
"Flip the initial bit indicating it's a column-first matrix to a row-first matrix" doesn't count as a solution, I guess?
 
The #1 New Paid App In The Play Store Costs $4, Has Over 10,000 Downloads, A 4.7-Star Rating... And It's A Total Scam
http://www.androidpolice.com/2014/04/06/the-1-new-paid-app-in-the-play-store-costs-4-has-over-10000-downloads-a-4-7-star-rating-and-its-a-total-scam/
that's the effect of Google approving anything until someone makes a complaint
any app is guaranteed to be published by them in less than 2 hours
 
BTW, the matrix has 160k rows and columns, so you can exploit how the file system stores it: First transpose blocks of the matrix in strips which correspond to the physical block size on disk in place (for 4k block size ext2, that would be 1024x1024 blocks, 4MB in memory each), then rearrange the file metadata so that the matrix file itself is correctly transposed.
 
you should go work for google
 
Nah, I'm fine working for the TV stations right now. :)
@AlexM. Well, it doesn't do any harm, at least.
 
I think lying to customers is harm enough
 
4:30 PM
No, that's marketing.
 
This reminds me of the "I'm Rich" application from the early days of the iOS app store.
 
that one was not a lie
@MartinSojka you seem more intelligent than that imo
 
people are stupid enough to be exploited, i don't think it is google's job to protect them
 
sigh
 
@AlexM. No, really. Claiming something has features it doesn't just so people (well, fools) part with their money is marketing. Fraudulent marketing, obviously. It's still common practice and will continue as such.
 
4:33 PM
I'm not even going to discuss this further
 
i'm not saying that what the developer is doing is right. I'm just saying google shouldn't constrain it
imo
 
disagree
makes people npot truyst buying things on google store which hurts us honest devs
 
@AlexM. Damn lot of code just to change an icon on tap
 
@Lasse lol
just go use the SDK to generate an EMPTY project using a tab view
and bask in the glory of those hundreds of lines of code
that's pretty much android tbh
 
Yeah, well, I have no idea since I've not made apps for android without any library
 
4:37 PM
I still can't believe starting a Yes/No dialogue and listening to it for the user's choice is so complicated and takes a shitload of code
 
And the only one I've made was with libgdx and I never got it to run on my android virtual
 
4:50 PM
welcome to Java
land of boilerplate
even our lambda functions have it
 
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
			    @Override
			    public void onClick(DialogInterface dialog, int which) {
			        switch (which) {
			        case DialogInterface.BUTTON_POSITIVE:
			            ai.receiveAnswer(question, type, "Yes");
			            break;

			        case DialogInterface.BUTTON_NEGATIVE:
			        	ai.receiveAnswer(question, type, "No");
			            break;
			        }
			    }
			};
			AlertDialog.Builder builder = new AlertDialog.Builder(this);
that's a Yes/No dialogue
 
again, boilerplate
C# could roll that down to like 6 lines.
 
actually, it's less
 
because tying in lambdas as responses to buttons instead of implementing interfaces with anonymous classes
makes it super fucking sexy
 
@AlexM. Your java'ing?!?!?
coughs
 
4:53 PM
if (MessageBox.Show(params here, which instruct it to be a Yes/No dialogue) == DialogResult.Yes) { //do stuff if yes } else { //do stuff if no }
that's C# .NET
@Grey I don't have a better option on Android
 
oh yeah, right
 
lol
 
if it works, it works
 
5:27 PM
haha, Pascal code I wrote 5+ years ago
var numowowowo,x,y,z,b,a,c,n,t,i:longint;
    u,q:text;
    iepuri:array[0..100000] of longint;
begin
//WoooOOOOoooOOOooo!
assign (u,'iepuri.in'); reset(u);
assign (q,'iepuri.out'); rewrite(q);
readln(u,t);
for numowowowo:=1 to t do begin
  read(u,iepuri[0]); read(u,iepuri[1]); read(u,iepuri[2]); read(u,a); read(u,b); read(u,c); read(u,n); readln(u);
      for i:=1 to n-2 do begin
      iepuri[3]:=(c*iepuri[0]) + (b*iepuri[1]) + (a*iepuri[2]);
      iepuri[3]:=iepuri[3] mod 666013;
      iepuri[0]:=iepuri[1];
 
The best part of it is this line:
//WoooOOOOoooOOOooo!
 
@AlexM. Xamarin? :P
 
@William'MindWorX'Mariager yeah I'll surely pay money for that :P
@Lasse lol yeah
 
@AlexM. Got a free version? :P
 
the free version has limits I could not live with
limits on resources, limits on apk size, limits on libs you can use
also limits on source code size (lol)
 
5:31 PM
Really?
That's not very clear from the overview :P
 
:P :P :P :P :P :P :P
just google for more
I'm building a virtual assistant that's part of a much larger ecosystem
having limits is just not a good way to go
I'd rather develop everything in assembly if I have to, instead of paying $300 or whatever to Xamarin
^ hypothetical case
Java is not that bad for me here
99% of the time I deal with code written by me which is just as clean as the C# I write
 
Am I the only one who can't get acces to this website: opengl.org/sdk/docs/man/docbook4/xhtml/glGetProgramInfoLog.xml
Or has it really been down for several days already?
 
doesn't load for me either
 
I wonder if anyone who's responsible for that website knows that
 
It's been down for a while :\
 
5:41 PM
Any mirrors around?
Well, I could google it
 
Dunno offhand.
 
lol "opengl documentation mirror" produces tutorials to create mirrors
I don't want that this time >:(
 
opengl website mirror
perhaps
 
nope
maybe google cache has something
 
Today's Listening is brand new.
 
5:44 PM
any guy working on unity?
 
anyone have any performance numbers they could share for the different admob ad networks?
 
0
Q: Community Project Highlights 2014

Alex M.Welcome to the first Community Project Highlights! Here's what it's all about: As a member, you can post an answer to this question with details about a personal project. You can have multiple answers (thus multiple projects) posted. Said projects should be gamedev related: games, game engines ...

it's alive
 
ALL THE UPBOATS
 
copies For Sparta! over
 
I want some suggestions in this
 
5:51 PM
@JohnMcDonald are you going to work on it further? :O
 
guise
 
@AlexM. Heh, not likely. Might add some balancing and some niceties, but no significant work
 
the things is more intended for stuff you're working on :(
 
I don't want an other Like Clockwork that will suck all of my energy away from Asteroid Outpost
@AlexM. Then say so
 
5:52 PM
asteroid outpost is a good example of something you could post
 
Sadly, this post sounds a lot like a smaller version of TIGSource's dev forum, but... I guess that's ok
 
I should really get on TIGsource and starting learning up on some shit
Give me IndieDB or give me death
 
There is an insane amount of traffic in the TIG dev forum
 
I was a little demotivated by TIG, just because everyone seems to be all about the flashiness of a project, and because of the low engagement I was getting, ;(
like a 3% engagement, ish
 
5:59 PM
Same with my project. Incredible amount of circle jerk, "who you know" and the amount of flashiness in your project.
 

« first day (1341 days earlier)      last day (2078 days later) »