« first day (1033 days earlier)      last day (3977 days later) » 

6:00 PM
Ok, go ahead. But most of the code I've worked with has objects drawing themselves. Otherwise you have to have another class somewhere know too much about the class being drawn. Encapsulation is broken.
 
It's common in component-based systems for the entities to have no idea how to draw themselves, or that they are even drawn
 
I'm guessing we're into semantics territory.
 
the way I do it is I have "renderers" that know how to draw vertex buffers. and then each drawable component just needs to know how to pretend to be a vertex buffer.
 
how does the draw routine know what the attributes of the object being drawn are?
 
@Almo Umm... not really.
 
6:02 PM
say your object has m_radius. And you change that to m_radius1 and m_radius2.
suddenly your renderer needs to know about what changed inside the class
that it now has two radii
not necessarily the names themselves since accessors can fix that
 
yeah, the one way I though of doing this was to have a member function which returns a struct with the needed information to draw. The window would than need to return a collection of structs (representing other elements such as buttons) or an iterator to the structs
 
Just trying to understand here
 
Send the objects the ability to draw, and have them use their own internal knowledge to know how what to draw, and have the renderer tell them when to draw. Simple?
 
"returns a struct with the needed information to draw" That to me looks like the item knowing how to draw itself, which is why I say semantics. "draw" as in what does it look like vs "draw" how to plot pixels, but not which pixels.
Winforms pass a Graphics object which does the pixel plotting, but the object says "draw a circle with this radius" to the graphics object
 
yeah, a component-based system is a different way of thinking, so there's really only data containers (Components), and Systems that work with the data. There's no Entity class. If you want to draw 2 radii, one of your systems will need to draw that.
 
6:06 PM
Almo, not really...you wouldn't have to implement the draw function on the class itself but, as I said, it can then be separated
 
In my game, I draw things like power radius during construction in the Construction system
 
Definitely semantics; we don't really disagree, it appears.
:)
 
probably
 
could be...
 
I still prefer the component-based way of thinking, although as in my case, it may not always be easy to do
 
6:08 PM
@Grieverheart are you perhaps asking how to get an MVC-like separation between the logic of the class and the "draw-logic" of the class?
 
I guess you could compare the two
In principle I want to have different renderers and choose one to my liking
 
I think most GUI system's I've seen that abstract out the renderering would have a renderer that knows how to say, draw a rectangle. And then your textbox would have a draw method that specifies a sequence of rectangles to draw.
The textbox doesn't care how your renderer is actually implementing the rectangles.
 
I think I've seen that in at least one gui library, but can't remember which one it was
 
Not sure how many controls you plan to make, or how far along you are, but making a GUI library is a pain
 
Yeah, I figured that out >_<
But I like learning new things, unfortunately :P
 
6:13 PM
eventually I always get around to thinking "man, if I had another couple years I could probably re-implement CSS 1 in my spare time..." and it gets depressing
 
hehe, yeah, time is usually not enough, ever >_<
 
I'm remembering all the pain from making a list and a textbox
Fun times
 
ouch
 
yeah. Don't make "proper" list boxes if you can help it
And if you can't help it, save that image
 
Does anyone know how to get the model rotation (vector3df) of a model in Irrlicht?
 
6:24 PM
Anyways, thanks. I'll try to check a few GUI libraries and see if I can get a few ideas.
 
@SpicyWeenie nope, but I can tell you I downloaded irrlicht again last night
going to give it a chance for a 2D thingy :D
 
cool cool
 
6:39 PM
@AlexM. DO WANT
 
well download it then
 
I'm not smart enough in physics, etc. to understand what this does and I don't have speakers / headphones to listen to the video xD
 
Jon
It looks to me like they put the code out there, and are saying "If you make something cool with this, let us know"
The prototype game that was created before this: youtube.com/…
 
well if I were MIT I'd do the same thing
also look at Intel's contest for Perceptual Computing
why gather your employees to brainstorm when you can leverage a whole world of capable minds?
 
Jon
I like the idea of doing both :)
 
6:53 PM
you can do both then
further, Intel also allows companies to participate in the contest too
 
so I just looked at the wiki page for perceptual computing
now I'm even more confused than before I read it
 
my imagination was staying in the "use eyes to scroll" area so I went back to my own stuff
I'll let people with better ideas participate
 
Jon
7:21 PM
(╯°□°)╯︵ ┻━┻
 
my sentiments exactly. Trying to get a carousel control working in cocos2d
 
┬─┬ノ( º _ ºノ)
Fixed it
 
(╯°□°)╯︵ ┻━┻
 
