rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

A self-healing OS? Sounds like a great subject for a PhD thesis in Computer Science. Personally, I don't know of any currently, although the QNX operating system is as reliable as they come, and if any driver or other service (other than the real-time micro-kernel) fails, it can be replaced or recovered while the system is still live. The QNX kernel only provides scheduling, interrupt handling, context switching, and message-passing services. Everything else is in user space, hence this ability to fix most stuff on the fly. In my 30+ years experience with QNX, I have NEVER seen the kernel fail, even under the most extreme conditions and loads. This is why it is often chosen as the control system for nuclear power plants, aircraft fly-by-wire controls, and such.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

Networks don't usually crash unless a switch, router, or proxy server goes down. If a switch fails, then all the systems connected to it will not be accessible and they will not be able to access the rest of the network or the Internet. You can install more than one network interface on your servers and have each connected to a different switch to eliminate this point of failure. If a router fails, that is a bigger problem. If you have set up multiple network interfaces (NICs) on your servers, then each can be routed separately, resulting in redundant routing services, solving this problem also. Proxy servers likewise can have backup systems to take over if they fail, and your NIC's can be directed to different proxys if needed.

In any case, it is better to be proactive and monitor your network services to be sure they are healthy, and if they start to degrade in performance, schedule a replacement before they fail. This is not a simple issue. It was what I was doing at Nokia before the Microsoft take-over, developing tools to perform predictive analytics to determine when systems and services were starting to fail, but before they would fail.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

Contact Adobe support. I'm not sure this version of OSX (latest probably?) is currently supported. In any case, do that, and I will contact the Adobe Creative Cloud support group this week to see what the situation is with regard to Yosemite. As I am an Adobe employee, this may get me feedback faster than you do, but I encourage you post the question to Adobe support so you get a direct answer from them.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

We can't help until you tell us what your problem is. You have clearly delineated what you need to do. What have you done so far? What problems have you encountered? Are you clueless about Perl? If so, there are abundant documentation and tutorials on the Internet for you to study. We don't do your homework for you, but we will help you resolve the problems that you encounter that are beyond your abilities to solve.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

Nobody really gets this correct. Microsoft certainly doesn't get it right, and Linux engineers are not much better. There are too many factors such as system load, I/O loads, disc read/write speeds, is the source file on one disc and the target on another or the same disc? What are their speeds, buffer sizes, etc. You can get the actual size easily enough, and let your progress bar show the actual percentage of the file that has transferred. After some has been moved, you can start estimating how long it will take and show that in a window with the progress bar. That is how most do it.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

Re. Antone068's suggestion. Caveat user! I know nothing about this tool (DriverTuner), and it may well be malware. Only install it if you are confident it won't mung your system!

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

There are experimental systems that support distributed RAM, but bear in mind that they have horrible latencies since they have to operate over the network. With the faster networks we are getting today, such as 10Gbps switches and NIC's, this may become more mainstream in the future, but for now, what is in a particular system is what it can draw upon.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

The minimum RAM is 512MB and minimum recommended is 2GB. That is basically for the database server. You should double that to 4GB in order to avoid virtual memory swapping. I assume you are running the 64-bit OS and database server? If not, then upgrade asap!

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

@rch1231
The article is not too bad, but there are a lot of mistakes and the author's English leaves something to be desired. @zzmrmartinzz Read more than just this article to get an appreciation for the differences, strengths, and weaknesses of RedHat based distributions vs. Debian ones. In my opinion, since you are already familiar with RedHat based distributions (such as CentOS) then stick with what you know. In my previous position at Nokia Mobile Phones we used over 5000 CentOS servers. In my current position, we and our customers mostly use CentOS distributions as well, though some of our customers are wedded to Microsoft servers. Fortunately, our software supports both! We can also run on Debian servers, but not many of our customers use them.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

What ddanbe said. To expand. We don't do your homework for you. Show your work, and if appropriate we will help you to sort out your errors.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

This is a MS API question, and not relevant generally to C++. We would need to know in detail what the SelectObject() function is doing, and that is not in the pervue of C++. It is specific to the MS API's. Read their documentation for more information would be an appropriate answer I think.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

A class method is a single interaction point with an instance of the class. It should do only one thing, and do it well. There are methods to access state data, and methods to change/set them. The setter methods should be written to properly validate the changes the caller is asking for, and return or throw an appropriate error if the input is invalid. These validation rules can be simple, or very complex, depending upon the situations.

FWIW in your rate() example, there is a missing comma in the argument list between the two arguments. Also you don't have a default value for a default state where jobrole is invalid. In that case, it should either return a known invalid value (like -1) or it should throw an error. The latter (throw error) is more acceptible these days.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

