|
I'm glad to see Microsoft going down this path. The past few years have been littered with form factor confusion, and while I don't have clear visibility to what will ultimately emerge as the "right" ones, I do believe there's currently room for something in between a tablet and a notebook. Microsoft remains ahead of the curve in building tablet/notebook convergence devices. Unlike Apple however, Microsoft doesn't have the luxury of showing up to an uncrowded market. As a result, Microsoft has to work a lot harder to convince folks that Surface is a platform worth using - the initial flaws are less excusable when the market is full of mature competitors. It's a tablet. No, it's a laptop. No, it's... Surface Pro!
|
|
|
|
|
Beginners to C++ programming find the concept of pointers foreign to them. Pointers, and code that manipulates pointers (aka pointer arithmetic), can even be daunting to some of the most seasoned programmers. Pointers in C++ account for a fair share of bugs in programs due to the lack of understanding. So why even use them? Well, besides being the most problematic, they are also some of the most powerful features in the language. Handy pointers for using pointers.
|
|
|
|
|
My Computer Science professor liked to carry around a briefcase and point to it while saying "pointer to the handle."
|
|
|
|
|
Bob Dole The internet is a great way to get on the net.
2.0.82.7292 SP6a
|
|
|
|
|
I've asked this question during interviews. Usually Java programmers are really confused... I don't understand why some schools would teach Java instead of C/C++? Obviously C is the language of real programmers...
Ok enough rant-ing and onto the question:
1. Copying by values vs copying by reference. Obviously passing a pointer to something is much more efficient than doing actual deep copy.
2. All high level languages do is hide the pointers from you, but anytime you index an array pointer arithmetic is being done in the background. Back in the day the stl containers were not available and pointer arithmetic was being used as a iterator of sorts. It still can be used to deconstruct binary memory into objects (perhaps when accessing shared memory created by an application written in some arcane language).
3. Function pointers can be used to simulate polymorphic behavior in a procedural language (like C or Fortran).
4. Most important in my mind is the fact that if you understand pointers and memory, you'll be able to write better code. You'll be able to do your own memory management which could be more efficient.
|
|
|
|
|
VentsyV wrote: I don't understand why some schools would teach Java instead of C/C++?
Because when they last started evaluating their language of choice for CS101 it looked like Java was going to conquer the world. In another 5-10 years I expect to see JavaScript take over. Perhaps more importantly it sidestepped the epic holywar between adherents of the MSVC++ and GCC compilers. When I was a freshman ('99); the net result of this was that the "official" compiler for intro C++ classes was Borlands. In all but one of my more advanced C++ classes we were allowed to use the compiler of our choice as long as it was specified; the exception was my OS class where the binaries we had to use for all the parts of the OS that we weren't writing fill in the function code for were only available on via the Universities Slowlaris shell server.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
A colleague of mine told me about a nice tool for WPF developer: Snoop. It’s somehow like Firebug – just for WPF applications. For those who don’t know firebug: with this tool it is possible to analyze websites and change parameters. Snoop itself is an open source project and you can download it on Codeplex or GitHub. The installation is quick and after the start you will see this little list.... With the help of this list you are able to search for current WPF applications or choose an WPF application with the “target”. Now you will see the object tree – alike firebug – including the characteristics and possible Binding-errors... What other tools are you using for WPF development?
|
|
|
|
|
I ran across a method that returned an IEnumerable<t> recently, and I implicitly typed its return value. During the course of a series of method extractions, code movement, and general refactoring, I wound up with some code that passed the various unit tests in place but failed curiously at runtime. After peering at it for a few minutes and going through once in the debugger, I traced it to a problem that you don’t see every day, and one that probably would have had me tearing my hair out if I didn’t have a good working understanding of what the “yield” keyword in C# does. So today, I’ll present the essence of this problem in the hopes that, if you weren’t aware of it, you are now. Understanding the IInnumerable pitfalls of deferred execution.
|
|
|
|
|
Terrence Dorsey wrote: the IInnumerable
The what?
I sure hope he isn't recommending that developers use ToList and ToArray simply to pass poorly-written tests; I see too much overuse of them in here as it is. That's the wrong solution to a non-problem.
|
|
|
|
|
|
This propensity for today’s working programs to be broken tomorrow is what I mean when I say these languages are not future proof. In principle a big C/C++ program that has been extensively tested would be future-proof if we never upgraded the compiler, but this is often not a viable option. There is a long, sad history of programmers becoming seriously annoyed at the GCC developers over the last 10 years due to GCC’s increasingly sophisticated code generation exploiting the undefinedness of signed integer overflows. Similarly, any time a compiler starts to do a better job at interprocedural optimization (this has recently been happening with LLVM, I believe) a rash of programs that does stupid stuff like not returning values from non-void functions breaks horribly. Programmers used to think it was OK to read uninitialized storage and then compilers began destroying code that did this. Developers need to take undefined behavior more seriously, because the undefined consequences are catching up.
|
|
|
|
|
They don't need to work beyond 2036 anyway, right?
|
|
|
|
|
I’ve earned a good part of my life’s income to date taking other people’s C code, cleaning it up, making it work and then making it work better. In one sense the original program that this article is about is perfect, it takes the prescribed input, processes it and produces the desired output using the test set provided. That’s really all you can ask for in any program, under normal circumstances. Provided of course that the program produces its results in an acceptable time. What acceptable is is up to the user of such a program, in this particular case the writer of that article (linked at the end) used acceptable to mean ‘slower than Haskell’ and as a long time observer of the language wars this irks me. You need to write the code correctly before you can benchmark it.
|
|
|
|
|
My wife gave me a real geek book for Christmas: Masterminds of Programming by two guys named Federico Biancuzzi and Shane Warden. In it they interview the creators of 17 well-known or historically important programming languages. The book was a very good read, partly because not all the questions were about the languages themselves. The interviewers seemed very knowledgeable, and were able to spring-board from discussing the details of a language to talking about other software concepts that were important to its creator. They wrote the languages we love (and hate).
|
|
|
|
|
Interviewer: Yes, I understand that, but can you give me an idea of how much experience you have with brown? Roughly. Carpenter: Gosh, I really don't know. Once they're built I don't care what color they get painted. Maybe six months? Interviewer: Six months? Well, we were looking for someone with a lot more brown experience, but let me ask you some more questions. Carpenter: Well, OK, but paint is paint, you know... And now, a riddle. Please answer in Haskell or Dutch.
|
|
|
|
|
Rocks, Ruby... Brown, VB.NET... Potayto, Potawto.
|
|
|
|
|
Below is a scenario:
Interviewer: Do you know C# ?
Carpenter: No I don't know what you are talking about, All I know is Hacksaw #
Interviewer: Ohk , Do you play with Perl , Ruby ?
Carpenter: No I'm not that much rich to play with those. I can't afford.
Interviewer: One final question for you. Do you know JAVA?
Carpenter: I heard it's a threat so not bothered to learn
Thanks,
Ranjan.D
|
|
|
|
|
Ouch.
|
|
|
|
|
Once again, flaws in Java are creating big holes that hackers exploit to victimize users and, even worse, sabotage or spy on many of the computers that run key business processes at utilities, banks, hospitals, and government agencies. Enough already. Wake up and smell the coffee: Client-side Java needs to go, and fast. Even if the current bugs can be fixed, there will be more. Oh, the irony that an antimalware app requires the use of one of the biggest malware conduits to function!
|
|
|
|
|
I'm not sure this author knows anything about software, how is an OS supposed to stop Java from running? It's just a program like any other. It would be especially hard with Java, because I could, in theory, implement a JVM in another language like C# or Python, are they supposed to somehow recognize every possible implementation of the JVM that could ever exist? It just isn't feasible...
|
|
|
|
|
lewax00 wrote: I'm not sure this author knows anything about software,
It was originally published to InfoWorld. I'm certain the author doesn't; and wouldn't be surprised if he has to hire someone to turn his computer on for him.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
Ahmed Al-Khabaz, a 20-year-old computer science student at Dawson and a member of the school’s software development club, was working on a mobile app to allow students easier access to their college account when he and a colleague discovered what he describes as “sloppy coding” in the widely used Omnivox software.... “I felt I had a moral duty to bring it to the attention of the college and help to fix it, which I did. I could have easily hidden my identity behind a proxy. I chose not to because I didn’t think I was doing anything wrong.” If this weren't so infuriating I'd make a "double secret probation" joke.
|
|
|
|
|
Dawson College's response here[^].
|
|
|
|
|
I'd like to see a response to that response. It didn't really say much, aside from a very general statement indicating that Ahmed was given a chance to avoid futher infraction (it was so general that it didn't refer to Ahmed's circumstances, but instead to the process that dictates expulsion).
|
|
|
|
|