What main reason is driving your need to convert from Visual FoxPro?




WHAT MAIN REASON IS DRIVING YOUR NEED TO CONVERT FROM VFP? 
KNOWING THAT AFFECTS THE DIRECTION THE MIGRATION TAKES

G. N. Shah, Chief Technology Officer, Macrosoft Inc.
 
Macrosoft is contacted every week from companies that express a need to migrate their older Visual FoxPro legacy applications to a new .NET environment. Though every migration is unique and we like to say we do one migration at a time, we have found the reasons we are typically contacted fall into one of four buckets.

Look at the list below to determine if one is your root course, or are you facing a different set of issues.  Each reason for migrating presents a different tactical approach for implementing the migration.

  • Need for Enhanced Security and a Supported Platform: Your organization might be in a regulated industry and requires tight security protocols on a supported application. As Visual FoxPro is out of support, this most definitely presents a compelling need to migrate to a supported platform.
  • Need for a Modern Web-based Application: Your business needs to move to the web for a browser based application rather than a desktop installed application.
  • Need for Feature Enhancements like Mobile: Your business requires enhancements for mobile interface or other such enhancements that you don’t want to do on an older technology.
  • Need for Integration with Other Systems: You require integrating your old FoxPro application with other applications but the 32 bit operating system is not compatible with other systems.
You may fall into all of these categories but try to narrow it to what is most pressing. Looking at each of the root causes for migration let’s explore different tactics for doing the migration:

Enhanced Security

If you are concerned about security, you need to start with the database.  Visual Fox Pro databases provide an architecture and working environment for associating, organizing, and working with tables and views.  A table in Visual FoxPro can exist as a free table or as a database table.

Macrosoft has developed easy-to-use internal utilities to support the migration of the database so this is a good (and relatively easy) first step in the migration effort.  After moving data from FoxPro to an SQL database, the next step is to convert all reports and connections within the application to the new database to ensure no loss of functionality.  Once completed, this first step allows you to implement required security protections for all the data within the application. The conversion of the rest of the application can then follow.

Web-based Application

So if the driving force is to move your system from desktop to the web, Macrosoft has found a modular approach to migration works best.  Most commonly, only certain functions are performed in the field while others remain in-office activities.  A Macrosoft analyst will work with your team to determine what functions are best preformed in the field and typically focus on these as the first modules to migrate to the web with others to follow.  This way, a client will have maximum impact as quickly possible. Starting with the field functions allows remote users to interface with the new web application, with in-office modules done at a later point in the project cycle.

Enhancements


If the reason for migration is due to a compelling change in processes, or the addition of new processes, clients clearly do not want a strait ‘apples-to-apples’ migration.  Therefore experience dictates we begin these cases with a complete analysis and documentation of the current application.  Creation of pseudo code documenting all business rules and tasks enables new functions to be created that don’t conflicts with existing processes.  A detailed development blue-print is critical to success before embarking on enhancements.

Integration

If the primary purpose of the migration is to support integration with another enterprise application, clients need to begin with data dictionaries of all applications and with dataflow diagrams.  These data elements are the base from which a specific Application Program Interface (API) is produced.  An API contains a set of routines, protocols, and tools.  This new API stipulates how software mechanisms interrelate.

No matter what the root cause, Macrosoft is here to help.  Preform a free analysis using our FoxPro Code Matrix.  This robust tool is free utility that determines the volume of your Visual FoxPro project identifying the number of lines of code, objects, methods and much more.  You could download the tool from https://www.migrateto.net/foxpro-code-matrix/

About Author:

Shah is a forward thinking, corporate leader with eighteen years’ experience delivering top notch customer solutions in large scale and enterprise business environments. His proven abilities as a technology visionary and driver of strategic business systems development allow Macrosoft to deliver best in class software solutions. At Macrosoft, Shah has successfully delivered multiple migration projects. Shah holds an MBA in addition to multiple professional and technical certifications. His areas of expertise include enterprise-wide architecture, application migration, IT transformation, mobile, and offshore development management.

https://www.linkedin.com/in/gnshah

Thoughts on the Perspectives on Nanoscience

