Skip to content

Instantly share code, notes, and snippets.

@PirosB3
Created March 20, 2014 00:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PirosB3/9654416 to your computer and use it in GitHub Desktop.
Save PirosB3/9654416 to your computer and use it in GitHub Desktop.
[10:57pm] PirosB3: I updated the doc
[10:58pm] freakboy3742: I take it this is your daily "how's my proposal" conversation?
[10:58pm] freakboy3742:
[10:58pm] • FunkyBob makes a note that freakboy3742 is 3 hours behind
[10:58pm] freakboy3742: FunkyBob: I am now. No DST in Perth.
[10:58pm] FunkyBob: you lucky sods
[10:58pm] PirosB3: freakboy3742: I admit having used the work component once
[10:58pm] freakboy3742: Yup. Keep putting it to referendum, and it keeps losing.
[10:58pm] PirosB3: I am guilty, but I think I'm using it the write way
[10:59pm] freakboy3742: PirosB3: Heh…
[10:59pm] PirosB3: ahah
[10:59pm] freakboy3742: You're at a disadvantage - I came up through Comp Sci in the era of CORBA.
[10:59pm] PirosB3: ahah
[10:59pm] FunkyBob: hahahaha
[10:59pm] freakboy3742: Most of the scars of that experience have healed…
[10:59pm] FunkyBob: I still remember dreaming of redesigning X as CORBA
[11:00pm] FunkyBob: how foolish and naive we were
[11:00pm] freakboy3742: My co-founder actually used to be a senior manager at Iona.
[11:00pm] FunkyBob: freakboy3742: don't suppose you have any experience with developing CFGs? Alex is [understandably :)] ignoring my pleas
[11:00pm] PirosB3: I have never used CORBA
[11:00pm] freakboy3742: FunkyBob: Only at the "you have to do this to pass CS" level. Haven't looked at them for a long time.
[11:01pm] PirosB3: I don't know if that's a good thing or a bad thing
[11:01pm] freakboy3742: PirosB3: Probably a good thing
[11:01pm] Siecje: FunkyBob: What are you trying to do?
[11:01pm] freakboy3742: But, as Santayana says - those who forget the past are doomed to repeat it.
[11:01pm] FunkyBob: Siecje: express tag syntax as a BNF so I can use rply
[11:02pm] FunkyBob: CORBA... like OLE without the major flaws, but designed by committee
[11:02pm] freakboy3742: That's the one!
[11:02pm] Siecje: FunkyBob: an issue in particular?
[11:03pm] PirosB3: CFG = context free grammar?
[11:03pm] Siecje: yeah
[11:04pm] PirosB3: looks cool
[11:04pm] PirosB3: lots of brackets
[11:04pm] PirosB3: is it Lisp?
[11:04pm] PirosB3: lol
[11:05pm] FunkyBob: Siecje: I have no idea how to design one I understand how to read them
[11:06pm] Alex_Gaynor: FunkyBob: if you read the PLY tutorial, it describes a lot of the needed concepts
[11:06pm] Alex_Gaynor: (sorry I've been in and out)
[11:06pm] Siecje: PirosB3: You want a language to be context free so you don't need to know what is around a symbol to know what it is doing
[11:07pm] dlogs left the chat room. (Remote host closed the connection)
[11:07pm] FinalAngel left the chat room.
[11:07pm] dlogs joined the chat room.
[11:07pm] FunkyBob: Alex_Gaynor: yeah, it does... but... not quite enough of the "best practices"
[11:07pm] PirosB3: can you give me an example Siecje ?
[11:07pm] Siecje: for example C is not context free because of the * operator
[11:07pm] FunkyBob: PirosB3: https://www.google.com.au/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCkQFjAA&url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FBackus%25E2%2580%2593Naur_Form&ei=RyMqU5z_CJC3lQX8zoDwAw&usg=AFQjCNEqmyX1o21fYNzLCUP1yfOexI0KXQ&sig2=sRnfv2nz3Gi456jvmreerw&bvm=bv.62922401,d.dGI
[11:08pm] FunkyBob: fucking google
[11:08pm] FunkyBob: http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form
[11:08pm] jarshwah: dat url
[11:08pm] PirosB3: lol
[11:08pm] PirosB3: aha!
[11:08pm] Siecje: PirosB3: are you familiar with C?
[11:09pm] PirosB3: more or less
[11:09pm] Siecje: you are familiar with C++ because I read that in your proposal
[11:09pm] FunkyBob: Alex_Gaynor: nost of them use the very simple "basic math" example...
[11:09pm] PirosB3: ahah
[11:09pm] Alex_Gaynor: totally.
[11:09pm] PirosB3: yes, I am using it for uni
[11:09pm] PirosB3: it's DirectX
[11:09pm] Siecje: ?
[11:10pm] FunkyBob: Alex_Gaynor: as an example... if the first token of an "expresion" is a NAME, I need to handle it differently [make it a context subscript]
[11:10pm] FunkyBob: would i do that with a parser state flag? or can I express it in the BNF?
[11:10pm] PirosB3: for one of my assignments I am making a game in DirectX
[11:10pm] Alex_Gaynor: Sorry, I'm not sure I understand what you're asking.
[11:10pm] PirosB3: so obviously C++
[11:11pm] PirosB3: I was answering Siecje
[11:11pm] FunkyBob: Alex_Gaynor: that's ok... let me elaboate
[11:11pm] FunkyBob: Alex_Gaynor: so, I'm writing a template parser... a sample might be : {{ a.b[c].d["e"] }}
[11:11pm] FunkyBob: which would translate to context['a'].b[context['c']].e['e']
[11:11pm] EvilDMP left the chat room. (Quit: EvilDMP)
[11:12pm] Alex_Gaynor: you don't express the context stuff in the grammar, you express those in the actions
[11:12pm] FunkyBob: plink
[11:12pm] FunkyBob: context free grammar... of course
[11:12pm] jarshwah: PirosB3: reading through your proposal now, just wanting to throw out some questions while I'm reading
[11:12pm] FunkyBob: actions being the stuff decorated with productions?
[11:12pm] PirosB3: nice! sure
[11:12pm] PirosB3: comment too!
[11:12pm] Alex_Gaynor: yes, actions being the functions
[11:13pm] FunkyBob: ok
[11:13pm] PirosB3: in the meantime, I'm looking at this CFG
[11:13pm] jarshwah: I'm not sure I like the `with_model=True`.. wouldn't it be nicer to always return the with_model variant, and let callers disregard the model part of the tuple if they don't need it?
[11:13pm] jarshwah: so get_fields() returns [ (field, model) ]
[11:14pm] jarshwah: I'm assuming it returns a list of 2-tuples here
[11:14pm] PirosB3: oh wow, 4 people on my doc. I'm popular
[11:14pm] FunkyBob: Alex_Gaynor: with rply, productions which take non-terminals will be passed exactly what my other actions returned, yes?
[11:14pm] Alex_Gaynor: yup
[11:14pm] PirosB3: jarshwah: that is very true
[11:15pm] FunkyBob: in this case, the're ast nodes...
[11:15pm] PirosB3: jarshwah: I'll write that down
[11:15pm] FunkyBob: am just trying to form in my head how the action will know it's the start of the expression...
[11:15pm] jarshwah: I have similar thoughts on the local=False for get_concrete_fields, though I'm unsure what the difference is between local and non-local fields without looking into it too much
[11:15pm] FunkyBob: but I guess if it's passed a NAME as the left, it knows it's the start...
[11:15pm] jarshwah: but the API looks somewhat ugly to me
[11:16pm] jarshwah: ..both the proposed one, and the existing one
[11:16pm] jarshwah: you've done lots of work here, so if what I'm saying doesn't really make sense, feel free to disregard
[11:17pm] jarshwah: would you prefer me to comment on the doc rather than here on IRC?
[11:17pm] FunkyBob: Alex_Gaynor: so, something like http://dpaste.com/1746492/
[11:17pm] Alex_Gaynor: seems plausible
[11:18pm] PirosB3: does anyone of you do machine learning by any chance?
[11:19pm] PirosB3: jarshwah: oh sorry I didn't see you commented
[11:19pm] PirosB3: yes of course! let's put it on the doc. So it's easier for other people to see the discussion
[11:19pm] ambv left the chat room. (Read error: Connection reset by peer)
[11:19pm] jarshwah: sure
[11:19pm] FunkyBob: Alex_Gaynor: will write it up and see how it goes
[11:19pm] mkai joined the chat room.
[11:20pm] PirosB3: freakboy3742: Nice try How do you know that 2 1 week iteration cycles will be enough?
[11:20pm] PirosB3: ahaha
[11:20pm] PirosB3: what do you suggest I put down?
[11:21pm] bynaryshef joined the chat room.
[11:26pm] FunkyBob: parser.py:1: ParserGeneratorWarning: 1 shift/reduce conflict
[11:27pm] brts left the chat room. (Ping timeout: 240 seconds)
[11:27pm] FunkyBob: Alex_Gaynor: http://dpaste.com/1746505/ comments welcome
[11:31pm] dlogs left the chat room. (Ping timeout: 265 seconds)
[11:31pm] freakboy3742: PirosB3: Ok; that's review number 2 done.
[11:31pm] freakboy3742: Better; still needs some work, especially in the timeline.
[11:31pm] PirosB3: lol
[11:31pm] freakboy3742: And an explicit description of the testbed sample project you intend to tackle.
[11:32pm] PirosB3: ok with regards to the tickets
[11:32pm] PirosB3: so with regards to the implementation and timeline
[11:32pm] PirosB3: this is what I would like to do
[11:32pm] PirosB3: my idea is a very "agile" approach
[11:33pm] FunkyBob: Alex_Gaynor: whilst I can understand why the error messages may need to be terse... I don't know how to debug the problem
[11:33pm] FunkyBob: and this is why I seek an expert to bother
[11:33pm] PirosB3: in terms of doing small steps, and if I need to fail, i'll fail early
[11:33pm] PirosB3: but if I need to define a timeline for 3 months
[11:33pm] freakboy3742: PirosB3: A good idea - *but*
[11:33pm] PirosB3: this can be messy
[11:34pm] freakboy3742: The problem is that saying "I'm going to spend 2 weeks" doesn't give us any confidence that the task will actually *take* 2 weeks.
[11:34pm] freakboy3742: You say "Refactor Meta" is going to take 5 weeks total.
[11:34pm] freakboy3742: Is that a reasonable estimatee?
[11:34pm] freakboy3742: How big a job is it?
[11:34pm] PirosB3: freakboy3742: the problem is that everything is based on our evaluation
[11:34pm] freakboy3742: Yes and no.
[11:34pm] PirosB3: how many endpoints is it going to have
[11:34pm] PirosB3: ?
[11:34pm] PirosB3: there are all questions that need to be answered, so for this reason
[11:35pm] freakboy3742: You should be able to develop a "wet finger in the air" estimate based on what is there.
[11:35pm] freakboy3742: We're not adding any new functionality.
[11:35pm] PirosB3: I prefer having more time, and possibly finish before deadline
[11:35pm] freakboy3742: Lets say there's 20 API entry points at present.
[11:35pm] freakboy3742: We refactor, and get that down to 15.
[11:35pm] PirosB3: "wet finger in the air" ahah
[11:35pm] freakboy3742: You say "1 day per API entry point", and there's 3 weeks.
[11:36pm] freakboy3742: (or 4, if you want to use the initial API count)
[11:36pm] freakboy3742: At a granularity of 1 day.
[11:36pm] freakboy3742: Now - the variables here - how may entry points are we talking about, and how long will each chunk take?
[11:36pm] PirosB3: so you think I should not be speaking in days/weeks?
[11:36pm] freakboy3742: Days/weeks is find a the macro level
[11:37pm] freakboy3742: What I'm trying to get at is that we (the mentors evaluating the proposal) want to get a feel for how well you understand the problem.
[11:37pm] FunkyBob: Alex_Gaynor: so, I fixed the mistakes in my decorator (replace term with expr) and now there's _two_ errors
[11:37pm] freakboy3742: Providing a detailed estimate is one way to establish how well you understand the current landscape
[11:37pm] freakboy3742: We want to you to provide evidence that backs up your claim that you can refactor Meta in 5 weeks.
[11:38pm] PirosB3: sure
[11:38pm] freakboy3742: Not just work back from "I have 12 weeks, and I need to spend half of them working on the refactor.
[11:38pm] PirosB3: but there are many important factors to consider
[11:38pm] PirosB3: such as the evaliuation
[11:38pm] freakboy3742: What you've written so far reads like splitting up the available time, not building up from what work needs to be done.
[11:38pm] PirosB3: the answers to our solutions
[11:38pm] freakboy3742: Not sure what you mean by "the evaluation"
[11:39pm] SmileyChris: "discovery phase", I guess
[11:39pm] freakboy3742: Youv'e given a pretty good analysis of the sort of fixes you're going to be applying to meta.
[11:39pm] PirosB3: I mean the part where we agree on an API
[11:39pm] PirosB3: SmileyChris: yep discovery phase
[11:39pm] PirosB3: I always get the words wrong
[11:39pm] freakboy3742: Ok - so that might be a reasonable block for a week or two at the start
[11:39pm] freakboy3742: *but*
[11:39pm] PirosB3: still, everything depends from that
[11:40pm] freakboy3742: again, you need to validate that 1 week is enough.
[11:40pm] freakboy3742: PirosB3: Ok - perhaps I'm not being clear.
[11:40pm] freakboy3742: This doesn't need to be a 100% perfect, completely accurate estimate where we're going to hold your feet to the flames and withhold money if you don't meet your deadlines.
[11:40pm] PirosB3: oh good
[11:40pm] freakboy3742: Last year, my student's proposal was off by about 4 weeks by the end of the program, and I gave him a glowing review.
[11:41pm] SmileyChris: "hot glowing coals" review?
[11:41pm] PirosB3: ahah
[11:41pm] SmileyChris:
[11:41pm] FunkyBob: waterboarding review?
[11:41pm] • freakboy3742 files that one away for later motivational purposes
[11:41pm] PirosB3: great
[11:41pm] freakboy3742: What we're looking for is evidence that *you* understand how complex the problem is.
[11:41pm] freakboy3742: Not that you've said "I'm gonna work for 12 weeks, and then stop".
[11:42pm] mkai left the chat room. (Quit: Leaving.)
[11:42pm] PirosB3: I understand the complexity of the problem
[11:42pm] freakboy3742: So - true, we don't know exactly what the final API will look like, and initial discussions will affect exactly how long work takes.
[11:42pm] freakboy3742: Says you
[11:42pm] PirosB3: ahahah
[11:42pm] PirosB3: obviously I don't know anything
[11:42pm] PirosB3: I know enough to get starting
[11:42pm] PirosB3: and I think that is fundamental
[11:43pm] freakboy3742: Sure - but although we don't know the final form, we know *roughly* how big the problem is now.
[11:43pm] freakboy3742: The functionality of Meta isn't going to massively increase as a result of your refactor
[11:43pm] PirosB3: I would like to tell you what I would like to do in the next 2 weeks
[11:43pm] PirosB3: but what I do after, depends on the evaluation of those 2 weeks
[11:43pm] freakboy3742: So we know how many entry points there are right now - use that as a basis for your estimate.
[11:43pm] PirosB3: but there is other complexity to consider
[11:44pm] PirosB3: all the other parts of the system that use Meta
[11:44pm] freakboy3742: "The current meta has 20 entry points. These may be refactored into a tighter subset, but assuming it takes 1 day per existing API, this phase of refactoring will take 4 weeks"
[11:44pm] freakboy3742: That's all we're looking for.
[11:44pm] PirosB3: oh really?
[11:44pm] PirosB3: ok file
[11:44pm] PirosB3: fine
[11:44pm] PirosB3: that sounds ok
[11:44pm] freakboy3742: Yes - an indication that you have looked at the problem enough to make an informed estimate
[11:44pm] PirosB3: but still
[11:44pm] freakboy3742: or rather, an estimate that isn't *just* informed by the 12 week completion deadline.
[11:44pm] PirosB3: so what you want is proof of estimation
[11:45pm] freakboy3742: Yes
[11:45pm] PirosB3: ok
[11:45pm] PirosB3: that makes perfect sense
[11:45pm] PirosB3: just 1 thing
[11:45pm] freakboy3742: Put it this way - if I said "Rewrite Django's template system" - estimate 5 weeks
[11:45pm] freakboy3742: would you believe me?
[11:45pm] freakboy3742: No.
[11:45pm] PirosB3: I can do that up to a certain extent, but I cannot guarantee this in real life
[11:45pm] freakboy3742: Oh - for sure.
[11:45pm] PirosB3: ahaha
[11:45pm] freakboy3742: Like I said, we're not going to hold you absolutely to this.
[11:45pm] PirosB3: because I want to use a far more iterative approach
[11:45pm] freakboy3742: It's going to be indicative.
[11:46pm] freakboy3742: Ok - so factor that iteration into your schedule.
[11:46pm] PirosB3: ok sure, so I will back up my estimates
[11:46pm] mkai joined the chat room.
[11:46pm] PirosB3: freakboy3742: how would you put it in?
[11:46pm] freakboy3742: Excellent - that's all we need.
[11:47pm] PirosB3: ok say what
[11:47pm] freakboy3742: Pretty much exactly as I did 2 minutes back.
[11:47pm] PirosB3: ok great
[11:47pm] freakboy3742: It's fine to have a 4 week block - as long as it isn't just "4 WEEKS: DO STUFF"
[11:47pm] PirosB3: also with regards to the project
[11:47pm] freakboy3742: 4 weeks of 1 day tasks - that's fine.
[11:47pm] PirosB3: ahhh ok that's better
[11:48pm] PirosB3: Also, with regards to my project (testbed)
[11:48pm] PirosB3: the way I would do this is just after the meta refactor
[11:48pm] PirosB3: before the decoupling phase
[11:48pm] PirosB3: I'm good at prototyping (I hope!)
[11:49pm] PirosB3: so we could experiment before actually defining the spec
[11:49pm] PirosB3: but how can I explain this?
[11:49pm] freakboy3742: Well, describe what you're going to do, and why.
[11:49pm] freakboy3742: The why is an important part
[11:50pm] freakboy3742: otherwise a fresh set of eyes is going to ask "Why is Django funding an alternate implementation of Meta?"
[11:50pm] PirosB3: my paragraph "benefits" will explain this
[11:51pm] freakboy3742: So - "We have a cleaned up Meta. To prove the documentation is complete, it's helpful to have a clean room implementation of the API. As a proof of concept, we're going to build a model wrapper of XYZ, and develop that wrapper to the point it can be dropped into Admin/Modelforms. This will require additional documentation and code cleanup in Django itself"
[11:51pm] freakboy3742: (elaborate into multiple paragraphs, but hopefully you get the idea)
[11:52pm] PirosB3: but this is in the timeline?
[11:52pm] PirosB3: I didn't expect it to be so tough to write a proposal
[11:52pm] PirosB3: lol :=)
[11:53pm] FunkyBob: it's like a bank loan... "prove to use you don't need this."
[11:53pm] freakboy3742: PirosB3: Hey - there's $5k on the line here. We're not just gonna give it away
[11:53pm] FunkyBob: though in this case it's more "prove to us you won't make the mentor have to do anything"
[11:53pm] freakboy3742: And seriously - you're getting away easy here.
[11:53pm] FunkyBob: $5k? where do I sign up??
[11:53pm] freakboy3742: FunkyBob: Well, head down to RMIT and enrol
[11:53pm] FunkyBob: haha
[11:53pm] PirosB3: ahahahaha
[11:53pm] FunkyBob: Monash is closer
[11:54pm] FunkyBob: what if I get my wife to submit the application?
[11:54pm] FunkyBob: does the mentor have to be a core dev?
[11:54pm] PirosB3: freakboy3742: (potentially=) how much would we be communicating?
[11:54pm] jarshwah: 1 term costs about $5000 these days
[11:54pm] freakboy3742: PirosB3: Well, as much as necessary
[11:54pm] PirosB3: daily?
[11:55pm] freakboy3742: As an indication; last year, I had a weekly phone call that lasted an hour or so, and feedback on mailing lists during the week
[11:55pm] freakboy3742: But that's not set in stone
[11:55pm] PirosB3: that sounds good
[11:55pm] freakboy3742: Essentially, you're expected to work independently as much as possible
[11:55pm] freakboy3742: but the mentor is there to give you as much feedback as necessary.
[11:56pm] PirosB3: freakboy3742: I can always contact you at your 7am
[11:56pm] freakboy3742: At the start, that might mean a lot more interaction, possibly less t the end.
[11:56pm] PirosB3: I'm sure you will be delighted
[11:56pm] freakboy3742: PirosB3: Oh goody!
[11:57pm] PirosB3: ok
[11:57pm] freakboy3742: Assuming you get picked, and I'm the mentor (and I like your chances of both of those), we can shake out details as we get closer.
[11:57pm] PirosB3: ahaha
[11:57pm] PirosB3: cool
[11:57pm] PirosB3: so now I have to convince you
[11:57pm] freakboy3742: Indeed
[11:57pm] PirosB3: so… in order to convince you
[11:58pm] freakboy3742: Unmarked, nonsequential bills help.
[11:58pm] PirosB3: I will update the timeline, giving more detailed estimates. with a WHY
[11:58pm] PirosB3: ahahaha
[11:58pm] PirosB3: I'll send a carrier pidgin
[11:58pm] freakboy3742: PirosB3: yes - and more detail on the testbed project (why and what)
[11:58pm] PirosB3: great
[11:59pm] PirosB3: then=
[11:59pm] PirosB3: ?
[11:59pm] PirosB3: also, how do I submit this?
[11:59pm] PirosB3: they have a weird editor
[11:59pm] freakboy3742: Yeah. that they do. Melange is… interesting.
[11:59pm] PirosB3: is there now way I can provide a link?
[11:59pm] freakboy3742: Essentially, no.
[11:59pm] PirosB3: lol
[11:59pm] freakboy3742: I've got a feeling this is part 1 of Google's plan - you must be able to work out Melange before you get our money.
[12:00am] freakboy3742: It really is a clusterf*ck.
[12:00am] PirosB3: basically I need to plan a day upfront to port my docs to Melange
[12:00am] PirosB3: can I already submit, and then replace?
[12:00am] • FunkyBob thinks he needs a neural tap into Alex_Gaynor's brain
[12:01am] PirosB3: how do you do that FunkyBob?
[12:01am] FunkyBob: no idea
[12:01am] PirosB3: ahah
[12:01am] PirosB3: third person
[12:01am] PirosB3: PirosB3 says blablabla
@PirosB3
Copy link
Author

