How to avoid a plagiarism when you write an essay paper

It is often mentioned in the instructions for any written paper that students should avoid plagiarism and should provide proper citations.

Even if it is not mentioned additionally, it is expected that all written papers are produced without plagiarism. In fact there is no use of copying and pasting of somebody’s ideas.

At any rate students are to use a lot of materials and sources for their papers and thus there are certain ways to use them correctly and to avoid plagiarism. Thus each student should be aware of the simple steps, which would help to add the needed information to the research paper, but will not lead to plagiarism.

First of all students should learn to paraphrase. The available information should be read, perceived, understood and then written with the help of your own words. In case you are forced to use more, than two words together from the information source, then you should put quotation marks.

This is called citing and this is one of the correct ways to avoid plagiarism in your works. In order to do citing correctly, you are to study the available guidelines for each formatting style and be able to apply them in practice. One more approach to avoid plagiarism is quoting, it should be done correctly and citing of quoting is different from citing paraphrased materials.

Referencing is important for any written research, as it also helps to avoid plagiarism.

Often there are concrete document formatting guidelines, provided by the educational institution and they should be thoroughly followed by the students. The number of sources on your reference page depends upon the size and type of the work you are writing. Before starting to write your paper you should always make clear all the issues related to plagiarism and the ways to avoid it.

Top Writing Services

Online Casinos in Sweden: General Information

All Swedish online casino or nätcasino fall under the specially designed gambling act, according to which all Swedish gambling operators grant licenses to online gambling platforms. Therefore, online gambling sites are fully licensed and certified in Sweden. Every operator can update their licenses in line with the recent changes in legal regulations. More than 70% of the Swedish population is engaged in gaming activities year after year, which explains the need for setting new laws and legislations around the country.

In the past, many online casinos were governed by the jurisdiction of Malta, while today, online casinos are often licensed in line with other laws and regulations. Accepting more companies from overseas and issuing some certificates for them has changed the Swedish gaming industry completely. There are a lot of legally operating casinos in Sweden and across the world. As a result, more and more punters get interested in online gaming activities around the globe.

Gambling Software in Sweden

The greatest difference between physical casinos and their online counterparts is the fact that online gambling platforms greatly rely on technologies. Surely, even land-based casinos have some high-tech equipment and various high-end technologies, but as for the internet-based casinos of the highest quality, they really need to have the software of the premium quality. This applies to both usual gambling platforms and individual online games. One of the methods, through which you can rate the website of your choice, is the variety of software providers that offer great selection of games.

At the moment, there is a broad variety of games from different gaming providers ensuring that players have a wide choice and can play any game they want. Such big companies as Microgaming, IGT, Play’n GO, and Microgaming, as well as NetEnt are highly popular with gamblers all over the world, including Sweden.

Roulette, blackjack, and slot machines are some of the most widespread developments of various gambling platforms. If to mention Swedish gaming products, they are always of the highest quality and meet all standards and norms. Modern online casinos offer many technological developments to gamblers. These are tried out and tested by gaming enthusiasts on such devices as:

  • Mobile phones;
  • Tablets;
  • Smartphones;
  • Laptops;
  • Computers, etc.

Statistics and Market Perspectives

There are various applications and other gambling products that you can use to play your games using the chosen device. More about the leading mobile casinos can be found on special websites with statistics and information about the market perspectives.

What Are the Leading Mobile Casinos?

In line with the statistical data, some of the leading online casinos are:

  • LeoVegas;
  • 888casino;
  • Casumo, etc.

As for the top mobile gambling products, these are:

  • Book of Dead;
  • Millionaire Genie;
  • Starburst, etc.

All these products have been developed to use on mobile devices like smartphones and tablets. Customer service offered by Swedish casinos is always provided in Swedish language. English-speaking customer service is also available. The simplest way to get in touch with any customer support operator is to use the live chat button or email. This way, you’ll get all the needed information. Well-trained customer service is offered by the best casino operators of Sweden so you’ll always get the needed help and assistance whenever necessary.

In addition, there are many certified and licensed casino websites where you can get all the needed information regarding any problems that you run into when playing the games of your choice.

If you’re one of the numerous people who like playing online games and slot machines, you’ll find numerous video slots in the libraries and catalogues of online casinos. Furthermore, if you’re going to play traditional table games or other similar gambling products, you can also find the best range of roulette and blackjack games in the online casinos of your choice. 

