I am worried that this whole process will actually be less productive than if it was only the on-site developers, that I'll end up looking less productive, and, due to the time issue, that I will have to put my approval on code that would normally be unacceptable. The PM is hellbent on doing this idea for at least 3 months to see how it goes, though.
The Big Programming Thread - Page 309
Forum Index > General Forum |
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. | ||
Toboe
United States276 Posts
I am worried that this whole process will actually be less productive than if it was only the on-site developers, that I'll end up looking less productive, and, due to the time issue, that I will have to put my approval on code that would normally be unacceptable. The PM is hellbent on doing this idea for at least 3 months to see how it goes, though. | ||
enigmaticcam
United States280 Posts
On June 01 2013 05:39 misirlou wrote:I can't see the drawback on 1. Since you don't use foreign keys there are no constraints when altering/deleting a table. Just alter table -> drop column or add column + insert default value. The only other con was the fact that the relationship between the tables and the business tier would be more abstract. Rather than tying analytics straight to the rows in one table by means of keys, I have to build a separate tier that would translate what the business tier is asking for from the data tier. In other words, I can hold IDs to keys, but you can't really hold IDs to tables (unless you store a reference to the table's system ids, but either way you'd still need that translation tier).I think the second approach complicates things. But otherwise, I guess you're right; simple alters and renames wouldn't be that hard to manage. On June 01 2013 05:43 supereddie wrote: Aren't there currently software solutions that already to this though? Off the top of my head, JDE OneWorld does it. Of course, I'm just looking for a small time solution.Uuhmm... look up datawarehouse (on wikipedia for example) and see why what you want to do should not be done. On June 01 2013 07:10 Craton wrote: You mean store all the data in one table? Only problem is different sets of data have different numbers of columns. I could create generic columns, but that's a lot of wasted disk space, and ultimately I'd still need keys to reference the fields.I'm not really seeing why you need to physically separate the data just because it's autonomous. | ||
JeanLuc
Canada377 Posts
On June 01 2013 07:36 Toboe wrote: Does anyone have experience in pair programming? Especially the scenario where you are the more competent one of the pair? I could use any survival tips or lessons learned. I'm being dragged into a project that is going to "try this out" where each on-site developer is being paired with one of our contracted, 3rd party, off-shore developers. I've gotten chances to work with every one of the off-shore developers (all of which have been with this company several years more than I have), and have consistently had to help them with very basic environment setup issues, basic understanding of requirements, and often had to rewrite their code for them to be logical/functional. Since they are off-shore, our work schedules only overlap by 3 hours, so we'll be doing most of our work alone, and then I am worried that this whole process will actually be less productive than if it was only the on-site developers, that I'll end up looking less productive, and, due to the time issue, that I will have to put my approval on code that would normally be unacceptable. The PM is hellbent on doing this idea for at least 3 months to see how it goes, though. Don't mean to be paranoid-- but it sounds like they want you to train cheap labour that will eventually replace you. Try to get the PM fired imo. | ||
Craton
United States17234 Posts
On June 01 2013 07:43 enigmaticcam wrote: You mean store all the data in one table? Only problem is different sets of data have different numbers of columns. I could create generic columns, but that's a lot of wasted disk space, and ultimately I'd still need keys to reference the fields. No, that's fine then. It sounded like it was the same type of data just disparate and not inter-related. When I think of data warehousing I think of very large volumes (billions / hundreds of millions) of structurally similar data, even if not necessarily related. I deal more with the processing side of things than the warehousing side. Our biggest systems only have like 300 million records (although frankly the one I've been developing could end up handling billions of records if the contract gets extended). But I digress. I can't really help too much in the area of warehousing. On June 01 2013 07:36 Toboe wrote: Does anyone have experience in pair programming? Especially the scenario where you are the more competent one of the pair? I could use any survival tips or lessons learned. I'm being dragged into a project that is going to "try this out" where each on-site developer is being paired with one of our contracted, 3rd party, off-shore developers. I've gotten chances to work with every one of the off-shore developers (all of which have been with this company several years more than I have), and have consistently had to help them with very basic environment setup issues, basic understanding of requirements, and often had to rewrite their code for them to be logical/functional. Since they are off-shore, our work schedules only overlap by 3 hours, so we'll be doing most of our work alone, and then I am worried that this whole process will actually be less productive than if it was only the on-site developers, that I'll end up looking less productive, and, due to the time issue, that I will have to put my approval on code that would normally be unacceptable. The PM is hellbent on doing this idea for at least 3 months to see how it goes, though. That sounds more like an issue of implementation than anything. We've had it done a little, but I haven't directly done it. It's not supposed to be the case where the "better" programmer is at the helm; rather, you want to swap back and forth. Part of the idea is that the weaker programmer can learn from both watching the better one's techniques, but also getting immediate feedback as they do things. You're supposed to discuss what you're doing before/as you do it so that you can bounce ideas off each other. A "lesser" programmer can still provide valuable feedback to the process. However, you can have two evenly skilled programmers paired up. The thought is that if you have to explain yourself as you go, you are less likely to end up going down the wrong path. Also, you will (in theory) be blocked less frequently and for less time. The primary goal here is to end up with really solid code that needs little to no retouching (you're spending 2x the manpower up front so that you need less down the road). I don't think it makes sense at all to do it with third-party personnel. On June 01 2013 07:45 JeanLuc wrote: Don't mean to be paranoid-- but it sounds like they want you to train cheap labour that will eventually replace you. Try to get the PM fired imo. Don't be absurd. The last thing you want in a PM is for them to be stubborn and unwilling to try new things. It may be a bad idea and bad result, but you want to document the process and get as much feedback in as you can to get some value out of it. You trying to get the PM fired over something that is in no way shape or form ever worthy of a firing is just going to hurt you. | ||
obesechicken13
United States10467 Posts
On June 01 2013 07:36 Toboe wrote: Does anyone have experience in pair programming? Especially the scenario where you are the more competent one of the pair? I could use any survival tips or lessons learned. I'm being dragged into a project that is going to "try this out" where each on-site developer is being paired with one of our contracted, 3rd party, off-shore developers. I've gotten chances to work with every one of the off-shore developers (all of which have been with this company several years more than I have), and have consistently had to help them with very basic environment setup issues, basic understanding of requirements, and often had to rewrite their code for them to be logical/functional. Since they are off-shore, our work schedules only overlap by 3 hours, so we'll be doing most of our work alone, and then I am worried that this whole process will actually be less productive than if it was only the on-site developers, that I'll end up looking less productive, and, due to the time issue, that I will have to put my approval on code that would normally be unacceptable. The PM is hellbent on doing this idea for at least 3 months to see how it goes, though. I feel like a lot of people don't like working with others offshore. It's probably cheaper overall but the communication issue is a problem.
I generally try to deal with it by reminding myself that there are people offshore who work way harder than I do. It's hard to say. I have to say that having some offshore coworkers come over and me seeing them in person really built up my trust for them. Even if it's only for a few weeks and it's not that productive otherwise, I think all companies should try to bring a team together physically and have them work together. I don't have much experience with paired programming and only just heard the term but it seems to be a widespread concern that I don't think older programmers have gotten past either. | ||
e-Goh
New Zealand18 Posts
On June 01 2013 07:36 Toboe wrote: Does anyone have experience in pair programming? Especially the scenario where you are the more competent one of the pair? I could use any survival tips or lessons learned. I'm being dragged into a project that is going to "try this out" where each on-site developer is being paired with one of our contracted, 3rd party, off-shore developers. I've gotten chances to work with every one of the off-shore developers (all of which have been with this company several years more than I have), and have consistently had to help them with very basic environment setup issues, basic understanding of requirements, and often had to rewrite their code for them to be logical/functional. Since they are off-shore, our work schedules only overlap by 3 hours, so we'll be doing most of our work alone, and then I am worried that this whole process will actually be less productive than if it was only the on-site developers, that I'll end up looking less productive, and, due to the time issue, that I will have to put my approval on code that would normally be unacceptable. The PM is hellbent on doing this idea for at least 3 months to see how it goes, though. It seems to me that you are dividing up the work into blocks A, B, C, etc.. each working on your own, and then reviewing each others' work for sanity. That's not really paired programming, and I agree that it sacrifices productivity in favor of slightly more safety, oversight and programmer frustration. Assuming you are both reasonably skilled, the chief advantage you have as the in-house guy, is that you are closer to ground, thus more in tune with the project requirements, architecture and overall philosphy. The advantage he has as the remote guy is that he can work unharassed by the manager occassionally dropping by asking him to put new cover sheets on his TPS reports. One way to exploit your advantages is the following workflow: - You gauge the requirements, do the high-level architecture, and write all the interfaces. - Both go through it for obvious oversights and stupidity (it happens to the best of us), and impart understanding of the requirements and structure to him. - He executes the implementation, adhering to your interfaces, and does his unit tests. - Both quickly run through that, impart understanding to you of the implementation, assumptions and possible flaws. Verify that it works reasonably. - You integrate, test and bugfix any integration issues. Pass all your chunks of work through that pipeline, and you'll see better, possibly even faster work. If you manage to stick to the same guy, your speed will increase as you get to understand each others style and mindset better. Of course, that's only an example, and I am sure you can come up with one better suited to your current work environment and indiividual quirks. Remember that once you are paired, efficiency is gauged on both of you as a unit. Think of him as an extension to you... another core in in your processor. Use him as much as possible instead of fighting against other. | ||
Shield
Bulgaria4824 Posts
On June 01 2013 07:36 Toboe wrote: Does anyone have experience in pair programming? Especially the scenario where you are the more competent one of the pair? I could use any survival tips or lessons learned. I'm being dragged into a project that is going to "try this out" where each on-site developer is being paired with one of our contracted, 3rd party, off-shore developers. I've gotten chances to work with every one of the off-shore developers (all of which have been with this company several years more than I have), and have consistently had to help them with very basic environment setup issues, basic understanding of requirements, and often had to rewrite their code for them to be logical/functional. Since they are off-shore, our work schedules only overlap by 3 hours, so we'll be doing most of our work alone, and then I am worried that this whole process will actually be less productive than if it was only the on-site developers, that I'll end up looking less productive, and, due to the time issue, that I will have to put my approval on code that would normally be unacceptable. The PM is hellbent on doing this idea for at least 3 months to see how it goes, though. Is your company trying to use Extreme Programming methodology? Pair Programming is one of the principles. I'm just curious. | ||
supereddie
Netherlands151 Posts
On June 01 2013 07:43 enigmaticcam wrote: [ Aren't there currently software solutions that already to this though? Off the top of my head, JDE OneWorld does it. Of course, I'm just looking for a small time solution. Just because someone else has done it, doesn't mean it is a good idea. You should look up the definition of a DWH, it's intended uses and the process of creating one. A bunch of random, unrelated data stored in one database is not a DWH. Also, look up datamart. | ||
Toboe
United States276 Posts
On June 01 2013 10:23 e-Goh wrote: It seems to me that you are dividing up the work into blocks A, B, C, etc.. each working on your own, and then reviewing each others' work for sanity. That's not really paired programming, and I agree that it sacrifices productivity in favor of slightly more safety, oversight and programmer frustration. Assuming you are both reasonably skilled, the chief advantage you have as the in-house guy, is that you are closer to ground, thus more in tune with the project requirements, architecture and overall philosphy. The advantage he has as the remote guy is that he can work unharassed by the manager occassionally dropping by asking him to put new cover sheets on his TPS reports. One way to exploit your advantages is the following workflow: - You gauge the requirements, do the high-level architecture, and write all the interfaces. - Both go through it for obvious oversights and stupidity (it happens to the best of us), and impart understanding of the requirements and structure to him. - He executes the implementation, adhering to your interfaces, and does his unit tests. - Both quickly run through that, impart understanding to you of the implementation, assumptions and possible flaws. Verify that it works reasonably. - You integrate, test and bugfix any integration issues. Pass all your chunks of work through that pipeline, and you'll see better, possibly even faster work. If you manage to stick to the same guy, your speed will increase as you get to understand each others style and mindset better. Of course, that's only an example, and I am sure you can come up with one better suited to your current work environment and indiividual quirks. Remember that once you are paired, efficiency is gauged on both of you as a unit. Think of him as an extension to you... another core in in your processor. Use him as much as possible instead of fighting against other. You're quite right that this isn't really paired programming, though the PM is calling it that. Thanks for the ideas. We're not really being given any guidance on how to execute this so I was looking for a mindset like this. I especially like the idea of setting up the interfaces and letting the partner fill in the details. I think that will be very doable in this situation and allow me to cast to those interfaces in my work so that I'm not waiting on anything and probably would be faster than working on my own. ![]() | ||
EtherealDeath
United States8366 Posts
| ||
nepeta
1872 Posts
I'm trying to get the height of the menu and content divs to be minimally 100%, so that even if there is no content to fill the page to the bottom, the border will continue neatly until the footer. The design is heavily TL influenced, but any comments on the design are welcome as well ![]() I've hosted it here: http://nepeta.host56.com/temp/index2.html code of html and css: + Show Spoiler [html] + <!DOCTYPE html> <head> <meta charset="UTF-8"> <meta name="author" content="http://mystrd.at"> <meta name="robots" content="noindex, nofollow"> <title>pro</title> <link rel="stylesheet" type="text/css" href="styles.css" /> </head> <body> <div id="container1"> <div id="logo">logo</div><!-- logo --> <div id="topmenuwrap"><div id="topmenu">topmenu</div></div><!-- topmenuwrap --> </div> <div id="container"> <div id="main"> <div id="leftmenu"> <div id="lmt">menu</div> <div id="lmc">item</div> </div><!-- leftmenu --> <div id="content"> <div id="ctitle">ctitle</div><!-- ctitle --> <div id="contentct">content </div> </div><!-- content --> </div><!-- main --> </div><!-- container --> <footer> <div id="fc">footer</div> </footer> </body> </html> + Show Spoiler [css] + html { position: relative; min-height: 100%; height: 90%; } body { margin: 0 0 20px; font-family: times new roman; color: #0B0B3B; background-color: white; } #container{ position: relative; background: white; margin: 0px auto; width: 1140px; border-left: 1px solid; border-right: 1px solid; border-color: #0B0B3B; overflow: hidden; } #container1{ position: relative; background: white; margin: 0px auto; width: 1140px; overflow: hidden; } #logo{ height: 120px; text-align: center; color: white; background-color:#0B0B3B; background: linear-gradient(top, black 0%, #2B60DE 75%); background: -moz-linear-gradient(top, black 0%, #2B60DE 75%); background: -webkit-linear-gradient(top, black 0%, #2B60DE 75%); } #topmenuwrap { padding: 0px 0px 0px 0px; background: #0B0B3B; background: linear-gradient(top, #2B60DE 0%, white 75%); background: -moz-linear-gradient(top, #2B60DE 0%, white 75%); background: -webkit-linear-gradient(top, #2B60DE 0%, white 75%); } #topmenu{ height: 40px; margin: 0px 0px 0px 147px; } #main{ background: grey; position: relative; margin: 0px 0px 0px 0px; } #leftmenu{ width: 134px; background: #E0E6F8; position: relative; float: left; padding: 0px 0px 0px 0px; border-top: 1px solid; border-right: 1px solid; border-color: #0B0B3B; } #lmt { padding: 5px 0px 0px 5px; background-color:#0B0B3B; background: linear-gradient(top, black 0%, #2B60DE 75%); background: -moz-linear-gradient(top, black 0%, #2B60DE 75%); background: -webkit-linear-gradient(top, black 0%, #2B60DE 75%); color: white; font-size: 18px; height: 30px; } #lmc { background: #E0E6F8; padding: 0px 0px 0px 5px; } #content{ width: 995px; padding: 0px 0px 0px 5px; background: white; position: relative; float: right; } #ctitle { height: 30px; background-color:#0B0B3B; background: linear-gradient(top, black 0%, #2B60DE 75%); background: -moz-linear-gradient(top, black 0%, #2B60DE 75%); background: -webkit-linear-gradient(top, black 0%, #2B60DE 75%); color: white; font-size: 18px; border-left: 1px solid; padding: 5px 0px 0px 5px; border-color: #0B0B3B; } #contentct { background: #E0E6F8; border-left: 1px solid; padding: 0px 0px 0px 5px; } footer { position: absolute; left: 0; bottom: 0; height: 20px; width: 100%; } #fc { text-align: center; background-color:#0B0B3B; background: linear-gradient(top, #2B60DE 0%, black 75%); background: -moz-linear-gradient(top, #2B60DE 0%, black 75%); background: -webkit-linear-gradient(top, #2B60DE 0%, black 75%); color:white; margin: 0px auto; width: 1140px; border-left: 1px solid; border-right: 1px solid; border-color: #0B0B3B; } | ||
Yoshi-
Germany10227 Posts
| ||
Rotodyne
United States2263 Posts
CSS: + Show Spoiler + html { position: relative; min-height: 100%; height: 90%; } body { margin: 0 0 20px; font-family: times new roman; color: #0B0B3B; background-color: white; } #container{ position: relative; background: white; margin: 0px auto; width: 1140px; border-left: 1px solid; border-right: 1px solid; border-color: #0B0B3B; overflow: hidden; } #container1{ position: relative; background: white; margin: 0px auto; width: 1140px; overflow: hidden; } #logo{ height: 120px; text-align: center; color: white; background-color:#0B0B3B; background: linear-gradient(top, black 0%, #2B60DE 75%); background: -moz-linear-gradient(top, black 0%, #2B60DE 75%); background: -webkit-linear-gradient(top, black 0%, #2B60DE 75%); } #topmenuwrap { padding: 0px 0px 0px 0px; background: #0B0B3B; background: linear-gradient(top, #2B60DE 0%, white 75%); background: -moz-linear-gradient(top, #2B60DE 0%, white 75%); background: -webkit-linear-gradient(top, #2B60DE 0%, white 75%); } #topmenu{ height: 40px; margin: 0px 0px 0px 147px; } #main{ position: relative; margin: 0px 0px 0px 0px; height: 500px; } #leftmenu{ width: 134px; background: #E0E6F8; position: relative; height: 100%; padding: 0px 0px 0px 0px; border-top: 1px solid; border-right: 1px solid; border-color: #0B0B3B; display: inline-block; } #lmt { padding: 5px 0px 0px 5px; background-color:#0B0B3B; background: linear-gradient(top, black 0%, #2B60DE 75%); background: -moz-linear-gradient(top, black 0%, #2B60DE 75%); background: -webkit-linear-gradient(top, black 0%, #2B60DE 75%); color: white; font-size: 18px; height: 30px; } #lmc { background: #E0E6F8; padding: 0px 0px 0px 5px; } #content{ width: 995px; height: 100%; background: white; position: relative; display: inline-block; vertical-align: top; } #ctitle { height: 30px; width: 100%; background-color:#0B0B3B; background: linear-gradient(top, black 0%, #2B60DE 75%); background: -moz-linear-gradient(top, black 0%, #2B60DE 75%); background: -webkit-linear-gradient(top, black 0%, #2B60DE 75%); color: white; font-size: 18px; border-left: 1px solid; padding: 5px 0px 0px 5px; border-color: #0B0B3B; } #contentct { background: #E0E6F8; border-left: 1px solid; padding: 0px 0px 0px 5px; width: 100%; height: 100%; vertical-align: top; } footer { height: 20px; width: 100%; } #fc { text-align: center; background-color:#0B0B3B; background: linear-gradient(top, #2B60DE 0%, black 75%); background: -moz-linear-gradient(top, #2B60DE 0%, black 75%); background: -webkit-linear-gradient(top, #2B60DE 0%, black 75%); color:white; margin: 0px auto; width: 1140px; border-left: 1px solid; border-right: 1px solid; border-color: #0B0B3B; } eh, doesn't work when I put content in -_- I'm noob edit: had forgotten vertical-align, I think it works now | ||
nepeta
1872 Posts
| ||
Rotodyne
United States2263 Posts
On June 05 2013 08:43 nepeta wrote: The lines around the content and menu are good, only the entire thing seems to have shrunk to 70% of it's original size and been centered ^^ Figuring out what you did so I can put it in without (hopefully) shrinking the whole website :p Hmm, check if you have the latest one that I put up there, I got rid of the floats and used display: inline-block. At least this latest one shouldn't change the size. And wasn't it always centered? | ||
nepeta
1872 Posts
| ||
JeanLuc
Canada377 Posts
On June 05 2013 07:52 nepeta wrote: Pardon me for giving up, but I've been at this for two hours and my brain is shutting down. Won't go to bed before I've found out what's wrong so please help me get to work tomorrow :p I'm trying to get the height of the menu and content divs to be minimally 100%, so that even if there is no content to fill the page to the bottom, the border will continue neatly until the footer. The design is heavily TL influenced, but any comments on the design are welcome as well ![]() I've hosted it here: http://nepeta.host56.com/temp/index2.html code of html and css: + Show Spoiler [html] + <!DOCTYPE html> <head> <meta charset="UTF-8"> <meta name="author" content="http://mystrd.at"> <meta name="robots" content="noindex, nofollow"> <title>pro</title> <link rel="stylesheet" type="text/css" href="styles.css" /> </head> <body> <div id="container1"> <div id="logo">logo</div><!-- logo --> <div id="topmenuwrap"><div id="topmenu">topmenu</div></div><!-- topmenuwrap --> </div> <div id="container"> <div id="main"> <div id="leftmenu"> <div id="lmt">menu</div> <div id="lmc">item</div> </div><!-- leftmenu --> <div id="content"> <div id="ctitle">ctitle</div><!-- ctitle --> <div id="contentct">content </div> </div><!-- content --> </div><!-- main --> </div><!-- container --> <footer> <div id="fc">footer</div> </footer> </body> </html> + Show Spoiler [css] + html { position: relative; min-height: 100%; height: 90%; } body { margin: 0 0 20px; font-family: times new roman; color: #0B0B3B; background-color: white; } #container{ position: relative; background: white; margin: 0px auto; width: 1140px; border-left: 1px solid; border-right: 1px solid; border-color: #0B0B3B; overflow: hidden; } #container1{ position: relative; background: white; margin: 0px auto; width: 1140px; overflow: hidden; } #logo{ height: 120px; text-align: center; color: white; background-color:#0B0B3B; background: linear-gradient(top, black 0%, #2B60DE 75%); background: -moz-linear-gradient(top, black 0%, #2B60DE 75%); background: -webkit-linear-gradient(top, black 0%, #2B60DE 75%); } #topmenuwrap { padding: 0px 0px 0px 0px; background: #0B0B3B; background: linear-gradient(top, #2B60DE 0%, white 75%); background: -moz-linear-gradient(top, #2B60DE 0%, white 75%); background: -webkit-linear-gradient(top, #2B60DE 0%, white 75%); } #topmenu{ height: 40px; margin: 0px 0px 0px 147px; } #main{ background: grey; position: relative; margin: 0px 0px 0px 0px; } #leftmenu{ width: 134px; background: #E0E6F8; position: relative; float: left; padding: 0px 0px 0px 0px; border-top: 1px solid; border-right: 1px solid; border-color: #0B0B3B; } #lmt { padding: 5px 0px 0px 5px; background-color:#0B0B3B; background: linear-gradient(top, black 0%, #2B60DE 75%); background: -moz-linear-gradient(top, black 0%, #2B60DE 75%); background: -webkit-linear-gradient(top, black 0%, #2B60DE 75%); color: white; font-size: 18px; height: 30px; } #lmc { background: #E0E6F8; padding: 0px 0px 0px 5px; } #content{ width: 995px; padding: 0px 0px 0px 5px; background: white; position: relative; float: right; } #ctitle { height: 30px; background-color:#0B0B3B; background: linear-gradient(top, black 0%, #2B60DE 75%); background: -moz-linear-gradient(top, black 0%, #2B60DE 75%); background: -webkit-linear-gradient(top, black 0%, #2B60DE 75%); color: white; font-size: 18px; border-left: 1px solid; padding: 5px 0px 0px 5px; border-color: #0B0B3B; } #contentct { background: #E0E6F8; border-left: 1px solid; padding: 0px 0px 0px 5px; } footer { position: absolute; left: 0; bottom: 0; height: 20px; width: 100%; } #fc { text-align: center; background-color:#0B0B3B; background: linear-gradient(top, #2B60DE 0%, black 75%); background: -moz-linear-gradient(top, #2B60DE 0%, black 75%); background: -webkit-linear-gradient(top, #2B60DE 0%, black 75%); color:white; margin: 0px auto; width: 1140px; border-left: 1px solid; border-right: 1px solid; border-color: #0B0B3B; } Use position:absolute and inline-block on your divs imo. Well, that's what I ordinarily do when I want to determine the height of div. Either that or try using Firebug on TL to see how they achieve that effect :p | ||
Fran_
United States1024 Posts
On June 01 2013 07:36 Toboe wrote: Does anyone have experience in pair programming? Especially the scenario where you are the more competent one of the pair? I could use any survival tips or lessons learned. I'm being dragged into a project that is going to "try this out" where each on-site developer is being paired with one of our contracted, 3rd party, off-shore developers. I've gotten chances to work with every one of the off-shore developers (all of which have been with this company several years more than I have), and have consistently had to help them with very basic environment setup issues, basic understanding of requirements, and often had to rewrite their code for them to be logical/functional. Since they are off-shore, our work schedules only overlap by 3 hours, so we'll be doing most of our work alone, and then I am worried that this whole process will actually be less productive than if it was only the on-site developers, that I'll end up looking less productive, and, due to the time issue, that I will have to put my approval on code that would normally be unacceptable. The PM is hellbent on doing this idea for at least 3 months to see how it goes, though. I have quite a bit of experience in Pair Programming during the time when I was Technical Director of Crysis 2. I can summarize the experience by saying that PP is not for every task, mundane and easy tasks are more productive if executed alone, but for moderate to complex tasks, PP will save you time and money and produce less costly code. But Pair Programming alone will not succeed if it's not accompanied by a comprehensive set of practices that include, but are not limited to, Continuous Integration and Automated Testing. If you are interested in the topic, here's my GDC presentation on the subject: http://yetanothergameprogrammingblog.blogspot.com/2010/06/aaa-automated-testing.html | ||
Mandini
United States1717 Posts
I am working in an NRE lab at the moment and my current project is to get a spectrometer-photomultiplier tube system up and running again. The goal is to fire a laser at a zinc oxide crystal and see what comes off. The spectrometer works fine, the PMT itself works fine, the issue is on the board where the voltage from the PMT is sent through an ADC, datasheet here, and then through a chip through a USB cable to the computer where it is then read. I am pretty sure I have narrowed the problem down to either the ADC itself or the code on the microcontroller. It is hard to test the ADC because the conversion is done very quickly and all I've got is a multimeter to see if a bit flips to make sure its working. I've seen bits flip though so I think it is indeed working. The microcontroller (here), and this is the board it is on, apparently worked before, but right now when the command that is supposed to tell the ADC to do a conversion and return the 8 bit value to the computer it just returns 726, regardless of the voltage applied to the input of the ADC. I think it is probably a code issue in the chip, but I don't know how to debug it or even just write new code for it. The python code that deals with the PMT and conversion is at the bottom of the post. I guess what I need is assistance writing code to put on the chip as well as actually putting it on the chip. + Show Spoiler + from visa import * On June 05 2013 10:11 phar wrote: Yea definitely post this in big programming thread. But there's not many there who know mcu type programming. Are you sure you have your usb code set up properly? As in, can you write some random code in your mcu and have it sent over usb to the computer, ignoring the adc input? When you say you don't know how to write new code for the chip, what does that mean? Do you have no way of flashing new code onto the mcu? Are you trying to just read a single value, or are you trying to read a bunch of values in quick succession? It looks like you can only get 100k reads per second from that adc. How familiar are you with reading timing diagrams? If you're trying to read values during incorrect times (with this adc it looks like "incorrect time" is on the order of 10ns-7us, so pretty fast), then you won't get any real data. Mind you, I'm not terribly good at this stuff, but I have spent hours (and hours and hours and hours) banging my head against a variety of mcu usb/spi/uart/etc bullshit. But I've never done this in python, only in assembly and "C" (for some definitions of the language C). I can poll the board for its ID and it comes back correct, but thats the only command that I know works. I dont know how to properly write the C code that the chip would use, and I cant pull the old code off the chip to look at it either. I can flash code onto the mcu, I just have to convert it to hex code first and put it in the right memory address, but I don't know what that memory address is. A single value every second, it takes time for the PMT to reach a stable voltage when the wavelength of the spectrometer is changed. I have never dealt with this sort of CS before, my experience is much farther from the hardware than this. | ||
sluggaslamoo
Australia4494 Posts
On June 05 2013 11:03 Fran_ wrote: I have quite a bit of experience in Pair Programming during the time when I was Technical Director of Crysis 2. I can summarize the experience by saying that PP is not for every task, mundane and easy tasks are more productive if executed alone, but for moderate to complex tasks, PP will save you time and money and produce less costly code. But Pair Programming alone will not succeed if it's not accompanied by a comprehensive set of practices that include, but are not limited to, Continuous Integration and Automated Testing. If you are interested in the topic, here's my GDC presentation on the subject: http://yetanothergameprogrammingblog.blogspot.com/2010/06/aaa-automated-testing.html While this all falls under the same tree of Extreme Programming, paired programming does not need CI or testing to succeed. The biggest problem you will have when you begin is that the Navigator will often neglect his duties, due to the Driver being able to work on his own, or the Driver even forcing the Navigator to take the back seat because that is what he is used to. The Navigator should be the one doing the "coding", just that the Driver is the one with the hands on the keyboard. The Navigator should never grab the keyboard either, that's really annoying. The rule of thumb I found is to have the person that knows the section of code the best to be the Navigator. The Driver then learns the code as he is coding so when he swaps pairs, he can then be the Navigator and someone else who doesn't understand the code becomes the Driver. Rinse and repeat. The whole point of pair programming is knowledge sharing, so you don't get single points of failure where only one person understands how a section works. | ||
| ||