Domain: stackoverflow.com
Stories and comments across the archive that link to stackoverflow.com.
Comments · 921
-
Re:Problems in C++
> The biggest gaps were filled in C++11 with replacements for atoi() and so forth, but there's still no replacement for strtok or some of the other functions in the core language.
stringstream and getline together can be used to form a tokenizer. I am not saying it is a paragon of beauty, but it works. See: http://stackoverflow.com/a/117...
-
Re:Did they deface Slashdot too?
Could be. Seems like stackoverflow was defaced as well.
-
Re:I agree with Lennart
Why would LibreOffice
You do realize OpenOffice does run in a server-mode.
It's useful for doing thtings like batch-processing word documents.
Same for Gimp: " This command will start a server, which reads and executes Script-Fu (Scheme) statements you send him via a specified port. ".
...ever be dependent on systemd?
I don't understand why 90% of the crap systemd's trying to suck in (like networking). Yet the systemd guys continue to glom everything in there.
-
Re:ITS HIM
For anyone else trying to install this in chrome, I had to close the application, relaunch it using the --enable-easy-off-store-extension-install parameter, then drag-n-drop the script file (saved as whatever.user.script) into an open extensions tab. Tested successfully using Chrome 39, thanks parent. Shout out to this SO posting as well http://stackoverflow.com/quest...
-
This shows otherwise
"Binary is faster." http://stackoverflow.com/quest... than text files (which is an advantage of the registry, storing more than just text data, but all types) and again you have load from disk time with
.ini files to even use them. A private ini for an app is not in ram from bootup onward. The registry is. You don't with the registry for the OS and apps that use it. The registry's already in RAM from OS bootup onward, indexed read too (better speed alone right there). You've also got the security of knowing the registry is mirrored during operations (protected by journalling NTFS filesystem too) and during backups (for restorations if need). Those are some spots you've failed in. -
Thanks for the pointer to Minix 3! See also FONC
How workable could it be as a general desktop at this point, like to read email and browse the web? And do some development whether with Eclipse or something else, for C, Java, and JavaScript)?
Does Node.js work on it yet?
http://stackoverflow.com/quest...
"Thanks! I did try getting NodeJS to work in Minix3 but it simply did not work, worked with a couple of guys and there are too many unresolved dependencies and its just a pain... I will try other microkernels and see if I have better luck. Thanks for your reply! -- Purefan Sep 15 '11 at 8:11"Personally, it seems to me we could have a much simpler OS than something UNIX-y based around Forth and Smalltalk somehow... There seems a lot of clutter and inconsistency of naming things in the UNIX world with various abbreviations (especially including command-line programs and their arguments). But perhaps something like Minix as a microkernel could still form a core for that...
Alan Kay's FONC project was a hopeful step in that direction, but I'm not sure it has really delivered more than some interesting experiments?
http://vpri.org/mailman/listin...But Alan Kay's heart is in the right place, regardless of recent outcomes. It would have been fun to work with him and maybe become the next Dan Ingalls!
:-)
http://www.drdobbs.com/article...
"Kay: Yeah. You want to get those from the objects. You want it to be a mini-operating system, and the people who did the browser mistook it as an application. They flunked Operating Systems 101.
Binstock: How so?
Kay: I mean, look at it: The job of an operating system is to run arbitrary code safely. It's not there to tell you what kind of code you can run. Most operating systems have way too many features. The nice thing about UNIX when it was first done is not just that there were only 20 system commands, but the kernel was only about 1,000 lines of code. This is true of Linux also.
Binstock: Yes.
Kay: One of the ways of looking at it is the reason that WYSIWYG is slowly showing up in the browser is that it's a better way of interacting with the computer than the way they first did it. So of course they're going to reinvent it. I like to say that in the old days, if you reinvented the wheel, you would get your wrist slapped for not reading. But nowadays people are reinventing the flat tire. I'd personally be happy if they reinvented the wheel, because at least we'd be moving forward. If they reinvented what Engelbart, did we'd be way ahead of where we are now. " -
Loops in asm help (inner especially)... apk
Even when modern optimizing compilers "unroll" them: See here for results http://stackoverflow.com/quest... with permutations of most *any* kind there (mixing asm with optimization, or not, etc. - et al).
* I used to use it ALL the time (since loops are a "key area" I know of that HELPS a LOT, when redone in inline assembly in Delphi/Object-Pascal, for speed) in Delphi 2.x - 7.x in 32-bit (was unable to in Delphi XE2, but it's been reinstated as an ability of Delphi in XE3 onwards to present XE7).
APK
P.S.=> Enjoy that read - it TRULY is, informative... apk
-
Re:HTTP/1.1 is just fine
Well, to my understanding, it isn't as simple as client programming alone. Even if you do open an out of band background streamer for backend pages, you still have a round-trip per resource, where you could, say pump images 1-100 in one push instead of a 'request-response * 100' loop along a persistent HTTP stream. Any more client-side processing, and you'd have to change the contract and let javascript parse and insert individual resulting blocks into the cache individually, which I don't believe is the case currently in browsers.
Just a casual search found this:
http://stackoverflow.com/quest...
As you can see, the 'fix' is to load each image from site individually instead of through a single bulk-fetch styled request which the server hosting the SPDY could then service. The other neat one is being able to fetch the host HTML page and get all its images / css streamed in one response. I hoep that the browsers can handle the responses streamed and handle them as yet incomplete page elements and not fetch them separately, because that would be truely awesome perf. / responsiveness. -
Re:C versus Assembly Language
Exercise: Write an optimal memcpy/memmove.
;Write several versions each optimized for a particular alignment, with google's help ;Or use whatever Linux is doing if you don't want to have 23987 variations of memcpy/memmove (lxr.free-electrons.com/source/arch/x86/lib/memcpy_32.c); byte-aligned but as slow as it gets
memcpy:
mov ecx, edx
rep movsb
ret; same with movsw/movsd/movsq if you want, still slow
memcpy_128:
; Use e.g. https://stackoverflow.com/ques...
; and variationsmemcpy_2048:
; Use e.g. http://joryanick.com/retro/mem...
; and variations -
I do (from talking to him before)... apk
Perpenso's good imo & here's those examples I put out there, benchmarked too http://stackoverflow.com/quest...
*
:)(Enjoy)
APK
P.S.=> I used inline asm quite a bit, in a few "key areas" & noted it last time perpenso & I spoke here in fact as I mentioned in my reply to him also... apk
-
Re:Dice = Contract Jobs
http://careers.stackoverflow.c... I found my current job there and it's the only place we advertise
-
requires root access and will only run on Qualcomm
"This app requires root access and will only run on devices with Qualcomm chipset."
That's not "for android". That's playing a Qualcomm trick with the baseband.
I also wonder if a better way might be (but I'm speculating here) to use the measured distance from the nearest cell tower (called Timing Advance), as in http://stackoverflow.com/a/137... - and couple it with a public database of known celltowers locations to spot recent "additions".
-
Re:Good reasons for Swift and Go
The problem isn't clear naming of variables. It's boilerplate in the library that you can't get away from. Talk about making your skin crawl, try doing very much with NSString's. Anyone who has worked in a high level language with a concatenation operator (typically "+" or "&" or ".") will feel bewildered at the ridiculous hoops Objective C makes you jump through.
Check out: http://stackoverflow.com/questions/510269/shortcuts-in-objective-c-to-concatenate-nsstrings
Every action that should be common, quick and simple requires forming a committee. -
Re:Signed
-
Re:512-bit self-signed certs (e.g. DD-WRT)
AC replying to self. Firefox 34 allowed my DD-WRT cert after I went into about:config and changed security.tls.version.min to 0.
I got this from the "Firefox 34 and newer" update to Piotr Jurkiewicz's comment on Stack Overflow. He said to change security.tls.version.fallback-limit too, but that sounds like a bad thing, so I kept that at 1, and I was still able to connect to my DD-WRT.
p.s. To sibling who said "quit pretending that a 512-bit cert is going to stop anything besides a nosy neighbor and use a wired connection with unencrypted HTTP to manage your router.": I only access my router from my wired connection, but I don't trust ANY consumer-grade router to actually keep packets off the air. I have a VERY strong WPA2/AES pass phrase, but I still assume that my neighbors *might* find a way onto my network, and I don't want them to be able to intercept my router configuration password. Keeping neighbors off is the whole point. I live in a very large apartment complex in a tech-savvy city.
p.p.s. I have a Buffalo WZR-600DHP that has not released updated DD-WRT firmware images yet. Back in October I tried the 2014-10-01 firmware, but it repeatedly failed to install and I had to use the 30-30-30 reset to unbrick my router each time after the failed attempt. There are no release notes, so I don't know if it's supposed to address the certificate issue.
-
how to learn
I would learn objective-c first because you can get more help with it. People all over the internet have been doing it for a long time. It won't be obsolete for at least a decade, so don't stress about swift being the new way to do the same things. Find tutorials online or get torrents of books/buy them. Dream up your own micro-projects, when you get stuck http://stackoverflow.com/ is your friend. This site has saved me MANY times, usually within minutes. take a look at other peoples micro-projects and full fledged ones on https://github.com/ but above all, right some code EVERYDAY.
-
Re:Web Searches For These Suck
Just search stackoverflow.com with the tag [r].
-
Try autohotkey...
Try http://www.autohotkey.com/docs/ or http://ahkscript.org/.
Autohotkey basically lets you remap any combination of buttons (keyboard or mouse) and modifiers to anything else, including scripts. I use it extensively for PC gaming. Things like automatically repeating mouseclicks for Diablo2 or PathOfExile, Or just mapping mice buttons to keyboard buttons for MMORPGs.
Open source, of course. Passes all the check-with-everything online antivirus scans, e.g https://www.virustotal.com/. Extensive capabilities. Lots of discussion on stackoverflow. Wonderful little background drama on the forums with a semi-fork and reconciliation. Extensive forums. Phenomenal capabilities. Did I mention that it can remap mice/keyboard on a per-application basis? You can have different mappings for different games that you're running concurrently. Extensive documentation.
Check it out!
-
Re:JavaScript includes Java WT*???Of course I can. Search for "Javascrpt is not Java" to get a bit of history here
JavaScript is a completely separate technology from Java. Java was the "in thing" back in the days when Brendan Eich at Netscape created a programming language that was originally going to be called LiveScript, so unfortunately they decided to rename it from LiveScript to JavaScript in the hope of catching the media’s interest.
and here
JavaScript, aka Mocha, aka LiveScript, aka JScript, aka ECMAScript,
The Java- prefix suggests that JavaScript is somehow related to Java, that it is a subset or less capable version of Java. It seems that the name was intentionally selected to create confusion, and from confusion comes misunderstanding. JavaScript is not interpreted Java. Java is interpreted Java. JavaScript is a different language.
The Question: What's the difference between JavaScript and Java? The best answer on stackoverflow
Java and Javascript are similar like Car and Carpet are similar.
So, you got any evidence showing the GP was right? Because the GP, contrary to your claim, ignored the facts.
-
Re: Can't wait for this!
Or it could be that their competition is the most used advertising/search engine in the entire world, Google.
Every time you go to Google it suggests that you should switch to chrome. Maybe that eventually gets to people and they click willingly. Maybe one day they accidentally click somewhere on the page and get it. Maybe they download adobe acrobat or flash and get it installed by drive-by. Maybe a malware site does the drive-by.
A DIVX codec pack causes IE to use Chrome inside IE
Avast antivirus installs chrome if you miss the tiny checkbox Adobe installs chrome with if you miss the checkbox while installing flash player or reader. Maybe you just wanted to install Google Earth and play with maps. Boom. You've now got chrome If you install any well known popular application, chances are it bundles a chrome install.Hey that's a great idea! what if we just make everyone run chrome if they decide to click yes to a popup box IChrome evangelists are taking a cue from malware writers.
It should be noted that Google is now ceasing this drive-by install method of chrome
Clearly, Firefox needs to invent a superior search engine to regain market share, then push people people to install Firefox. Or just convince everyone of their devoted followers to script "install firefox" into applications and web pages where it is completely unnecessary. That's how Google got their market-share.
-
Re:At last.
-
Re:PHP
XML would not be a standard SQL construct. Neither the PHP-internal mssql driver nor the microsoft PHP driver supports TVP.
The postgresql way to prepare a statement that needs to do something like "... field IN ($1)
..." is to rewrite it as an array operation "... field = ANY ( $1 ) ..." where $1 would be an array, but PHP/PDO can't properly/securely prepare this since it doesn't understand array operations. You would need to manually escape each element and create a literal array string in your code and pass that as the parameter:pg_prepare($pg, "test", "select * from customer where id = ANY ( $1::int[] )");
pg_execute($pg, "test", array("{52,149,288}"));Note that a varchar[] in PHP would look something like "{Smith,O'Hare,Wilkerson\\, Esq.}" so none of the normal SQL escaping functions would work properly (note that single quotes are not escaped, but commas and curly braces would be escaped).
I think postgresql arrays are slightly nonstandard (you can declare them using "datatype ARRAY[size]" but postgresql does not enforce array bounds. MySQL does not do array datatypes at all.
-
Re: millions of internet elections
You can usually find Jon Skeet over at Stack Overflow.
-
Re:"State" as in nation, not functional programmin
>> He is not talking about "stateless" in the sense of functional programming languages that don't support variables and other forms of mutable state.
Neither was I. http://stackoverflow.com/quest...
TFA is for me to poop on.
-
Elevating in PowerShell requires lots of typing
Unless they are real admins using the command line.
Why does the PowerShell equivalent of sudo su - require so much typing (namely Start-Process powershell -Verb runAs according to this page?) And unlike Ubuntu, which installs man pages by default, Windows requires users to remember to run Update-Help as administrator while online before taking the computer offline.
-
Close vote
Then it was talked about briefly on stackoverflow in 2009 - http://stackoverflow.com/quest...
I think this question is not right for SO. It can be closed under different reasons
- Primarily Opinion Based
- Too Broad
- Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.I don't have a SO login in this machine. But as soon as I get on my other machine, I am planning to do a close vote on this question.
-
A discussion for the ages - literally
This was asked back on Slashdot 14 years ago in 2000. As you can see, most of the websites mentioned that archived "ummaintained" software have since evaporated and are unmaintained themselves!
Then it was talked about briefly on stackoverflow in 2009.
Submitter, what I suggest you do is include a text file that describes the history of the project (If it was me - I think it would be nice to thank those by name who made significant contributions), known issues, ideas for direction of the project (if any), and then post it to Github and Sourceforge as an 'ummaintained' software. With as permissive as a license as you can give it, which will encourage it's use down the road. Also, I would post links, notices, and intentions to any associated forums. And give the community as much time to as possible before closing the website down. Maybe someone or some company will have the where with all to continue the project. If it is reasonable to do so and they seem to be reputable and serious, you might let them. Otherwise, when finished, make sure that archive.org has browsed the website for their archives. Also, post a copy the final software there. If it has a domain name, if you can, I'd give it a ten year renewal date and give it a notice of closure and a link to the project on Github.
But the larger issue for me, is that you, your colleagues, and friends spent time and effort on this project. That should be recognized. At least by acknowledging that support is ceasing for this project, it can hopefully move on to other hands in the future. It does happen.
I wish more more programmers were as thoughtful as you. And I wish there were better ways (i.e. more permanent and standardized) of dealing with orphanware.
-
I am not going to convert
I might do it for some things, but right now the ability to only checkout a subdirectory[source] is paramount in the way we use svn around here. Nestled with the fact that there are so many git solutions that are third-party hosted only, and so many hostable open source subversion options available, I'll stick with svn.
Moving everything to the cloud, which is marketing speak for someone else's servers, for increased functionality is not an acceptable solution. Sure, you can host your own git repository, but the functionality in the available F/OSS solutions blows.
-
Re:incremental backups
This is the same problem we've always had, whether its someone's website on a shared host or a colo server. You need to back it all up and doing a naive dump of the entire thing will take too long and cost too much in bandwidth, so you take a dump of the entire thing once (preferably when you have the thing you're deploying locally) and then take incremental backups from there.
I agree with this approach. If you can get an initial full backup and then use something like RSync with a cron job to handle the incrementals, that would be ideal.
Some info regarding RSync with EC2 is here: http://stackoverflow.com/quest...
One of the worst offenders when it comes to data exports has to be salesforce.com. If you delete a single custom object they charge you upwards of $10K USD to recover your data: https://help.salesforce.com/HT...
Even worse, you get it back in CSV format. My former employer decided to go with them for their entire operation (sales, marketing, and production/warehouse). I left around the time they started implementation, and it was a complete nightmare! -
Re:If you wanted us to believe your Op-Ed...
*looks like I should have used 'dynamic binding' rather than 'late binding'.
Which term I should have used instead of 'static binding', I'm not sure.
-
Re:Slackware
Who the fuck thought it was a good idea to have executable configuration files?
The new ones are not distro-specific and tend to be shorter. Also, you don't have to do crazy things in order to daemonize a script. Plus, you get actual control over your services, instead of a best-guess.
Configuration files should not be executable by default. If you really need to insert a random script into your boot process, go ahead, but most people will not need to do this most of the time, and a large percentage of people who want this functionality are not going to be able to do it correctly anyway. Because it's absurdly complicated. Double forking and magic PID files are broken, crufty relics from a time when the Unix Machine was maintained by the Gurus, without whose secret incantations the System would fail utterly! Fast forward to this century, and ain't nobody got time for that. If you don't like this century, go play in BSD land.
-
Re:Slackware
Who the fuck thought it was a good idea to have executable configuration files?
The new ones are not distro-specific and tend to be shorter. Also, you don't have to do crazy things in order to daemonize a script. Plus, you get actual control over your services, instead of a best-guess.
Configuration files should not be executable by default. If you really need to insert a random script into your boot process, go ahead, but most people will not need to do this most of the time, and a large percentage of people who want this functionality are not going to be able to do it correctly anyway. Because it's absurdly complicated. Double forking and magic PID files are broken, crufty relics from a time when the Unix Machine was maintained by the Gurus, without whose secret incantations the System would fail utterly! Fast forward to this century, and ain't nobody got time for that. If you don't like this century, go play in BSD land.
-
Re:Good luck with that.
Seems to me that would only make things worse when your libraries have bugs: Why rings 1 and 2 aren't used?
That reference does not seem to indicate it would be a bad idea, only that "the benefits are reduced".
Ring 2 on VAX hardware is where installed system images (read: like libraries) ran. Same place they run on OpenVMS on Itanium.
People who do not know history are doomed to keep pounding their heads against a brick wall until they repeat it correctly.
-
Re:Good luck with that.
Seems to me that would only make things worse when your libraries have bugs: Why rings 1 and 2 aren't used?
-
Re:Still can't find Waldo...
Actually... i think you will like this: http://stackoverflow.com/quest...
-
Re:Bullcrap
Exec command.com or cmd.exe, using a pipe to read the output, parse it.
Or you use some shitty language/library that doesn't give you access to the standard API calls.
A perfect example would be someone using code which depending on other code like this:http://stackoverflow.com/quest...
Rather than properly handling the response directly and correctly, some apps provide wrappers like this to scripting languages rather than exposing the proper version information.
Bad code is what it comes down to in every case, but in the real world you have to take into account that most users are not recompiling programs to fix bugs due to shitty developers that stopped developing the app 12 years ago and there is no source available. This is something that people have to deal with daily.
Microsoft attempts to work around these problems, as does Apple to a lesser extent. Linux pretty much just says 'fuck'ed', hence the massive number of commercial applications for Linux relative to OS X or Windows (Sarcasm)
-
Re: Here's the solution
I seem to recall reading about it on slashdot, but the closest reference I could find is here: http://stackoverflow.com/quest...
ClickOnce .NET applications may be what I was thinking about. -
Re:If you 'speak' C
It's technically possible to write an iOS application in nothing but C, but it's deeply unpleasant compared with using the right tool for the job. Just learn Objective-C. There's very little more to the language than plain C, but it makes things so much easier. Then, when you're familiar with the platform, pick up Swift. It's by far the better language, but it's a bigger change than C to Objective-C and it's still pretty immature.
-
Re:C++ = Clear Language Choice.
Sincere question - I've heard that Fortran blows away (or at least beats) C++ for scientific/calculation programming... can you lend any insight into what accounts for that, specifically?
-
Re:In conclusions, the iphone6 sucks!
Personally I no longer develop apps for Android. I used to, but Android apps were less than 25% of my revenue and accounted for about 90% of my support requests. In particular "App crashes on startup" and on a handset I've never heard of before. Especially problematic seemed to be the number of prepaid android devices. Their OS's never seem to be kept current or running some tweaks that may cause compatibility issues for whatever reasons.
So in other words: you were too lazy to restrict download of your app to devices you actually tested it on? Must be Google's fault then.
-
Crusti croc
A particular sin() implementation by IBM has always looked scary to me. I found it via an interesting Stack Overflow thread which talks about trigonometric functions.
-
Re:Yeah, Lisp is nice.
Technically, with Lisp being a metalanguage and more of an idea than a single artifact (unless we're talking about Common Lisp), building a statically typed language on top of it isn't exactly inconceivable.
Statically typed Lisp isn't just concievable, it's been concieved many times. And none of them really ended up making serious sense. Worth reading all the links from this Stack Exchange question. By the time you static type Lisp it seems it isn't much like the original.
Scala's type system does a whole load more than any of these Lisps seem to have done though.
-
Re:Stackoverflow's got a list
http://stackoverflow.com/quest...
That's a list of very strange language features. Unsurprisingly, Javascript makes many, many appearances.
That list is the source for the linked "article".
-
Re:Ruby and string/symbols
Heh, yeah, I'm surprised I haven't seen more Ruby yet in this thread, esp. with the proliferation of Chef and gems and rvm and other parts of that ecosystem to keep it puttering along.
For a language that seems to pride itself on its complete OOP-ness, there's so much syntax and different ways of accessing that syntax. I had wondered where all of the PERL masochists had gone...
In my limited experience wrangling with Ruby, it seems very schizophrenic... at once it's supposed to be very clean, yet it's so littered with syntactic sugar. The "best practices" guidelines always seem to be changing, so a common pattern one year will be an anti-pattern the next. There's a little cottage industry of dependency management that has grown up around it, so even as it has become something of a cross-platform glue language like PERL and python, it's such a pain to even maintain consistency among its own minor releases, so we have to use rvm gratuitously to spawn different ruby environments to run different "core" ruby utilities on the same box (chef, foodcritic, rubocop all needing different versions of ruby and libraries and gems, etc.). And it's so slow compared to its peers... for an automation language, I find myself taking a lot of coffee breaks while it goes out and does its thing, and of course that also means all of the code check tools like foodcritic spam me with warnings to do all of the little optimizations like converting my string objects into symbols, so much for the pure object-orientism.
Anyway, I have yet to have an experience with Ruby where it does something that impresses me compared to something else. It seems to be used to write templates for config files a lot, so I suppose that might be its strength. But even there, it seems to be a combination of the worst parts of other languages... all the indeterminate pieces of XSLT, more verbosity than XML, much slower and resource-hungry than other interpreted languages, almost as ugly as PERL, scattered package management in competing and overlapping gems since a lot of the base functionality is somewhat broken ( http://stackoverflow.com/quest... ), and yet seems harder to debug and less accessible too noobs than even compiled languages.
From my experience with Ruby, I'm not exactly sure why this language was developed, other than to provide job security for some devops types. Oh, and I suppose https://github.com/mame/quine-... is cool from an academic standpoint.
-
Re:Stackoverflow's got a list
http://stackoverflow.com/quest...
That's a list of very strange language features. Unsurprisingly, Javascript makes many, many appearances.
TUTOR -- compute -- search -- vocabs stuff. Yeah!
-
Stackoverflow's got a list
http://stackoverflow.com/quest...
That's a list of very strange language features. Unsurprisingly, Javascript makes many, many appearances.
-
API consistency; negative tests
Of course, when the end product is as infinitely malleable as software
Software isn't "infinitely malleable" when it exposes interfaces to anything else. This could be APIs to other software or user interfaces. You have to build on the old interface compatibly, and when you do make a clean break, you need to keep supporting the old interface until others have had a reasonable time to migrate.
The human interface needs a design in order to mesh with the humans in an elegant and consistent fashion, but the code? No. The only purpose of code design is to make the code readable and maintainable, and those are attributes you achieve through test driven development and continual refactoring.
APIs need at least as much consistency as UIs. In fact, I'd argue that APIs need even more consistency because human users are slightly better at adapting to a UI through reflection, that is, figuring out a UI by inspection.
The engineering the IEEE is trying to achieve is accomplished by test-first development
Then take this guide as something to consider when determining when you have enough negative tests, or tests that are expected to succeed by failing.
continual automated testing
If you're using a CAPTCHA as part of a process to authenticate a user, how do you perform automated testing on that?
-
Re: I hope not
Yeah... not really, no. Suppose there's a name-collision between C functions in two different libraries you're using. Better get the link-order right. You need to know the way that linking concepts interact with with inline functions, static functions, and templates. C++ member-functions always have external linkage. Forward declarations of template classes to reduce compile-times. The magic that goes on enforcing the One Definition Rule in the face of templates. None of these concerns arise in Java. In Java,
.class files act as both the header and the dynamic library, and it 'just works'.Atop all that, you may need to chose a cross-platform build-system like CMake, and maintain its makefiles. In Java you normally have either a NetBeans project or an Eclipse project, and I believe the two are trivially converted. In C++, getting a completely portable codebase but with an autotools build system, to build in Visual Studio through CMake, might take some real doing.
Also, Urkki is right - not sure where you're getting this idea than each function gets its own object file.
-
Re:tl;dr
This is true and my pants are now definitely starting to change to a brownish hue. Knowing the currently running app greatly simplifies the task for the classifier.
This possibility and security risk is going to disappear in the next version of Android, but is very present in all current versions:
http://stackoverflow.com/quest... -
One Year In
I just had my one year anniversary as a full time Android developer, and it's insane how much I've learned after leaving school. Luckily there's two older guys (well, one now, the other moved on recently) on my team who are _awesome_ mentors.
1. Pay attention to everything you can in the work place. You may be a client side developer, backend, whatever, but pay attention in every meeting or conversation that you can eavesdrop on. You may not understand everything going on with the teams you don't work in, but just being exposed to their terminology and _looking up what they're talking about_ will get you far. This doesn't go for just development, either - listen to the business and sales guys talk and try to understand your clients and what they need so you can build a great product by anticipating what will work for them before they have to ask.
2. Write a blog. Seriously. I'm the first to admit that I don't really know anything when it comes to development, but I've been actively writing new posts to my blog and it forces me to grok whatever I'm writing about. Whatever you're doing, post the code on GitHub so others can read it (mine's here). Developers who read peoples code online tend to be awesome about making suggestions and asking questions that make you realize you screwed up without being jackasses about it.
3. If there are tech meetups in your area, go to them. If you're in a decent sized city (I'm in the Denver/Boulder area, which isn't huge, but it's a lot bigger than where I'm originally from) you can find multiple meetup groups related to tech that you're interested in. It's a great way to learn new things and meet a lot of awesome people in your area.
4. If there's hackathons in your area, no matter how small, go to them. You meet awesome people and learn how to work in teams that are different than the one you're in every other day. Plus there's usually free food and beer, so what's not to like about that?
5. Pick up skills that compliment your work area by doing projects that aren't work related. It helps you understand what other teams are doing and how it affects you, plus it just makes you more awesome while keeping down the monotony. As a client side developer, I've been taking a Udacity course on using AppEngine to make backend APIs, and it's been fun.
6. For the love of God, check for null pointers and other kinds of exceptions. You may not catch all of them due to inexperience in spotting them, but that's what senior devs doing code reviews are for. You don't want code going into the wild that crashes, even when data is bad. Getting a call on a Saturday saying something bad is happening is not what you want - the weekends are yours to do whatever you want, not put out fires that could have been avoided.
7. Open source third party libraries are your friend. People way smarter than me have put together some amazing things that we use every day, like Otto and Picasso from Square. Try libraries out in a sample project, and if they will work for what you're doing, give it a shot. If you can make them better in the process, submit a pull request. Like I mentioned earlier, the open source community is awesome and if your pull request isn't up to par, they'll let you know what you can do to fix it.
8. You're going to fail at some things, and it's alright. Fail early, learn what did and didn't work, and try again. Learning from mistakes is how you get better. Along this same line of thought, if you run into a roadblock that you can't figure out yourself via documentation/stepping back and evaluating the problem, StackOverflow is awesome.