Les Morgan

+ Follow
since Sep 29, 2015
Les likes ...
Netbeans IDE Oracle MySQL Database Tomcat Server C++ Java
Merit badge: grant badges
For More
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 Rancher Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Les Morgan


here is what we're seeing:

the cost is a wash.  you have time to buy in the cloud, we use a lot of CPU cycles.  you still have our full development staff, unless you hire it out, then you have contracting costs--more expensive because you need an interface, a human to act as liaison between your wants and the contractors, and usually their cost/hour is more than decent employees.

the upside to cloud service though is everyone from your enterprise will be able to say--we were not in charge of security if the data is ever breached--and it will be.

2 weeks ago
the Java tutorial from Oracle is a good place to start: https://docs.oracle.com/javase/tutorial/
also the Java Really Big Index is a good thing to look over: https://docs.oracle.com/javase/tutorial/reallybigindex.html
3 weeks ago
a 500 error is a general error that something has gone wrong.  if you have it in conjunction with another error code, then it is meaningful and the other error code is what will give light to what has happened.  a 500 by itself is of little worth, except you have something that went wrong and they didn't bother to actually put a description to it.  it represents that basically, we don't know what happened, but your system is messed up, so deal with it.
1 month ago

what i've found is if you have something that you must set a size for, it will eventually be surpassed--array sizes, max allocated space, and etc.  there are a lot of ways to avoid arrays, as many have stated, i echo that idea: avoid them.

1 month ago

i have not looked at that study guide yet, but if it is about actual white space, and not just a metaphor in a title, then here is what i have found:

on a personal level, white space is all about style and consistency.

on a professional level, white space is all about corporate standards--so your personal preference has little to do with it.

in actuality, you can get a code formatter and run the ugliest garbage thought a "pretty print" type of grinder and make it come out looking wonderful on the other side.

so, white space is essential, the reading of that part of the guide i'll leave up to you, but white space is highly subjective to the audience and who is paying the bills.


I used to work for one of the big consulting firms locally, they sold to a national company sometime after I left, they came across a very nice development tool they billed as a 4GL.  They wanted us to use it for development to increase their profit margins by shrinking our development time.  What we found, in all cases, was that the tool did get us to a "pre-Alpha state" faster, but then we had to fish though the generated source and find the, shall we say "less than optimal code segments".  So we were left with thousands of lines of C++ code that was machine generated to fish though.

Often times to implement changes that needed to be effected, we had to mark entire sections, hundreds of lines of code, as manual maintenance and take it out of the realm of the "4GL".  This, in itself, insured that there had to be a C++ coder/maintenance person that was on staff for each project.  Not to mention that it took way more time to fish out and fix the bad sections.  That coupled with each section of code marked for manual maintenance became legacy C++ code, which became an ever increasing percent of each application developed, the idea of using the 4GL soon was realized as an artificial boost in profits, only to be sucked away and completely lost in long run.

Our "old out of date" development paradigm, as they called it in the presentation, proved to not only be more profitable, but also a lot more dependable.  Our clients much preferred the 3GL development cycle over the "new and better" 4GL approach.

The only thing the 4GL approach even "kind of" worked for was to lock our client in, as we were the only ones using the 4GL at the time, but when they found that the source was all in C++, they bought the source and jumped ship because of the flawed development and maintenance cycle--they still required to buy time with our C++ programmers.


BTW: yes, all the developers hated the machine generated C++ code, it was horrible to look at (alien to decipher), not documented with any reasonable explanation of what is being done, and each time we marked a section for manual development, it just meant one of us had to be tied to that project forever... with the garbage looking autogenerated C++ code to maintain

It is, IMO, I have programmed extensively in Assembler, and even some in Machine Code and even hardwired jumpers on trainers: I much prefer a 3GL type of language or C/C++ which can arguably be place about 2 1/2 GL.  the real key to it all is that no matter how good the tool becomes, there will have to be a human practitioner there to fish through it all and fix the bugs

My 2 cents here...

I have, as long as I have been in the computer industry, over 40 years in some way or another, seen the Holy Grail of idea to be: "Replace programmers--make them a not needed quantity in the industry." In each of the generations in this quest, there has been a significant increase in the "intelligence" packed into a language.  What I mean is 1GL, 2GL, 3GL, 4GL, and 5GL type of progressions.  Each of these have a significant decrease in the amount of work needed to be done to develop a solution with.

A very simple comparison, if you will allow it, is 1GL, machine coding or, arguably, Assembler.  Can you imagine that work that would have to be done to start off making a SQL based solution using only Assembler, or even regress back to machine code?

The very best of these type of development tools, that I have seen to date, was the "Next" application development system--developed for the Next system about 25 years ago--a platform that never really made it out the door.  it was a GUI drag and drop with minimal manual intervention for typing.  Think of SQL Server Data Tools, but only more robust and actually works.

What is seen in each of the generations of languages is a progression of intelligence in cross compiling from one programming format to another--ultimately down to a language that the computer can understand and use to effect the solution developed.

