Eat. Sleep. Code: The Computer Programming Thread, Ver. 010

This has been illuminating.

If I create a webservice, and let it destruct automatically, it actually tries to access areas of the memory it doesnā€™t have access to. And I couldnā€™t figure out why, or how. For now Iā€™m just creating a webservice for each call and letting it go out of scope and clean it self up then, rather than on program exit. Bleh

Random rant/bitching incoming:

The next 8 days are gonna be hell for me. As an software developer, Iā€™m suppose to be used to these things but it still irks me. I have 8 days to finish up a project that is suppose to take 3-4 weeks complete which means I am putting in 16-20 hour work days. Hell, I might just sleep at work. Part of it is invigorating but at the same time, frustrating. I wished I worked downtown in a tall building so I can look outside and see the night lights. It would make me feel like I am in a movie which would motivate me even more. Kinda weird but that is how I am haha.

Oh well. Here is to the last day of freedom cheers

That sucks. What happens if you donā€™t make the deadline?

Good luck, FallingEdge. Hopefully your jobā€™s not on the line.

Making progress on my game after learning about embedded resources. All Iā€™m doing right now is making my levels. Once thatā€™s done, Iā€™m gonna do the rest of my screens, and then redo the graphics.

I donā€™t know about accomplisihing a 4-week load in 8 days but I have had my share of consecutive days of 16-18 (eat and sleep at work) hour workdays. The most I believe was 5.

On certain days though we barely do anything so itā€™s all good.

The company will be in deep shit. Contracts need to be met and whatnot. Just something that I need to do and that my manager has assigned me to do. He feels bad but I donā€™t blame him. Shit like this happens.

Nah, it isnā€™t but there is thisā€¦ expectation that is set. Iā€™m the youngest member of my team so there is a bit of ā€˜growing painsā€™ that they want me to go through. Kinda bullshit but at the same time, I respect them all and they have done a lot for me in the past. Plus, this is something I can put on my year end review haha.

I feel you on that as there are some days/weeks where it is just slow. Iā€™m not sure how Iā€™m going to go about the sleeping/eating. There is a bathroom and shower. Maybe for the first few days, I might just sleep there haha. Told my gf that my time will be extremely limited. She understands that this be the life of a developer <3

I totally get working extra hours for weeks at a time, e.g. 10 hour work days every day, plus some random extra time. It pays off in the long run and it presents your highest qualities to everyone, also it can be very fun and give you that creative buzz.

I also get consistently working 8 hours a day, every day. It adds up.

So when I hear about people working 4 weeks worth of stuff in 8 days, I wonder how it ended up that way. Where did management go wrong? Who over-promised? And in the end, 8 days is NOT enough time to do 3~4 weeks worth of work. Something will be missed. I always feel sorry for the engineer left with so little time to think, to do something correctly. Yet that is the world we live in, so I give props to FallingEdge, youā€™re going to do a bang up job for the next eight days. And that is all we can do, minimum time, maximum effort, hulk grunt

Long story short, it ended up being a number of things. Dates were promised before understanding completely what they wanted, too many projects were being juggled, and I just got caught in the crosshairs. This is the first time that this has happened too me and my manager is usually very good at balancing the work load. This is just one of those things that slipped.

And yeah, I admit that I am scared and nervous. But I canā€™t let that get to me or otherwise Iā€™m gonna make things worse. The nice thing is that I will release this version on Thursday and they will do testing and I will get a chance to release updates that will fix the bugs that they will find. As long as I get the main components done, I will be fine.

So your following me around?

You have never played me.

Its hard to know c++ until you pick it up and start learning it.

So a bunch of the Indie Guys are doing a new Humble Bundle, one where they design and develop a game in 60 hours live on stream:

Figured us coders and game makers would get a kick out of watching

I spent a few more hours last night, now my game engine can slide blocks around, blocks fall down to gravity, and blocks can remove themselves when they are next to a matching block color.

Of course itā€™s only being done on a 10x10 grid, but I can bump that up to any size and it will work.

My next 2 steps are to dynamically size the tiles based on the screen size (so different sized phones will work properly) and to add in some animation logic to the items, so that when they are destroyed (or moving) they can animate a bit instead of just being static text

o_0ā€¦ no? Seriously, who wants to watch software engineers work?

haha, you could probably smell the B.O. through the monitor.

But joking aside, I hope they have lots of fun.

Itā€™s interesting to me to see how these professional game devs work. Like whatā€™s their workflow. Itā€™s funny because some stuff Notch is doing the same as me (want a new class? Copy/paste code from an existing class, then go in and change the Constructor names and delete the functions I donā€™t need) but other things are pretty neat tricks I donā€™t use in java

