84 karma · joined October 29, 2013
- How does UDK build apps for iOS natively on Windows without requiring a Mac? Are they doing some kind of insider thing that Unity can't replicate?
- I see Unity as massively extensible and that's one thing I like about it. Comparisons are often made between vanilla Unity and UDK; what about Unity + PlayMaker + UFrame + Level Builder, etc. I don't see this ease of editor extensibility with UE4 (I'm sure it's there; but the Unity Asset Store just lets me cherry-pick one, click buy and then just have it to use immediately after download - I like that).
- My biggest gripe with the editor is the font size. Will the new UI that's coming in 4.6 and/or 5.0 allow me to increase the font size used by the Unity editor to actually make it comfortably usable rather than fatiguing?
FWIW I've preordered Unity 5 and I use UE4 at the moment as well. Nothing big completed in either engine (just some side work here and there) but no fanboy-ism for any particular one (though a bit of a fondness for Unity as I encountered it back in the old Mac days when Unity were called Over The Edge Entertainment; GooBall was pretty cool by the way).
My experience actually matches what you're saying, in that there was always much better discussion around the number of story points and I never felt like my story point estimates were guesses. If there were any disagreements over story points, we'd at least be able to discuss it concretely ("here's why I think this task is more complex / more simple").
For what it's worth, before I was gone our process was moving more towards a velocity focus, where story points were getting more importance than time estimates. Generally Scrum was a new thing for our company and our group was one of the first to use it; I don't think they were using estimates as a whip, at least not intending to. However the business still needed/wanted concrete dates that the group had to commit to.
So my ideal philosophy is to pick a technical stack and try something with it. Until you're building something with a stack, you're just messing around.
Now -- the harder to solve (and more infuriating problem) I see is a recruitment culture that seems to favor buzzword bingo. Why don't job ads just ask for "a developer who is comfortable having to work with or pick up the following frameworks quickly" instead of "MUST have at least 3-5 years experience in such-and-such. "
Don't even get me started on 'language quizzes'. Oh man I hate those. Learning language and framework minutae off by heart is pointless. In production code, it's rare to use ALL the features of a given language. So you have to be inquisitive, but at the same time turning down candidates because they know .NET 3.0 but not the minutae of .NET 4.5 is just lazy; unless the codebase actually uses the new feature (and then you have Google anyway).
(on that note, one of the best job ads I ever saw was for a games company where their only requirement was "show us a complete game you've built". Now THAT is sane and says to me that these guys/gals know how development works in the real world. Unfortunately I didn't have a complete game to send them, oh well. )
WRT to learning new things, I'm sort of going through that now. I'm "de-specializing" myself a bit by learning HTML, CSS and JS. I always pegged myself as 'not a web dev guy' but unfortunately the country I live in doesn't have the healthiest games industry. I had to drop the 'not that kind of developer' attitude and just go into it with as much of a blank slate as possible. It's been interesting so far, with the hardest mental roadblock I've had to overcome is thinking that "web pages are just documents" from my late-90s/early-2000s exposure to basic HTML/CSS.
For example, 'crunch' is something that's endemic in the games industry and a contributing factor is that big publishers will impose arbitrary deadlines on their studios to 'ship a game'. So, what does this say about the significance of these projects? Also, are the deadlines really useless, or do they have some real basis? (EA is not going to go broke because a Need For Speed game is a few months late, for example).
On the other subject of programmers being bad at estimation. I've done a hell of a lot of introspection with regard to this and why I find estimates so unpleasant. A few reasons that come to mind:
- When you're asked for an estimate, what you're often really being asked for is a deadline.
- In a sprint planning session, I'd often get asked to produce an estimate for "how long will it take to design this?" followed by an estimate of "so how long will it take to implement?". Which makes no sense - I can't answer the second question without answering the first. This often came up with bug fixes or 'small' jobs - things that could reasonably be assumed to fall within a single sprint for at least some of the time.
- I feel like there's an unspoken rule that your estimates relative to other team members signal your competency to the team and to your manager. So if you're constantly providing estimates that are longer than those made by other team members, it's a bit like you're saying "I'm less capable than them". You feel encouraged to provide short estimates and then hide the difference. I see this come up most starkly when sprint planning wants consensus estimates, despite having team members of varying skill levels in the particular task being estimated.
- I find that 'watching the clock' breaks my flow. If I'm having to track my own time, it's like a bit of cognitive load that I don't want. I don't want to have to think about it, because losing your sense of time is so crucial to really being in-flow. Often tools will ask you to enter how many hours you worked on something as part of tracking. So you end up even guesstimating at that ("well it felt like I spent half a day working on it, so I'll put in 4 hours").
- As a result of the previous point, I don't really collect historical data that I can reflect on. It'd be great to be able to go back and see how long it actually took me to do stuff. Not to mention that when you leave a company, you generally lose access to any historical performance information like that which you may have built up over the years.
There is a lot about Scrum that I like, but as a whole I agree it still suffers from the arbitrary deadlines problem. I wonder if there's a business acceptable way that you could do sprint-like activity, eschewing the idea of time estimation and replacing it with effort estimation only. Rather than aggressively fixing the time through schedule, aggressively fix the scope of work and then just work towards completion "until it's done".
The problem is that sometimes, these abstractions leak. Knowing that what you're seeing is one of those leaks is key to not go down the rabbit hole of, for example, chasing a bug that ends up being caused by a hardware failure (painful experience!). So you have to keep notice of those layers below those you're directly working with; while you don't have to live there, you shouldn't totally ignore their existence.
"....you don't respect, someone you think makes bad decisions, someone who isn't kind back, someone who is emotionally selfish or self-centered, etc. "
The answer being that you don't know these things going into it or they don't bother you that much; it's only when they accumulate over time that they start really bothering you. An analogy would be taking a new job at a company with lots of higher-up political BS - it doesn't bother you so much to begin with, but the more you learn the more it can do so.
EDIT: Realized I read your list of qualities as if you were talking about the same person with ALL those qualities in tandem; my "why would you marry?" obviously makes less sense if it's only one or two of those qualities in isolation.
I would have thought that writing raw HTML would be a bit like writing raw WinForms code these days, or writing XAML by hand instead of using the forms designer.
Note that's the narrow application of visual editors I'm thinking of here - laying out buttons, binding events to buttons, binding data to elements, etc; not the "create a pretty looking page and have it spit out horrible HTML" type stuff.
Not agreeing or disagreeing - genuinely curious.
I wonder if this is also related:
I too was big into that whole PUA/game thing in a former life (more theory than practice though) and came to much the same realizations about it, particularly after listening to many of Barry Kirkey's radio shows (the very early ones) where he gave you the non-exaggerated, non-glorified view of what it was like to live in that house.
FWIW I also have a similar problem to the OP. Other things in life I'm sorting out right now but taking up classes again and going to meetups are on my radar for the near future.
I was surprised at the limited selection I found in the store. Having just got a new Mac, I went searching for the usual suspects - no VMware or Parallels? I understand why as these apps can't be sandboxed. Hardly any commercial 3D authoring tools? Where's Illustrator and their ilk (not the Lite versions, the actual full versions). I was really surprised at the lack of big creative and high-end apps on the store - at least in the sense the big apps that the Mac is known for. It seems to be a bit of a wasteland in that regard. I'm sure there are many gems in the store from smaller developers, but I found the app discovery experience roughly on par with that of the iOS app store, which isn't a compliment :)
The convenience factor is wonderful though - it's been a few years since my last Mac and apps I purchased were right there waiting. Setting up the new machine was bliss. Hopefully many of these issues can be worked out as the store evolves.
Slightly off-topic; where do I go to find the gems on the store? What are the good review sites (something like what TouchArcade is for iOS games)? Any with a focus on creative apps?
Then again, I'm probably an old engineer at heart :) I love talking to those guys in their 50s that were programming COBOL or assembler before I was born. I was sitting in a career course thing recently and some of the older guys were sharing their experiences applying for jobs; all I could think was that I'd love to hire these guys if I had the means. Give me a wise engineer any day.
I'm currently working on my CV and there's about as much conflicting advice as to what the 'ideal CV' is as there is about what the ideal diet is. It's somewhat frustrating but at the same time it just shows the amount of chance and variation involved in the whole process.
At least in the industry I'm going for (games / Unity3D for what it's worth), actions & side-projects seem to speak louder than words.
The show just seems like this really weird combination where on the one hand it tries to be ultra-realistic (hey look here's a TED talk; here's something else mentioned in the netsphere! <insert other random SV/HN/tech cultural reference/buzzwords just because>) but then you have that stupid premise about the company inventing some kind of magically-impossible compression algorithm. Plus I think it was far too quick to show it's cards; BIG COMPANY vs LITTLE COMPANY?!?! REALLY WHO WOULD HAVE THOUGHT THAT?!?!
Maybe I don't get the humor either but I can't decide whether the show is actually trying to be a comedy or a drama. It definitely seems much more like a drama to me. I remember genuinely laughing more at parts of 'Pirates of Silicon Valley'.
It turned out we were racing the .NET garbage collector when passing a reference off to some native code. The variable being used by the native code would be collected by .NET as it determined that we no longer needed the variable when we were still actually using it. A classic .NET interop mistake that was fixed by wrapping the use in a 'using' clause. The reason we didn't see it while developing was that .NET garbage collection is different between Debug and Release builds (Debug builds extend the lifetimes of all variables so that they live for the entire length of the function they are used in; Release builds optimize for the shortest variable lifetime).
Another time, had a crash that seemed to occur after a consistent time period. The crash was in third-party code that we didn't have the source for. It 'kind of' behaved like a memory leak, except that everything was telling us the app's memory usage was normal.
After several weeks almost tearing my hair out over it, I ended up setting a breakpoint in the third-party lib using WinDbg and using PageHeap on the app while it was working in order to see who owned the memory that the third-party library was trying to write to. That lead us to a line of code that was performing a malloc() without checking the result; then sending that off to the third party library for use later. The malloc failed, neither us nor the third-party library checked for the NULL and the third-party lib wouldn't try to use the memory until later.
We eventually determined that we were seeing heap fragmentation causing the malloc to fail; we found that under certain conditions we'd leak small objects. Again WinDbg and other tools came in handy; they DID report high address space fragmentation, but it took us a long time to put the two things together. WHen we fixed the small object leak, the crash in the third-party library went away.
So classic bugs in hindsight, but they certainly taught us how awesome WinDbg can be (along with the other excellent debugging facilities provided by Windows). In the end, well worth the time investment in learning.
I have an upcoming appointment with the career counselling place that work put me onto after the redundancy, so going to see if they can point me in the right direction with agencies, etc.
Developing my own product is part of my plan. One of the things that's pushing me in this direction is the whole "you have to sign all your free time away" IP restriction uncertainty that comes with being a tech employee.
That's great that it worked out like that for you to start off with. Sub-contracting was something that I'd thought of - I really need to find my feet before going fully out on my own.
I hate hate hate hate (can't you tell I really hate it) when I use LastPass's awesome password generation, only to save and submit and then be told by the site the password is bad for whatever reason.
Please just do this. THEN we can start talking about those other restrictions (why is my password limited to 16 or even 32 characters?!?!).
Lots of frustration here, I'm pretty certain it's shared by a lot of people. Does feel better though :)
Now I'm not a web dev but I'm interested and echo the question that someone else posted below - why is there a length restriction on passwords (notwithstanding a restriction to stop strain on the server)?
We have a massive age range all the way from 20 to 60 (I guess), with most of the better engineers in their 30s-40s it seems, though to be honest you wouldn't really know unless you asked - there are guys here that you wouldn't guess were 40.
Personally I know I'm a far better engineer now in my mid-30s than I was in my 20s and to be honest I STILL feel like a beginner excited to finally find his feet. I don't see this stopping anytime soon. I don't want to get into management and luckily don't have to and I'm sure at 45 I'll be a far better software engineer than I am now (well, I sure hope so at least :) ).
Really hoping this was fixed in 7.1, which I'm running now and so far seems smoother (doesn't stutter anymore when switching to the task switcher view, for example).
The other persistently anooying bug I've seen has to do with text fields on some webpages (eg Outlook Web Access and the Amazon Kindle web app) where if you tap to change the cursor position inside the field, you can no longer type characters in it and have to deselect the field (by tapping another on the same page) and then reselecting it again. Makes fields on many pages simply un-editable (the Amazon web app is the worst as you have to leave the store section entirely and it breakd the product Search field). Not sure if it's page or Webkit specific but it'a been around unfixed even on iOS 6 if I remember right. Fingers crossed on that one :)
Incidentally, would this bug have been flagged by a compiler warning?