|
QuarkJets posted:Hmm One of the problems i have seen in the past is where a job requires a degree. So me a life time developer (20+ years) cannot get the job but the snotty little post grad can because they have a Douglas in Sociology.
|
# ? Apr 13, 2015 07:07 |
|
|
# ? Jun 2, 2024 19:28 |
|
QuarkJets posted:So then your argument is that their app design process was superb, despite creating a slower and less efficient app than their competitors, and hacking the dalvik instead of a refactor was proof of this? You keep saying "refactor" but I'm not sure you know what this means. "Refactoring" isn't magical fairy dust that makes your code better and smaller when you sprinkle it atop. At Audible, we had to deal with multidex when we wanted to bring audio into the play version of the Kindle Reader app. I can assure you that "refactoring" wouldn't have solved the issue, because despite looking simple on the surface, Kindle Reader is actually really complicated and has to deal with a bunch of older formats basically forever. Is the audio player bloat? Maybe, but I'm sure that it's extremely profitable bloat, which is all that really matters at the end of the day. As completely ugly as Facebook's solution was, there isn't a good alternative, and suggesting "just make your code smaller gawd your dumb" implies a staggering level of ignorance, especially when it comes to support libraries, development libraries, etc bloating up the method count. Software engineering is about Solving Problems, not playing code golf.
|
# ? Apr 13, 2015 13:21 |
|
ExcessBLarg! posted:...first to have a clever solution to the problem... It's more that they were too big to fail and Google kept the hack working: https://android.googlesource.com/platform/libcore/+/81abb6fb7332dfe62ff596ffb250d8aec61895df%5E!/ Reflecting into private, non-API fields isn't a clever solution, it's a hack. They just got away with it because breaking Facebook is bad. This is orthogonal to the original problem, which is real for everyone supporting legacy devices (and getting worse because Google doesn't give a gently caress and keeps bloating its support libs). Hiowf fucked around with this message at 13:35 on Apr 13, 2015 |
# ? Apr 13, 2015 13:32 |
|
Skuto posted:and getting worse because Google doesn't give a gently caress and keeps bloating its support libs In fairness they did recently start providing Play Services jars that are broken down according to what functions they support. For instance my team's app only uses GCM, so I can strip out all the fused location, game matchmaking, etc stuff that lands into the kitchen sink that is Play Services. That bought back a ton of dex count space. It was the case before that just the support lib and Play Services jar would put you at like 30k symbols right before you wrote a single line of original code of your own. It sucks that a common reality now of Android development is that library developers have to care hard about symbol counts, and library users often have to make performance/symbol count tradeoffs (IIRC Gson vs Jackson is one such situation where Jackson is faster but Gson has a smaller dex footprint).
|
# ? Apr 13, 2015 15:04 |
|
Scroogle'd Every time I start to think "It'd be fun to learn the Android API, I know Java pretty well", I read something like this and lose all motivation again.
|
# ? Apr 13, 2015 16:10 |
|
I'm the internal bug URL in a public code dump.
|
# ? Apr 13, 2015 16:23 |
|
Volmarias posted:I can assure you that "refactoring" wouldn't have solved the issue, because despite looking simple on the surface, Kindle Reader is actually really complicated and has to deal with a bunch of older formats basically forever. He's not kidding, this is a code horror in itself. I wrote a Mobipocket (which is the format Kindle started out with) ereader for Android for fun, using Qt. Under the hood, Mobipocket is just one giant HTML 3.2 file (yes, that old) containing the text of the book, with GIFs the only allowable image type and that with a strict size restriction, stored in a series of LZ-encoded 4k buckets within an arcane archive format that originated on the Palm Pilot. There's some serious software archaeology in there. Kindle has a new totally different format that by all accounts is much better, but there are still zillions and zillions of books out there in the old format of course.
|
# ? Apr 13, 2015 18:52 |
|
LeftistMuslimObama posted:Every time I start to think "It'd be fun to learn the Android API, I know Java pretty well", I read something like this and lose all motivation again. Where Android becomes a problem is when you have to provide legacy support for 2.x devices, make use of a bunch of Google services, and use the old Eclipse/ADT-based build system. But you can pretend none of that exists and you're good.
|
# ? Apr 13, 2015 18:58 |
|
Driver validating user mode input:C++ code:
|
# ? Apr 14, 2015 00:28 |
|
ExcessBLarg! posted:Android isn't bad, at all, if you start off using Android Studio and you restrict your apps to recent versions of Android only. API 16+ (Jelly Bean 4.1) is a reasonable target these days, which is compatible with 88% of the devices in current use. Pretty much this. There's no better time to start learning, honestly. Android studio, with a fallback to Eclipse if you truly must, dramatically better documentation, most newer devices PROBABLY wont burst into flames if you only call public APIs, and compatibility libraries that mean you aren't on some ancient version of UI forever. Target the API level of your personal device while you get started. The Dalvik patch thing is a truly extreme example and shouldn't dissuade you.
|
# ? Apr 14, 2015 01:40 |
|
ExcessBLarg! posted:Android isn't bad, at all, if you start off using Android Studio and you restrict your apps to recent versions of Android only. API 16+ (Jelly Bean 4.1) is a reasonable target these days, which is compatible with 88% of the devices in current use. What if you need to use the NDK, does that work properly/nicely with Android Studio yet?
|
# ? Apr 14, 2015 01:47 |
|
omeg posted:Driver validating user mode input: Is the horror the break; statement instead of "return" or "return rc"? Is it the spelling mistake in the trace statement? Is it me? e: Probably copy-pasted from a while(true){} wrapped initialization code-segment? e2: Never mind, just properly parsed the if statement condition. shodanjr_gr fucked around with this message at 02:36 on Apr 14, 2015 |
# ? Apr 14, 2015 02:14 |
|
shodanjr_gr posted:Is the horror the break; statement instead of "return" or "return rc"? Is it the spelling mistake in the trace statement? Is it me? http://code.metager.de/source/xref/QubesOS/qubes-r2/vmm-xen-windows-pvdrivers/xenpci/gntmem_device_interface.c#733 ?
|
# ? Apr 14, 2015 02:24 |
|
return0 posted:What if you need to use the NDK, does that work properly/nicely with Android Studio yet? I've found that it's functional, in that if you set things up manually it'll probably work, but when it comes to android I'm a coding horror.
|
# ? Apr 14, 2015 02:44 |
|
return0 posted:What if you need to use the NDK, does that work properly/nicely with Android Studio yet? Hopefully you enjoy using gdb via the CLI. The NDK tooling is comically bad, but I guess it's basically functional now.
|
# ? Apr 14, 2015 02:57 |
omeg posted:Driver validating user mode input: What am I missing here?
|
|
# ? Apr 14, 2015 03:03 |
|
VikingofRock posted:What am I missing here? From what I gather, notify_offset is probably used to index an array of size n_pages * PAGE_SIZE. Also, it's spelled notify_offest in the trace statement.
|
# ? Apr 14, 2015 03:05 |
|
status posted:http://code.metager.de/source/xref/QubesOS/qubes-r2/vmm-xen-windows-pvdrivers/xenpci/gntmem_device_interface.c#733 Yeah it's the GPL Xen pvdrivers for Windows. That offset is later used to write into a memory region and if the value is equal to the region size... fun stuff happens (BSOD).
|
# ? Apr 14, 2015 04:32 |
|
So it's just a classical fencepost error?
|
# ? Apr 14, 2015 06:19 |
|
Skuto posted:So it's just a classical fencepost error? Yup. I expected better from someone writing kernel-mode code. I know I shouldn't.
|
# ? Apr 14, 2015 12:48 |
|
How to Fix Problems Installing or Playing GTAV PC On Windows User Accounts Containing Certain Characters
|
# ? Apr 14, 2015 14:13 |
|
omeg posted:How to Fix Problems Installing or Playing GTAV PC On Windows User Accounts Containing Certain Characters I know at least one game I've worked on had that. Was using a narrow string for a path.
|
# ? Apr 14, 2015 15:32 |
|
Cool. My name (and thus my Windows user name) contains a dash, which is unsupported according to that page. e: Also, for the same reason I can't use my actual name as my gmail address.
|
# ? Apr 14, 2015 15:44 |
|
Wheany posted:Cool. My name (and thus my Windows user name) contains a dash, which is unsupported according to that page. They had to save CPU somewhere man, you can't just go around parsing the full ascii table like it's free. Think of those precious cycles!
|
# ? Apr 14, 2015 15:46 |
|
Everyone knows names with dashes are SQL injections!
|
# ? Apr 14, 2015 15:52 |
|
omeg posted:How to Fix Problems Installing or Playing GTAV PC On Windows User Accounts Containing Certain Characters It feels like this kind of bullshit is always coming out of a few places like Rockstar and Ubisoft.
|
# ? Apr 14, 2015 15:54 |
|
I don't know, do they also perform zero i18n testing? Stuff like that was one of the more basic things to check for when I was working in that field (i18n). I wonder if it runs at all on Turkish Windows.
|
# ? Apr 14, 2015 16:25 |
|
omeg posted:I don't know, do they also perform zero i18n testing? Stuff like that was one of the more basic things to check for when I was working in that field (i18n). Hughlander posted:I know at least one game I've worked on had that. Was using a narrow string for a path.
|
# ? Apr 14, 2015 17:05 |
|
Dammit. I came here to post that. Have this instead: http://www.polygon.com/2015/4/14/8411795/mortal-kombat-x-steam-streaming-install Not really a coding horror, but a planning/deployment horror. Edit: Although the crash to desktop when you don't have the packs would definitely qualify as one. itskage fucked around with this message at 19:42 on Apr 14, 2015 |
# ? Apr 14, 2015 19:34 |
|
omeg posted:I wonder if it runs at all on Turkish Windows. I'm going to guess yes, but not on Hungarian Windows (FOLDERID_ProgramFiles is C:\Programfájlok)
|
# ? Apr 14, 2015 20:25 |
|
pseudorandom name posted:I'm going to guess yes, but not on Hungarian Windows (FOLDERID_ProgramFiles is C:\Programfájlok)
|
# ? Apr 14, 2015 21:36 |
|
Thermopyle posted:It feels like this kind of bullshit is always coming out of a few places like Rockstar and Ubisoft. Probably because they have interns write "easy code" like that. Interns who have never dealt with unicode or have ever had to think about languages that have non-ASCII characters.
|
# ? Apr 14, 2015 22:19 |
|
Hilarious game-breaking bugs in a AAA title on launch day?
|
# ? Apr 14, 2015 22:20 |
|
The_Franz posted:Probably because they have interns write "easy code" like that. Interns who have never dealt with unicode or have ever had to think about languages that have non-ASCII characters. This is far beyond unicode unfamiliarity - more than half of ASCII is verboten, too
|
# ? Apr 14, 2015 22:24 |
|
Bonfire Lit posted:Is it actually that or does the shell just display it this way? I thought Microsoft made the actual folder name "Program Files" on all versions starting with Vista because programmers are really loving bad when it comes to localization and trying to make them care about it is a losing battle. Similarly once they started changing folder conventions with XP they had to keep soft-links to the old ones because programs just hardcoded that stuff.
|
# ? Apr 14, 2015 22:59 |
|
SupSuper posted:This wouldn't have happened if we still had Games for Windows certification. I'm pretty sure the title in my case had GFWL cert status and used Live networking.
|
# ? Apr 15, 2015 00:22 |
|
The more I have to use visual studio and link against microsoft sdks, the more I understand why so many windows programs are terrible, just bang on it until it sort of works to make the suffering stop.
|
# ? Apr 15, 2015 00:27 |
|
My favorite is the way to set a thread's title in the debugger, which is to raise an exception with a magic value pulled out of some guy's blog post and not in any header. Or the insanity of emulated touch events which make you test lpReserved against some bit flag, also undocumented.
|
# ? Apr 15, 2015 03:17 |
|
Suspicious Dish posted:My favorite is the way to set a thread's title in the debugger, which is to raise an exception with a magic value pulled out of some guy's blog post and not in any header. It's debugger-specific since the kernel doesn't have any notion of thread names. It's in the MSDN though!
|
# ? Apr 15, 2015 03:41 |
|
|
# ? Jun 2, 2024 19:28 |
|
Wait, that means that if I attach a debugger to an existing process, the thread names won't be there? What the gently caress?
|
# ? Apr 15, 2015 04:42 |