2,011 reputation
816
bio website linkedin.com/in/luisespinal
location Florida
age 44
visits member for 3 years, 9 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.)


Jul
1
comment At what point do immutable classes become a burden?
Thanks :) I've noticed the rep-trends myself, but that's ok. Fad fanboys churn code that we later get to repair at better hourly rates, hahah :) jk...
May
24
awarded  Enlightened
May
20
comment Design: Object method vs separate class's method which takes Object as parameter?
@Steve - con't. As for 'Single Responsibility', there is only one way to interpret it. Put the logic where it belongs. Printers print. Application readers parse documents and send it to an output device (monitor, file system, printer, etc). Documents encapsulate data in an app-specific format. Software is about modeling reality, and we don't see a piece of paper printing itself, do we? Mention one system where a document object has the capability to print itself. If the risk of running into printer god objects were real, we would see in real life what you are suggesting.
May
20
comment Design: Object method vs separate class's method which takes Object as parameter?
@Steve - con't - at most you have printers specifying an OS-specific Printer interface (or inheriting a OS-specific Printer class capability). They can all print universally in ASCII, Unicode and as bitmaps. Some of them can speak Postscript. Depending on those capabilities, an application (Word, Notepad, Acrobat Reader or just cat'ing to an output device) serializes the document into a capability provided by the printer. The application communicates and does content negotiation with a Printer to print a document. You don't see anything telling a document Print yourself.
May
20
comment Design: Object method vs separate class's method which takes Object as parameter?
@Steve - what you are proposing is a horrible idea (having Pdf implement print()). It doesn't reflect how printing is implemented in real life. Every operating system and printing API that I'm aware off provides an abstraction for Printer. Look at the printers list in your XP/Vista machine (or under /var/spool or equivalent in *nix.) Each application serializes a document object to one of its printers. There is no Word printer, or text Printer or PDF printer. There are just printers specific to the printing device and not specific to the document type.
May
20
comment What proportion of programming is done for embedded systems?
But programmers for embedded are often Electronic engineers, getting paid less - That's true only if you compare programmer salaries here vs offshore (embedded and otherwise). But here in the US, embedded developers tend to make more than application (or even systems developers.) This is even more true if you are a EE major doing embedded work in the defense sector.
May
20
awarded  Nice Answer
May
19
answered Design: Object method vs separate class's method which takes Object as parameter?
May
5
comment Should a web developer understand TCP/IP and how routers manage requests?
@pdr - In that, I would agree with you. I wouldn't reject an excellent candidate either just on that alone, a junior or mid-level at most. But if it were for a sr. position, I just don't see how that would fly. And on the opposite side of the coin, showing a solid knowledge of it tends to be a very good indicator. After all, these type of problems are not uncommon, not on web development. That, and good OS knowledge. Stuff got to hit the metal, and people should know how to code accordingly no matter how high level they need to code.
May
5
comment Should a web developer understand TCP/IP and how routers manage requests?
@pdr - con't. And this is a very common problem. You see it too between app servers and db servers, or between web service consumer/producers. If you are a web/web service developer that understand these things, you do not shoot darts in the dark when trying to troubleshoot these. The list of web development problems I could mentioned due to lack of deep networking knowledge is too large for this simple input box. Knowledge of such error is obscure, granted, but knowledge of TCP/IP, I mean, c'mon, it should be bread and butter. It useful. Always.
May
5
comment Should a web developer understand TCP/IP and how routers manage requests?
@pdr - as for TCP/IP, I'll give you a concrete example. One client I worked for was having its web sites crapping out (required rebooting). Devs didn't know what was going on, and IT OPs didn't know where to look, but you could see exceptions on the app server going back to the http server (messages being truncated). Alas, the http boxes and the app boxes had different TCP TIME_WAIT intervals and the one with the greater one was running out of file handles due to sockets piling up in a TIME_WAIT state. My colleages and I immediately suggested to look there, and voila problem solved.
May
5
comment Should a web developer understand TCP/IP and how routers manage requests?
@pdr - excuse me, caching is a browser thing? Caching, external caching is a primary concept in Internet architecture, it's bread-n-butter networking. And that's just an example. Anything that alters a packet's characteristics.
May
5
answered Should a web developer understand TCP/IP and how routers manage requests?
May
5
comment Should a web developer understand TCP/IP and how routers manage requests?
@pdr - I disagree. This type of knowledge is useful when you want to know why things take so long or why the updates you made to your site don't show up in your users' browsers. Anyone with a modicum of network knowledge would know the answer: caching. Personally, as a consultant, I've made a sh*load fixing stupidly simple (and very costly for the company) things that people would have avoided if they had known these things. It's not like if this rocket science or quantum mechanics either. I mean c'mon, no excuse for a jr dev not to know about this (specially if of a CS background).
Apr
28
comment Why are websites (even this one) sometimes “Down for Maintenance”?
I mean when I said formal methods for web development, I wasn't including UIs. What I had in mind was the back-end, business logic and web services. The cost and training of applying formal reasoning to ever changing business methods is something I don't see as justifiable to be honest.
Apr
28
comment Why are websites (even this one) sometimes “Down for Maintenance”?
Oh. I think then we are of like thinking. Changing requirements (and req. validation) are the Achilles' heels of formal methods. Since it is a creative task (due to its human nature), I don't believe it is solvable, not in the way formalists/purists would like it to be. I think that has been one of the failed promises of FM; they got oversold (I mean, for example, formal methods for web development?) The specs have to be highly scrutinized and not amenable to rapid change (and that's typical of critical systems, not highly malleable ones). The later are the norm rather than the exception.
Apr
27
revised Why are websites (even this one) sometimes “Down for Maintenance”?
added 31 characters in body
Apr
27
comment Why are websites (even this one) sometimes “Down for Maintenance”?
True. But then I'd argue that the problem isn't with formal verification of specifications, but with the validation of those specs. If your specs are invalid, then obviously everything will fall apart from there, but validation of specs ("are we really building the right thing needed by the intended user for the intended purpose"), that's not the focus of verification (*"given these specs, are we building this thing right, or can it be built?"), informal or otherwise. I guess I should have put a caveat on that (wrt to validity of the specs.)
Apr
26
answered Why are websites (even this one) sometimes “Down for Maintenance”?
Apr
22
answered Costs of Switching to Java