(/¯◡ ‿ ◡)/¯ ~ ┻━┻
Wingardium Leviosa
or sth
 
@AlexM. ಠ_ಠ
 
7:25 PM
(╯°□°)╯︵ O
FOOD FIGHT
 
Would you guys stop throwing shit please
 
(it's a plum)
 
you guys must be Go players
 
Jon
There is also this one ლ(ಠ益ಠლ) whyyyyy
 
I am in fact a go player, but I don't see what that has to do with throwing shit around the room
 
7:26 PM
 
oh :)
 
(╯°□°)╯︵ Shotgun Ninja
 
The well-known "nuclear tesuji" endgame.
You throw the board against the wall. Followup moves are either picking up the board and beating your opponent with it, or just a straight up uppercut to the chin.
 
the guy with the table looks like he's assraping the poor dude on the ground
 
oops
 
7:28 PM
。◕‿◕。
 
I can even imagine their dialogue
 
how do you say "fucking cheesing noob" in ancient Japanese?
 
Mr rapist no baka please don't put your hands there... moe
and Mr rapist goes all
ASSRAPE NO JUUTSU
hooya
 
7:48 PM
@Almo am I reading this wrong or is black [2] a suicide? playing one over seems to save the corner to me.
or nevermind, thatsthejoke.jpg -.-
 
playing 2 over a spot doesn't save it either
wait
lemme think
yeah it does
life/death and the endgame are my weaknesses in go
I can hang with people 5 ranks above me until late mid-game.
then they wipe me out
 
how do you handle late early game?
 
my opening is strong because I have a natural intuition for it
 
I don't know how to build frameworks above the fourth line
 
I make pretty reasonable decisions on where to play to get formations to hook up to each other
but when it comes down to it, I can't keep my groups alive and the framework falls apart
really frustrating
I don't have the patience to count sente/gote situations in all the little end-game nitpicky bits
so people who aren't quite as good as me think I'm really good since I make these awesome huge territories
but people who are better than me make me look silly once they realize I don't know how to keep what I've staked out. :)
still prefer it to chess :)
I don't know how advanced you are, but I recommend reading The Second Book of Go if you're that level, or Attack And Defense if you're higher level.
Also Kato's Attack and Kill for an interesting perspective on killing stones
 
7:55 PM
"very bad"
 
if you're very bad (know the rules and not a whole lot else) definitely get the Second Book of Go.
 
I've probably hovered anywhere between 25 and 15k
 
it covers all the stages of the game for beginners in a way you don't see in super-beginner books
 
I used to play at a club and that was probably my best
 
well you might be beyond that then
I don't know: take a look in the book, and if it looks too basic, try Attack and Defense.
 
8:02 PM
What's this geeky talk?
 
hello world
 
Oh jesus christ, I need to learn how to play Go.
End of discussion.
 
Go: 9 rules, thousands of years of strategy development, with no solution yet. Though it's starting to look like the computers will get it "soon". :(
 
I bought Go a few years back, mostly just to collect games from countries I visit
 
8:04 PM
heh
 
I've played like twice
 
I find it a lot more fun than chess. Go is like connecting 9 chess battles to each other (or more) due to the size of the board.
the outcome of a battle in one place can affect battles elsewhere on the board
knowing which battle to play in and how it will affect the others is really tricky (and fun).
 
or just watch/read Hikaru no Go
 
9:09 PM
I guess I need an idea:
 
go on
 