Catenating mp3 files correctly under Linux

I sometimes download lots of mp3 files from the web (bit-torrent or music) and need to catenate them. This is usually the case when there are just too many files lying around or when they are too short like 3-5 minutes long and I want them to be 30 minutes long or more. This is very useful for educational material. In this post I will review the different methods to achieve this and offer my own solution.

Solution 1: catenate the files simply. cat *.mp3 > out.mp3. There are a few problems with this approach. First, an mp3 file is a file with a header and just concatenating the files would leave multiple headers in the output file. The output file will therefor have the headers of the first file. Not nice. Second, the output file could only be played by certain mp3 players which are forgiving about the file format so it may play well on your Linux system (mp3 players are very forgiving there) but not on a mobile device. Third, the output file has bad length and you will have problems moving around in it using most players.

Solution 2: use mp3wrap. This utility is available in most Linux distributions repositories (in Ubuntu it’s named simply mp3wrap). It offers an easy command line and manual page but it does not create a single mp3 file but rather an mp3 file that later can be split to create the original mp3 files. This wrapped file can be played by various Linux players which are forgiving but has lots of the issues discussed in the first solution.

Solution 3: use ffmpeg. This is idea is based on the following post. The idea is to run: ffmpeg -i "concat:file1.mp3|file2.mp3" -acodec copy output.mp3. This is a much better solution as the resulting mp3 file is a single file with correct length and the tags of the first file concatenated.

Solution 4: use a script since the previous solution is hard to use for many files.

#!/usr/bin/python
 
"""
This script will catenate mp3 files correctly using ffmpeg.
see: http://superuser.com/questions/314239/how-to-join-merge-many-mp3-files
"""
 
import subprocess
import sys
 
if len(sys.argv)<3:
        raise ValueError('usage: outfile.mp3 [infile1.mp3] [infile2.mp3] ...')
 
args=['ffmpeg','-i','concat:'+'|'.join(sys.argv[2:]),'-acodec','copy',sys.argv[1]]
#print args
subprocess.check_call(args)

Open heart surgery on a Fatar StdioLogic SL880

This one is for all of you who have a Fatar keyboard of version StudioLogic SL880 or similar ones. If one of your keys stops working and slumps down it may be that an inner plastic has broken in which case you will need to either send it to the shop or do surgery on it. This one is for the brave of heart who want to take the surgery road. Why should you do it? Because you are brave, because you don’t want to haul the heavy keyboard to an expensive lab to fix it for lots of money. In any case the idea is to get a plastic from one of the unused keys (I used the lowest notes) and put it instead of the broken one on the broken notes. One piece of advice: no fear – and read the entire guide before starting!. Photos were taken using my iPhone and you can click on them to get a more detailed image.

Here are the stages:

First gut out the keyboard. You’ll have to open 6 deep screws (hidden in trenches), 3 on either side at the bottom of the case. It’s hard but it’s doable. I have also released 6 more screws at the bottom and gutted the keyboard totally. You really don’t have to do that but I wanted to clean the inside while I’m at it.

Now find the key(s) that cause(d) the problem. You need to use a small flat screwdriver in order to free the keys. Just insert the screwdriver into the back of the key and press on the small plastic. Once it’s pushed the key could be pulled upwards and released. You will now see the problem.

In order to fix the problem you will have to release all keys!. Yes – I know this hurts but there is a long steel rod that runs through all of them. As long as the keys are clicked into place they apply pressure on the rod and you will not be able to pull it out or, if you happen to pull it out, to get it back in again. So, release all the keys with the screw driver as before. You can either put them on the side or keep them in their place. I started with the former and ended up with the latter since it is better. Since you will be releasing all the keys this is your chance to clean the keys as well.

During the whole process watch out for the small springs. Each key has one and the spring is not held by anything once you release the keys…

Now you will get to a situation where there is no iron bar for the key you want to work on…

Get the bad plastic out and put in a good piece of plastic from an unused key. I used the bottom most notes.

Some keys on the side. I pulled out a couple only to realize that it is better to keep them in place to avoid having to reconstruct exactly where each key goes. In any case, if you do pull them out, it is not a big deal since the keys are all numbered. White keys are “A B C D E F G” and black ones are numbered “1 2 3 4 5″ and stand for C#, D#, F#/Gb, Ab, Bb. It looks like the black keys are interchangeable so you their numbers are not as important as those of the white keys. The ends of the keyboard have special keys. Keep an eye on those.

