Welcome to the NIXE group This group aims to provide you with an opportunity to communicate and learn, especially for basic, tendency algorithms and engineering calculations, and software architectural knowledge. The team is completely non-commercial, open, free, and publicly open all work results, and welcome everyone to use, reference. There is no core, members do not have to fulfill any form of procedures, there is no special obligation, and the only requirement is not allowed to take commercial interests in the name of the group, and may not engage in the image of the damage group.
Meng Xin 2001, 9, 1. Lu Yue 2001, 9, 1.
At present, there are two group members, all graduated college students, have developed some projects in the school. Here is one of the will be disclosed:
Mathaider is a concurrent interpretation of matrices that provides an efficient platform for simulation, data visualization, complex algorithm implementation. And because of its flexible expansion mechanism, users can meet the needs of users in a very wide range. I released the software in 9cbs and publicly all source code, for the following:
1. You can understand the implementation of the interpreter, the software architecture planning, computer graphics, Win32 platform is based on the basics of the interpretator, and the skills of many algorithms.
2. Practicing the free development of Linux in China.
3. If possible, make her easy to use software (of course still free).
4. Focuse friends.
5. Practice distributed operations in China. (Know the US 'Explore the Academic Civilization "plan? They have the world's largest supercomputer - tens of millions of joint working PCs)
By the way, if you look at her at the point of view of the end user, you will be disappointed, she doesn't have any plug-in support now, almost anything can be done, only some standard programming languages will do. (Like the aircraft carrier of the Star Sanyi, but no small plane)
Here is a profile
The earliest idea of Historical Development was that in 1999, some auxiliary software for experimental courses was written. It coincided with Matlab at that time, and its design idea gave me a lot of inspiration, so I decided to independently An interpreter core for use in other programs, but shortly, it is exposed. When someone wants to add other functions, you must understand the source code, then change the compilation, so that it is inconvenient to use, two to produce many mutually incompatible versions, it is difficult to do code multiplexing, redesite it for this Architecture, use similar COM interface mechanisms to completely separate the application - interpreter - the plugin, hand over the task of the extended component function to the user, this is the MACORE's prototype (Matrix Array Core) from the end of 2000 It has been free to use between students, and it has also made many improvements according to their opinions. Upgrade from MACORE12 to 15, but I also deeply continue to upgrade to maintain his scope of personal ability. So encapsulate it in a user interface as a look, and meet you. I hope everyone will help to work it. Be a useful free software. This is Mathaider15.3 you see now. Performance and Features A High Efficiency: Mathaider internal data is organized in the form of matrix or array, all operations are processed, so that the number of interpretation scan statements is as much as possible, and for some algorithms Parallelization provides possible, take an example, can be used as an alternative array when it is determined, and then interprets the array, then takes the average value, so that a medium complexity (6 functions) When calling) Mid-level precision (1000 nodes), time cost is more than one quantity than the conventional algorithm (time price analysis is a high-precision timer program provided by the programmer's large capital) and this calculation method can make the program The instructions and code accesses (because each time is accessed access to adjacent addresses on the same segment) as much as possible to reduce the chance of failure. For systems with large capacity cache, they may be optimized to the cache. In addition, Mathaider has the potential to use modern CPU single instructions to record the potential of the flow instruction set, which can real concurrent calculations on certain procedures. In order to efficiently implement the above scheme, the internal data class uses shadow copies (ie, as a shallow copy like -BSTR-T with reference count), avoiding frequent allocation and assignment of large block data in memory. This reduces the time when the variable is passing the stack and returns the function. The calculation code performs a separate thread, uses a separate heap space, and uses a non-blocking method with the external interaction to avoid the impact of the UI operation. When calculating the thread, it will destroy the heap used, thereby reducing the plugin writing Component Maintaining Memory Requirements, they can call the interface function to create many variables without having to release them (just like Java). B Standardization: Mathaider provides the minimum set of standard structured programming languages, support order, cycle, and judgment stream control, support custom functions, using similar MATLAB-based statements, support standard mathematical functions and common algorithms, all Output file formats of Mathider Standard files, such as the document HTML, TXT, 3D with VRML, 2D can be used with BMP users without special processing. (In fact, the writer of the plugin has the right to decide the file format used, but I hope that he can use the general standard as possible).
C Scalable: Mathaider encourages users to implement their optimization algorithms under the premise of unified standards, even if they do not load in-component components, and use third-party plug-in libraries, if users feel that their plugins are very good, they can be paid Or the free form is provided to the user. To this end, Mathaider provides a wizard plug-in and configurable help, simplifying your release plug-in, and makes seamless integration into Mathaider. In addition, Mathaider supports the corner function, and users can also customize them. D Environmental Protection: Mathaider uses simple, separate EXE can run, does not rely on MFCDLL, does not rely on COM, does not affect the registry without relying on ActiveX, does not affect the system, and delete Exe when deleting it, the software is currently 1.05M estimates that it will not be greater than 1.44m after increasing to a more practical program. E Free disclosure: Mathaider is currently embedded in the source code of the plugin and wizards in the resource if you are interested in derivation of it after proper modification. In addition, it will quickly disclose the source code of the UI. Soon, the development document of MACORE will be disclosed, followed by a public file and corresponding document description. To the past two years, I have been doing Macore because his existence does solve some problems. For the current Mathaider, I want to make him a lightweight numerical analysis computing software, but this must rely on everyone's strength, If the initial practical use requires nearly 100 functions in the C language common algorithm, it is also necessary to test, write related help documents, and some special algorithms need to consider concurrent optimization measures. And there are many graphics, 3D and various wizards to work later. The workload is too big, and now there are some problems that I can't solve, such as the security control mechanism of plugins (always can't make malicious plug-in writing to destroy the system security), and optimize the intel and AMD special instruction sets. This requires everyone to help guide. There is another reason for public documents and source code. I hope to meet some friends in this way. If possible, you can improve the level through joint development. Now there are too many books on the market, but it seems that there is not a few words. How to design the software architecture, how to divide the functional module and how to organize the Internet team development, honestly say that Mathaider is a first attempt, I don't know if its structural design is reasonable, and whether this development mode is Will succeed, so take it out to discuss with you. The final Mathaider's route will be the most scientific and reasonable in many proposals. This software will become a crystallization of collective wisdom rather than individual heroic products. At present, Mathaider is still in the test period, and there is also a place in BUG and design. I hope that everyone can frankly, if there is something better, please tell me as soon as possible. If Mathaider is successful in the future, the software itself will remain free to open. However, the plug-in writer has the right to agree with the plug-in user, that is, the P To P is adopted, Mathaider may become a node of distributed computing services in the case of user licensing, of course, the above idea represents only personal opinions Do not represent the future direction of Mathaider.
FAQSFAQ1 What is MACORE, MATHATDER, MA: Simple, Macore is a high-performance concurrent interpretation computing component and implements flexible configuration and openness in considerable extent. Mathatder is the implementation of MACORE on desktop applications. Ma is a collective. What is the market positioning of FAQ2 MACORE and MATHATDER? Macore is intended to provide high performance, customized computing components, or become a cluster operation service for CAD, CAI, simulation, graphics processing software. Mathatder is positioned in a lightweight numerical analysis computing software. On the other hand, the software and source code are provided free of charge for users, learn, on the one hand, as a return of the user PC as a cluster operation. Is FAQ3 DCOM and COBRA? As a unified distribution architecture, Cobra is determined to be good, but they have the following shortcomings: the standard is too complicated, there are many things that do not need, there is no feature of adaptability and configuration, compared to TCP / IP or UDP protocol open higher level protocols are more practical and versatile. By the way, many successful software design ideas such as MATLAB, JAVA and COM systems are used during the MA design, but they are not considered for software efficiency, independence, openness, and conciseness. The flexibility of the FAQ4 MA system is for MACORE, the internal structure of this component is strictly in interface-implementation, and each interface can have many implementations, achieving only the architecture, not involved, and give an example, Assume that MACORE is used for network operation purposes, or database data processing, then simply re-implement the IO interface to transfer or manipulate the database over a network. If you want to implement an object-oriented similar class of C , you can re-realize the Gramma interface. The component uses a widened packet communication, rather than direct function calls, so that the display and deletion of control commands are relatively simple and no compatibility issues (like the Message Packages in Windows). For Mathaider flexibility, it is mainly reflected in the ability to have considerable custom software behavior. Development History of FAQ5 MA 1999.12 Explanation Nuclear, Parallel Data Packaging (MACORE 11) 2000.3 Open Plugin Interface (Macore 12) 2000.5 Implementing DLL and Socket Packages, submitting the first user using 2000.9 with standard message package processing function call, simplifies DLL version Interface 2000.11 Independent Operation Threads and Independent Stacks (Macore14, Mathaider14) 2001.3 Implementing the Structured Program Design Language (Macore 15) 2001.7 Implementing better Shell and generates standard Macore Static Edges Why is China Free Software Development The mode does not have a successful software? (1) Free Software requires a wide range of user groups to support, and the total share of the Linux platform in the general user of China is low, not the appropriate choice for free software development model. (Who said that the software development mode under Win32 platform must be commercial development model?) (2) Free Software should pay special attention to the benefits of the services he provide, so large and medium-sized versatility software is better.
(3) The free software should pay attention to the combination of the network --- service - the software, the network as software development, promotion, maintenance, the software should be a medium for website and customer exchange services. (4) Free software development model should pay special attention to reasonable allocation of interest. (5) There should be a good development organization specification within the premise of respecting creativity within the premise of respecting creativity. FAQ8 Free Software Development Mode is more advantages and disadvantages: intellectual resource redundancy; due to network energy organizations, there are more members of the development group, and due to source files and development documents, there are more potential development members. This ensures that the group can still run normally in the case where some members are exited. Democratic democracy; the team members are equal, software architecture design, development plan, etc., are discussed by members. This can guarantee the scientific and rationality of decision making and unity within the group. The risk is scattered, and because the team members are responsible for the failure of the software project, there is no more consideration. Distribution according to work, because the work of the team is transparent, its work results are reviewed by the group, so it can guarantee the impartiality of income allocation. The resource utilization is high, the group does not pay the expenses other than the software, and there is no conventional expenditure. Disadvantage: (1) The lack of funds; (2) The organization is random, the internal norm is not strict, it is difficult to coordinate; (3) Not suitable for completing the close-up project. FAQ9 future users have published two ways: P-P: The supplier directly contacts the transaction directly. P-S-P: The supplier provides the source program to the website where the website is located. After the audit is determined, the website is responsible for registering and providing download and verification services. When the user uses this component, download from the website, if necessary, the component will be sent to the website when the component is loaded, and the information will be used to the website. The website pays to the provider based on the corresponding use record. Is there a market in the future FAQ10 universal distribution? I am uncertain, but at least there are a few favorable factors: (1) The function of the PC is getting stronger. (2) The gradual popularization of broadband networks. (3) After the network economy foam is sized, it needs to be repositioned to the user-oriented, and the service is the first business philosophy. (4) There are many successful precedents. Does FAQ11 join the special requirements of the NIXE group? First, let's talk about what you don't require: age, gender, place of residence (but there are more direct communication opportunities), career, education, and work experience. The following is the basic requirements: a good mathematical foundation, understanding the idea, honest, creative and enthusiasm of component-based programming. If you are particularly interested in the following work: routine and parallel numerical methods; X86 assembly and compilation of Intel / AMD extensions and basic algorithms; computer graphics; computational simulation; network communication and security; compilation (interpretation) Optimization. FAQ12 Why Mathaider15 is slow in Mathaider14 (1). 15 edition is the standard MACORE is packaged by byte streaming, and it is convenient to use ANSII package instead of two-binary packages for UI display. The 14 version uses a part of MACORE to use the pointer to pass the value in the process. (2). 15 edition added a set of instructions to the UI notification, and it is changed to each step by the original end operation. (3). 15 edition added support for basic programming grammar.
(At present, the introduction of QuickView plug-in has improved a situation) The development tool of FAQ13 MA is currently developed with VC 6.0, but in addition to the most basic framework, other parts can be loaded → get the entry function address → creation Interface → Use the interface to work → release the interface. Therefore, any component that supports the compiler of the pointer and the DLL can be accessed. (But the above idea has not been experimentally). Mengxin August 25, 2001 Email: Nixe@263.net
You can also contact Email with Lu Yue: asp6.0@263.net
other questions:
First, declare: The following text is not related to the MA and NIXE groups, purely personal opinion - Meng Xin.
In the face of users, companies have two attitudes, "satisfied demand" and "creative demand", and the latter is the driving force for the development of the industry. Otherwise IT will not develop to today. But unfortunately, there are too few companies such as China. I have thought about it for a long time but I have never had an answer. Later, I have had the opportunity to contact some software companies, they told me. The person in charge of a certain influence education software company has said such a paragraph of me:
... Now our products can only be called electronic publications. It is also a distance from the real education software. You suggest it, but now the market, there is room, even if you are new, it is very fast. It will also squeeze in, and finally the same share, and the new market is costly.
...... Total 1: Opening up a new market is risky. 2: If the market is opened, there is no proper method to ensure the profit of fair allocation from it. In China, the software company is small, and there is no much power to "create demand". Even if the "Creative Demand" is successful, it is impossible to obtain relatively monopoly, it is difficult to recycle "innovation costs", then China will appear Second class companies (I not only refer to software companies)? The emergence of CMM certification marks the standardization and industrialization of the software industry, but it is important to join in which it is, I have a classmate. I have a very famous IT company to work, according to it, he works for foreign Outsourcing is a more intelligent compiler. Some people may think that India has done this, it has made a fortune, and they learn, but their success is that the last century, how to ensure that it applies to China in the next 120 years? If a software company does not respect employee's creativity, it is very dangerous to produce software like shoes. It is very dangerous to make the technical demand for CODER or disappear, such companies will also die. The current computer education is either too much-to-found, or too powerful, it is to lack the ability to solve problems with knowledge analysis issues learned by students, and how to work together, but just this is the most important. Otherwise it is more dangerous. One hundred years ago, China's exhibition was exhibited at the World Expo, and China has entered the WTO this year, but it is willing to happen after a few years.