Blogging for dollars is quickly becoming a profitable venture. More and more people are finding out that utilizing a blog to generate a stream of income is fast, easy and cheap. There is plenty of information about using a blog in order to make money and you can be one of those people that are making money from writing information about their area of expertise.
The Various Ways to Generate Multiple Streams of Income
The most common way that bloggers generate income from their blogs is with Adsense, Chitika's eMiniMalls, Text Link Ads and WidgetBucks to name a few of the more popular advertising options. You can also utilize BlogAds which is one of the first ad networks specifically geared to blogs.
Having a business to sponsor you allows merchants to advertise directly on your blog. There are more bloggers exploring the possibilities of sponsoring with advertisers. You may also find a business that will pay you to write specific content on your blog as well.
The Beauty of Affiliate Programs
Joining or beginning an affiliate program is one terrific way to generate a stream of income from your blogs. There are literally hundreds of affiliate programs you can explore. Partnering with businesses that are comparable to your area of expertise can be profitable for you both.
Seminars, Courses and E-Books
Many bloggers are beginning to develop digital assets that will support their blogs and add streams of revenue. Bloggers who are confident in their area of expertise are increasingly writing e-books and offering seminars and courses that are run by them. In this way you can pass along what you know to aid others in making money, and make a profit for yourself at the same time.
Exploring Opportunities from Blog Networks
With the increasing popularity of blogs, there has been a huge rise in networks that cater to bloggers. Blog networks can aid you in creating a profitable blog for yourself or help you to connect and partner with other bloggers. If you have a flair for writing, you can write for other blogs if you don't have your own. Though it may be tough to find a writing job with some of the larger networks, there are always people looking for bloggers to join their network. They typically pay their bloggers using an assortment of models for payment. It is not uncommon to find a blogger that writes not only for themselves, but for other blog networks for the added income.
Bloggers for Hire
More and more businesses are seeing the advantage to having a blog for their goods and services. Many of the companies have people within their company to do their writing, but many more are looking to hire bloggers to provide them with interesting and unique content that will drive traffic to their sites. There are plenty of sites where you can find blog work if you are determined to find it.
Bloggers in the Print Media
Becoming more common these days is newspapers, non-blog websites and magazines that are looking for good writers. Bloggers have plenty of experience writing and many of them are proud to have published a book. Writing for print media is far more profitable than just writing for the internet. You can easily find yourself with your article published in a major newspaper or magazine.
Ask for Donations
It is not uncommon to find a blog with a donation button or a tip jar these days. One such blogger was able to leave his job and become a blogger full time all because of the donations from his readership. More bloggers are able to blog full time after they have conducted a drive for fund raising.
Flip Your Blog
Just as in the real estate market, there are buyers who flip houses for a profit; you can do the same with your blog. Not only can this be done on an individual level, but it can be done on a network level as well. If your blog generates a lot of traffic and has a good affiliate program in place, you can easily sell your blog to someone who wants to break into the business without having to worry about the set up.
Start Merchandising
There are a number of blogs and bloggers that have almost a cult following. These bloggers advertise branded merchandise for their readers to purchase. This can be anything from T-shirts, mugs or pens. Though the smaller blogs may not find this as profitable as larger blogs, it may be something you might want to look into.
About the Author
If you want to retire early then you need to learn how to make money online. Also, check out this cool system that made me $474 in one day. It's called Easy Formula For Profits.
New Oblique Penholder Available from Paper & Ink Arts
We will describe what is going after you turn on a computer; how the system is loading. As the practical example we will consider how you can develop your own boot loader which is actually the first point of the system booting process.
Author: Alexandr Kolesnyk, Junior Software Developer of ApriorIT Inc.
Who may be interested
Most of all I’ve written this article for those who have been always interested in the way the different things work. It is for those developers who usually create their applications in high-level languages such as C, C++ or Java, but faced with the necessity to develop something at low-level. We will consider low-level programming on the example of working at system loading.
We will describe what is going after you turn on a computer; how the system is loading. As the practical example we will consider how you can develop your own boot loader which is actually the first point of the system booting process.
What is Boot Loader
Boot loader is a program situated at the first sector of the hard drive; and it is the sector where the boot starts from. BIOS automatically reads all content of the first sector to the memory just after the power is turned on, and jump to it. The first sector is also called Master Boot Record. Actually it is not obligatory for the first sector of the hard drive to boot something. This name has been formed historically because developers used to boot their operating systems with such mechanism.
Be ready to go deeper
In this section I will tell about knowledge and tools you need to develop your own boot loader and also remind some useful information about system boot.
So what language you should know to develop Boot Loader
On the first stage on the computer work the control of hardware is performed mainly by means of BIOS functions known as interruptions. The implementation of interruptions is given only in Assembler – so it is great if you know it at least a little bit. But it’s not the necessary condition. Why? We will use the technology of “mixed code” where it is possible to combine high-level constructions with low-level commands. It makes our task a little simpler.
In this article the main development languages is C++. But if you have brilliant knowledge of C then it will be easy to learn required C++ elements. In general even the C knowledge will be enough but then you will have to modify the source code of the examples that I will descried here.
If you know Java or C# well unfortunately it won’t help for our task. The matter is that the code of Java and C# languages that is produced after compilation is intermediate. The special virtual machine is used to process it (Java Machine for Java, and .NET for C#) which transform intermediate code into processor instructions. After that transformation it can be executed. Such architecture makes it impossible to use mixed code technology – and we are going to use it to make our life easier, so Java and C# don’t work here.
So to develop the simple boot loader you need to know C or C++ and also it would be good if you know something about Assembler – language into which all high-level code is transformed it the end.
What compiler you need
To use mixed code technology you need at least two compilers: for Assembler and C/C++, and also the linker to join object files (.obj) into the one executable.
Now let’s talk about some special moments. There are two modes of processor functioning: real mode and safe mode. Real mode is 16-bit and has some limitations. Safe mode is 32-bit and is fully used in OS work. When it starts processor works in 16-bit mode. So to build the program and obtain executable file you will need the compiler and linker of Assembler for 16-bit mode. For C/C++ you will need only the compiler that can create object files for 16-bit mode.
The modern compilers are made for 32-bit applications only so we won’t able to use them.
I tried a number of free and commercial compilers for 16-bit mode and choose Microsoft product. Compiler along with the linker for Assembler, C, C++ are included into the Microsoft Visual Studio 1.52 package and also can be downloaded from the official site of the company. Some details about compilers we need are given below.
ML 6.15 – Assembler compiler by Microsoft for 16-bit mode;
LINK 5.16 – the linker that can create .com files for 16-bit mode;
CL – ?, ?++ compiler for 16-bit mode.
You can also use some alternative variants:
DMC – free compile for Assembler, C, C++ for 16 and 32-bit mode by Digital Mars;
LINK – free linker for DMC compiler;
There are also some products by Borland:
BCC 3.5 – ?, ?++ compiler that can create files for 16-bit mode;
TASM - Assembler compiler for 16-bit mode;
TLINK – linker that can create .com files for 16-bit mode.
All code examples in this article were built with the Microsoft tools.
In order to solve our task we should recall how the system is booting.
Let’s consider briefly how the system components are interacting when the system is booting (see Fig.1).
Fig.1 – “How it boots”
After the control has been passed to the address 0000:7C00, Master Boot Record (MBR) starts its work and triggers the Operating System boot. You can learn more about MBR structure for example here - http://en.wikipedia.org/wiki/Master_boot_record.
Let’s code
In the next sections we will be directly occupied with the low-level programming – we will develop our own boot loader.
Program architecture
Boot loader that we are developing is for the training only. Its tasks are just the following:
Correct loading to the memory by 0000:7C00 address.
Calling the BootMain function that is developed in the high-level language.
Show “”Hello, world…”, from low-level” message on the display.
Program architecture is described on the Fig.2 that is followed by the text description.
Fig.2. – Program architecture description
The first entity is StartPoint that is developed purely in Assembler as far as high-level languages don’t have the necessary instructions. It tells compiler what memory model should be used, and what address the loading to the RAM should be performed by after the reading from the disk. It also corrects processor registers and passes control to the BootMain that is written in high-level language.
Next entity– BootMain – is an analogue of main that is in its turn the main function where all program functioning is concentrated.
CDisplay and CString classes take care of functional part of the program and show message on the screen. As you can see from the Fig.2 CDisplay class uses CStringclass in its work.
Development environment
Here I use the standard development environment Microsoft Visual Studio 2005 or 2008. You can use any other tools but I made sure that these two with some settings made the compiling and work easy and handy.
First we should create the project of Makefile Project type where the main work will be performed (see Fig.3).
File->NewProject->GeneralMakefile Project
Fig.3 – Create the project of Makefile type
BIOS interruptions and screen clearing
To show our message on the screen we should clear it first. We will use special BIOS interruption for this purpose.
BIOS proposes a number of interruptions for the work with computer hardware such as video adapter, keyboard, disk system. Each interruption has the following structure:
int [number_of_interrupt];
where number_of_interrupt is the number of interruption
Each interruption has the certain number of parameters that should be set before calling it. The ah processor register is always responsible for the number of function for the current interruption, and the other registers are usually used for the other parameters of the current operation. Let’s see how the work of int 10h interruption is perforemed in Assembler. We will use the 00 function that changes the video mode and clears screen:
mov al, 02h ; setting the graphical mode 80x25(text) mov ah, 00h ; code of function of changing video mode int 10h ; call interruption
We will consider only those interruptions and functions that will be used in our application. We will need:
int 10h, function 00h – performs changing of video mode and clears ; screen; int 10h, function 01h – sets the cursor type; int 10h, function 13h – shows the string on the screen;
«Mixed code»
Compiler for C++ supports the inbuilt Assembler i.e. when writing code in igh-level language you can use also low level language. Assembler Instructions that are used in the high level code are also called asm insertions. They consist of the key word __asm and the block of the Assembler instructions in braces:
__asm ; key word that shows the beginning of the asm insertion { ; block beginning
… ; some asm code } ; end of the block
To demonstrate mixed code let’s use the previously mentioned Assembler code that performed the screen clearing and combine it with C++ code.
void ClearScreen() { __asm { mov al, 02h ; setting the graphical mode 80x25(text) mov ah, 00h ; code of function of changing video mode int 10h ; call interruption } }
CString implementation
CString class is designed to work with strings. It includes Strlen() method that obtains pointer to the string as the parameter and returns the number of symbols in that string.
CDisplay class is designed for the work with the screen. It includes several methods:
1) TextOut() – it prints the string on the screen. 2) ShowCursor() – it manages the cursor representation on the screen: show, hide. 3) ClearScreen() – it changes the video mode and thus clears screen.
// CDisplay.h
#ifndef __CDISPLAY__ #define __CDISPLAY__
// // colors for TextOut func //
#define BLACK 0x0 #define BLUE 0x1 #define GREEN 0x2 #define CYAN 0x3 #define RED 0x4 #define MAGENTA 0x5 #define BROWN 0x6 #define GREY 0x7 #define DARK_GREY 0x8 #define LIGHT_BLUE 0x9 #define LIGHT_GREEN 0xA #define LIGHT_CYAN 0xB #define LIGHT_RED 0xC #define LIGHT_MAGENTA 0xD #define LIGHT_BROWN 0xE #define WHITE 0xF
#include "Types.h" #include "CString.h"
class CDisplay { public: static void ClearScreen();
;------------------------------------------------------------ .286 ; CPU type ;------------------------------------------------------------ .model TINY ; memory of model ;---------------------- EXTERNS ----------------------------- extrn _BootMain:near ; prototype of C func ;------------------------------------------------------------ ;------------------------------------------------------------ .code org 07c00h ; for BootSector main: jmp short start ; go to main nop
;----------------------- CODE SEGMENT ----------------------- start: cli mov ax,cs ; Setup segment registers mov ds,ax ; Make DS correct mov es,ax ; Make ES correct mov ss,ax ; Make SS correct mov bp,7c00h mov sp,7c00h ; Setup a stack sti ; start the program call _BootMain ret
Now when the code is developed we need to transform it to the file for the 16-bit OS. Such files are .com files. We can start each of compilers (for Assembler and C, C++) from the command line, transmit necessary parameters to them and obtain several object files as the result. Next we start linker to transform all .obj files to the one executable file with .com extension. It is working way but it’s not very easy.
Let’s automate the process. In order to do it we create .bat file and put commands with necessary parameters there. Fig.4 represents the full process of application assembling.
Fig.4 – Process of program compilation Build.bat
Let’s put compilers and linker to the project directory. In the same directory we create .bat file and fill it accordingly to the example (you can use any directory name instead of VC152 where compilers and linker are situated):
As the final stage in this section we will describe the way how to turn Microsoft Visual Studio 2005, 2008 into the development environment with any compiler support. Go to the Project Properties: Project->Properties->Configuration PropertiesGeneral->Configuration Type.
Configuration Properties tab includes three items: General, Debugging, NMake. Go to NMake and set the path to the build.bat in the Build Command Line and Rebuild Command Line fields – Fig.5.
Fig.5 –NMake project settings
If everything is correct then you can compile in the common way pressing F7 or Ctrl + F7. At that all attendant information will be shown in the Output window. The main advantage here is not only the assembly automation but also navigation thru the code errors if they happen.
Testing and Demonstration
This section will tell how to see the created boot loader in action, perform testing and debug.
How to test boot loader
You can test boot loader on the real hardware or using specially designed for such purposes virtual machine – VmWare. Testing on the real hardware gives you more confidence that it works while testing on the virtual machine makes you confident that it just can work. Surely we can say that VmWare is great method for testing and debug. We will consider both methods.
First of all we need a tool to write our boot loader to the virtual or physical disk. As far as I know there a number of free and commercial, console and GUI applications. I used Disk Explorer for NTFS 3.66 (version for FAT that is named Disk Explorer for FAT) for work in Windows and Norton Disk Editor 2002 for work in MS-DOS.
I will describe only Disk Explorer for NTFS 3.66 because it is the simplest method and suits our purposes the most.
Testing with the virtual machine VmWare
Creation of the virtual machine
We will need VmWare program version 5.0, 6.0 or higher. To test boot loader we will create the new virtual machine with minimal disk size for example 1 Gb. We format it for NTFS file system. Now we need to map the formatted hard drive to VmWare as the virtual drive. To do it:
File->Map or Disconnect Virtual Disks...
After that the window appears. There you should click Map button. In the next appeared window you should set the path to the disk. Now you can also chose the letter for the disk- see Fig.6.
Fig.6 – Parameters of virtual disk mapping
Don’t forget to uncheck the “Open file in read-only mode (recommended)” checkbox. When checked it indicates that the disk should be opened in read-only mode and prevent all recording attempts to avoid data corruption.
After that we can work with the disk of virtual machine as with the usual Windows logical disk. Now we should use Disk Explorer for NTFS 3.66 and record boot loader by the physical offset 0.
Working with Disk Explorer for NTFS
After program starts we go to our disk (File->Drive). In the window appeared we go to the Logical Drives section and chose disk with the specified letter (in my case it is Z) – see Fig.7.
Fig.7 – choosing disk in Disk Explorer for NTFS
Now we use menu item View and As Hex command. It the appeared window we can see the information on the disk represented in the 16-bit view, divided by sectors and offsets. There are only 0s as soon as the disk is empty at the moment. You can see the first sector on the Fig.8.
Fig.8 – Sector 1 of the disk
Now we should write our boot loader program to this first sector. We set the marker to position 00 as it is shown on the Fig.8. To copy boot loader we use Edit menu item, Paste from file command. In the opened window we specify the path to the file and click Open. After that the content of the first sector should change and look like it’s shown on the Fig.9 – if you haven’t changed anything in the example code, of course.
You should also write signature 55AAh by the 1FE offset from the sector beginning. If you don’t do it BIOS will check the last two bytes, won’t find the mentioned signature and will consider this sector as not the boot one and won’t read it to the memory.
To switch to the edit mode press F2 and write the necessary numbers –55AAh signature. To leave edit mode press Esc.
Now we need to confirm data writing.
Fig.9 – Boot Sector appearance
To apply writing we go to Tools->Options. Window will appear; we go to the Mode item and chose the method of writing - Virtual Write and click Write button – Fig.10.
Fig.10 – Choosing writing method in Disk Explorer for NTFS
A great number of routine actions are finished at last and now you can see what we have been developing from the very beginning of this article. Let’s return to the VwWare to disconnect the virtual disk (File->Map or Disconnect Virtual Disks… and click Disconnect).
Let’s execute the virtual machine. We can see now how from the some depth, from the kingdom of machine codes and electrics the familiar string appears ““Hello, world…”, from low-level…” – see Fig.11.
Fig.11 – “Hello world…”
Testing on the real hardware
Testing on the real hardware is almost the same as on the virtual machine except the fact that if something doesn’t work you will need much more time to repair it than to create the new virtual machine. To test boot loader without the threat of existent data corruption (everything can happen), I propose to use flash drive, but first you should reboot your PC, enter BIOS and check if it supports boot from the flash drive. If it does than everything is ok. If it does not than you have to limit your testing to virtual machine test only.
The writing of boot loader to the flash disk in Disk Explorer for NTFS 3.66 is the same to the process for virtual machine. You just should choose the hard drive itself instead of its logical section to perform writing by the correct offset – see Fig.12.
Fig.12 – Choosing physical disk as the device
Debug
If something went wrong – and it usually happens – you need some tools to debug your boot loader. I should say at once that it is very complicated, tiring and time-eating process. You will have to grasp in the Assembler machine codes – so good knowledge of this language is required. Any way I give a list of tools for this purpose:
TD (Turbo Debugger) – great debugger for 16-bit real mode by Borland.
CodeView – good debugger for 16-bit mode by Microsoft.
D86 – good debugger for 16-bit real mode developed by Eric Isaacson – honored veteran of development for Intel processor in Assembler.
Bocsh – program-emulator of virtual machine that includes debugger of machine commands.
“Assembly Language for Intel-Based Computers” by Kip R. Irvine is the great book that gives good knowledge of inner structure of the computer and development in Assembler. You ca also find information about installation, configuration and work with the MASM 6.15 compiler.
This link will guide you to the BIOS interruption list: http://en.wikipedia.org/wiki/BIOS_interrupt_call
Conclusion
In this article we have considered what is boot loader, how BIOS works, and how system components interact when system boots. Practical part gave the information about how to develop your own simple boot loader. We demonstrated the mixed code technology and process of automation of assembly with Microsoft Visual Studio 2005, 2008.
Of course it is just a small piece comparing with the huge theme of low-level programming, but if you get interested of this article – it’s great.
Trying to convert XML to PDF correctly can be very frustrating since there are many solutions out there that do not always deliver what they promise. You probably already know that pdf is considered the industry standard - which allows the exchange of documents between platforms, for example, Word processor files, graphics files, base, and many other file types. Want to take full advantage of this technology unique? Follow this quick report and I will show how this can be done in minimal effort.
Basically, this popular Portable Document Format technology lets you "print" any file you choose in a universal virtual 'electronic paper', so you can distribute your files to anyone and they always look identical no matter where you are opening. Clearly we can find several advantages to this process, suppose you just finish writing an e-book using your favorite word processor and using a specific source - that will connect all sources you used, not matter what fonts are installed (or not) on the other systems of its viewers.
Being able to convert XML to PDF files require you to find a software professional - you should check that lets you generate PDF files standard. When searching the Internet will be surprised with the number of solutions that exist in this field, one thing that has to do - which is 'filtering' which do not provide you with several basic characteristics and important. Before installing anything on your computer check the following: You must allow 'Print' any file from your original application through a printer driver for PDF format and must be compatible with version most current Adobe Acrobat.
The best way to check if a suitable tool can help you convert xml to pdf is more carefully if they offer free trials with no commitments. Note that you can easily contact the manufacturer for any questions or support. There is another thing, needs to see that the solution you choose suggests security updates, so it keeps you updated immediately when any change to the Adobe PDF format.
Microsoft Dynamics GP, formerly this Corporate ERP platform for mid-size business was known as Great Plains Software Dynamics, eEnterprise and Dynamics C/S+, has large number of installations in United States, Canada, UK, Australia, New Zealand, Spanish Speaking Latin America and Caribbean. It is part of Microsoft Dynamics family, where you also see Dynamics AX (former Axapta), NAV (former Navision), SL (Solomon), CRM and RMS (Retail Management System). This family might be extended by Microsoft Business Solutions, so please check on current info, as we are writing these lines in September 2009. Dynamics GP is good as generic ERP and MRP platform, as it can automate virtually all types of business processes, however it is especially good choice for non-profit organizations (Grant Management, based on Analytical Accounting), Mid-size and large Discrete Manufacturing (please, note that for so-called Process Manufacturing, such as meat processing facilities, you should consider Dynamics AX Axapta), Light Assembly, Freight Forwarding (where you deploy Customer Vendor consolidation for Agent Settlement Report), mid-size Retailers (especially with Microsoft RMS integration to Great Plains), mid-size eCommerce stores (where you integrate ecommerce transactions via GP Integration Manager in batch mode or program simple integration in eConnect in real time), reasonably complex Warehouse management and logistics (with Barcoding integration, shipping and receiving, picking and packing), Advertisers and Publishers, who needs strong Collection department. And these business niches are our unoffical opinion, different Dynamics GP Resellers might have expertise in more business profiles. It is definitely good idea to request Dynamics GP demo with the consideration of your requirements and business processes from your Microsoft Dynamics GP proposed Partner, we will try to cover reasonable number of typical questions for your homework in this small publication:
1. Software Licensing. Dynamics GP is sold in Business Ready format, where you purchase either Business Essentials (when you need less functionality and narrow set of modules), or Advanced Management (where more functionality is desired, typically for larger organization) user licenses. Both licenses include reasonable set of modules and then the rest of the modules are available for separate purchase (maybe in the future, when you have pilot implementation completed). Dynamics GP requires (certainly you have the choice here as well) current status in Annual Enhancement program, which should be extended every year and it is around 18% of Software Price. Being in this program allows you to get access to new version registration keys and have discounted technical support from Microsoft Dynamics GP directly
2. Implementation Phases. They are likely to be similar for various Corporate ERP products. You have these steps: Sales Cycle, Pilot Installation, Data conversion, your business processes oriented user training, customizations and integrations with legacy systems if required (including EDI, ecommerce, POS, Retail Transactions, Barcode scanners, etc.), reports tailoring and modification (such as required Invoice with company logo, AP Check form, Inventory Items Barcode Label printing, etc.). When Pilot phase is successful you need to do production and final data migration and going live with emergency level support period if something goes wrong you need urgent help to secure uninterrupted business processes. For smaller organizations these steps might be narrowed, and skipped to fit your budget. We recommend you to get your Software License cost and use it as Implementation cost estimation - enable at least 50% of the Software license cost budget for consulting in implementation
3. Dynamics GP Technology Stack review. User Workstations (formerly referred as Fat client) is programmed in Great Plains Dexterity (if you need seamless integration for custom logic, this would be the first tool to consider for GP customization programming). Database Platform is Microsoft SQL Server (2008, 2005 or 2000 for current GP version 10.0). Reporting could be done in ReportWriter (invoice with Logo are the most typical), SSRS, Crystal Reports, FRx (financial reporting - BS, P&L, Statement of Cash Flow). Integration is open if you purchase Dynamics GP Integration Manager module, plus you can program integration in eConnect (if you have internal programmer, who are comfortable with C# or VB.Net development with some SQL and XML experience). Plus, there are additional possibilities: Extender, Modifier with VBA scripts, Web Services for Dynamics GP, Integration with Sharepoint, Microsoft Outlook. Plus, Dynamics has Business Portal, where you have discounted licensing schema for such functionalities as Electronic Document Delivery (to email you Sales Invoices to selected customers automatically as an idea, plus a way more other deliveries), Order Management (for B2B ecommerce), Purchasing management (for internal Purchase Orders and complex approval hierarchy and cycle), Human Resource Employee Self Service (this module allows you to be compliant on check stub exposure to your employees regulation, if stubs are available through the web, you do not have to pay for paper mail postage)
4. International Environment. Please, note that Dynamics GP Dexterity doesn't support Unicode characters, or hieroglyphs: such alphabets as Chinese, Japanese, Korean. Plus it is only localized (user interface translation plus local tax and reporting compliance) for English Speaking Countries, French speaking Quebec, and Spanish Latin America. If your international subsidiary is located in such regions and countries as Brazil, Russia, China, Continental Europe, Kazakhstan, Central Asia - we recommend you to consider SAP Business One as it localized for these countries or even local ERP application, assuming that it support reasonable transaction export into text files to be consolidated via Dynamics GP Integration Manager
5. How to get help? Please, feel free to call us: 1-866-528-0577, outside of USA: 1-630-961-5918 or email us help@albaspectrum.com We are very technical and real Dynamics GP Dexterity, SAP Business One SDK programming gurus. We have Great Plains Software Development Factory and could support unlimited Dynamics GP Customization and Programming needs. Plus we speak English, Chinese, Spanish, Portuguese, Russian, and not only as native speaking sales folks, but as real technical consultants. If you prefer skype: albaspectrum
About the Author
Andrew Karasev, Alba Spectrum , help@albaspectrum.com 1-866-528-0577 http://www.albaspectrum.com Serving ERP and MRP community since 1994, local service in Chicago, Houston, San Diego, Atlanta, Los Angeles. Information portal: http://www.pegasplanet.com We serve you USA and Canada nationwide from our SAP Business One call center: California, Illinois, New York, Florida, Minnesota, New Jersey, North and South Carolina, Georgia, Louisiana, Texas, Ontario, Quebec, Washington, Missouri, Iowa, Nebraska, Kansas, Colorado, Nevada, New Mexico, Utah, Arizona, Montana, Oregon, New York, New England. International clients welcome from Australia, New Zealand, Oceania, South Africa, UK, Brazil, Caribbean, Russia, Central America: Honduras, Costa Rica, San Salvador, Panama, Nicaragua, Guatemala