If you do decide to gut out the keyboard completely by removing the extra set of 6 screws at the bottom then you will be able to clean the case itself. If you decide on this remember to release the keyboard only after you disengage the 4 data cables (two fat, two thin) that connect the keyboard to the case. Here is an image of the case after the cleanup…

The whole procedure took me about 3 hours and some. Well worth it.

Here are photos of the whole procedure…

Java runtime environment control

There are four ways to control Java environment for runtime:

  • _JAVA_OPTIONS environment variable.
  • Command line when running the java virtual machine.
  • Java source code. In this case you must make sure to set the option before it is picked up by whatever subsystem it is intended for.
  • In Java web start you can also use the JNLP file to control the environment passed over to the executing JVM.

Examples of them can be:

  • export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=lcd'
  • java -Dawt.useSystemAAFontSettings=lcd [arguments...]
  • System.setProperty("awt.useSystemAAFontSettings","lcd");
  • property name="awt.useSystemAAFontSettings" value="lcd" (under the resources element)

Each of these methods naturally has it’s own advantages and disadvantages. In Java web start you have a hard time controlling the environment variables or the command line but two options (the JNLP file and the source code itself) are still open to you.

Some properties, like the anti-aliasing option, is notoriously bad by default and setting it (as shown above) will give you much better look and feel.

The values of the awt.useSystemAAFontSettings key are as follows:

  • false corresponds to disabling font smoothing on the desktop.
  • on corresponds to Gnome Best shapes/Best contrast (no equivalent Windows setting).
  • gasp corresponds to Windows Standard font smoothing (no equivalent Gnome desktop setting).
  • lcd corresponds to Gnome’s subpixel smoothing and Windows ClearType.

What is the best option to choose? Well – I really don’t know. On my laptop lcd looks best. Let me know about your own experience…

Debugging shared library problems

A tip: sometimes you install stuff from source and library search order makes analyzing which library you are actually using a mess. A useful tool is ldconfig -p that will print the cache of the dynamic linker for you allowing you to understand which libraries are actually being used.

Using gpg-agent to write authenticating scripts

Sometimes you want to write a shell or other script, and that script is going to have to run under sudo. Under such conditions if the script does anything that requires authentication it will not act as expected. In plain terms it means that the regular popup for authentication will not appear. The tool maybe written in a way which deals with the problem and falls back on other authentication methods, and yet it may not. In any case what you really want is for your own authentication agent (the little program called gpg-agent which is running on almost every Linux distribution from the time you log in till the time you log out) will do the authentication. This saves you lots of clicking. Imagine that the script has to do something which requires authentication X number of times. If the script does not use an agent it will not be able to cache the pass-phrases and so you will have to retype the pass-phrase several times. It can also be the case that your authenticating agent already has your pass-phrase in it’s cache and you can save typing it yet another time.

Ok. So how do you do it? Well, in your original environment you have a variable called GPG_AGENT_INFO. This variable holds the details of how to connect to your authenticating agent. If you are running regular scripts then this variable, which is an environment variable, is automatically available to them. But if you run your scripts via ssh or sudo then it is not. Just make the variable available to those scripts. Obviously the users that these scripts will be running under will have to have the right level of permission to talk to your gpg agent. How do you make them available? One way is to pass this variable over the command line and turn it into an environment variable as soon as the script starts.

Producing MySQL dates from Perl

Ever written the occasional Perl script and wanted to insert the current date and time into a MySQL database? Here is the function to do it. This works for a column of type ‘datetime’.

# function to return the current time in mysql format
sub mysql_now() {
        my($sec,$min,$hour,$mday,$mon,$year,$wday, $yday,$isdst)=localtime(time);
        my($result)=sprintf("%4d-%02d-%02d %02d:%02d:%02d",$year+1900,$mon+1,$mday,$hour,$min,$sec);
        return $result;
}

Test procedures for new memory installations