I write quite a bit of Java, and learned about it from the inventor, James Gosling, back in 1995 I believe, at a Boston IEEE Conference. I even got an "official" Java coffee mug from him! Personally, it is a PITA! The standard garbage collector sucks, and the lack of multiple inheritance makes complex class development an impossibility. Using interfaces intead of multiple inheritance requires that each declared function be implemented separately in each using class. This is just so stupid (my opinion)! In any case, it becomes a point of error generation.

So, in my not-so-humble opinion, learn the basics of object-oriented design (UML), C++, and then Java. After the first two, Java will be trivial! After all, in my opinion, Java and PHP are just C++ with training wheels! Of course, all the support libraries and tools are another issue, but the basic language is not very difficult once you have learned C++ to any reasonable degree.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

Just some general PHP observations:

  1. PHP is an object-oriented language. Create appropriate classes, much like you would in Java or C++. Don't mix HTML output and PHP. It makes it very difficult to debug and is inefficient.
  2. If you have multiple adjacent PHP blocks, keep them in one. It makes stuff easier to read and analyze.
  3. Generate your HTML and/or Javascript in a class function, and only output to the client when done. This is relevate to the efficiency comment in #1 above. Also, you can insert debugging output when developing that way and see the output on the page output, which you cannot if they are intermingled.

If you do this, then you will easily find your problems. I used this approach to adapt some complex PHP + HTML + Javascript code for my previous employer. We needed to add functionality (lots of graphs, colors, side/bottom labels, user-selectable options, etc) and with the original code that was impossible. I refactored the code into PHP classes and it became trivial to enhance the product and debug it at the same time!

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

Yes, on both 32 and 64-bit systems, usually an int is 32-bits, but in your 64-bit system, you need a 64-bit integer, which is a long in the 64-bit system, and long long in a 32-bit one. The long long distinction is currently irrelevant on 64-bit systems, but that may change to a 128 bit value in the future, so caveat (beware) programmer!

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

Show the C and your C++ code. C++ is C with classes, and some other stuff, like differing syntax for input/output functions. Without code, there is no way to answer your question. FWIW, you can execute your C code if compiled with a C++ compiler, with some minor caveats. The best thing to do to start is to compile the code as C++, and see if it works. If so, then conversion to real C++ will be a minor "inconvenience".

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

I think that both Google Maps and Nokia's Here have API's that can do that for you (probable web services APIs). You need to do some research on their sites for this. When you pull up Google Maps or Here on your computer or phone, and input an address, it will zoom in on the exact location without problems. You could investigate the HTML/Javascript code that your browser executes to figure that out as well.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

A vpn connection basically makes your system a peer in the network you have connected to. You will be using its DNS servers, LDAP (Active Directory) servers, etc. Even your IP address will change. All network traffic, authentications, etc. will go through the office network. You need the appropriate VPN client, and credentials to connect. Once you are connected, your systems should behave just as though it were in the office.

So, I think you are over-analyzing this scenario. I use VPN's on a daily basis. Since I work from home, and my company network is hosted 2000 miles away, when I connect to the VPN, I have automatic access to all of the company resources behind the firewalls. Sometimes I need to connect to a client VPN, so I disconnect from the company VPN, wait a few seconds (or a minute) to let my computer re-establish its local identity, and then I connect to the client VPN. At that point I am a local machine on their network. Some VPN clients allow you to connect seamlessly to more than one network at a time, but that is uncommon.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

This is not enough information to help you. Does this happen for all web sites, or only one or a few? What error do you get? A connection reset means that the site or network has reset/dropped the connection. A timeout error means that the site did not respond in a timely manner. These are often due to a network problem either at your end, or with your connection to your ISP, or the ISP itself.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

You should be able to use a USB keyboard without problems.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

@Mike2k
My grandson is a prodigy, though he has finally hit adulthood (21 this year). At 8 years old he rewired my daughter's kitchen radio in order to receive transmissions from his kid walky-talky in the back yard ("Hey mom, can you bring me some lemonade?"). He designs and builds from scatch drone aircraft (both fixed wing and rotary) and designs/builds/programs all the control systems as well so they are totally autonomous!

I have only one suggestion for this "prodigy" - get competent with formal/boolean logic. Just learning programming languages is the easy part. Making them work right is not so simple! I speak/read/write multiple human languages, and dozens of computer languages. The key is understanding the context. In Spanish, when does the english word "plate" imply "plato", and when does it imply "platillo"? Context is the issue here, and logic.