I think this will become, and is becoming, a real replacement for various technologies today--higher level languages or GUI representations for "programmers" to use to get the product out the door faster, meaning more cost effective.

No matter how automated that gets, there will always be some highly paid "nerd" (technology implementor--ie programmer) having to be there to fix the bugs that will, and always do, creep into system development.

So: eliminate programmers?  No, but each generation will, and does, change the face of programming and the tools that a programmer will have to use.

-- just my 2 cents --

Chris Mary wrote:Les, i want the query in MySQL and not java...

to implement that, you use a cursor--put your queries in a table, select them into the cursor, then output the query and the start times of each.  One thing you will need to decide for yourself, it the load/execute time for each and the cursor overhead, significant for your timing.

I work with Billions of rows of data, so for me those numbers are less than trivial.

Simple answer: put it all in an array or an ArrayList.
make a structure to hold your query and start time and end time and loop through the elements.  

So what you are saying is that you wish to make a NAS, in stead of buying one, is that correct?


1 - what is the need for output?  

basically a NAS is a cheap file server, it sits on your network and listens for requests for file I/O.

2 - how big of NAS are we talking?

are you looking at TBs or more in line with ExoBytes?

3 - Why so much memory?

you're not running anything on the box except a very stripped down version of Linux--yes, strip it down, you don't need the full Linux package all you doing is a bit of comm and some I/O from the drive.  if you're looking at music, the steam is going to buffer on your client side and not pack itself into the memory of the file server.

4 - FAST storage is your best option

no matter how fast your CPU is, that access and read time on your storage device is going to be huge in comparison--spend you money there.
3 months ago

it's a good question, too bad we don't know your needs or hardware/network/load or anything other than you want to serve up images.

about 30 years ago, i had a project that i did exactly what you are thinking of doing.  here are some lessons i learned along the way:

1 - don't use 3rd party solution, you are tied to their product and time line when you do.  there are multiple languages now that handle images and network access, make a small app yourself to do it.

2 - the workstation/webserver is where the image will be resolved, you have to plan for that... you can have the fastest server in the world serve up the images, but you have to deal with network traffic and CPU/GPU availability on the destination end.

3 - how do you wish to store the images, or are they already in a format you will support--how many formats will you support?

4 - unless you are trying to stream game content, it's not really going to matter.

5 - the worlds fastest server can be hobbled by communication, and will be, so plan accordingly--it does not make sense to spend millions on a server and have a backbone for comm that will send it over on the Mayflower for speed to the destination.

6 - distributed image cache only makes sense if you have slow delivery.

7 - a local cache of most used, or last used, images beats anything that you're going to stick up in the networks someplace.  consider how many and what security you need to cache locally.

hope this gives you something to think about
3 months ago

if you are a programmer you can do as i did for my logs...  i hit the server, and then have the information gleaned out with my own filters on what i like to see.  it's very simple programmer using the String API in Java or pretty much any other language--including most SQL dialects--that have strong String functions.


i'll throw my 2 cents in here too.  

Byte is an unsigned datatype that will promote to an int, and when you do math with it, it is promoted to an int.  i believe that is called or was called autoboxing.

now you have a problem--byte is not signed, but an int is signed... so you have a data type that will fit within a byte, but the autoboxing cannot put it back to a byte because of that sign bit.  the complaint is, basically, to say--if you want me, the compiler, to treat that as unsigned, then you need to tell me, because i cannot assume what to do with that sign bit.

after all, the computer is no smarter than it has been programmed to be, and when it has a choice, that it does not have a rule to allow operations reliably to be correct, then it has to be told.  that is the case here.

3 months ago
Tim Holloway,
quite right, many answers are given to questions that are not asked ;)

IMO: each new iteration of technology become emergent.  while SQL, in all of it's dialects, can be considered as a mature technology--each time any of the major players put out a significantly new version, it becomes an "emergent" technology because it gives the client a reason to escape the hold of that vendor and it does happen.  We went from Sun/Oracle to MS to Oracle and back to MS because of major changes in their products.  Same with Java... we went from MS (put your flavor here) when they went to .Net we move to Java when Oracle took over we moved back to MS with C# and when they moved to MS type of product development and release with Java we put a nail in the casket and said C# from now on.

i am a little bit of preference to PHP and Pearl, but then those are not "emergent" technologies either.  

one i see a mild influx back again is C/C++, but once again not "emergent".

i have to admit also that with the number of years left in the industry that i can count on the fingers of 1 hand, i am not inclined to jump out and champion the truly emergent languages... then most recent we actually use around here it R... but then, it's not "emergent" either, not any more.

the only languages that were not "emergent" when i picked them up, was Assembler and C... back before the formalization of the Internet and before the birth of the Web:)


note: there was FORTRAN, BASIC, COBOL, ALGO60, LISP, Pascal, Modula 2, Prolog, and multiple others... but none of those are anything i've used other than in school.

4 months ago