When you buy a new computer or get one and you are not sure of the quality of memory that it has, or when you buy, upgrade or add new memory you should test it before going on to simply use it. The reason is quite intricate. In most probability the memory with will either work or won’t and if the machine works it will be a good indication that the memory works fine. But in a few of the cases your machine may exhibit very strange behavior indeed. Various programs crashing, machine freezes, kernel crashes and the like. In that case, which may happen some time after the upgrade you may fail to connect the symptoms with hardware memory issues and attribute them to other factors like OS upgrades, driver installations or other peripheral failures. This may lead you, as it has led me, on wild goose chases after non issues which will certainly drive you insane or into writing blog posts at 4 AM. So what do I suggest? A simple and short 2 step procedure to be executed when using new memory in order to be sure that your memory is functional and well configured. This can also save you money since from my experience the probability of buying faulty memory is very high (at least 15% from my statistics).

First phase is to run the ubiqitous memtest86+. This is available via the boot menu of most current linux distros. This test runs for some time and long years of using it have led me to a solid statistic according to which if memtest does not find a problem with your memory in the first 30 seconds it will not find any problems in the next 30 hours. But, then again, this is just a statistic, feel free to run this for as long as you wish. If memtest fails return the chips to the manufacturer and get new ones (if you feel that it is the chips fauls – see the note below). If it succeeds then you need to go on to the second phase of configuring the memory properly.

Once the memory is installed open your bios configuration and see how is it configured. How are its parameters (speed and 4 more numbers) set. Is it on automatic or is it on manual? Do you have heterogenous memory banks? If so what is the speed of each and what is the overall speed of the entire memory subsystem? Why should you know all of this info, you rightly ask. Well, in a perfect world you would just buy memory, plug it in and the BIOS would configure and use it properly. Alas, this is not the world we live in. In reality you usualy buy the motherboard at date X and buy the upgrade or new memory at date Y. Y is a couple of years following X. This means that the memory you are buying is too fast for your motherboard. Shouldn’t your BIOS be able to handle this? Well, yes and no. In lots of cases it does manage to handle it but in some it doesn’t and believe me, you don’t want to get stuck in the latter.

In my case I installed a DDR2 800 MHz memory on a standard Intel board which did not complain and the BIOS ran that memory at the auto-selected optimal speed of 800 MHz. There was no problem with the memory and so memtest ran smoothly. It’s just that when the 2 cores were accessing it together with high speed then put more pressure on it than memtest did and memory faults started happening.

Second test is to just see if the memory is working properly with multi core. This phase can also be used to “overclock” your RAM and to make sure that you will not be experiencing any weird side effects from this overclocking. In this phase we will test the memory in practice using the N cores. I found that the best way to achieve this is to just compile the Linux kernel on the machine using make -j N where N is the number of your cores. Whenever I had memory problems this compilation would crash in some spectacular way and in random places and so served as a clear indication of RAM issues.

If you want to learn more about memtest and dual core checkout this and this in the memtest86+ discussion board. It seems that memtest86 (as opposed to memtest86+) does have multi core support. Cool. The problem is that on Linux systems usually memtest86+ is the only one installed…

If you want to know how to compile a Linux kernel learn more at this URL.

memtester: There is a package called memtester in Linux which will test memory from user space. In Ubuntu this package is simply called memtester. It is developed here. I have tried it out and it is a fine piece of code but does not do multi-threaded testing with CPU affinity. You have to do that on your own at the command line by running two instances of memtester and assigning them to different CPUs via taskset. Another problem with memtester is that you need to let it know how much ram to test which is very hard to do since you want to test as much as possible. This means that you need to calculate the size to test which is roughly total_ram_size-(size_of_os+size_of_all_currently_running_programs) which is a hard to calculate and if you miscalculate the program may fail since it locks the memory that it gets using mlock, which you need to have permission to perform. It may also throw other programs that you are running at the time into swap (since they are not locked into memory).

The kernel compilation mentioned above is better in my opinion due to the following reasons: it uses all of your CPUs and it also uses every last bit of RAM you have since the kernel is big and during the compilation stage will use up all of your Linux cache which means all of your spare memory.

Note: as mentioned in the memtester documentation, if you do find any problems with your memory it may not be the fault of your memory chips at all. It may be the fault of your motherboard not supplying enough power for the chips or the CPU, it may be an overheating CPU, a mis-configured BIOS or other reasons.

Please leave comments if you think that I am wrong in any of the above and I promise to improve the post if you convince me that I could do better…