And don't hesitate to ask for help and/or advice Jack. I wish you the very best!

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

This is a situation where "I told you so" is correct, but not particularly helpful... IE, NEVER install new OS versions directly on your system. This is what virtual machines are for! If they mess up (they will, inevitably), then you can just remove the VM and files, and start over if desired.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

What version of Xubuntu and Firefox are you running? Also, what window manager? Finally, is your mount a wireless or wired device? If wireless, is it radio, or infrared. If wired, is it USB or PS/2?

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

No beeps means not fine... Video adapter info? Answer my questions please if you want some help. I am a certified technician and electrical engineer. I make no assumptions about your background. I have been factory trained by IBM, AT&T, Apple, HP, and others and have a 30+ year career in computer systems, both hardware and software.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

Is this a 32-bit only CPU, or does it have 64-bit capabilities? My Dell D630 is a Core 2 duo with 64-bit capabilities. I run a clone of Red Hat Enterprise Linux (Scientific Linux) on it very nicely. Getting the WiFi working took a little work, but it functions nicely once I got the correct driver and firmware installed.

In any case, a lot of people like Linux Mint, a clone of Ubuntu, which is a clone of Debian. They are more up-to-date kernel-wise than RHEL, CentOS, or Scientific Linux. They also support newer software, such as Google Chrome for a browser (no longer supported on RHEL 6.x systems, though Firefox is fine).

Anyway, my recommendation is that you experiment and find a distribution that you like better than the others. You may need to burn a few live DVD/USB devices (you can reuse the USB thumb drives) and try them out before you find the one that says "ME". For USB live devices, check out Unetbootin. It has software for Windows, Linux, and OSX, though the resulting USB drive, if created on OSX, will not run on an Apple system. Here is a link: http://unetbootin.sourceforge.net/

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

TCP is connection oriented, suitable for sending complete files. UDP is packet oriented, suitable for sending short messages. TCP will verify that all the data got to the destination, and in the proper order. UDP makes no guarantees. You will have to bake your own error recovery and retry logic.

In the case of a "media server", if a client connects to you via TCP, then you can send the data in a stream and not worry about it getting there properly, other than if something breaks the stream (network glitch or whatever). If you are just pushing out data, and let all the "listeners/receivers" get the data as desired, then you would use UDP - the receivers would need to deal with bad/missing data. With media that may not be a problem unless you have a lossy network environment. This is a "broadcast" environment, and TCP/IP does let you broadcast UDP messages to anyone on the network (LAN - broadcast packets usually don't travel outside of the local network), which the clients can listen for and receive. So, there are two real options for a media server. One is connection-oriented TCP streams where the clients connect to the server to get a stream. The other is where the media server broadcasts UDP packets to whoever wants to get them, kind of like radio.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

There are a gazillion computer programming languages, some of which are main-stream and some of which are niche languages, and others are just plain old languages (Fortran, APL, PL/M, etc). I have professionally used dozens. These days, my main programming languages are shell scripts (bash, python, perl), web languages (PHP, JavaScript, HTML, etc), C/C++, and Java. Most of my work uses JavaScript and bash. In my last position before this, it was C, C++, Java, and PHP with some JavaScript and HTML/CSS thrown in for good measure. Not to mention the usual database languages (SQL, PL/SQL, Transact-SQL, etc).

So, all that cruft aside, what do you want to do? That will help to determine which languages you should start with. And I do want to emphasize that a good foundation in formal/boolean logic will go a long way in a software development career, no matter the language of choice.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

JorgeM is correct. In our home, I have two wifi access points w/ switches. The router/internet connection and access point is in my office in the basement. The other switch/access-point is in my wife's office on the first floor. They are connected via a power-line connector, which is just an ethernet cable that uses the home power lines for transmission (don't have to run a cable). It has worked great for 9 years now.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

I know that current outlook versions do sync with office 365 online, but I don't know about 2003. Check with MS for a plugin that may do that.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

Was your double-posting of this a mistake? Fat fingers?

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

You can still give your variables sensible names that help the user/programmer to understand your intention. Also, I agree with NathanOliver about preferring the first indentation method. In any case, expressing a 3-dimentional array x, y, and z are reasonable variable names in the mathematical sense, but what is t? Make your intention clear. This will help you as well in the future when you have to re-visit this code and wonder what the heck you meant by some of those terms!

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

All compilers have function libraries, but in truth they are not "standard". IE, what you have in Windows is not what you have in Linux, Unix, OSX (BSD Unix), etc. There are a lot of good internet resources for the classes, functions, templates, etc that standard C++ supports, and any compliant compiler/linker has to support them. I use the cplusplus.com reference manual a lot, which NathanOliver and others mentioned above. So, don't confuse libraries and functions/classes. They are different beasts!

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