for instance, instead of



boolean bSuccess = false;
if(TestCondition1())
  bSuccess = true;
if(TestCondition2())
 bSuccess = true;
 
return bSuccess


he just used



boolean bSuccess = false;
bSuccess |= TestCondition1();
bSuccess |= TestCondition2();
return bSuccess;


Which Iā€™m sure is a common java tip, just not one that Iā€™d ever been exposed to

Any Opsware Python Pytwist guys in the crowd?

Hey Pimp Willy, the logical equals stuff goes way back. If one thinks about some logic, e.g. ten if statements, it may be possible to reduce it to one if statement by using logic operations. I guess itā€™s called Discrete Math, a class you probably took at some point or another.
And yes I agree, it is interesting to see how other engineers tackle a problem.

Anyways the reason I came back to post: SLOC
Source Lines of Code, or SLOC, is an evil word, a taboo word, itā€™s in essence, a FOUR letter curse word to every software engineer that has ever come across it.
Why? Well at some point in time, someone decided it was wise to equate SLOC with the cost of a project. So there was 43,133 lines of code written for this project, it cost us 10 million dollars to develop and test that code, therefore it costs $10 million / 43133 SLOC = $23.18 / Line of Code. So obviously we can apply this to every other project ever made.

Two points come out of this:

  1. SLOC can be manipulated. Being a programmer, we all know a file can be fit into one line of code or split into one line per statement (not sure on the word here, it means ā€˜wordsā€™, parenthesis, commas, semicolons, etc each on their own line), therefore it is a matter of manipulating the lines of code to fit our original budget perfectly to show we are oracles and GODS of predicting how much a project will cost.

  2. What if one is debugging software. The engineer figures out it requires the deletion of 20 lines in one file and the addition of 20 lines in another file. Since we deleted 20 lines and added 20 lines, our net SLOC is ZERO. Therefore it costs NOTHING to debug this code.

:slight_smile:

Yeah, I totally get the logic used. When I saw the bSuccess |= SomeCondition() it just clicked. Also of course he used bSuccess &= SomeCondition();

Itā€™s just pretty awesome to catch that at a glance though.

Typically though you want a tradeoff, stuff that fits into one line becomes a nightmare for somebody else to debug. Sometimes using a variable in a function even when you donā€™t need it can save you a hassle later trying to figure out what is actually being returned by a function. Itā€™s always a delicate dance between efficient and maintainable, any nobody will ever fully agree on where the best middle road is.

As far as SLOC, I hate that concept. Everyone who knows anything about programming knows that it is not a good way to measure anything, and yet actually providing a different measurable attribute you can use is pointless. Itā€™s too hard to put something so abstract into a measurable state. Iā€™m so glad my company doesnā€™t take that sort of stuff into considerationā€¦ though weā€™ll see what happens with IBM, we just officially signed over to be an IBM Company yesterday

Sorry still new and havenā€™t taken discreet yet. Anybody mind explaining this? I donā€™t recognize " |= "

|= is a bitwise operator. To understand how it works, you have to understand how binary works and how numbers are stored as bits.

For instance, with 8 bits we can store any number 0-255 (unsigned) using binary (this is why a lot of stuff errors around 255 in games, especially old ones).

0000 0000 is 0, 1111 1111 is 255.

So if I had two random numbers
0000 1111 = 15
0010 0110 = 38

if I did a |= on it, it compares each bit against the next bit. If either one is a 1, then the result is a 1

so then if we do that:

0000 1111
0010 0110
we get
0010 1111 = 47 as a result.

If we do a &= it works the same way, only with an AND instead of an OR

0000 1111
0010 0110
we get
0000 0110 = 6

So then for booleans, itā€™s simplier. If something is zero, itā€™s false, if its anything else its true.

so if we start a boolean value at false, then do a |= assignment to it, it basically compares the 0 bits with the return of the function. If its true, the boolean value gets assigned a true value. If its a false, then it stays a false value. The benefit is that once it is set to true, it will never go back to false. This becomes really useful for certain algorithms where you loop something 10 times, and want to know if it ever failed even once.

so you can replace all the if statements with just the bitwise assignments and make the code a bit faster and cleaner (albeit possibly more annoying to debug).

We use bitwise operations a lot in our app, to speed up comparisons between large sets of data. Itā€™s a really powerful tool once you understand how it works and how you can use it to your advantage

Using a space in a string when I needed to use an underscore just caused me about an entire nightā€™s headache before I just now discovered it.

  • fist shake *

Itā€™s sad how those kind of mistakes never vanish, no matter how skilled you get. Ever.