(https://c1.staticflickr.com/3/2921/14380476210_4a66ee14a2_b.jpg)

Growing competence on the world market pushes leaders to come up with new exciting technologies and methods. To survive in the tough today’s condition and always be in demand, the up-to-date professional has to be able to learn and absorb information quickly.

In the paper, I’m going to touch the concept of nanoscience – one of the most progressive educational technologies.

The Goal of Nanoscience
 
At its core, it is a way to improve professional qualifications, which implies passing a very short lesson on a particular topic with a follow-up mini-test on the quality of learning. It is assumed that the passage of these lessons should be carried out independently and without the participation of the teacher – naturally, in electronic form.

According to Joan Barry, the Executive Director of New York State Society of CPAs, the professional associations are looking for new opportunities to expand learning options. NYSSCPA is open to new ideas and believes that nano-learning may be a part of the learning programs, and has especially great potential in the fields where newly acquired knowledge can be instantly applied to practice.

In Maryland, Ohio, and many other states nano-learning has been officially recognized as a way of professional development. But despite the potentially great opportunities, the New York Society of Certified Chartered Accountants still has no full confidence about how nano-learning can be effective in maintaining professional qualifications at the right level (which, of course, is the key objective).



Applied Significance of Nanoscience

 
Abayon Frida, the head of the NYSSCPA’s Board of Trustees, noted that nano-learning requires special time and place – for example when you are at work and urgently need to check something from the area you are working on. It is clear you won’t take an eight-hour training course to fill the gap in education and finish the job. Here, nano-learning is very and very useful.

Nanoscience vs. Traditional Education

 
However, Abayon Frida believes the role of nano-learning is auxiliary and advises not to consider it as a separate/alternative educational direction. The situation when the majority of today's professionals improve their professional qualification solely through the courses of nano-learning may lead to unpleasant consequences.

NYSSCPA recommends setting the annual limit for these courses. Otherwise, there is a danger that nano-learning will eventually replace all other courses of professional development. Also, you should think about the way of passage: the absence of the teacher who can check the mini-course is a worrying factor.


Online courses are becoming increasingly popular, displacing traditional full-time training. Some conservatives have said before that online training is not as effective as a personal lecture, but now they lost this leverage. Recent studies show that online courses are not inferior in effectiveness to the traditional forms of education. The most advanced IT-companies have long realized this and don't pay much attention to the diploma. They rather look at the real knowledge, taking into consideration the various certificates and courses that the employee completed.


  • For example,  Udacity issues nano-diplomas that are recognized when applying for a job at Google, AT&T, Autodesk, Cloudera, Salesforce and other major companies. Statistics shows that the usual Udacity student is a man from 24 to 34 years old who wants to improve his skills.
Microformats and nano-learning are actively developing worldwide. And this is no surprise! According to research by Microsoft, a person's ability to focus decreased from 12 seconds in 2000 to 8 seconds in 2013. In 2016, it’s between 6 and 7 sec.

Most professionals in the field of online education agree that nano-learning is a promising format, and every year there will be more and more authors of short training snippets. Platforms like Coursmos will help to choose individual educational trajectory, depending on one’s interests and level of knowledge.

After a series of short courses, most platforms assign listeners to the so-called "badges" for their achievements. Badges make learning interesting and motivate not to stop. On the other hand, they are an alternative to diplomas and certificates: if a person received the badge of a very high level, employers could pay attention to this kind of specialist (Google and Facebook do so!).

(https://www.jisc.ac.uk/sites/default/files/learning-online.jpg)

To Nano-Self-Educate or Not to Nano-Self-Educate?
 
Undoubtedly, nanoscience is a fresh approach reflecting the reality of today's dynamic world. Thus, anyone who passed these ultra-short courses can now insert the results in a personal profile, making oneself more interesting to potential employers. Indeed, the latter may be interested in the issues that the employee pays attention to, as well as specific aspects of his competence.

Well, I doubt whether any restrictions regarding nanoscience needed, as:
  • Any employer understands that such short courses can’t replace the fundamental system of education. 

  • If the knowledge acquired through nano courses will be more effective, it’s all about the competition, which, as we know, only improves the quality. Thus, the developers of long-term programs will need a more thorough work on their products.
  • Nanoscience will clean the market from weak educational programs.
(https://pixabay.com/static/uploads/photo/2015/07/09/05/59/wall-837313_960_720.jpg)

In my opinion, nano-learning is a new and exciting tool, but it’s not an alternative to comprehensive professional training. There’s too long way from a short-term training to the formation of a competent high-class professional because the main problems of practice arise precisely at the boundaries of various fields. Thus, often the qualification lies in the ability to combine knowledge and skill, which is impossible to achieve through nanoscience.

Well, in the case of urgent need, nanoscience is one the crest of a wave!


Bio:
Lucy Adams is a blogger from Buzz Essay. Try this and you won’t regret. An open-hearted and responsive, Lucy is your best partner for preparing valuable blog materials. Feel free to share your ideas and, be sure, you’ll soon get at least one high-quality paper written by the diligent author.

How Really Java is Platform Independent

Probably the first thing that is written anywhere about java is that it is a platform independent language. Have you ever wondered that what is meant by platform independent? How java is platform independent? Why other programming languages lack this portability? The purpose of this article is to understand you about all these terminologies.

Before going into detail, first you have to understand that what is a platform?

What Is A Platform? 

A platform consists of computer hardware and Operating system. For example, a PC with Windows 8.

Platform dependent means the program can be executed only on a specific platform. Many programs like Skype can be used on multiple operating systems like Windows or OS X. but notice that this software has different versions for different operating systems, which means that Skype is not actually platform independent. Basically the programs written in dependent languages require some code changes to run on other platforms. C++ is an example of platform dependent programming language.

Platform independent means the program that we have developed can run on any platform. The code remains the same irrespective of the platform involved. Java is an example of platform independent programming language. One Program written in Java can run on Windows or OS X without any modification.


How Java Is Platform Independent:


The reason why java is platform independent is that it is a structured differently from other programming languages. In fact, Java is both compiler and interpreter based language. In other programming languages like C/C++, the source code you write must be compiled in machine code to execute because computers can only execute machine code. The compiler, which compiles the code, uses the functions of the current operating system to compile the source code. This compiled program just runs on that operating system as its code was translated interacting the functions of specific operating system. So, the program becomes platform dependent.

On the other hand, the java compiler compiles the source code and produces an independent intermediate code called byte code instead of direct machine code. This code is platform independent because java compiler doesn’t interact with the local platform while generating byte code. In fact, this code is represented in hexa-decimal format which is same for every platform. You can say that byte code generated on Windows is same as the byte code generated on Linux for the same java code.


Now this code must be converted into machine code to be executed by a computer, here JVM comes. JVM stands for JAVA Virtual Machine and it is available as a part of JDK & JRE (described later) for different operating systems. The JVM translates the byte code into machine code which can be executed by a computer. This JVM works like a virtual machine on which platform independent byte code runs and this machine produces a platform dependent machine code. No matter, what physical platform you are using, the part where JVM interprets byte code is guaranteed to work in the same way. Since all the JVMs work exactly the same, the same code works exactly the same way without recompiling. So the same code works on all operating systems without modification.

How Java Is Platform Independent, when it requires JVM:

In true sense, Java is NOT PLATFORM INDEPENDENT programming language as it requires JVM to run upon. But it works like a platform independent language with pre-installed JRE/JDK on the computer.

JVM comes as a part of JDK and JRE. JDK stands for Java Development Kit which is used to write, compile, debug and execute Java code. While JRE stands for Java Runtime Environment which is required to run java programs. So, every computer must be preloaded with JRE to run any java application.

Mostly computer manufacturers sell their computers with pre-installed JRE. Now, these computers are familiar with programs written in Java language. So, they run/execute the program without demanding a single file.  But, if computer manufacturers have not added JRE in their systems then JRE should be installed manually.

But, wait a minute, think that you want to run a program written in C/C++ (platform dependent code) on another platform then what you would do? Surely you will make some changes in the core code of program. This could be a long and complicated process and you also should have knowledge of the construction of target platform. But, the java program can run on any platform without modifying the code. Just, JVM is required to run the code on any platform exists. Your byte code is same for every platform and JVM converts it into machine code according to local platform. This machine code is then executed by computer.

About Author:
Kamal Choudhary is a tech geek who writes about c++ programming tutorials on C++ Beginner. He is a student of computer science in University of Gujrat, pakistan. He loves to write about computer programming. You can find his full bio here. Follow him on twitter @ikamalchoudhary