Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Jul 20 19:01:03 <Suner> which just about no one posted...
- Jul 20 19:01:15 <thearrowflies> !@#$%^
- Jul 20 19:01:15 * TheDuceCat has changed the topic to: The meeting has begun. First order of business is agreeing on code guidelines to use for the project.
- Jul 20 19:01:24 <thearrowflies> people posted in the subreddit
- Jul 20 19:01:45 <The_Mango> I think we just need basic guidelines
- Jul 20 19:01:55 <The_Mango> Like, make sure to keep stuff indented.
- Jul 20 19:02:00 <TheDuceCat> we want to make sure stuff is uniform
- Jul 20 19:02:14 <TheWalkingDerp> the top comment in that thread covers the basics pretty well
- Jul 20 19:02:25 <TheDuceCat> Suner's guideline submission is good
- Jul 20 19:02:39 <The_Mango> variable names in camelCase can get very hard to read though
- Jul 20 19:02:53 <The_Mango> Especially if you need longer length ones
- Jul 20 19:02:54 <TheDuceCat> i've gotten used to it over the years
- Jul 20 19:02:56 <Suner> ^have never found that to be a problem
- Jul 20 19:03:00 <miyako> yeah, other than the stuff that is not applicable to C I think that Sunar's submission is mostly good
- Jul 20 19:03:21 <miyako> I personally prefer underline_as_a_separator but I'm okay with camelCase
- Jul 20 19:03:31 * SlimTim10_ is now known as SlimTim10
- Jul 20 19:03:35 <TheDuceCat> do you want to take a poll?
- Jul 20 19:03:44 <Kobono> poll time!
- Jul 20 19:03:48 <TheDuceCat> alright
- Jul 20 19:03:55 <FRodrigues> wait!
- Jul 20 19:04:03 <FRodrigues> i need to read first
- Jul 20 19:04:20 <TheDuceCat> we'll start the poll now
- Jul 20 19:04:22 <The_Mango> We're polling just on variable names right now
- Jul 20 19:04:24 <TheDuceCat> say 'underscore' if you want underscores, 'camelCase' if you want camelCase
- Jul 20 19:04:32 <Kobono> camelCase
- Jul 20 19:04:32 <The_Mango> underscore
- Jul 20 19:04:33 <Gabe1118> camelCase
- Jul 20 19:04:34 <TheWalkingDerp> underscore
- Jul 20 19:04:36 <thearrowflies> cC
- Jul 20 19:04:36 <centigrade233> camelCase
- Jul 20 19:04:39 <miyako> underscore
- Jul 20 19:04:46 <TheDuceCat> camelCase
- Jul 20 19:04:50 <TheDuceCat> wow that was mixed
- Jul 20 19:04:58 <Kobono> camelCase is one ahead I think
- Jul 20 19:05:01 <TheDuceCat> so far a 4-3 for cC
- Jul 20 19:05:14 <thearrowflies> 5-3?
- Jul 20 19:05:22 <Suner> it's 5-3
- Jul 20 19:05:23 <TheDuceCat> yeah
- Jul 20 19:05:24 <TheDuceCat> 5-3
- Jul 20 19:05:30 <TheDuceCat> didn't count myself!
- Jul 20 19:05:32 <Suner> any other voters?
- Jul 20 19:05:35 <TheDuceCat> anyone else?
- Jul 20 19:05:36 <centigrade233> the score is q to 12
- Jul 20 19:06:05 <Kobono> Is anyone writing down on what we agree?
- Jul 20 19:06:10 <TheDuceCat> anyone?
- Jul 20 19:06:10 <thearrowflies> im logging
- Jul 20 19:06:13 <TheDuceCat> ^
- Jul 20 19:06:20 <The_Mango> Well, so far it's just waht Suner said
- Jul 20 19:06:22 <miyako> I'm keeping track mentally and will review the log and post a summary
- Jul 20 19:06:22 <The_Mango> No need yet
- Jul 20 19:06:37 <Suner> sooo
- Jul 20 19:06:43 <Suner> I guess that means no more voters?
- Jul 20 19:06:48 <FRodrigues> i vote in cC
- Jul 20 19:06:53 <TheDuceCat> k
- Jul 20 19:06:55 <TheDuceCat> LAST CALL
- Jul 20 19:06:59 <miyako> so do we want to use the same convetion for C, with modifications where necessary (e.g. remove references, default values, classes)
- Jul 20 19:07:07 <FRodrigues> it's more widely used
- Jul 20 19:07:16 <Kobono> miyako: I'd say yes
- Jul 20 19:07:29 <Kobono> miyako: consistency across languages is nice
- Jul 20 19:07:35 <TheDuceCat> ^
- Jul 20 19:08:04 <TheDuceCat> what do you guys think about the opening brace on the same line for one statement
- Jul 20 19:08:07 <TheDuceCat> rule # 9
- Jul 20 19:08:14 <Kobono> lemme check
- Jul 20 19:08:28 <thearrowflies> after the meeting is done, does some one want to post a short piece of code demonstrating what we decided?
- Jul 20 19:08:31 <thearrowflies> um
- Jul 20 19:08:53 <Kobono> I think #9 is fine
- Jul 20 19:08:53 <Suner> actually, in case it's unclear #9 just says it HAS to have braces (whether on same line or it's own)
- Jul 20 19:08:54 <thearrowflies> i generally put it on the line of the function but its fine on a new line
- Jul 20 19:08:55 <FRodrigues> i vote against rule 9!
- Jul 20 19:08:57 <miyako> thearrowflies: I think Suner has pretty good examples in there
- Jul 20 19:09:01 <The_Mango> For class and function declarations yes
- Jul 20 19:09:19 <The_Mango> for flow control, no
- Jul 20 19:09:25 <The_Mango> if(){
- Jul 20 19:09:26 <TheDuceCat> i myself prefer braces on own lines at all times
- Jul 20 19:09:30 <The_Mango> clas Name
- Jul 20 19:09:31 <The_Mango> {
- Jul 20 19:09:39 <Kobono> I prefer egyptian notation
- Jul 20 19:09:55 <Suner> ^ I lol'd
- Jul 20 19:10:02 <miyako> As long as we don't use gnu notation I'm fine
- Jul 20 19:10:17 <TheDuceCat> so make it an option to have the brace on same line?
- Jul 20 19:10:18 <Kobono> http://www.codinghorror.com/blog/2012/07/new-programming-jargon.html
- Jul 20 19:10:20 <ArrowBot> Title: Coding Horror: New Programming Jargon (at www.codinghorror.com)
- Jul 20 19:10:24 <Kobono> number 3
- Jul 20 19:10:25 <TheDuceCat> with one staement
- Jul 20 19:10:41 <thearrowflies> i say its an option
- Jul 20 19:10:45 <The_Mango> option
- Jul 20 19:10:58 <Kobono> We're talking about the opening braces right?
- Jul 20 19:11:01 <TheDuceCat> yep
- Jul 20 19:11:06 <TheDuceCat> same line option for one staement
- Jul 20 19:11:10 <TheDuceCat> same line option for one statement
- Jul 20 19:11:24 <Suner> btw, what I wrote in the guideline is, the rule is that a control structure MUST have braces, it doesn't say anything about having the brace on the same line
- Jul 20 19:11:42 <Kobono> we're sicussing #10 then
- Jul 20 19:11:45 <TheDuceCat> yeah i misread it the first time
- Jul 20 19:11:47 <miyako> e.g. if (something) { doSomething(); } ?
- Jul 20 19:12:07 <TheDuceCat> ehh one liner conditionals
- Jul 20 19:12:50 <TheDuceCat> any other inquiries about Suner's post?
- Jul 20 19:12:53 <miyako> I'm okay with one-line conditionals, they can sometimes make code more readable if you are doing a lot of input validation at the start of a function
- Jul 20 19:13:21 <Kobono> what about functions? camelCase or underscores?
- Jul 20 19:13:29 <FRodrigues> camelCase
- Jul 20 19:13:40 <TheDuceCat> camel
- Jul 20 19:13:40 <Kobono> underscore
- Jul 20 19:13:46 <FRodrigues> try to stay in one topic :S
- Jul 20 19:13:50 <The_Mango> camel case
- Jul 20 19:13:58 <TheDuceCat> it is on topic
- Jul 20 19:14:27 <thearrowflies> 21: im against using namespace std; but could we do using std::cout; ?
- Jul 20 19:14:44 <FRodrigues> why we dont start with the first rule and vote?
- Jul 20 19:14:45 <Kobono> thearrowflies: I agree
- Jul 20 19:14:45 <Suner> no
- Jul 20 19:15:23 <thearrowflies> why not Suner?
- Jul 20 19:15:44 <miyako> related to 22, should we have something like "avoid function-like macros in favor of inlined functions"
- Jul 20 19:15:44 <Suner> it's really just for clarity sake, not importing anything from std::
- Jul 20 19:16:17 <TheDuceCat> keeps everything neat in its namespace
- Jul 20 19:16:48 * Kennythehitman has quit (Quit: Textual IRC Client: http://www.textualapp.com/)
- Jul 20 19:16:53 <Suner> to be clear, I only mean for it to apply to the standard namespace
- Jul 20 19:17:14 <Kobono> miyako:Why are inline functions preferred though?
- Jul 20 19:17:26 <Suner> Kobono: macros are evil
- Jul 20 19:17:31 <Kobono> Why?
- Jul 20 19:17:42 <Suner> they don't follow the rules of the language
- Jul 20 19:17:47 <Suner> they have completely global scope
- Jul 20 19:18:08 <Suner> and will just replace, effectively a dumb search and replace
- Jul 20 19:18:19 <miyako> Kobono: the compiler can often make a better decision on whether to inline or not than the programmer can, it's easier to debug, and function-like macros can turn really nastly if you start doing token generation
- Jul 20 19:18:49 <miyako> plus there are a lot of bugs you can introduce if you don't handle them correctly, e.g. while(0) { ... }
- Jul 20 19:19:15 <Kobono> then inline functions are obviously the way to go
- Jul 20 19:19:18 <Suner> #define SIZE radius*2+1
- Jul 20 19:19:22 <Suner> SIZE*2
- Jul 20 19:19:24 <Suner> oops
- Jul 20 19:19:56 <miyako> there are some cases where function like macros make sense, but I'd say that given the goal of keeping the code simple we should treat them as special cases
- Jul 20 19:20:13 <thearrowflies> yeah
- Jul 20 19:20:18 <Kobono> Do they make sense for magic numbers?
- Jul 20 19:20:29 <Suner> as I general rule I just say: "can you do it without a macro?"
- Jul 20 19:20:41 <Kobono> So constants are better
- Jul 20 19:20:42 <Kobono> ?
- Jul 20 19:20:43 <The_Mango> Depends what kind of magic number
- Jul 20 19:20:43 <Suner> Kobono: that's what constants are for
- Jul 20 19:21:38 <Kobono> I have a proposal for c
- Jul 20 19:21:52 <Kobono> structs should always be defined with a typedef
- Jul 20 19:21:57 <thearrowflies> TheDuceCat: we are using qt creator for the gui and the coding correct?
- Jul 20 19:22:00 <miyako> I typically use macros for numbers that could change at compile time (e.g. MAX_STACK_SIZE), and function-like macros for bit-twiddling
- Jul 20 19:22:03 <TheDuceCat> yes thearrowflies
- Jul 20 19:23:02 <Suner> too bad C doesn't have constexpr
- Jul 20 19:23:02 <miyako> Kobono: typically I forward-declare the struct, create the struct, and then create a typedef for it if it's going to be used as a type
- Jul 20 19:23:38 <Kobono> miyako: I don't fully understand, could you give an example?
- Jul 20 19:25:16 <miyako> Kobono: yeah, so typically I'll do something like
- Jul 20 19:26:07 <miyako> struct mystruct { ... };
- Jul 20 19:26:20 <miyako> then, if I'm going to use it as an opaque type, I'll create a mystruct_t for it
- Jul 20 19:26:30 <miyako> but if it's just going to be used as packed data, I won't
- Jul 20 19:26:40 <Suner> I like this
- Jul 20 19:26:57 * calzone21 (ae5811cf@gateway/web/freenode/ip.174.88.17.207) has joined #rpcdesktop
- Jul 20 19:27:05 <miyako> but I avoid using: typdef struct { } mystruct_t;
- Jul 20 19:27:23 <Kobono> I'm fine with that
- Jul 20 19:28:41 <Suner> ssoo next?
- Jul 20 19:28:48 <miyako> I would like to have a vote on adding 2 rules to the convetion
- Jul 20 19:28:56 <TheDuceCat> go ahead
- Jul 20 19:29:24 <miyako> 1: prefer readability to convention - if you have a really good reason for violating the convetion, because it enhances readability, make a case for why and it can possibly be accepted
- Jul 20 19:29:58 <TheDuceCat> yeah but definitely depends on case
- Jul 20 19:29:59 <miyako> and 2: prefer consistency to convention. If for some reason a file exists that uses it's own convetion, it's better to keep the same convention within a file than to mix conventions
- Jul 20 19:30:09 <Suner> +1
- Jul 20 19:30:25 <thearrowflies> +1
- Jul 20 19:30:26 <TheDuceCat> what do you mean by #2
- Jul 20 19:30:34 <Kobono> +1
- Jul 20 19:30:55 <miyako> TheDuceCat: presumably, all the code we have should follow our coding convention, but if for whatever reason (say we included a file from another open source project, for example)
- Jul 20 19:31:05 <TheDuceCat> alright yeah that's good
- Jul 20 19:31:26 <Suner> no antivotes?
- Jul 20 19:31:49 * paise (0e634326@gateway/web/freenode/ip.14.99.67.38) has joined #rpcdesktop
- Jul 20 19:31:51 <FRodrigues> wait
- Jul 20 19:32:09 <miyako> I would like to take a moment on record to lol at the fact that suner was most opposed to coding conventions, and we're going to be using the one he wrote :)
- Jul 20 19:32:36 <FRodrigues> +1
- Jul 20 19:33:02 <Suner> lol, I only wrote one because nobody else seemed to...
- Jul 20 19:33:26 <The_Mango> I still don't think it needs to be this strict
- Jul 20 19:33:29 <miyako> Suner: yeah, I was going to write one before I got the plague
- Jul 20 19:33:42 <The_Mango> If someone wrote bad looking code someone else can fix it up and commit
- Jul 20 19:33:49 <calzone21> hey guys, sorry if it may have been mentioned already. say someone submits code that doesn't follow the convention?
- Jul 20 19:33:54 <Suner> The_Mango: and I agree
- Jul 20 19:33:58 <calzone21> ok i was a bit late on that
- Jul 20 19:34:00 <TheDuceCat> yeah but we're trying to keep a level of consistency
- Jul 20 19:34:06 <thearrowflies> calzone21: we deny it
- Jul 20 19:34:07 <The_Mango> Why don't we vote on that first?
- Jul 20 19:34:10 <Suner> here's the thing
- Jul 20 19:34:12 <thearrowflies> thats what we agreed on
- Jul 20 19:34:13 <The_Mango> Or has it already been voted on?
- Jul 20 19:34:15 <Suner> if someone submits code
- Jul 20 19:34:26 <Suner> that deviates from the convention a bit, but is otherwise good code
- Jul 20 19:34:32 <Suner> does it really deserve to be denied?
- Jul 20 19:34:46 <The_Mango> Not at all
- Jul 20 19:34:47 <paise> IMO no.
- Jul 20 19:34:55 <TheDuceCat> well it needs to be fixed first
- Jul 20 19:34:58 <TheDuceCat> then it can be accepted
- Jul 20 19:34:59 <calzone21> should we consult them on what mistakes they made convention wise?
- Jul 20 19:35:03 <TheDuceCat> not like comletely blocked
- Jul 20 19:35:05 <TheDuceCat> yeah
- Jul 20 19:35:10 <Suner> not that I'm saying if you have someone who submits something with idents all over the place that it should be acceptable
- Jul 20 19:35:19 <calzone21> yeah, of course
- Jul 20 19:36:07 <Suner> I just don't think we should be pole-in-ass about it
- Jul 20 19:36:45 <TheDuceCat> no but it should be encouraged
- Jul 20 19:37:04 <Suner> yes, but ultimately I think different rules should hold different weights
- Jul 20 19:37:18 <calzone21> it has to be looked at like an assignment. are we going to have a team dedicated to testing/checking for things like this or is it open to anyone to act on it
- Jul 20 19:37:23 <TheDuceCat> we have to review it on an individual basis
- Jul 20 19:37:40 <Suner> e.g. let's say one of the rules says control structures MUST have braces
- Jul 20 19:37:53 <Suner> personally, I'm not going to crucify someone because they forgot a pair of braces
- Jul 20 19:38:00 <thearrowflies> .post link progcollab "sorryforthetest" http://i.imgur.com/sf9MK.jpg
- Jul 20 19:38:01 <ArrowBot> thearrowflies: An error has occurred and has been logged. Please contact this bot's administrator for more information.
- Jul 20 19:38:07 <TheDuceCat> no but they can edit it
- Jul 20 19:38:13 <The_Mango> I'd just expect someone else to go in and fix it
- Jul 20 19:38:17 <Suner> ^
- Jul 20 19:38:20 <Suner> it's not a big deal
- Jul 20 19:38:26 <The_Mango> Exactly
- Jul 20 19:38:26 <Suner> on the other hand
- Jul 20 19:38:35 <The_Mango> And it's not like every single commit is reviewed is it?
- Jul 20 19:38:38 <TheDuceCat> can't you update pull requests?
- Jul 20 19:38:47 <Suner> if a person is litering using namespace std; in all their header files
- Jul 20 19:38:48 <TheDuceCat> pull requests will be reviewed
- Jul 20 19:38:53 <Suner> of course I expect THAT to be rejected
- Jul 20 19:39:10 <TheDuceCat> you can patch pull requests i think
- Jul 20 19:39:11 <miyako> hey guys, need to go AFK for a few
- Jul 20 19:39:21 <TheDuceCat> k
- Jul 20 19:39:37 <FRodrigues> ok
- Jul 20 19:40:40 <calzone21> ok, sorry to deviate from main discussion. i wanted to see how we would handle these issues
- Jul 20 19:41:11 <Kobono> Weren't they already discussed in the reddit post?
- Jul 20 19:41:21 <Suner> nope?
- Jul 20 19:41:30 <Kobono> ok
- Jul 20 19:44:06 <Suner> are we in agreement about miyako's two proposals?
- Jul 20 19:44:14 <TheDuceCat> yes
- Jul 20 19:44:21 <thearrowflies> yeah
- Jul 20 19:44:42 <paise> Sorry was a bit late, which two?
- Jul 20 19:45:12 <Suner> <miyako> 1: prefer readability to convention - if you have a really good reason for violating the convetion, because it enhances readability, make a case for why and it can possibly be accepted
- Jul 20 19:45:12 <Suner> <miyako> and 2: prefer consistency to convention. If for some reason a file exists that uses it's own convetion, it's better to keep the same convention within a file than to mix conventions
- Jul 20 19:45:34 <calzone21> agreed
- Jul 20 19:45:41 <Kobono> yes
- Jul 20 19:45:46 <paise> yep
- Jul 20 19:46:49 <FRodrigues> +1
- Jul 20 19:48:18 <FRodrigues> what do you think about never declare a pointer and a regular type(?) in the same line, like int* ptr, i; ?
- Jul 20 19:48:26 <TheDuceCat> never
- Jul 20 19:48:32 <thearrowflies> ever
- Jul 20 19:48:36 <TheWalkingDerp> ever?
- Jul 20 19:48:43 <The_Mango> never ever
- Jul 20 19:48:45 <FRodrigues> never and ever!
- Jul 20 19:48:46 <TheWalkingDerp> ok
- Jul 20 19:48:47 <TheDuceCat> what about multiple pointers in one line
- Jul 20 19:48:48 <The_Mango> There's no point
- Jul 20 19:48:51 <Suner> one statement per line
- Jul 20 19:48:54 <The_Mango> no
- Jul 20 19:48:54 <TheDuceCat> ok
- Jul 20 19:48:56 <thearrowflies> yes
- Jul 20 19:48:58 <TheDuceCat> i'm absolutely fine with that
- Jul 20 19:49:06 <TheDuceCat> makes everything simpler
- Jul 20 19:50:16 <FRodrigues> int* ptr1,* ptr2; ?
- Jul 20 19:50:24 <TheDuceCat> one statement per line
- Jul 20 19:50:27 <The_Mango> FRodrigues: no
- Jul 20 19:50:29 <The_Mango> that'
- Jul 20 19:50:31 <The_Mango> s
- Jul 20 19:50:33 <The_Mango> bad
- Jul 20 19:50:37 <thearrowflies> blasphemy
- Jul 20 19:50:43 <Suner> int* ptr1;
- Jul 20 19:50:46 <Suner> int* ptr2;
- Jul 20 19:50:48 <TheDuceCat> i think if someone submits a pull request that isn't up to par they can just edit it what do you guys think?
- Jul 20 19:51:20 <FRodrigues> so many lines :P
- Jul 20 19:51:23 <thearrowflies> up to par in what sense?
- Jul 20 19:51:28 <The_Mango> things like, int* ptr1; vs. int * ptr1; shouldn't be grounds to not accept though
- Jul 20 19:51:47 <Suner> ^
- Jul 20 19:51:48 <TheDuceCat> yeah you're right
- Jul 20 19:51:54 <thearrowflies> that
- Jul 20 19:52:02 <TheDuceCat> but asking them to edit it isn't denying it in any way
- Jul 20 19:52:10 <TheDuceCat> well it kind of is :P
- Jul 20 19:52:19 <calzone21> yeah, but it lets them know what they did wrong
- Jul 20 19:52:39 <calzone21> which is good for the learning process.
- Jul 20 19:52:50 <TheDuceCat> we could say can you move that asterisk over one
- Jul 20 19:52:50 <The_Mango> it's not *wrong* though
- Jul 20 19:52:55 <TheDuceCat> and they can add another commit on top of it
- Jul 20 19:52:59 <TheDuceCat> and send it in no problem
- Jul 20 19:53:08 <TheDuceCat> it helps them learn to code on guidelines
- Jul 20 19:53:15 <calzone21> exactly
- Jul 20 19:53:41 <paise> On a reddit comment I had a suggestion of using astyle (http://astyle.sourceforge.net/) to conform with the whatver guidelines being agreed here. What do you think?
- Jul 20 19:53:42 <ArrowBot> (19/15)[22] "TIL there is a really easy automated way to change the formating of code to the way you like it." http://www.reddit.com/r/programming/comments/f35ix/
- Jul 20 19:54:55 <FRodrigues> is this correct?
- Jul 20 19:54:56 <FRodrigues> http://pastebin.com/thetxDw9
- Jul 20 19:54:59 <ArrowBot> Title: [C] Wrong: int y,x,i,j; int gRadius; double a0,a1,a2,a3,c; double *gauss; uchar - Pastebin.com (at pastebin.com)
- Jul 20 19:55:07 <thearrowflies> dont ides today have settings to change the way it auto formats things? people using comapatible ides should adjust it as needed
- Jul 20 19:55:31 <chancez> paise: in vim you can just gg=G
- Jul 20 19:55:40 <TheDuceCat> FRodrigues: looks good
- Jul 20 19:55:50 <chancez> or just properly set the settings.
- Jul 20 19:55:59 <Suner> FRodrigues, double a[4];?
- Jul 20 19:56:02 <thearrowflies> im not sure if it was mentioned, but
- Jul 20 19:56:23 <thearrowflies> i dont think we should declare all variables at the top of the function/whatever. Only when we need them
- Jul 20 19:56:35 <Suner> this is actually one of the reasons
- Jul 20 19:56:38 <Suner> I hate C89
- Jul 20 19:56:41 <paise> thearrowflies: yes, if it is so and if everyone's using compatible editors, then there is no need to use astyle.
- Jul 20 19:56:45 <The_Mango> If it's a small function, you might as well put them at the top
- Jul 20 19:57:00 <FRodrigues> Suner, yes
- Jul 20 19:57:14 <The_Mango> I say declare a set of variables at once whenever you come to a section that will be using them all
- Jul 20 19:57:23 <The_Mango> To keep from littering it with random declarations
- Jul 20 19:57:43 <Suner> I prefer the, declare near where you need them
- Jul 20 19:57:50 <The_Mango> *near*
- Jul 20 19:57:57 <Suner> yes near, not exactly before
- Jul 20 19:58:02 <The_Mango> But not neccessarily only right where you do
- Jul 20 19:58:05 <The_Mango> Exactly
- Jul 20 19:58:05 <thearrowflies> thats what i meant
- Jul 20 19:58:12 <thearrowflies> in my head
- Jul 20 19:58:28 <Suner> I mean if I have an if statement or assert at the start of my function
- Jul 20 19:58:36 <Suner> no, I'm not going to declare anything before them
- Jul 20 19:58:42 <TheDuceCat> alright so any other objections with Suner's comment?
- Jul 20 19:59:08 <TheDuceCat> declaring variables at certain locations isn't something to really put guidelines on i think
- Jul 20 19:59:28 <TheDuceCat> just more of a recommendation
- Jul 20 19:59:29 <Suner> I wouldn't actually expect many people to do something weird
- Jul 20 19:59:30 * WolfeL (4a4e4a9c@gateway/web/freenode/ip.74.78.74.156) has joined #rpcdesktop
- Jul 20 19:59:35 <Suner> when it comes to declaring
- Jul 20 19:59:45 <TheDuceCat> yeah
- Jul 20 19:59:48 <TheDuceCat> so any other objections?
- Jul 20 19:59:51 * Gabe1118 has quit (Quit: Leaving)
- Jul 20 19:59:57 <thearrowflies> nein
- Jul 20 19:59:58 <TheDuceCat> we need to push forward
- Jul 20 20:00:10 <FRodrigues> c99 permits for(int i=0;i<20;++i)?
- Jul 20 20:00:22 <TheDuceCat> yes
- Jul 20 20:00:23 <Suner> yes
- Jul 20 20:00:43 <TheDuceCat> so to be clear, no more objections?
- Jul 20 20:00:47 <The_Mango> I g2g
- Jul 20 20:00:49 <The_Mango> Peace
- Jul 20 20:00:49 <thearrowflies> no
- Jul 20 20:00:53 <FRodrigues> no
- Jul 20 20:00:53 <thearrowflies> bye
- Jul 20 20:00:54 * The_Mango has quit (Quit: ChatZilla 0.9.88.2 [Firefox 14.0.1/20120713224758])
- Jul 20 20:00:54 <Suner> later mango
- Jul 20 20:01:04 <TheDuceCat> alright then we'll use Suner's styles with the modifications we have discussed today.
- Jul 20 20:01:12 <TheDuceCat> shall we move on?
- Jul 20 20:01:23 <thearrowflies> whats the next order of business?
- Jul 20 20:01:30 <TheDuceCat> not sure
- Jul 20 20:01:34 <WolfeL> will there be an updated post w/ all the modifcations you've spoken about? I'm a bit late sorry
- Jul 20 20:01:39 <TheDuceCat> yeah
- Jul 20 20:01:43 <WolfeL> okay thank you
- Jul 20 20:01:47 <TheDuceCat> git behaviour?
- Jul 20 20:02:03 <Suner> git behaviour?
- Jul 20 20:02:09 <Kobono> rebase vs merge?
- Jul 20 20:02:18 <TheDuceCat> rebase is bad for teams i think
- Jul 20 20:02:28 <miyako> I'm back
- Jul 20 20:02:32 <thearrowflies> i should probably read up on git before i vote for anything
- Jul 20 20:02:45 <TheDuceCat> how i did it with a team was have every member fork the repo and pull request new changes in
- Jul 20 20:03:05 <miyako> IMHO the proper approach is that if you have a patch you want to submit, you should rebase onto the head of master, fix conflicts, then submit the patch
- Jul 20 20:03:11 * centigrade233 has quit (Ping timeout: 245 seconds)
- Jul 20 20:03:35 <Kobono> so
- Jul 20 20:03:41 <Kobono> git pull --rebase
- Jul 20 20:03:48 <Kobono> work out the conflicts
- Jul 20 20:03:51 <Kobono> git add them
- Jul 20 20:03:55 <Kobono> fit commit again
- Jul 20 20:04:00 <Kobono> then git push
- Jul 20 20:04:01 <Kobono> ?
- Jul 20 20:04:08 <Suner> I don't have much experience with git, but isn't pull the answer to patches?
- Jul 20 20:04:46 <Kobono> git pull fetches the remote repo and tries to merge it with your local version
- Jul 20 20:04:53 <Kobono> and warns you about conflicts
- Jul 20 20:04:53 <miyako> Suner: you can still use pull instead of sending a diff, I'm just considering a pull request to be a patch
- Jul 20 20:05:02 <TheDuceCat> you can request a pull from the main repo
- Jul 20 20:05:10 <TheDuceCat> and people can comment on the patch etc.
- Jul 20 20:05:18 <TheDuceCat> and an admin can accept it
- Jul 20 20:05:29 <Suner> ah okay, that's what I thought
- Jul 20 20:05:48 <TheDuceCat> it works well
- Jul 20 20:06:21 <Suner> well git has become a real popular guy these days, so I'd hope as much :)
- Jul 20 20:06:27 <miyako> I like the kernel's method of having a merge window
- Jul 20 20:06:48 <miyako> so like once a month we have a 1 or 2 week merge window, where people who have patches ready can submit pull requests
- Jul 20 20:06:56 <chancez> tbh you should rebase for any related commits
- Jul 20 20:07:08 <miyako> then have the following month for people to do their development
- Jul 20 20:07:12 <chancez> rebasing within your own commits
- Jul 20 20:07:44 <TheDuceCat> remember to make small commits
- Jul 20 20:07:48 <TheDuceCat> that focus on one task
- Jul 20 20:08:10 <chancez> each task should be composed of a few commits, and when finished you should rebase to smash it all into 1 commit to merge in
- Jul 20 20:08:36 <chancez> otherwise your git repo is going to be very disorganized and have a lot of wasted commit messages and logs to read through
- Jul 20 20:08:50 <miyako> chancez: +1
- Jul 20 20:08:52 <chancez> also merging once a month with small group projects like this usually ends up bad
- Jul 20 20:08:57 <TheDuceCat> pull requests can consist of multiple commits
- Jul 20 20:09:09 <Suner> yeah once a month? too long.
- Jul 20 20:09:11 <TheDuceCat> so you don't have to combine them
- Jul 20 20:09:20 <chancez> if you dont have people merging in their changes frequently enough, things deviate, and no checks and balances come into play
- Jul 20 20:09:25 <TheDuceCat> once a week/two weeks
- Jul 20 20:09:40 <miyako> Maybe have a merge window of "weekends" ?
- Jul 20 20:09:46 <TheDuceCat> ^ could work
- Jul 20 20:09:51 * calzone21 has quit (Ping timeout: 245 seconds)
- Jul 20 20:10:08 <chancez> also, you should probably give time for others to comment or correct pull requests
- Jul 20 20:10:23 <chancez> like submit a pull request, well someone has to look over it and make sure its up to par
- Jul 20 20:10:33 <chancez> and refuse it if the patch isnt going to be what you want
- Jul 20 20:10:41 <TheDuceCat> https://help.github.com/articles/using-pull-requests/
- Jul 20 20:10:44 <ArrowBot> Title: Using Pull Requests · github:help (at help.github.com)
- Jul 20 20:10:47 * calzone21 (ae5811cf@gateway/web/freenode/ip.174.88.17.207) has joined #rpcdesktop
- Jul 20 20:11:11 <miyako> what I'm sort of hoping the eventual workflow will be is that people pull the latest changes at the end of every merge window (say every monday morning or whatever)
- Jul 20 20:11:20 <TheDuceCat> https://github.com/jquery/jquery/pull/865
- Jul 20 20:11:22 <ArrowBot> Title: Pull Request #865: For 1.8: fixes #12088, Webkit now returning percentages for more getComputedStyle properties by mikesherov · jquery/jquery · GitHub (at github.com)
- Jul 20 20:11:23 <miyako> then work on their code, talking about it here, having people look over what they are doing, etc.
- Jul 20 20:11:26 <calzone21> alright guys, i have to go. take care !
- Jul 20 20:11:29 * calzone21 has quit (Client Quit)
- Jul 20 20:11:30 <TheDuceCat> see ya
- Jul 20 20:11:43 <miyako> then on fridays they submit pull requests for the things that they want pulled, and we work on that over the weekend
- Jul 20 20:11:55 <miyako> also discussing things here, e.g. why to pull or not pull, etc.
- Jul 20 20:13:14 <chancez> I feel like I should say this, for people who aren't aware of how to use git.
- Jul 20 20:13:16 <chancez> But
- Jul 20 20:13:24 <chancez> Branch early, and branch often
- Jul 20 20:14:00 <chancez> git branches let you work on an individual task, and revert to the original code you had for other tasks as well, all at the same time, without needing multiple copies of the repo
- Jul 20 20:14:01 <Kobono> yeah, branches are cheap in git
- Jul 20 20:14:09 <chancez> each branch should be 1 task
- Jul 20 20:14:19 <chancez> and usually each branch is going to be 1 merge
- Jul 20 20:15:02 <paise> Say for example I want to implement a small feature which would take say 2-3 weeks, so I create a branch. Now should I rebase it with master or merge it?
- Jul 20 20:15:42 <chancez> neither
- Jul 20 20:15:44 <chancez> well
- Jul 20 20:16:22 <chancez> you usually create the branch, make it work, pull request for that branch, upstream will merge it, now you pull down and merge upstream with your master branch
- Jul 20 20:16:34 <chancez> dont rebase it...that would break things
- Jul 20 20:16:45 <chancez> you use rebase when you are doing something like this
- Jul 20 20:17:04 <chancez> edit code, commit some, edit again, commit again, edit more, final commit #3
- Jul 20 20:17:12 <chancez> now you want to squash that all into 1 commit
- Jul 20 20:17:20 <chancez> rebase commit#1 commit#3
- Jul 20 20:17:32 <chancez> and now its 1 single easy to merge in request
- Jul 20 20:18:00 <chancez> if your intial commit is based off of something thats behind the master branch though, dont rebase, it will break things
- Jul 20 20:18:31 <paise> Ok so even if it would take a few week sto get a feature implemented, the idea is to keep submitting whatver we have every week and pull in the master.
- Jul 20 20:18:43 <chancez> well only if its working
- Jul 20 20:19:01 <chancez> and hopefully your not working on a task that is literally 1 task that takes 2-3 weeks
- Jul 20 20:19:05 <miyako> paise: the idea is that every week the things that are complete will be merged, but you only submit a pull request if you have a feature that is done
- Jul 20 20:19:15 * centigrade233 (60f24712@gateway/web/freenode/ip.96.242.71.18) has joined #rpcdesktop
- Jul 20 20:19:24 <paise> Alright, got it.
- Jul 20 20:19:31 <chancez> programming should be broken into very small pieces, so hopefully each item you work on should be 1 of those items that can be merged in each week
- Jul 20 20:20:16 <miyako> I would expect that, as we go on, the length of time for features will increase, because there might be more tricky algorithmic work, or work that needs to touch more pieces of code
- Jul 20 20:20:16 <Suner> I've never known git was so useful
- Jul 20 20:20:20 * bimo (54c2cb93@gateway/web/freenode/ip.84.194.203.147) has joined #rpcdesktop
- Jul 20 20:20:29 <bimo> oi
- Jul 20 20:20:29 <miyako> but it's also going to depend a lot on how much time you have to dedicate to the project
- Jul 20 20:20:48 <miyako> if you only have a few hours each weekend to work, then it might take you a few merge windows to get a feature done
- Jul 20 20:20:52 <TheDuceCat> how's this? http://reinh.com/blog/2009/03/02/a-git-workflow-for-agile-teams.html
- Jul 20 20:20:54 <ArrowBot> (10/0)[0] "A Git Workflow for Agile Teams" http://www.reddit.com/r/git/comments/8mw7y/
- Jul 20 20:20:55 <ArrowBot> <http://ln-s.net/3M:u> (at reinh.com)
- Jul 20 20:21:52 <miyako> TheDuceCat: that's good, except for merging in with master and pushing to the main repo will be done by submitting pull requests
- Jul 20 20:22:01 <TheDuceCat> yeah
- Jul 20 20:22:14 <miyako> rebasing might be done by the maintainers instead of the people submitting requests as well
- Jul 20 20:23:10 <chancez> miyako: that sounds smart..
- Jul 20 20:23:11 <TheDuceCat> yeah as i said pull requests can consist of multiple commits
- Jul 20 20:23:19 <centigrade233> back
- Jul 20 20:23:20 <chancez> id hate someone to fuck up their shit
- Jul 20 20:24:16 <centigrade233> what are we talking about now?
- Jul 20 20:25:13 <miyako> I think we need to talk about requirements, and also about getting the first bits of code written
- Jul 20 20:26:00 <Suner> ^
- Jul 20 20:26:20 <Suner> do we even have a repo setup yet?
- Jul 20 20:26:27 <TheDuceCat> yeah
- Jul 20 20:26:31 <Suner> link?
- Jul 20 20:26:32 <WolfeL> Have established a solid understanding of what it is the program is going to be/how it will function?
- Jul 20 20:26:48 <WolfeL> have we*
- Jul 20 20:26:53 <Kobono> not yet
- Jul 20 20:27:03 <miyako> Suner: https://github.com/RPCDesktop/tiledr
- Jul 20 20:27:05 <ArrowBot> Title: RPCDesktop/tiledr · GitHub (at github.com)
- Jul 20 20:27:06 <thearrowflies> we discussed it at the last meeting
- Jul 20 20:27:25 <miyako> the treloo board has a few things listed
- Jul 20 20:27:29 <miyako> *trello
- Jul 20 20:27:31 <paise> miyako: requirements as in features?
- Jul 20 20:27:35 <WolfeL> I've read through and understand the basic Ideas of it, I just didn't know if it was expanded upon
- Jul 20 20:27:38 <thearrowflies> something went wrong with the license?
- Jul 20 20:27:41 <miyako> paise: yeah
- Jul 20 20:27:43 <TheWalkingDerp> trello?
- Jul 20 20:27:47 <WolfeL> I've been following the trello yes, thank you
- Jul 20 20:28:28 <paise> Ok, so is ther going to be tile creator, if so, should that be on high priority?
- Jul 20 20:28:30 <miyako> thearrowflies: the only commit was a license file I added; we agreed on GPL3 so I added the GPL license to the repo
- Jul 20 20:29:08 <thearrowflies> yeah, but the "something went wrong" wasnt there when you added it
- Jul 20 20:29:36 <thearrowflies> ah now its gone
- Jul 20 20:29:37 <miyako> thearrowflies: I don't see the "something went wrong"?
- Jul 20 20:29:42 <miyako> maybe a github bug?
- Jul 20 20:29:45 <thearrowflies> probably
- Jul 20 20:30:17 <miyako> so yeah, I think on the fronted the biggest things to start with are the GUI main window itself, an OpenGL context to display the map, and maybe a tile browser
- Jul 20 20:30:29 <TheDuceCat> yep
- Jul 20 20:30:37 <TheDuceCat> we need some mockups
- Jul 20 20:30:42 <thearrowflies> shit
- Jul 20 20:30:45 <miyako> on the backend we probably need to work on defining the APIs for getting a mesh of the map, placing tiles, and defining some sort of file formats
- Jul 20 20:30:45 <thearrowflies> i said i was giong to do those
- Jul 20 20:30:53 <TheDuceCat> k
- Jul 20 20:31:22 <thearrowflies> i have an idea in mine
- Jul 20 20:31:25 <chancez> recently ive gotten interested in the python area
- Jul 20 20:31:27 <thearrowflies> but ill have to shop it first
- Jul 20 20:31:31 <chancez> if you guys have any need for that.
- Jul 20 20:31:34 <TheDuceCat> we do
- Jul 20 20:31:50 <TheDuceCat> the program is going to be barebones
- Jul 20 20:31:54 <TheDuceCat> it's going to ship with default plugins
- Jul 20 20:31:54 <chancez> i know, but its a matter of when, since your developing your own api
- Jul 20 20:32:53 <miyako> I'm thinking for the tiles themselves the backend API will have some sort of function that will give you a tile struct that has probably a tile name as a string and a data pointer to a 32x32 bitmap with a thumbnail image
- Jul 20 20:33:16 <Suner> which build tool will we be using?
- Jul 20 20:33:25 <miyako> Suner: good question :)
- Jul 20 20:33:26 <paise> Cmake?
- Jul 20 20:33:27 <miyako> CMake?
- Jul 20 20:33:33 <Suner> SCons?
- Jul 20 20:34:26 <miyako> vote on build system: autotools, cmake, scons ?
- Jul 20 20:34:29 <TheDuceCat> i'm sort of new to build tools so idk
- Jul 20 20:34:38 <Suner> I vote against autotools
- Jul 20 20:34:38 <TheDuceCat> i'll leave it up to you guys
- Jul 20 20:34:39 <Kobono> TheDuceCat: same
- Jul 20 20:34:41 <miyako> I know autotools and cmake well, I don't know scons at all
- Jul 20 20:34:47 <paise> against autotools
- Jul 20 20:34:55 <miyako> I vote for cmake because I know it, and it's not autotools
- Jul 20 20:34:55 <TheDuceCat> can we have a feature comparison?
- Jul 20 20:35:36 <miyako> TheDuceCat: I don't know that there is an appreciable feature difference, more of a question of how much the tool makes you want to stab yourself in the face
- Jul 20 20:35:45 <TheDuceCat> k
- Jul 20 20:35:48 <Suner> http://www.scons.org/wiki/SconsVsOtherBuildTools
- Jul 20 20:35:48 <miyako> which for autotools is infinity, it makes you want to stab yourself in the face in an amount of infinity
- Jul 20 20:35:57 <ArrowBot> <http://ln-s.net/$Uay> (at www.scons.org)
- Jul 20 20:35:58 * Accipiter (~Accipiter@96.18.31.36) has joined #rpcdesktop
- Jul 20 20:36:20 <FRodrigues> what's the problem of using auto-tools?
- Jul 20 20:36:29 <Suner> to be clear: I have no experience with SConds
- Jul 20 20:37:04 <miyako> CMake has a support in many IDEs, and it's pretty easy to build debian packages when you're using cmake if that's a concern
- Jul 20 20:37:23 <Suner> only build tool I have experience is Jam, and I'm sure no one here wants to use that
- Jul 20 20:37:26 <paise> I vote for CMake because I have worked with it, and it is a breeze to work with Qt and QtCreator.
- Jul 20 20:38:25 <thearrowflies> I thought Qt required QMake
- Jul 20 20:38:34 <Suner> ^
- Jul 20 20:38:40 <chancez> it does
- Jul 20 20:38:46 <chancez> its got its own build system
- Jul 20 20:38:50 <paise> Yes, it is the default build syste, but CMake is more feature rich.
- Jul 20 20:38:54 <chancez> which generates make
- Jul 20 20:39:16 <Suner> I'm fine with cmake
- Jul 20 20:39:24 <Suner> even though it doesn't work with me on windows
- Jul 20 20:39:26 * centigrade233 has quit (Ping timeout: 245 seconds)
- Jul 20 20:39:51 <thearrowflies> cmake doesnt work on windows? >.>
- Jul 20 20:39:56 <Suner> it does
- Jul 20 20:39:56 <chancez> Suner: dont use windows obviously!
- Jul 20 20:39:57 <TheDuceCat> it does
- Jul 20 20:39:58 <Suner> just not for me
- Jul 20 20:39:59 <miyako> it's supposed to work on windows
- Jul 20 20:40:10 <TheDuceCat> it's worked for me
- Jul 20 20:40:14 <Suner> every time I try to generate a VS solution
- Jul 20 20:40:15 <paise> Also I have experience in building a gnu package using CMake on windows, It is not that much of a hassle.
- Jul 20 20:40:17 <Suner> it just craps out
- Jul 20 20:40:33 <Suner> but I'll be switching back to fedora soon~
- Jul 20 20:40:37 <paise> thearrowflies: it works.
- Jul 20 20:40:54 <Suner> and trying out the whole
- Jul 20 20:40:55 <chancez> Suner: fedora++ <3
- Jul 20 20:40:57 <Suner> vim stuff
- Jul 20 20:41:03 <chancez> vim ++++++
- Jul 20 20:41:37 <Suner> so it's settled then? CMake it is?
- Jul 20 20:41:41 <chancez> i praise vim a lot, mainly because when i go to my CS classes and people dont know how a compiler works w/o visual studio..i die inside.
- Jul 20 20:41:43 <TheDuceCat> +1
- Jul 20 20:41:52 <Kobono> +1
- Jul 20 20:41:57 <miyako> cmake +1
- Jul 20 20:42:02 <miyako> vim +100
- Jul 20 20:42:11 <WolfeL> I should get vim then I guess
- Jul 20 20:42:16 <Suner> chancez: lol, people in my classes still don't know how to use the debugger in visual studio
- Jul 20 20:42:16 <WolfeL> all this habub
- Jul 20 20:42:25 <chancez> (php)-- * 100
- Jul 20 20:42:34 <chancez> Suner: yeah same
- Jul 20 20:42:38 <Suner> they don't even know what a command line is....
- Jul 20 20:42:41 <chancez> no one in any of my classes knows what valgrind is
- Jul 20 20:42:42 * centigrade233 (60f24712@gateway/web/freenode/ip.96.242.71.18) has joined #rpcdesktop
- Jul 20 20:42:46 <chancez> im just like stumped
- Jul 20 20:43:16 <WolfeL> what are the advantages to using vim over using something simple like gedit?
- Jul 20 20:43:26 <chancez> gedit is terrible, vim isnt
- Jul 20 20:43:41 <WolfeL> :'(
- Jul 20 20:43:42 <FRodrigues> cmake++
- Jul 20 20:43:45 <Accipiter> http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/
- Jul 20 20:43:46 <ArrowBot> (1007/312)[368] "Learn Vim Progressively" http://www.reddit.com/r/programming/comments/jxusk/
- Jul 20 20:43:49 * Suner has quit (Read error: Connection reset by peer)
- Jul 20 20:43:50 <Accipiter> that helped me learn vim
- Jul 20 20:44:03 <chancez> vim is extensible, is highly supported, runs in the terminal (over ssh), and has vim movement
- Jul 20 20:44:05 <WolfeL> bookmarked
- Jul 20 20:44:14 <Accipiter> vim is awesome
- Jul 20 20:44:14 <TheDuceCat> does it matter what editor we use?
- Jul 20 20:44:19 <chancez> Accipiter++
- Jul 20 20:44:27 <miyako> TheDuceCat: not really
- Jul 20 20:44:35 * Suner (~Sun@unaffiliated/suner) has joined #rpcdesktop
- Jul 20 20:44:36 <TheDuceCat> i like sublime text myself
- Jul 20 20:44:40 <Suner> that was weird
- Jul 20 20:44:41 <paise> No I guess, as long as we keep in mind about line endings
- Jul 20 20:44:50 <TheWalkingDerp> the last time i used vim, i couldn't figure out how to exit >.>
- Jul 20 20:44:56 <thearrowflies> line endings?
- Jul 20 20:44:56 <Suner> ^
- Jul 20 20:44:58 <FRodrigues> xD
- Jul 20 20:45:01 <chancez> I feel like most people have that problem
- Jul 20 20:45:03 <chancez> except
- Jul 20 20:45:05 <Accipiter> I used sublime text, its way prettier
- Jul 20 20:45:06 <FRodrigues> i use gedit
- Jul 20 20:45:07 <FRodrigues> xD
- Jul 20 20:45:09 <chancez> the first thing on the vim page is :help
- Jul 20 20:45:09 <miyako> paise: good point; unix line endings for everything?
- Jul 20 20:45:11 <chancez> and then
- Jul 20 20:45:15 <Accipiter> but vim is more powerful
- Jul 20 20:45:16 <paise> Of course
- Jul 20 20:45:17 <chancez> people should use google
- Jul 20 20:45:21 <chancez> if they cant figure it out
- Jul 20 20:45:23 <chancez> itslike
- Jul 20 20:45:25 <chancez> RTFM
- Jul 20 20:45:28 <Suner> lol
- Jul 20 20:45:29 <Suner> yeah...
- Jul 20 20:45:32 <miyako> vimtutor ftw
- Jul 20 20:45:38 <Suner> I remember setting up archlinux once
- Jul 20 20:45:38 <Accipiter> ^
- Jul 20 20:45:39 <chancez> miyako: yep.
- Jul 20 20:45:40 <Suner> opened vim
- Jul 20 20:45:43 <Suner> couldn't get out
- Jul 20 20:45:44 <Suner> lol'd
- Jul 20 20:45:46 <chancez> fail.
- Jul 20 20:45:47 <Accipiter> lol
- Jul 20 20:45:50 <chancez> archlinux++
- Jul 20 20:45:58 <chancez> i used arch as a server for 2 months
- Jul 20 20:46:00 <chancez> yep
- Jul 20 20:46:02 <chancez> not doing that again
- Jul 20 20:46:12 <chancez> laptop distro? sure. server? NOPE
- Jul 20 20:46:15 <miyako> I like arch a lot for a desktop system
- Jul 20 20:46:24 <Suner> yeah,
- Jul 20 20:46:46 <Suner> but I like fedora more, less work for lazy me
- Jul 20 20:46:47 <chancez> anyways
- Jul 20 20:46:53 <chancez> i took away from your meeting discussion
- Jul 20 20:46:56 <chancez> should get back on track
- Jul 20 20:47:02 <chancez> at least until later ;)
- Jul 20 20:47:05 <miyako> so we were talking about requirements
- Jul 20 20:47:22 <miyako> and I think we agreed that on the frontend we need mockups and to get the basic main windows, opengl context, and a tile browser in place
- Jul 20 20:47:38 <miyako> on the backend we need to define some APIs and data structures so the GUI will have an idea of how to talk to us
- Jul 20 20:47:59 <paise> I think there would be two main modes, a tile drawing mode and a map drawing mode using the tilesets created?
- Jul 20 20:48:16 <Suner> I
- Jul 20 20:48:21 <Accipiter> A tile editing mode would actually be awesome
- Jul 20 20:48:46 <Accipiter> I think artists would love not having to switch programs
- Jul 20 20:48:57 <Suner> don't believe in defining APIs before writing code, they're pretty much guaranteed to cange
- Jul 20 20:48:58 <miyako> I think a tile editing mode would be too much work at first
- Jul 20 20:49:13 <thearrowflies> ^
- Jul 20 20:49:24 <TheDuceCat> ^
- Jul 20 20:49:26 <Kobono> miyako: agreed
- Jul 20 20:49:31 <Accipiter> Probably
- Jul 20 20:49:35 <paise> Yes
- Jul 20 20:49:38 <chancez> Suner: yes.
- Jul 20 20:49:41 <Accipiter> But we should keep it in mind
- Jul 20 20:49:43 <miyako> Suner: change is inevitable, but I think that defining APIs up front is a good way of communicating general ideas
- Jul 20 20:49:43 <Kobono> just use specialised spftware for that
- Jul 20 20:50:09 <miyako> a tile composer might not be a bad idea, if we want to have tiles that consist of a background image + sprites
- Jul 20 20:50:25 <TheDuceCat> tile editor is good plugin idea
- Jul 20 20:50:32 <TheDuceCat> that can really test the plugin framework
- Jul 20 20:50:37 <miyako> TheDuceCat: agreed
- Jul 20 20:50:38 <Accipiter> yeah
- Jul 20 20:51:50 <chancez> are you guys going to be using any libraries other than Qt?
- Jul 20 20:52:53 <miyako> on the backend we'll probably be using a few; I imagine on the frontend OpenGL in addition to qt at least
- Jul 20 20:53:17 <paise> I have no experience creating tile maps, but is there some way to set properties on tiles when laying out on map. For example, set a tile as Pass through/opaque?
- Jul 20 20:53:32 <TheDuceCat> different layers
- Jul 20 20:53:37 <TheDuceCat> object layers etc...
- Jul 20 20:53:45 <paise> I guess it is done on a game engine rather than a tile editor?
- Jul 20 20:53:50 <Kobono> or just add properties to the tile struct
- Jul 20 20:53:55 <TheDuceCat> you can put the data on the tile
- Jul 20 20:53:59 <TheDuceCat> or have a collision layer
- Jul 20 20:54:04 <paise> BTW are we using xml files for the maps generated?
- Jul 20 20:54:07 <TheDuceCat> specifically for tiles that are non pass thorugh
- Jul 20 20:54:13 <TheDuceCat> not decided
- Jul 20 20:54:15 <TheDuceCat> maybe json
- Jul 20 20:54:24 <TheDuceCat> we want to make it easy on the game developer
- Jul 20 20:54:27 <miyako> paise: we haven't decided yet, xml, json, and binary data have all been thrown about
- Jul 20 20:54:43 <Suner> I would say binary
- Jul 20 20:55:16 * centigrade233 has quit (Ping timeout: 245 seconds)
- Jul 20 20:55:21 <Kobono> I wouldn't
- Jul 20 20:55:41 <Suner> I just can't see any possible reason to use xml/json
- Jul 20 20:55:42 <paise> Isn't the map basically a set of tiles ids and coordinates? If so xml or json seems reasonable.
- Jul 20 20:55:51 <TheDuceCat> yeah ^
- Jul 20 20:55:55 <Accipiter> could someone quickly explain to me how binary data would work in this situation? I have only ever seen xml used for tilemaps (although I can see how json could do it)
- Jul 20 20:55:58 <Suner> the primary benefit of xml/json is make it easy for a human to modify
- Jul 20 20:56:08 <paise> Game dev would be using the xml/json and the tileset to creae his games
- Jul 20 20:56:14 <Suner> I can't see anyone going to edit a tilemap by hand
- Jul 20 20:56:18 <Suner> in xml
- Jul 20 20:56:24 <TheDuceCat> it's easy to parse
- Jul 20 20:56:28 <miyako> paise: you also need the image data, and possibly mesh data for the terrain if the map isn't flat
- Jul 20 20:56:28 <Suner> binary is easier
- Jul 20 20:56:50 <Suner> binary is the easist to parse, you don't need any libraries to do it
- Jul 20 20:56:56 <TheDuceCat> i guess
- Jul 20 20:56:57 <paise> miyako: He would use the tileset + xml?
- Jul 20 20:57:03 <Suner> and if you need to include the image data in the map?
- Jul 20 20:57:09 <TheDuceCat> tiled uses xml
- Jul 20 20:57:18 * Bradford has quit (Quit: Leaving)
- Jul 20 20:57:32 <miyako> paise: one of the intended features is to do some modification to the images on the tiles, so you can't just load the tile images as is
- Jul 20 20:57:58 <paise> Oh, ok I understand now. Alright.
- Jul 20 20:59:01 <TheDuceCat> tiled uses xml so why isn't it practical for us?
- Jul 20 20:59:07 <TheDuceCat> i still don't fully understand
- Jul 20 20:59:34 <Kobono> I'm signing off, it's getting quite late. Goodbye everyone.
- Jul 20 20:59:57 * Kobono has quit (Quit: Page closed)
- Jul 20 21:00:15 <miyako> TheDuceCat: XML is practical, but it might not be as easy to deal with as binary, I'm not opposed to either
- Jul 20 21:00:24 <TheDuceCat> alright
- Jul 20 21:00:31 <miyako> one of the features that we'll have that tiled doesn't though is the ability to actually modify the image data on the tiles
- Jul 20 21:00:49 <miyako> so unlike tiled, we can't just load in the tile images every time, we have to somehow store the modified image data
- Jul 20 21:00:59 <miyako> so if we used XML we'd need to include the binary image data in there
- Jul 20 21:01:05 <TheDuceCat> alright
- Jul 20 21:02:08 <miyako> my personal preference would be to default to a native binary format, with a feature that could be added later to export to XML
- Jul 20 21:02:29 <miyako> it would be a good feature to add using the python plugin api IMHO
- Jul 20 21:02:30 <TheDuceCat> ok
- Jul 20 21:02:59 <Accipiter> That sounds like a good idea, then the user can decide for themselves.
- Jul 20 21:04:05 <TheDuceCat> what do you mean by modifying image data
- Jul 20 21:04:46 <miyako> one feature I'd like to do (open to voting by everyone of course) is to generate tile image data dynamically; an example would be to blend textures together at the seams so that you don't have obvious tiling
- Jul 20 21:05:07 <miyako> another example would be to generate synthetic textures based on a seed image for covering a large area with a given tile
- Jul 20 21:05:28 <TheDuceCat> makes sense yeah
- Jul 20 21:05:50 <Accipiter> I like it, but it seems like it would be very difficult to implement.
- Jul 20 21:05:50 <miyako> also, deforming images to fit terrain, and baking in lighting could be done in the future as we start to add more game-oriented features
- Jul 20 21:06:25 <TheDuceCat> yeah hopefully can be made with plugins
- Jul 20 21:06:36 <miyako> Accipiter: honestly, I'm throwing those features in there because computer graphics, etc. is my area of interest so it's something I'd like to do
- Jul 20 21:07:13 * centigrade233 (60f24712@gateway/web/freenode/ip.96.242.71.18) has joined #rpcdesktop
- Jul 20 21:07:34 <Accipiter> OK thats what this project is for. I would love to learn about computer graphics
- Jul 20 21:07:44 <Accipiter> And it sounds like a killer feature
- Jul 20 21:07:55 <Suner> << also
- Jul 20 21:09:05 <centigrade233> what's the killer feature?
- Jul 20 21:09:44 <Suner> <miyako> one feature I'd like to do (open to voting by everyone of course) is to generate tile image data dynamically; an example would be to blend textures together at the seams so that you don't have obvious tiling
- Jul 20 21:10:11 <Suner> this meeting has been going on pretty long
- Jul 20 21:10:14 <Accipiter> <miyako> another example would be to generate synthetic textures based on a seed image for covering a large area with a given tile
- Jul 20 21:11:18 <Suner> I'd like to finish up on the basic requirements
- Jul 20 21:14:26 <miyako> I agree, I think we should has out the features we'd like to have implemented in the next month or so; so that people can start writing code
- Jul 20 21:17:56 <TheDuceCat> so feature discussion?
- Jul 20 21:18:03 <paise> Say for example 0.1 version lets us use some tiles from a tile browser on the left and allows us to lay it on a specific sized map on the right? I think keeping the first versions pretty basic would get the project going, especially newcomers could get comfortable.
- Jul 20 21:18:14 <TheDuceCat> yep
- Jul 20 21:18:30 * TheDuceCat has changed the topic to: Initial Feature Discussion
- Jul 20 21:18:39 <miyako> paise: that sounds like a good goal to me; should we assume that the map is flat for now
- Jul 20 21:18:50 <Suner> yes
- Jul 20 21:18:51 <miyako> so the GUI just needs to get x/y coordinates
- Jul 20 21:18:51 <TheDuceCat> maybe layers after that?
- Jul 20 21:19:03 <paise> yes
- Jul 20 21:19:24 <miyako> so I'm thinking basically the user selects a tile, and then clicks a tile on the map, and the GUI sends to the backend something like add_tile(tile_id, x, y)
- Jul 20 21:19:37 <TheDuceCat> yep
- Jul 20 21:19:43 <miyako> (0,0) for the top left tile
- Jul 20 21:19:47 <TheDuceCat> yeah
- Jul 20 21:19:50 <TheDuceCat> +x right
- Jul 20 21:19:51 <TheDuceCat> +y down
- Jul 20 21:19:52 <paise> yes
- Jul 20 21:19:55 <miyako> yep
- Jul 20 21:20:20 <Accipiter> So how would the backend know what tile is what tile id? Would it go through the tilesheet when the user loads one?
- Jul 20 21:20:33 <Suner> gui has to tell it
- Jul 20 21:20:44 <TheDuceCat> yeah
- Jul 20 21:20:45 <TheDuceCat> like
- Jul 20 21:20:50 <TheDuceCat> setSelectedTile(tiletype)
- Jul 20 21:20:57 <TheDuceCat> something of that nature
- Jul 20 21:21:02 <Accipiter> OK
- Jul 20 21:21:07 <miyako> does it, or does the backend load the tiles
- Jul 20 21:21:23 <miyako> and then the gui does something like getTileDict(tileDirectory)
- Jul 20 21:21:30 <TheDuceCat> backend can load it
- Jul 20 21:21:36 <TheDuceCat> but if you click on it backend has to know what tile it is
- Jul 20 21:21:38 <Suner> btw, sorry to go off topic here, but what is the point of having a backend again?
- Jul 20 21:21:41 <miyako> and is returned a map of some sort, with tileID -> tile data
- Jul 20 21:21:49 <TheDuceCat> miyako take this
- Jul 20 21:22:14 <TheWalkingDerp> the backend is where the functionality is?
- Jul 20 21:22:19 <miyako> Suner: there are a couple of reasons: one is we wanted to be able to have multiple interfaces, and having the backend be a library makes that easier; using C makes it easier to create language bindings
- Jul 20 21:22:20 <TheDuceCat> yeah
- Jul 20 21:22:20 <TheWalkingDerp> so the gui just exposes it
- Jul 20 21:22:38 <TheDuceCat> so python can access it
- Jul 20 21:23:22 <Accipiter> So you do something like make_tileset(tiles, x, y) and the backend would map tileID -> tile_data?
- Jul 20 21:23:34 <Accipiter> x y being the size of the tiles
- Jul 20 21:23:49 <Suner> miyako: okay, but when would you need another language to interface with the backend?
- Jul 20 21:24:18 <TheDuceCat> c++ for gui
- Jul 20 21:24:24 <miyako> Suner: as an example, say you wanted to make a native Cocoa application on OSX, you could use the backend and write a gui in objective c
- Jul 20 21:24:24 <TheDuceCat> python for plugins
- Jul 20 21:24:48 <miyako> or if you wanted to make a web tool for making makes, you could have a python program that loads the backend, and exposes web services to a javascript ui
- Jul 20 21:26:00 <Suner> ah
- Jul 20 21:26:09 <Suner> but you could have very well used C++ and write a C interface
- Jul 20 21:26:42 <TheDuceCat> not nessecarily
- Jul 20 21:26:47 <miyako> Suner: it's often easier to have bindings to multiple languages when you use C, and it also gives people who want to learn C an area of the project to work on
- Jul 20 21:26:47 <TheDuceCat> wait
- Jul 20 21:26:55 <TheDuceCat> ^
- Jul 20 21:27:26 <miyako> some of our choices are done for social, as well as technical reasons :)
- Jul 20 21:27:40 <Suner> okay, I was just wondering why we chose to use 3 different languages
- Jul 20 21:27:50 <TheDuceCat> different interests
- Jul 20 21:28:27 <Suner> (I've never done desktop work in C, so it comes to me as a little weird)
- Jul 20 21:30:21 <TheDuceCat> alright we moving on or continue with feature discussion?
- Jul 20 21:30:30 <Suner> yes
- Jul 20 21:30:41 <Suner> so for starters we need a basic 2d mapping?
- Jul 20 21:31:16 <TheDuceCat> yep
- Jul 20 21:31:19 <Suner> will we be having a static tile size for a map? or perhaps a dynamic one?
- Jul 20 21:31:24 <TheDuceCat> dynamic
- Jul 20 21:31:35 <TheDuceCat> what do you mean actually
- Jul 20 21:32:04 <centigrade233> scale-able tiles?
- Jul 20 21:32:09 <miyako> I think tiles themselves should, at first, just be say 64x64 square images, and the map can be any size of tiles
- Jul 20 21:32:13 <Suner> for example, a map sets the size of a tile, so every tile on that map is that size (this makes it easier when placing tiles, x-y)
- Jul 20 21:32:15 <TheDuceCat> yeah
- Jul 20 21:32:20 <TheDuceCat> they can set what size tiles they want
- Jul 20 21:32:29 <TheDuceCat> and map width/height
- Jul 20 21:32:35 <Suner> versus dynamic, were tiles can be varying sizes
- Jul 20 21:32:40 <TheDuceCat> static for now
- Jul 20 21:32:41 <Suner> in the same map
- Jul 20 21:32:47 <Suner> okay great lol
- Jul 20 21:32:49 <Suner> easy for now
- Jul 20 21:33:59 <Suner> square tiles? 64x64 like miyako said?
- Jul 20 21:34:17 <TheDuceCat> any size
- Jul 20 21:34:21 <TheDuceCat> not exculsively 64 64
- Jul 20 21:34:24 <Suner> just for starters
- Jul 20 21:34:27 <Accipiter> Would it be easier to implement dynamic tiles now or add it later?
- Jul 20 21:34:32 <Suner> add later.
- Jul 20 21:34:34 <TheDuceCat> later
- Jul 20 21:34:37 <Accipiter> Why?
- Jul 20 21:34:43 <Suner> it's not that trivial.
- Jul 20 21:34:47 <TheDuceCat> it's not really needed atm
- Jul 20 21:34:59 <Suner> at this point
- Jul 20 21:35:06 <Suner> I'd just like to see us get some working code up
- Jul 20 21:35:13 <TheDuceCat> ^ same
- Jul 20 21:35:14 <Accipiter> OK makes sense
- Jul 20 21:35:35 <Suner> I think morale is much better when there's showable progress
- Jul 20 21:35:37 <miyako> yeah, I think as long as we know we want scalable tiles later we won't get ourselves into too much of a hole by focusing on 64x64 for now
- Jul 20 21:35:57 <TheDuceCat> you should be able to do it like tiled
- Jul 20 21:35:59 <TheDuceCat> by tileset
- Jul 20 21:36:26 <Accipiter> Suner: thats true
- Jul 20 21:37:51 <Suner> all right
- Jul 20 21:38:14 <TheDuceCat> i'm not saying we need dynamic tiles initially just an option for size when you first make your tilemap
- Jul 20 21:38:58 <Suner> I would say yes, for 0.1. but I'd like to actually see us get a working map with 64x64 tiles first
- Jul 20 21:39:48 <TheDuceCat> it really wouldn't take much time at all to make other tile sizes
- Jul 20 21:39:50 <TheDuceCat> just at the beginning
- Jul 20 21:39:51 <TheDuceCat> it asks you
- Jul 20 21:39:52 <Suner> after that, I can't imagine it being difficult to change scales
- Jul 20 21:39:56 <TheDuceCat> tile size and map size
- Jul 20 21:41:15 <Suner> sure, ultimately this is an OSS project (it's just a feature I myself aren't likely to do until I can see a map)
- Jul 20 21:42:35 <paise> I think we should talk a bit about graphics/artistic side of ourselves. A call for submitting 1) GUI mockups (which is already set on trello board) 2) Creating some example tiles to include with the program. (we can have list on trello and voteout, and then add it to github)
- Jul 20 21:43:02 <TheDuceCat> i can do stick figures!
- Jul 20 21:43:13 <Suner> I can do colored boxes.
- Jul 20 21:43:17 <centigrade233> me too!
- Jul 20 21:43:18 <Suner> haha
- Jul 20 21:43:20 <thearrowflies> tiles im not so good with
- Jul 20 21:43:28 <paise> don't forget our alien!
- Jul 20 21:43:29 <thearrowflies> UIs and things with really straight lines i can do
- Jul 20 21:43:33 <centigrade233> i can do stick figures ON colored boxes!
- Jul 20 21:44:11 <TheDuceCat> NO WAY
- Jul 20 21:44:13 <TheDuceCat> TEACH ME
- Jul 20 21:44:14 <Suner> okay
- Jul 20 21:44:21 <Suner> what about rendering?
- Jul 20 21:44:22 <Accipiter> It would be nice to have our own tiles but there are plenty of free ones we could use.
- Jul 20 21:44:28 <Suner> is it the backend's job to render the map?
- Jul 20 21:44:37 <Accipiter> or just stick tree and colored boxes
- Jul 20 21:44:45 <paise> Suner: I guess we are mostly talking about drawing on a tool like Paint.
- Jul 20 21:45:57 <Suner> paise: Yes, but I mean is it up to the backend to also produce the rendering of the map, and not just managing it?
- Jul 20 21:46:08 <Suner> I don't know, I don't know much about graphics...
- Jul 20 21:46:35 <Accipiter> that would be for miyako I think
- Jul 20 21:46:39 <paise> yes
- Jul 20 21:47:01 <miyako> saw my name, afk for a second
- Jul 20 21:47:59 <Suner> here's where I'm a little confused, we know that the gui must render the map, and allow for editing it. now I'm wondering, does the backend somehow render it and then the gui just also manipulates it?
- Jul 20 21:48:02 <Suner> or...?
- Jul 20 21:48:09 <Suner> does the gui do all the rendering?
- Jul 20 21:48:51 <TheDuceCat> it's opengl so i guess front end
- Jul 20 21:51:34 <TheDuceCat> should we wrap this up soon?
- Jul 20 21:51:46 <thearrowflies> its been 3 hours
- Jul 20 21:51:47 <Suner> probably
- Jul 20 21:52:00 <TheDuceCat> alrigh
- Jul 20 21:52:02 <TheDuceCat> t
- Jul 20 21:52:10 <TheDuceCat> so we discussed code conventions initial features
- Jul 20 21:52:13 <TheDuceCat> requirements
- Jul 20 21:52:25 <Suner> I'd just like to compile together
- Jul 20 21:52:31 <Suner> some *immediate* tasks
- Jul 20 21:52:34 <Suner> that need to be done
- Jul 20 21:52:37 <TheDuceCat> Trello?
- Jul 20 21:52:41 <Suner> so we can get the ball rolling between the next meeting
- Jul 20 21:52:57 <miyako> I'm back
- Jul 20 21:53:08 <TheDuceCat> we're wrapping up the meeting
- Jul 20 21:53:47 <miyako> okay; I apologize for not being more available during the meeting tonight.
- Jul 20 21:53:58 <TheDuceCat> it's alright
- Jul 20 21:54:06 <miyako> Hopefully I'll recover in a few days and be more available to help out
- Jul 20 21:54:12 <TheDuceCat> next meet day?
- Jul 20 21:54:21 <TheDuceCat> Monday perhaps?
- Jul 20 21:54:37 <thearrowflies> !@#$%
- Jul 20 21:54:42 <miyako> Monday will work for me I think
Add Comment
Please, Sign In to add comment