lost my train of thoughts.... :(
 
choo choo!
 
I'm going to enhance my proxy app, so here are my priorities:
very high performance,
being highly scalable, meaning it should be able to handle more than 10k concurrent connections,
having the ability to patch new features into it,
I won't mind doing low level dirty tricks,
I won't mind taking server or client down for upgrades.
@Jimmy @ToddersLegrande @JohnMcDonald @William'MindWorX'Mariager @JoshPetrie
so summing up all the ideas I've had so far, I'm going to implement a component-based system
there is going to be a Job Dispatcher, maintaining a list of jobs which should be done.
an information center, which will provide jobs with the information about what they should do.
 
@Gajoo sounds great, what is it useful for?
 
9:17 PM
and finally a "Worker house" which will provide workers to do the jobs.
@MarkR enhancing my proxy app.
 
Proxy for what?
 
@MarkR by passing my country's filtering!
 
hmm, did you calculate how much bandwidth your proxy would require, and how much it would cost?
In my experience, you are unlikely to require 10k connections
 
@MarkR there is a VPS already available for me :D
@MarkR true, but I like pushing the limits in experimental projects
 
Do you have the budget for the hardware devices required to load-test 10k connections?
 
9:18 PM
most likely I won't even reach 100 connections
 
In my experience, you are likely to hit the limits on your network infrastructure bandwidth, before your hit the connection limit
(I don't promise this however! times change)
 
@MarkR load-testing wouldn't be that hard. we can test in over the lan, and rest assured server bandwidth will not let us get passed local tests
 
Calculate based on mean object sizes, how many requests and how much bandwidth are reuqireqd
 
@MarkR required?
 
You can load-test over a lan, yes, but you may need quite a lot of hardware to simulate the origin-servers and clients
It may be cost-effective to buy custom hardware to carry out perf. testing
Because otherwise you require maybe 10 racks of hardware to simulate origin-servers and clients to test 1 single server
plus all network infrastructure, power, cooling etc, required for those 10 racks
 
9:22 PM
@MarkR considering a client most likely will only be able to use 150KBps at most, and each client is usually communicating with server over something like 60-120 connections. I think having a server with 10MBps server should be serving something around 6000-9000 connections
@MarkR would you care explaining more? I mean without considering the packet loss over the internet, what else would be different if I load test everything local over simple PCs?
 
A client will use far fewer than 60-120 connections in practice
Where are your data taken from? A commercial proxy?
(NB: sorry about that delay, I had a blue screen of death)
Also, remember that there is finite latency between your proxy, the client and the origin servers
 
@MarkR it's been a long time since I had once of those
@MarkR requests are generated by browsers.
and browsers create lots of connections
 
Browsers create several connections to each site, yes, however most of them are short-lived and it takes a lot of users to hit the limits
 
@MarkR my data comes from my own testing over the past few weeks
 
Evening
 
9:32 PM
Ok, well mine are possibly several years out of date,
browsers behaved differently then I think
 
it really depends on what you are going to do.
 
hello guis
 
i managed to get 10fps on chrome for 999by999 tiles
not bad i think
 
right now I've got 9 pages open in browser and there is only 6 connections active
 
Dave, Gajoo, etc whats up?
 
9:33 PM
right, but if you are going to use 10k connections, presumably you are (at least) planning on running a commercial service for a large number of users
 
not much you
 
but right when I want to open a page, chrome fires 30-40 connections, and then closes them after some time
 
not much really, programming my expanded Populous game
 
Chrome is not used by the majority of commercial users, most of them use IE
 
lol IE screw them
 
9:34 PM
@MarkR not really, but I won't mind if my project is capable of handling such usage
 
screw IE, it sucks
 
It's all about what you can afford to test
 
i use firefox
 
those that are using IE are not computer savy enough to even understand how to use my site.
 
@MarkR IE10 that I've been using lately behaves just the same, and so does FF
 
9:35 PM
If you want one box to handle 10k connections, you will need to invest a lot of money to test that
 
but I can't say anything about other versions of IE
 
but IE has great canvas performance :)
 
If you think that your "10k connections" requirement is ficticious, you can save a lot of cash
 
@MarkR I'm pretty sure I'll be the only one using my proxy app.
 
where I used to work, we used "Spirent" boxes to load-test our proxies
these are very expensive, but like I said before, it saves, maybe 10 racks of kit
 
9:36 PM
but still I can't understand, what's the difference between using those expensive racks, and lunching lots of threads on a single computer (or two) to do the same job?
 
well you probably don't want to spend half a million dollars load-testing then
@Gajoo because one computer does not have the capability of doing it
 
@MarkR right now, I run server, client and tester all on my laptop.
 
You may also want to consider what proportion of your requests are SSL, when I was working on this (> 3 years ago) it was quite small
I suspect that the HTTPS has increased
 
tester initiates 5k connections to client, which will result in 5k connection between client and server and another 5k from server back to test app.
 
you should consider how much latency, and how much DNS latency you're simulating to your origin server
(and latency to the client)
 
9:39 PM
each app then starts 2 threads per connection to handle those connections, meaning 30k threads total
 
it's all about latency, not throughput
(because users never complain about throughput)
 
@MarkR checking latency won't be that easy at all :(
 
Who said this stuff was easy?
:)
 
this stuff you're talking about
is pretty hard to understand at a glance
 
Web proxies. Bloody awful systems
 
9:41 PM
I mean, how should I simulate latency in the first place?
 
it needs more abstraction
 
hey Alex!
 
the first thing it needs is jQuery
 
Web proxies - they have to support shitloads of users browsing all sites including facebook and stuff - and all these broken DNS servers and all sorts - and the users always complain about latency
 
over the internet I'm having 200ms latency pinging most servers
 