When I had to sort a linked list in the past, I would put the nodes into an array and use qsort(), then take the sorted output and regenerate the list. Worked great, and was reasonably fast, even on old 8086 PC's with 256-640K of RAM. Of course, that limited the size of the list you could sort, but it worked well for our purposes (real-time manufacturing systems).

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

Go to this site, and study it closely. It has the best RNG tutorials available: http://www.phy.ornl.gov/csep/CSEP/RN/RN.html

From the site (I've posted this here before, at least twice):

Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin. -- John von Neumann (1951)

Anyone who has not seen the above quotation in at least 100 places is probably not very old. -- D. V. Pryor (1993)

All that aside, getting random number generators right is VERY difficult. Myself, I like the lagged fibonacci routines. Fast, and pretty decent in output. In any case, anyone who writes a pseudo-random number generator is, in the words of Saint von Neumann, in a state of sin. Just how much you are sinning varies! :-)

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

Generally, the Expression is a comparison of two operands, such as i >= 0. This is a boolean expression which will return true if i is greater than or equal to zero, and false if less than zero. This is basic stuff. I would suggest you do some study of formal (boolean) logic. In my engineering studies we had to take one philosophy class. Since formal logic was part of the philosophy curriculum, I decided to take that. It was the most valuable educational experience for my future career in software engineering.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

If you are working as an independent consultant doing this, and you are in the USA, then if you are experienced and good at this, you can command around $200USD per hour for short-term assignments, and $100+ for long term ones. Remember, you have to pay your FICA (social security), deal with health insurance, and subsidize an office with good internet connectivity, not to mention business phone, cell phone, etc.

In many areas, there are IEEE consulting networks that you can join which will provide a lot of support and guidance. Here in the Chicago area there is the Chicago-Rockford IEEE Consultant's Network (about 200 engineers) of which I am a past board member and president. One of our founders, Dr. Gary Blank, was last year's President of the IEEE-USA.

As a senior employee of a major tech company, I get paid about $60 per hour, but then I get paid time off, holidays, sick leave, health insurance, stock options, performance bonuses, paid home-office expenses (internet, phone, cell phone, toll-road transponder, company credit card) and such (I am a "remote" worker - glorified consultant). It adds up, so don't low-ball yourself. If you are good, you deserve what you ask for - just don't ask for too little! :-)

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

Not asking for much, are you? You want us to analyze 430+ lines of code. Reduce it to the sections that you are having problems with. FWIW, I charge my clients $200USD per hour to analyze their code, and this will take at least a couple of hours to do properly.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

Solved? Can you extract the prime factors for any random number? The prime factors for 12 are not what are shown, but are 1, 2, and 3, and the prime factors are what count.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

What have you done so far? We don't do your homework for you. Please read the terms of service (TOS) for this site for details.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

What port is the server using? You need to know that. The server should be listening on that port for connection requests, so your client would use a TCP/IP connect call to the server computer with that port.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

This graphic is not too helpful. Is this a programming project, or something else?

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

You should be able to right-click on the panel, and select the "add to panel" option to do what you want.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

Sorry, but we don't do your homework for you. Make an effort. Post the code here. And if it is an honest effort, we will help you.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

Just because it makes noises and the fans run doesn't mean the mobo is fine, or anything else. Do you hear any beeps when it starts up? Does it use an internal video adapter built into the mobo, or do you have an external video adapter, or both? How is the monitor connected? VGA? DVI? HDMI? If DVI, are you using a DVI-D or DVI-I cable? What does the monitor take?

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

By default, deleting files on Linux systems will put the file/directory into the trash folder (works that way on Windows also). If you empty the trash folder, the files in that directory will be physically deleted. The reason for putting them there is that if you realize you didn't want to delete a file, you can recover it from there. Usually, the trash folder has a file number or size limit. When you exceed those settings, then the oldest files will be deleted first.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

Is the Skype app installed? Skype works over WiFi or wired networks. Are you in range of a WiFi access point? Are you connected?

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

And you problem is???

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

And remember, we don't do your homework for you!

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

For a bootable image, you first need to write a boot loader. Not too hard - I've done it in the past. The boot loader executes the code found, then relocates to the actual system image to continue. Then it jumps to the actual system code. So, it is a 3 step process at the least. You can't just write some assembler and then expect it to work like a disc, iso or not.

rubberman 1,355 Nearly a Posting Virtuoso Featured Poster

Try our friend Google... We don't do your homework for you.