Win a copy of Hello World this week in the Python forum!

Thad Humphries

+ Follow
since Feb 04, 2011
Thad likes ...
Google Web Toolkit Java Tomcat Server
30+ years in software development. 20+ years developing and managing commercial web products.
Fredericksburg, VA
Cows and Likes
Total received
In last 30 days
Total given
Total received
Received in last 30 days
Total given
Given in last 30 days
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Thad Humphries

I've heard that TypeScript removes the need for Babel to build JS code that runs in IE11. Is that correct? Are there any gotchas? If so how comprehensive are the documented caveats? How extensive are the polyfills? For example, Canvas Ellipse for IE11 or ResizeObserver for IE11 and Safari 13? Does TypeScript support bare module imports? Does TypeScript require (or recommend) tools such as Rollup.js and WebPack?
FYI: I've been looking at various JavaScript libraries and frameworks, most particularly Polymer. My day spent with FRP raised some questions. I posed this one to the Polymer team:

#AskPolymer +Rob Dodson I read that AngularJS 2 deprecates two-way data binding. Polymer so far takes a different approach, and there are many examples of two-way data binding. How about some examples of how one might achieve similar effects with one-way data binding and functional reactive programming (RxJS or another approach).

3 years ago
I've looked at the book's table of contents on Manning's website, and read the two sample chapters. Having written some drag-and-drap before, I found the refactoring example in Chapter 13 helpful in contrasting FRP and the traditional approach.

How does FRP work with asynchronous systems? I'm thinking of two cases, though both are similar: (1) browser client to web server; and (2) web server code to an external system via REST or other API. Even when you try push the async call out of the browser-side JavaScript, it often shows up on the server side when you're calling a remote application:  foo() returns varA, and you call bar(varA) that returns varB, and you call base(varC), and so forth, resulting in a nightmarishly nested cluster of callbacks. JavaScript Promises help some, and async-await isn't here yet. This can be partially ameliorated by maintaining servlet context variables (or a similar user globals), but that is contrary to functional programming.

Can Sodium or RxJS or some other FRP library sort out asynchronous calls?
3 years ago
I've a lot of experience with webapps, but it's mostly been with Java--JSPs, servlets, and GWT. I've toyed with Angular, React, and others, but my experience with GWT makes me wary of frameworks. I'm more drawn to bare JS, HTML, and CSS (with web components) as more maintainable over the long haul. My server-side must remain Java (for many reasons I won't go into), but my servlets can easily receive and send JSON.

I admit to being overwhelmed by all the JavaScript advice and resources. How do you recommend I get started when my goal is moving medium to large Java webapps to JavaScript? How might your book help me?
Presuming your AJAX call returns the images in Base64, you can use a data URL:

Alternately, instead of using AJAX, you write a server-side function that returns image/png, image/jpeg, etc. and assign that function's URL to your <image> src attribute.
The JSON syntax has never seemed complicated. I have found JSON's pain point to be the plethora of Java implementations. Compare the Java libraries listed on and you won't find a consistent treatment. I've written several projects with GWT, where there is one (very limited) JSON library for the client side (which wraps JavaScript), while it's take-your-pick on the server side. GWT also includes the packages, yet another approach for POJO <-> JSON. How does this book help me get my head around these implementations? Is the book opinionated about implementation, or does it survey the different approaches and discuss trade offs?
Welcome, and congratulations on publishing. I'm interested in seeing what the book has to offer.
Having cut my teeth on C.J Date's 2nd edition, I'm a bit skeptical about MongoDB. Maybe I'm just not in a problem space suitable for MongoDB. What rules of thumb can you offer about when one should use a tool like MongoDB vs a relational database like Firebird, MySQL, or PostgreSQL? When might a system move from one to the other? Regarding your book, how much of it would you say is applicable to someone working with an RDBMS vs MongoDB?
Lambdas have drawn the most attention in Java 8. There's also a new Javascript engine. What else is in Java 8 that you consider significant.
5 years ago
Thinking beyond barcodes to forms processing in general, are there any tools in iOS for zone OCR of PDF or TIFF images?
5 years ago
I think the last time I touch FP or lambda's was 20+ years ago writing Common Lisp in grad school. I was considerably less experienced then, and I well may not have grasp some of the finer points, but I was happy to move on to C++ and, yes, even Ada. Now with 15+ years of Java experience, I don't think I've ever missed passing a function as a parameter. What's changed lambdas to convince me? And is Java the best language for this? The change seems so drastic that maybe I'm better off learning a whole new language vs messing with old approaches that are straightforward and usable (aka, if it ain't broke, don't fix it).
5 years ago
I’ve set up a Git repository on a Linux box with an Apache server using the “Smart HTTP” CGI. On another workstation I can clone from it with “git clone http://server/git/project” but to push back I must change the URL in .git/config to url = ssh://server/u3/git/project. Is there any way to push back without SSH? And is it possible to set Smart HTTP so that I don’t have to enter my password each time? How?
The subtitle of your book includes MongoDB. What guidance would you offer for choosing between an SQL and NoSQL database? For applications installed on customers hardware, there can be reluctance in larger DP shops to applications that do not use a major SQL database.
I have a requirement for a web client to work with a large, legacy server system. This system has an API of approximately 200 functions and is documented in C. The system also provides C libraries for Windows and Macintosh development, and we have rolled our own Java interface.

I have a good deal of Java experience and a lesser amount of JavaScript experience, though none with Node.js. I am looking at Node.js for client-server development (as well as Python for server only). I see there is a Node.js module sunrpc_server ( but there's no information that tells me how I might use it or if it could even do what I need, which is make an RPC connection to this remote legacy system, send properly packed RPC parameters, and unpack the response to each call.

When I've investigated the RPC claims of languages outside of C, what I find are examples of an application talking to another app in the same language and no mention of legacy systems. As I said, for Java we had to roll our own--writing our own RPC hand-shaking and packing and unpacking parameters for each call. This was no small effort. What might Node.js offer that would get me moving quickly?
Most if not all that I read on architecture, design, etc. is oriented at programming teams. How might your approach to software architecture apply to the lone developer, or (in my case) the developer whose product(s) is almost a standalone component? In my case, I'm responsible for several thin client apps to a large, complex, legacy server backend. There are thick clients--Windows, Mac, and XWindows--and me, the web stuff (yes, we all have some input on the server, but change there comes slowly).

The thick clients are pretty tightly wound, but when folks think web, they think dynamic, flexible, customized, integrate with my pages, etc. The discussions I read and many tools/APIs start with the assumption of a team the divides up front-end, back-end, CSS, mobile, etc. All this makes for a lot of layers for one person to code and navigate. What does this book offer for someone in such a situation?
6 years ago