9:42 PM
@PythonInProgress hi
 
@Gajoo 200ms is typical for transatlantic
 
@AlexM. what up? lols jQuery
 
@MarkR transatlantic?
 
but mostly within a continent it depends on how good your peering is
over the atlantic ocean
you are really limited by the speed of light
 
@AlexM. anything new for kickstarter or your game?
 
9:43 PM
what kickstarter?
 
but within continents, it's mostly about how much you're willing to pay, or how good your peering agreements, interconnects etc are
 
i mean do you have any projects on there
 
I can't kickstart, I'm from Romania
and besides, how can you kickstart a project and still say you care about it
if you care about it you hustle so you get the money you need
 
@MarkR let me test and see how good my proxy will do locally.
 
you don't ask people to give you money
 
9:44 PM
LOLZ
i have no money
 
stop laughing on everything someone says
 
i dont..... lols

jk
 
@Gajoo if you watch a proxy server which is running live with lots of users, a significant proportion of its connections are either a) Waiting for request b) waiting for DNS c) connecting to origin server, not actually sending requests or waiting for responses
 
@MarkR let me test and see how good my proxy will do locally.
@MarkR I know.
 
it's going to work pretty well locally, particularly if your DNS infrastructure is being well-behaved :)
 
9:46 PM
@PythonInProgress get some then
 
@AlexM. If i ever want to make a game full time, will need money to do so.
 
Configure your DNS to drop 10% of packets, then things get more interesting
 
@AlexM. Not likely, remember how old i am?
 
one of my clients was on a network where all DNS requests took 15 seconds the first time
 
@PythonInProgress it's even less likely for you to make a game that requires real money to develop at the moment
so why are we having this discussion?
 
9:47 PM
@MarkR yeah about that, I don't actually have any DNS server (or DNS client) of any kind
 
@AlexM. so true
 
Cool, I worked on a hosted security system where some of our peers (i.e. spammers) sometimes deliberately configured malicious or broken DNS servers
 
"go talk to your IT department" is not a popular tech support answer apparently
 
@AlexM. i was talking about u, but you answered my question already
 
@Gajoo DNS is quite important for web proxies, as DNS lookup is a very latency-consuming stage of request processing
 
9:48 PM
@MarkR then I guess I've got to implement a DNS cache too :D
 
even without a proxy, using a DNS with the best speed for your area makes a noticeable difference.
 
DNSs do cache, but you need to be aware of how well
 
Hey @IcyDefiance
 
whats up?
 
9:50 PM
@MarkR so any idea about how I was going to implement my server?
any suggestions about the design, for example?
 
Write proper requirements. Do the simplest thing which could possibly work, then if it satisfies them, stop.
4
 
@MarkR there is no them involved! I'm doing this all as a hobby :D
 
Simplest thing which could work = use existing proxy server :)
In which case, the hobby includes writing the requirements!
 
@Gajoo Then write your own requirements. Dig down deep to specify what you need.
 
them = the requirements
 
9:52 PM
@MarkR check where I stated this conversation, I've written all my requirements there :d
 
Ahh, no they weren't
That's what software engineers (or particularly, operations engineers) normally think
Those were not requirements
supporting 10k connections was not a requirement
supporting 1 connection was not a requirement (although probably helpful)
 
so what is the requirement?
 
It's whatever you need to do
Non-functional requirements are often hard to write; even functional requirements are difficult. You have to write them in a testable way
 
so you mean like supporting HTTP/HTTPS/SOCKS4&5
 
If those are required, yes
 
9:56 PM
@MarkR those I considered too obvious to write in the first place :|
 
But really more important "web sites need to load the same as without a proxy" or something. Or at least "the top 100 web sites need to load in an indistinguishable way with or without the proxy"
Maybe there are more specific ones, such as watching youtube videos
 
@MarkR also that seems more obvious enough, I didn't think there was any point writing that down.
of course working in a team will require sharing the idea with others.
 
Requirements need to be testable, and actually need to be tested
Requirements are one of the hardest things in software engineering
Most engineers (myself included) are very bad at writing them
 
but since I was doing this for myself, I thought it's enough to only have those things on top of my head
 
Most engineers are good at writing code which looks cool and does something really interesting
well, functional requirements normally come first - what it must do
 
9:58 PM
@MarkR I'm also very good at implementing things that users never knew they were needed :D
 
so if your requirement is "must work with youtube", put that 1st
If users never knew they were needed, they probably weren't needed
 
@MarkR I wouldn't call them requirements, they are more like goals.
 

« first day (1033 days earlier)      last day (3977 days later) »