1,991 reputation
816
bio website linkedin.com/in/luisespinal
location Florida
age 44
visits member for 3 years, 6 months
seen Apr 4 at 18:00

Software Engineer and developer since 1994, knee deep in Java from 1998 till 2009, with experience in distributed systems, C/C++ (UNIX and Win32), CORBA, enterprise computing, software architecture, network protocols (layer 3 and up), systems administration, x86 Assembly, VB, FoxPro, and UML.

Working since 2010 with a defense contractor in the design and architecture of embedded systems using C/C++ and CORBA

I've pursued a MS in Computer Science (with focus on security in distributed systems). Now, I'm pursuing a MS in Electrical and Computer Engineering, and hopefully I would like to enter the fields of satellite communications and/or network protocols (layer 1 and 2). I might, at a later time pursue a Ph.D. in CS or CE (or a MS. in Computational Mathematics.)


Oct
6
comment Are there any scientifically rigorous studies of coding style principles?
The abstract for the Springer Verlag article talks about a comparison between two versions of a product, one made informally, and one made formally using a structured method. But again, structured methods have varied in their treatise of single and multiple return situations (which is what the OP is asking.) Since I don't have access to the full article (and possibly neither the OP), you could also have explained how this article was relevant to the OP's question.
Oct
6
comment Are there any scientifically rigorous studies of coding style principles?
As a matter of style, and perhaps to provide more information that the links' abstracts can provide (considering that we don't know if the OP is a paying ACM/IEEE/Springer Verlag member with access to the full articles and find answers to his questions.) For example, the ACM article abstract makes no mention of coding style. At most it talks about corroborating the structured program theorem (which itself does not talk about the single or multiple return problem). So you could have explained why that link is relevant.
Oct
6
answered Are there any scientifically rigorous studies of coding style principles?
Oct
6
comment Are there any scientifically rigorous studies of coding style principles?
You might want to add some text accompanying those links as a matter of style (no pun intended) ;)
Oct
6
comment Are there any scientifically rigorous studies of coding style principles?
+1 for mentioning "Code Complete 2"
Oct
5
comment Why do people still say Java is slow?
I've been compared to Nietzsche, but never to Kant. It's a first :) To me, making implicit judgements on a technical subject without basis, and in particular, on a subject that has already been very well characterized and documented by academia and industry for the last 15 or so years, well..., it's dumb. We are in the business of making software, and we walk a thin line between science and engineering. That calls for a higher standard of thinking with little to no room for unsubstantiated implicit assumptions of that which is already quantifiable. I would like to think this is the way to go:)
Oct
5
comment Why do people still say Java is slow?
@yati - hahaha as per the Kantian comparison, an implicit assumption was done without direct experience of the subject ;) I must admit that using the word "dumb" is incendiary. However, "X is dumber than Knuth" only describes dumbness wrt to Knuth's brilliance, and does not describe something intrinsic of X (say "X has done an act that is truly dumb"). I do believe, perhaps unfortunately, that we engineers should hold ourselves to better standards and avoid implicit assumptions on things that are complex, measurable and (already) well-documented. Java technology fits these three :/
Oct
3
comment If you could only have one programming related book on your bookshelf what would it be and why?
@con't - also, I'd warn against using a language as a pedagogical tool because it is mainstream. Mainstream changes every 2-3 years, and with Java, the language is simple, but the task is in learning the JVM, the libraries and the architecture. I'd say to learn Java and .NET enterprise development at the 4th year of college. And I believe (I know, subjective) that is important to provide rigor early on. We have waaaay too many point-n-click programmers out there who needed some rigor early on. I've made a lot of money cleaning the crap they left behind, but still ;)
Oct
3
comment If you could only have one programming related book on your bookshelf what would it be and why?
@con't - That is, I suggest the SICP not because of Scheme, but because of its pedagogical content. I would actually had suggested to start with assembly (people did that quite successfully), but there are no assembly books (and probably there will never be) like the SICP. The closest would be Knuth's encyclopedia (and that would be an overkill.) As for java, I've worked with it for 12 years, and I wouldn't recommend it for teaching.. gets the job done, but it is horrendous as a PL. C, Python or Ruby are much better designed languages.
Oct
3
comment If you could only have one programming related book on your bookshelf what would it be and why?
@Cervo - It's a valid concern, and it does seem like an overkill, but (and this is a completely subjective position I acknowledge), I strongly believe it provides a deeper foundation than one typically finds with other mainstream approaches. The jury is still out with MIT now that they have switched to Python (some of the reasons being that it also has FP capabilities and it's strongly amenable for scientific computing and robotics, which Scheme isn't.) Nothing wrong with Python (I actually love the language), but the jury would be out till a Python'esque version of SICP comes out.
Sep
30
awarded  Nice Answer
Aug
29
answered How to calculate the quality of software project
Aug
29
comment How to calculate the quality of software project
I know this is a few months old but to Pascal.. software project quality metrics are not relevant to programming??? If we go that route in the literal sense, we might as well remove anything in software engineering that is not directly related to coding for loops and if statements. Last time I checked, this is not a programming venue, but a programmers venue.
Aug
29
comment How to get better at testing your own code
@mouviciel - "At a girst glance it looks like the same but many real-life projects have a 100% coverage of tests against requirements and nevertheless still contain many bugs" - but that's independent of testing or requirement specification. Testing can never indicate absence of bugs, just a inability to find bugs to a certain degree. Specs are either explicit or implicit (thou shall not give a 404 when clicking the shinny submit button) and the verification of which has no bearing on the incomputability of determining if a system is error-free.
Aug
29
comment How to get better at testing your own code
@mouviciel - "The job of a tester is to find bugs, not to find a test case that meets a requirement." - an intelligent testing environment just doesn't limit itself to blindly click-click-click and go ooh, error. There is a context in which the system is tested. You tell the tester "in this release, we implement feature X that should do Y according to this process under these conditions". That's an spec. If the tester finds a problem of any kind with the system fulfilling that feature request, that spec, then he finds a bug. Bug-finding is spec verification.
Aug
29
comment How to get better at testing your own code
@mouviciel - "What you describe in your second comment is the process usually applied in waterfall processes" - it is not applied just to waterfall processes. Say, you are doing some type of agile methodology and you get a change request. That request is an specification of something a customer/user desires out of a system. You code it and either you do a complete test of it or you do your unit tests and let a tester do the final UA/integration test, both cases completing a verification of the original feature request (a verification of the system agains the spec implied by the feature.)
Aug
29
comment How to get better at testing your own code
@mouviciel - I'm breaking up my response in pieces since it is impossible to fully answer multiple statements in such small textboxes. "TDD is not about testing but about specification". Never said otherwise. Also, I'm not sure how this does not apply to a coder since he build things, and one cannot build without specifications.
Aug
29
comment How to get better at testing your own code
@mouviciel - moreover, a tester's job is to perform requirements verification. Breaking things might be (at times) part of a requirements verification process, but they are not one and the same. If a tester is doing nothing but breaking things up, then the focus is on the wrong thing (not unless the task at hand at that very moment is to perform destructive testing.)
Aug
29
comment How to get better at testing your own code
@mouviciel - false dichotomy. The job of a coder is to build things that work, and he does that by thinking a-priori under what conditions his code is supposed to work. And this is verified, at the least, by creating destructive test + some ad-hoc boundary analysis (again, at the least.) Also, a good coder works against specifications, and specifications (when valid) are always testable. So a good coder develops test that verify these requirements are met in code (and you typically do that by writing req. tests that fail initially until you have code that passes the tests.)
Jul
31
awarded  Pundit