38 karma · joined June 18, 2012
First it gives you an idea of how well thought out the implementation was (i.e. was this a quick hack to just finish a asked for requirement) or was a best design targeted. It also helps newer developers develop a voice. Often, at the start, newer devs will take what a more senior dev says as gospel, but by striking up a conversation and, in some ways, making them defend their choices it can help build confidence and that voice to speak up when something doesn't seem right.
Second, I've found it a good way to introduce people to new approaches to accomplishing tasks. Not everyone spends their off hours studying patterns and practices and rarely is there time during a work day to do this properly so code reviews are a natural place to bring these things up as there's concrete comparisons and examples to work with. That helps spark a dev's interest to look in to the topics further.
The best experience I had was on a team that had essentially 2 BA’s and 7 devs. There was constant communication to clarify actual requirements, devs would build automated tests off them, BA’s would test against the requirements and then a business user would do a final look over. All in all features were able to be released usually within a day and there would be days we’d get out 3 or 4 releases. Only in one case did a major bug get released to production and the root cause of that was poorly worded regulations which had a clarifying errata come out at the 11th hour.
For as many faults as that company had that caused me to move on I’ve yet to run across a team that functioned as well as that one did.
The same follows for patterns, I think. If you haven't thought about it critically and really done the work to understand the "why" (being told the "why" is not enough) you're going to struggle and mostly fail to implement it properly are in the appropriate situations.
Ended up after a few back and forth replies it was escalated to the "DNS team" but they weren't around until the AM. It ended up being the next evening, after I followed up that I got any response. I ended up making a change on my side to at least get websites back online, but it was over another week before any real "answers" were given.
Of the two issues one was due to certain CNAME records not being supported/allowed by their servers (not documented anywhere) which took over a day to get a final answer on. The other issue, one of their servers connecting/disconnecting to mine (seen in my logs) but not actually doing anything was labeled as something to just be ignored. My logs still fill up with those errors.
I've been with linode a long time and do like them, but as they've gotten larger their support has increasingly gone the way of other large companies...largely useless.
I don't know if it was poor design or purposeful to get more money out of people, but I tend to think the latter because of just how many places it begs to buy things.
People probably do get frustrated and quit. I know that's what I end up doing. Especially when my gaming habits are 30 minutes here and there. I just want a short session, not play for 5 minutes and have to pay more or wait 30 minutes to play more.
There are several levels you'll play where you have absolutely zero chance of winning (particularly the later levels where you need X of this and Y of that) because the colors just don't come up. Yeah, that's down to randomness, but it's one of those things that could be resolved. Also, when playing if you receive a call or switch to some other app in the middle of a game you lose your game and that life. Yet another way to pluck more money out of people. Then you have the arbitrary play limits (3 days to unlock another pack via bonus levels, 30 minute waits for lives, etc).
I'd have much less of a problem with the game if each level had a solvable method to it. Then you can make it pay to pass or skill to win.
runtime/cxx.cc:74:41: error: ‘operator new’ takes type ‘size_t’ (‘unsigned int’) as first parameter [-fpermissive]
runtime/cxx.cc:84:43: error: ‘operator new’ takes type ‘size_t’ (‘unsigned int’) as first parameter [-fpermissive]
make[1]: *** [runtime/cxx.o] Error 1By far the two most frustrating aspects being the forced updates (which were often more buggy or broke features) and the lockups while in sleep. There was nothing more annoying than having to get up and hard reboot the thing every time I wanted to watch something.
Once the Pi and raspbmc became a viable alternative I quickly replaced my boxee boxes because, while not bug free by any means, they're much closer to "just working" than the boxee box ever was.
The one good thing I can say about the boxee box, though, is that its remote was a real treat. That thing worked like a charm.
Ego (I know what the problem is!) and the drive to fix problems quickly always get in the of finding the solution. Tales like this are a great reminder to not assume you know what the problem is.
I can say being the smartest person in the room gets really old fast because you always feel like you have your hands tied behind your back and as much as X may be a better solution to a problem you have to fall back to something the entire team can understand.
The general environment would probably make a difference too. If you in an environment with people that enjoy learning and sharing the knowledge they gain being the dumbest person in the room probably isn't as bad. I can't say I've met a work environment that is like that, though.
Smashing The Stack For Fun And Profit [1] Reversing: Secrets of Reverse Engineering [2] The IDA Pro Book [3]
The iOS Hacker's Handbook [4] was interesting as a sort of case study on exploiting and hacking embedded hardware.
Mostly what I've found, though, is just starting with a question and googling the answer yield the most results. For example, see mention of a stack overflow attack google how and why stack overflow attacks work (or don't) and once that side of things is understood the thought process behind finding them becomes easier to understand, although not really easier to do (for me, at least).
[1] http://insecure.org/stf/smashstack.html
[2] http://www.amazon.com/Reversing-Secrets-Engineering-Eldad-Ei...
[3] http://www.amazon.com/IDA-Pro-Book-Unofficial-Disassembler/d...
[4] http://www.amazon.com/iOS-Hackers-Handbook-Charlie-Miller/dp...