PirosB3 commented Mar 20, 2014

[11:20pm] PirosB3: ahaha
[11:20pm] PirosB3: what do you suggest I put down?
[11:21pm] bynaryshef joined the chat room.
[11:26pm] FunkyBob: parser.py:1: ParserGeneratorWarning: 1 shift/reduce conflict
[11:27pm] brts left the chat room. (Ping timeout: 240 seconds)
[11:27pm] FunkyBob: Alex_Gaynor: http://dpaste.com/1746505/ comments welcome
[11:31pm] dlogs left the chat room. (Ping timeout: 265 seconds)
[11:31pm] freakboy3742: PirosB3: Ok; that's review number 2 done.
[11:31pm] freakboy3742: Better; still needs some work, especially in the timeline.
[11:31pm] PirosB3: lol
[11:31pm] freakboy3742: And an explicit description of the testbed sample project you intend to tackle.
[11:32pm] PirosB3: ok with regards to the tickets
[11:32pm] PirosB3: so with regards to the implementation and timeline
[11:32pm] PirosB3: this is what I would like to do
[11:32pm] PirosB3: my idea is a very "agile" approach
[11:33pm] FunkyBob: Alex_Gaynor: whilst I can understand why the error messages may need to be terse... I don't know how to debug the problem
[11:33pm] FunkyBob: and this is why I seek an expert to bother
[11:33pm] PirosB3: in terms of doing small steps, and if I need to fail, i'll fail early
[11:33pm] PirosB3: but if I need to define a timeline for 3 months
[11:33pm] freakboy3742: PirosB3: A good idea - but
[11:33pm] PirosB3: this can be messy
[11:34pm] freakboy3742: The problem is that saying "I'm going to spend 2 weeks" doesn't give us any confidence that the task will actually take 2 weeks.
[11:34pm] freakboy3742: You say "Refactor Meta" is going to take 5 weeks total.
[11:34pm] freakboy3742: Is that a reasonable estimatee?
[11:34pm] freakboy3742: How big a job is it?
[11:34pm] PirosB3: freakboy3742: the problem is that everything is based on our evaluation
[11:34pm] freakboy3742: Yes and no.
[11:34pm] PirosB3: how many endpoints is it going to have
[11:34pm] PirosB3: ?
[11:34pm] PirosB3: there are all questions that need to be answered, so for this reason
[11:35pm] freakboy3742: You should be able to develop a "wet finger in the air" estimate based on what is there.
[11:35pm] freakboy3742: We're not adding any new functionality.
[11:35pm] PirosB3: I prefer having more time, and possibly finish before deadline
[11:35pm] freakboy3742: Lets say there's 20 API entry points at present.
[11:35pm] freakboy3742: We refactor, and get that down to 15.
[11:35pm] PirosB3: "wet finger in the air" ahah
[11:35pm] freakboy3742: You say "1 day per API entry point", and there's 3 weeks.
[11:36pm] freakboy3742: (or 4, if you want to use the initial API count)
[11:36pm] freakboy3742: At a granularity of 1 day.
[11:36pm] freakboy3742: Now - the variables here - how may entry points are we talking about, and how long will each chunk take?
[11:36pm] PirosB3: so you think I should not be speaking in days/weeks?
[11:36pm] freakboy3742: Days/weeks is find a the macro level
[11:37pm] freakboy3742: What I'm trying to get at is that we (the mentors evaluating the proposal) want to get a feel for how well you understand the problem.
[11:37pm] FunkyBob: Alex_Gaynor: so, I fixed the mistakes in my decorator (replace term with expr) and now there's two errors
[11:37pm] freakboy3742: Providing a detailed estimate is one way to establish how well you understand the current landscape
[11:37pm] freakboy3742: We want to you to provide evidence that backs up your claim that you can refactor Meta in 5 weeks.
[11:38pm] PirosB3: sure
[11:38pm] freakboy3742: Not just work back from "I have 12 weeks, and I need to spend half of them working on the refactor.
[11:38pm] PirosB3: but there are many important factors to consider
[11:38pm] PirosB3: such as the evaliuation
[11:38pm] freakboy3742: What you've written so far reads like splitting up the available time, not building up from what work needs to be done.
[11:38pm] PirosB3: the answers to our solutions
[11:38pm] freakboy3742: Not sure what you mean by "the evaluation"
[11:39pm] SmileyChris: "discovery phase", I guess
[11:39pm] freakboy3742: Youv'e given a pretty good analysis of the sort of fixes you're going to be applying to meta.
[11:39pm] PirosB3: I mean the part where we agree on an API
[11:39pm] PirosB3: SmileyChris: yep discovery phase
[11:39pm] PirosB3: I always get the words wrong
[11:39pm] freakboy3742: Ok - so that might be a reasonable block for a week or two at the start
[11:39pm] freakboy3742: but
[11:39pm] PirosB3: still, everything depends from that
[11:40pm] freakboy3742: again, you need to validate that 1 week is enough.
[11:40pm] freakboy3742: PirosB3: Ok - perhaps I'm not being clear.
[11:40pm] freakboy3742: This doesn't need to be a 100% perfect, completely accurate estimate where we're going to hold your feet to the flames and withhold money if you don't meet your deadlines.
[11:40pm] PirosB3: oh good
[11:40pm] freakboy3742: Last year, my student's proposal was off by about 4 weeks by the end of the program, and I gave him a glowing review.
[11:41pm] SmileyChris: "hot glowing coals" review?
[11:41pm] PirosB3: ahah
[11:41pm] SmileyChris:
[11:41pm] FunkyBob: waterboarding review?
[11:41pm] • freakboy3742 files that one away for later motivational purposes
[11:41pm] PirosB3: great
[11:41pm] freakboy3742: What we're looking for is evidence that you understand how complex the problem is.
[11:41pm] freakboy3742: Not that you've said "I'm gonna work for 12 weeks, and then stop".
[11:42pm] mkai left the chat room. (Quit: Leaving.)
[11:42pm] PirosB3: I understand the complexity of the problem
[11:42pm] freakboy3742: So - true, we don't know exactly what the final API will look like, and initial discussions will affect exactly how long work takes.
[11:42pm] freakboy3742: Says you
[11:42pm] PirosB3: ahahah
[11:42pm] PirosB3: obviously I don't know anything
[11:42pm] PirosB3: I know enough to get starting
[11:42pm] PirosB3: and I think that is fundamental
[11:43pm] freakboy3742: Sure - but although we don't know the final form, we know roughly how big the problem is now.
[11:43pm] freakboy3742: The functionality of Meta isn't going to massively increase as a result of your refactor
[11:43pm] PirosB3: I would like to tell you what I would like to do in the next 2 weeks
[11:43pm] PirosB3: but what I do after, depends on the evaluation of those 2 weeks
[11:43pm] freakboy3742: So we know how many entry points there are right now - use that as a basis for your estimate.
[11:43pm] PirosB3: but there is other complexity to consider
[11:44pm] PirosB3: all the other parts of the system that use Meta
[11:44pm] freakboy3742: "The current meta has 20 entry points. These may be refactored into a tighter subset, but assuming it takes 1 day per existing API, this phase of refactoring will take 4 weeks"
[11:44pm] freakboy3742: That's all we're looking for.
[11:44pm] PirosB3: oh really?
[11:44pm] PirosB3: ok file
[11:44pm] PirosB3: fine
[11:44pm] PirosB3: that sounds ok
[11:44pm] freakboy3742: Yes - an indication that you have looked at the problem enough to make an informed estimate
[11:44pm] PirosB3: but still
[11:44pm] freakboy3742: or rather, an estimate that isn't just informed by the 12 week completion deadline.
[11:44pm] PirosB3: so what you want is proof of estimation
[11:45pm] freakboy3742: Yes
[11:45pm] PirosB3: ok
[11:45pm] PirosB3: that makes perfect sense
[11:45pm] PirosB3: just 1 thing
[11:45pm] freakboy3742: Put it this way - if I said "Rewrite Django's template system" - estimate 5 weeks
[11:45pm] freakboy3742: would you believe me?
[11:45pm] freakboy3742: No.
[11:45pm] PirosB3: I can do that up to a certain extent, but I cannot guarantee this in real life
[11:45pm] freakboy3742: Oh - for sure.
[11:45pm] PirosB3: ahaha
[11:45pm] freakboy3742: Like I said, we're not going to hold you absolutely to this.
[11:45pm] PirosB3: because I want to use a far more iterative approach
[11:45pm] freakboy3742: It's going to be indicative.
[11:46pm] freakboy3742: Ok - so factor that iteration into your schedule.
[11:46pm] PirosB3: ok sure, so I will back up my estimates
[11:46pm] mkai joined the chat room.
[11:46pm] PirosB3: freakboy3742: how would you put it in?
[11:46pm] freakboy3742: Excellent - that's all we need.
[11:47pm] PirosB3: ok say what
[11:47pm] freakboy3742: Pretty much exactly as I did 2 minutes back.
[11:47pm] PirosB3: ok great
[11:47pm] freakboy3742: It's fine to have a 4 week block - as long as it isn't just "4 WEEKS: DO STUFF"
[11:47pm] PirosB3: also with regards to the project
[11:47pm] freakboy3742: 4 weeks of 1 day tasks - that's fine.
[11:47pm] PirosB3: ahhh ok that's better
[11:48pm] PirosB3: Also, with regards to my project (testbed)
[11:48pm] PirosB3: the way I would do this is just after the meta refactor
[11:48pm] PirosB3: before the decoupling phase
[11:48pm] PirosB3: I'm good at prototyping (I hope!)
[11:49pm] PirosB3: so we could experiment before actually defining the spec
[11:49pm] PirosB3: but how can I explain this?
[11:49pm] freakboy3742: Well, describe what you're going to do, and why.
[11:49pm] freakboy3742: The why is an important part
[11:50pm] freakboy3742: otherwise a fresh set of eyes is going to ask "Why is Django funding an alternate implementation of Meta?"
[11:50pm] PirosB3: my paragraph "benefits" will explain this
[11:51pm] freakboy3742: So - "We have a cleaned up Meta. To prove the documentation is complete, it's helpful to have a clean room implementation of the API. As a proof of concept, we're going to build a model wrapper of XYZ, and develop that wrapper to the point it can be dropped into Admin/Modelforms. This will require additional documentation and code cleanup in Django itself"
[11:51pm] freakboy3742: (elaborate into multiple paragraphs, but hopefully you get the idea)
[11:52pm] PirosB3: but this is in the timeline?
[11:52pm] PirosB3: I didn't expect it to be so tough to write a proposal
[11:52pm] PirosB3: lol :=)
[11:53pm] FunkyBob: it's like a bank loan... "prove to use you don't need this."
[11:53pm] freakboy3742: PirosB3: Hey - there's $5k on the line here. We're not just gonna give it away
[11:53pm] FunkyBob: though in this case it's more "prove to us you won't make the mentor have to do anything"
[11:53pm] freakboy3742: And seriously - you're getting away easy here.
[11:53pm] FunkyBob: $5k? where do I sign up??
[11:53pm] freakboy3742: FunkyBob: Well, head down to RMIT and enrol
[11:53pm] FunkyBob: haha
[11:53pm] PirosB3: ahahahaha
[11:53pm] FunkyBob: Monash is closer
[11:54pm] FunkyBob: what if I get my wife to submit the application?
[11:54pm] FunkyBob: does the mentor have to be a core dev?
[11:54pm] PirosB3: freakboy3742: (potentially=) how much would we be communicating?
[11:54pm] jarshwah: 1 term costs about $5000 these days
[11:54pm] freakboy3742: PirosB3: Well, as much as necessary
[11:54pm] PirosB3: daily?
[11:55pm] freakboy3742: As an indication; last year, I had a weekly phone call that lasted an hour or so, and feedback on mailing lists during the week
[11:55pm] freakboy3742: But that's not set in stone
[11:55pm] PirosB3: that sounds good
[11:55pm] freakboy3742: Essentially, you're expected to work independently as much as possible
[11:55pm] freakboy3742: but the mentor is there to give you as much feedback as necessary.
[11:56pm] PirosB3: freakboy3742: I can always contact you at your 7am
[11:56pm] freakboy3742: At the start, that might mean a lot more interaction, possibly less t the end.
[11:56pm] PirosB3: I'm sure you will be delighted
[11:56pm] freakboy3742: PirosB3: Oh goody!
[11:57pm] PirosB3: ok
[11:57pm] freakboy3742: Assuming you get picked, and I'm the mentor (and I like your chances of both of those), we can shake out details as we get closer.
[11:57pm] PirosB3: ahaha
[11:57pm] PirosB3: cool
[11:57pm] PirosB3: so now I have to convince you
[11:57pm] freakboy3742: Indeed
[11:57pm] PirosB3: so… in order to convince you
[11:58pm] freakboy3742: Unmarked, nonsequential bills help.
[11:58pm] PirosB3: I will update the timeline, giving more detailed estimates. with a WHY
[11:58pm] PirosB3: ahahaha
[11:58pm] PirosB3: I'll send a carrier pidgin
[11:58pm] freakboy3742: PirosB3: yes - and more detail on the testbed project (why and what)
[11:58pm] PirosB3: great
[11:59pm] PirosB3: then=
[11:59pm] PirosB3: ?
[11:59pm] PirosB3: also, how do I submit this?
[11:59pm] PirosB3: they have a weird editor
[11:59pm] freakboy3742: Yeah. that they do. Melange is… interesting.
[11:59pm] PirosB3: is there now way I can provide a link?
[11:59pm] freakboy3742: Essentially, no.
[11:59pm] PirosB3: lol
[11:59pm] freakboy3742: I've got a feeling this is part 1 of Google's plan - you must be able to work out Melange before you get our money.
[12:00am] freakboy3742: It really is a clusterf*ck.
[12:00am] PirosB3: basically I need to plan a day upfront to port my docs to Melange
[12:00am] PirosB3: can I already submit, and then replace?
[12:00am] • FunkyBob thinks he needs a neural tap into Alex_Gaynor's brain
[12:01am] PirosB3: how do you do that FunkyBob?
[12:01am] FunkyBob: no idea
[12:01am] PirosB3: ahah
[12:01am] PirosB3: third person
[12:01am] PirosB3: PirosB3 says blablabla
[12:03am] FunkyBob: oh... "/me"
[12:03am] • PirosB3 : says he is cool
[12:04am] • PirosB3 says he will only speak in this way from now on
[12:06am] mkai left the chat room. (Quit: Leaving.)
[12:07am] dlogs joined the chat room.
[12:10am] puntonim_ left the chat room. (Quit: puntonim_)
[12:13am] PirosB3: hey guys, a question
[12:13am] PirosB3: why can't I see anyone else's proposal
[12:13am] PirosB3: isn't is supposed to be posted on the ML?
[12:17am] jarshwah: I've only seen one other concrete proposal
[12:17am] jarshwah: and that's the bunch of tickets + error messages
[12:17am] jarshwah: but I've been away for awhile
[12:19am] PirosB3: yeah
[12:20am] PirosB3: but how am I communicated of any acceptance/rejection?=
[12:20am] FunkyBob: ah, fuck... this whole BNF is wrong...
[12:20am] PirosB3: ahah
[12:21am] FunkyBob: ...
[12:26am] • PirosB3 : thinks he will call it a day
[12:26am] PirosB3: Thanks for the feedback
[12:26am] PirosB3: come back tomorrow for round 3!
[12:26am] PirosB3:
[12:29am] jarshwah: PirosB3: can you tell me a little more about the GmailStore?
[12:29am] jarshwah: ..if you happen to still be around that is
[12:29am] PirosB3: sure!
[12:30am] PirosB3: so basically it would be a project I would develop side by side
[12:30am] PirosB3: as a proof of concept, and as a way to discover more what is actually needed in the API
[12:31am] PirosB3: the idea is: if I am a user, developing against my APi, I will understand more
[12:31am] PirosB3: said this: GMailStore is a replacement for meta
[12:31am] jarshwah: yes I get the point of writing a POC
[12:31am] jarshwah: but what would it do?
[12:31am] jarshwah: would it be a different backend?
[12:32am] PirosB3: that will be able to make the Django framework interact with GMail API
[12:32am] PirosB3: more or less, I would be using the google API
[12:32am] jarshwah: so.. _meta.get_fields() would do what with gmail?
[12:32am] PirosB3: so, as Django Admin uses Meta to get more information the model
[12:33am] PirosB3: get_fields, will return fields such as: timestamp, from, to, subject, body
[12:33am] PirosB3: then we will hook the manager up with GMail
[12:34am] PirosB3: the idea is that you will be able to browse, filter and view your emails through Django Admin
[12:34am] jarshwah: wouldn't that also require a different django.db.models backend?
[12:35am] PirosB3: jarshwah: not really
[12:35am] hairy joined the chat room.
[12:35am] PirosB3: the Django admin only does simple queries
[12:35am] PirosB3: so all we need to do is implement that
[12:35am] PirosB3: all(), count(), filter()
[12:35am] PirosB3: and Admin will happily use the store
[12:36am] jarshwah: cool
[12:36am] PirosB3: obviously, there will be some latency issues because we are calling an API
[12:36am] jarshwah: would that be hard to test against though?
[12:36am] PirosB3: but that is not a concern obviously, it's a proof of concept
[12:36am] jarshwah: because tests should be indempotent
[12:36am] PirosB3: jarshwah: I have experience with testing against backends
[12:36am] PirosB3: there are many ways I would do this
[12:37am] PirosB3: we could mock them out, using a mocking library.
[12:37am] mkai joined the chat room.
[12:37am] jarshwah: very true
[12:37am] PirosB3: If Django does not have this, we could always make functions call internal functions
[12:37am] PirosB3: with Python there are many great ways to test
[12:37am] PirosB3: and the idea is that if I write my test before
[12:38am] PirosB3: I have already thought about the implementation
[12:38am] PirosB3: and I would end up with small, maintainable parts of code
[12:38am] jarshwah: I left a comment on your proposal suggesting a CSVStore, but it sounds like you've thought pretty hard on how (and why) you're going to implement the GmailStore stuff
[12:38am] PirosB3: jarshwah: oh thanks!
[12:38am] PirosB3: yes CSVStore sounds great!
[12:39am] PirosB3: The reason I wanted to demo GMail store, is because it would be a "wow" thing to show other developers
[12:39am] PirosB3: part of my proposal is also blogghing
[12:39am] jarshwah: it would be a wow thing
[12:39am] PirosB3: and showing others the possibilities for the new Meta
[12:39am] mkai left the chat room. (Read error: Connection reset by peer)
[12:39am] PirosB3: thanks
[12:40am] PirosB3: the idea is that we should get to a point where it is easy to add different stores
[12:40am] PirosB3: and do it in an official way
[12:40am] PirosB3: people have always been hacking Meta, this task will give them a solid API
[12:40am] jarshwah: I think meta will only be a part of implementing different stores, but it is an important part
[12:40am] jarshwah: ..the first part at least
[12:41am] PirosB3: yes, sure
[12:41am] PirosB3: but by doing this
[12:41am] PirosB3: we also do a lot of ground work
[12:41am] PirosB3: that will make the API usable
[12:42am] jarshwah: definitely.. I think django could benefit from a lot more stable internal APIs
[12:42am] brodie left the chat room. (Quit: leaving)
[12:42am] PirosB3:
[12:42am] jarshwah: there's a tonne of if hasattr('blah', val) branches all over the place
[12:42am] PirosB3: yes
[12:42am] PirosB3: what do you think about my idea? did you identify some flaws?
[12:43am] jarshwah: I'm not familiar enough with meta to offer anything significant, but your proposal looks good to me
[12:43am] PirosB3: thanks
[12:44am] PirosB3: is it convincing enough?
[12:44am] jarshwah: definitely looks like you've put in a tonne of research and gathered a lot of feedback
[12:44am] jarshwah: well from what freakboy3742 has been saying, probably
[12:44am] PirosB3: thanks
[12:44am] PirosB3: I really hope so
[12:44am] PirosB3: I will do the changes he has asked me to do
[12:44am] PirosB3: if you identify anything else
[12:45am] PirosB3: make a comment
[12:45am] jarshwah: well I've got a lot of free time coming up, so I'll probably start poking around similar areas, so if I see anything that may benefit I'll let you know
[12:46am] PirosB3: lucky you
[12:46am] PirosB3: I have had so many deadlines this week
[12:46am] PirosB3: and I have another after tomorrow
[12:46am] jarshwah: I broke both my feet this weekend, so not really lucky
[12:46am] PirosB3: I could do with some free time
[12:46am] PirosB3: oh, sorry to hear that
[12:46am] PirosB3: hope your getting better
[12:46am] jarshwah: appreciate it
[12:47am] jarshwah: and best of luck with your proposal
[12:48am] PirosB3: thanks man!
[12:49am] k_sze left the chat room. (Remote host closed the connection)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment