Monday 15 September 2014

The Deep Web


So, this has been a topic of interest for me since a few months now. The Deep Web. What exactly is the Deep Web? Now, we all use the internet, we cannot imagine our lives without it, we totally depend on the internet. Can you imagine life without Google? Or Wikipedia? No! But what if I told you that whatever we browse on the internet is merely just 4% of it. What if I told you that what we are browsing is merely called the 'Surface Web' and it is basically the websites that search engines can find or index. So now the questions that arise are: then what does the remaining 96% contain? And how does one access it?

The remaining 96% of the web is known as the Deep Web, which simply means a collection of websites or the part of the internet that has not been indexed or cataloged by search engines. Now having said that, since the Deep Web is kind of off limits, it has become a place known for criminal activities. The Deep Web has been known for numerous activities that are illegal and some of them are absolutely disturbing. Things like stolen credit card numbers, selling of drugs and weapons, prostitution, hackers and hit-men for hire and disturbing videos are often associated with the Deep Web. I know I sound negative here but this what most part of the Deep Web has to offer as of now.

Most of the pages in the Deep Web have the .Onion extension and are browsed using a special browser called TOR or The Onion Router. Various security measures, precautions like proxy servers are also used to maintain anonymity or else things can get pretty serious and even the FBI and other agencies can get involved. The Deep Web has its own EBay called The Silk Road which is currently not functional but it is one of the major sites there that was responsible for the sale of drugs and weapons. Another interesting thing about The Deep Web is that it has its own currency known as BitCoins, all transactions are completed with the exchange of BitCoins and the spending cannot be traced back to the buyers or sellers.

So just take a moment to think about what has been happening under our nose, on the internet for all these years. Researchers and scientists have been trying to find usefulness of the Deep Web and working on ways to make it more secure and legitimate. Now only time will tell what is the next step for the Deep Web. Thank you for reading and yes if you want to go off on an adventure to the Deep Web I recommend you to do some more research, be safe and make sure you do not get into trouble!

Monday 1 September 2014

Windows 8.1 Just an Update or a significant Overhaul

Many of us know that Windows 8.1 (codenamed Windows Blue) is an update for Windows 8 and Windows RT. Windows 8.1 tries to fix issues and annoyances which many Windows 8 users are facing such as missing Start button, annoying hot corners, inability to customize Metro stuff, etc.

Windows 8 is considered as a 2-in-1 OS which was made for Desktops as well as touch-enabled devices such as Tablets. Windows 8 seems one of the best OS for Tablets but it failed to attract and satisfy Desktop and Laptop users. The new touch-oriented features such as Start Screen, hot corners, Metro apps, etc don't seem to work perfectly on computers.

Also the removal of Start button and a few other classic components disappointed many Windows users and new users found it difficult to operate Windows 8 computers.

But since when Microsoft started posting about Windows 8.1 features, it seems that Windows 8.1 will help Microsoft in making Windows 8 a perfect OS for both Desktops as well as Tablets. Following is the  list all known features present in Windows 8.1 :-


    The Start button appears: One of the most confusing changes in Windows 8 was the removal of the Start menu. In fact, the Start button was completely gone, although there was an invisible clickable area where it used to be. Windows 8.1 brings back the Start button, but stops short of resurrecting the menu. Clicking on the button opens the Windows 8.1 Start screen, but a right click does give you access to some common functions like the control panel, task manager and the ability to shut down or restart the computer.

    Boot to Desktop: Users that don’t use touchscreens with Windows weren’t too pleased with Windows 8’s insistence on booting into the revamped, tile-based Start screen UI. In 8.1 Microsoft has offered a compromise of sorts. You will have the option to boot directly to the desktop.

Lockscreen :
    More Lock screen and Start screen options: Microsoft already had picture passwords, but now that feature has been expanded to allow multiple images to be pulled from the local storage or SkyDrive galleries. This effectively makes the Lock screen into a digital photo frame. You’ll also be able to capture pictures with the device’s camera, or answer Skype calls, without unlocking first. The Start screen now has more tile sizes and background colors, as well.

    Refreshed Xbox Music: One of the neat but under-appreciated features of Windows 8 is the Xbox Music integration. It allows users to stream over 30 million tracks for free. The only problem was the app’s confusing interface. In 8.1, Xbox Music is more user-friendly and supports custom playlists.

    Better search: For whatever reason, Microsoft didn’t include true universal search in Windows 8. In Windows 8.1, searching the device will pull up apps, local and SkyDrive files, and settings. Previously it only found apps. Overall, the entire search and All Apps view experience has been significantly rejigged to help out mouse-and-keyboard users.

    SnapSnap Views and better multi-monitor: Some of the Modern/Metro UI apps look cool, but the modal single app usage could be annoying. In 8.1, users can run multiple apps in the foreground with Snap. If you have a 2,560×1,440 resolution or higher monitor, you can have four apps up at once. lower than that, and only three apps can be snapped in. These figures hold for each monitor, so you can have eight Modern UI apps up across two high-resolution monitors, for example.

    The Windows Store: The new Windows Store UI is cleaner and has larger images of the apps. Currently installed apps can also auto-update in the background. Hopefully this get developers more excited about making things for Windows 8.

    Extensive SkyDrive integration: Perhaps the biggest and best change in Windows 8.1 is extensive, all-inclusive SkyDrive integration. Now, when you set up Windows 8.1, you will be prompted to turn on SkyDrive — and by doing so, SkyDrive will be integrated right into Explorer. Accessing your SkyDrive documents from the Desktop is very easy and surprisingly slick. More files and settings will now be synced/backed up by default, too.

    Souped up Metro Control Panel: For touchscreen users, one of the biggest changes in Windows 8.1 is a massively beefed up Metro Control Panel. No longer will you have to fall back to the Desktop Control Panel to change a large number of system settings!

    3D printing support: In a rare example of Microsoft being cool, Windows 8.1 now has a 3D printing API, allowing you to print directly to 3D printers from the Charms bar.

    Miracast streaming: Windows 8.1 supports Miracast, an open industry standard alternative to Apple’s AirPlay that uses WiFi Direct to stream content to nearby Miracast-enabled TVs.

Comparision between Java and C#


===========================================================

Sun was the company that introduced Java, and understandably it wanted to control its design and evolution.  Unfortunately, Microsoft also wanted a piece of the action, and in particular wanted to change Java in certain ways that suited its needs.  This situation became a legal nightmare, and eventually Microsoft decided that instead of trying to influence Java, it would simply design its own language, which is called C# (pronounced "C sharp").  It is better than Java in certain ways, but is so similar in most ways that once you have learned how to program in C#, it will be easy to transfer your knowledge to Java.

Java and C# have many attractive common characteristics, including:
===========================================================

Simplicity.  Their relative simplicity is their prime attraction as an introductory programming language.

Safety.  Java and C# were designed to be robust.  Their type systems are a major source of this robustness, and the absence of pointers removes one common source of problems.  They also provide exception handling and other methods for creating programs that are less likely to crash.

Cost.  Free implementations of both Java and C# are available.

Cross-platform.  A Java program written for one platform, such as a PC or Mac, will run on any other Java platform automatically.  Java programs are compiled into platform-independent byte-codes.  C# is not quite as platform-independent, but should at least run under Windows and Mac OS-X (but not Linux).

Object-oriented.  In Java and C#, (almost) everything is an object.   In fact, there are no functions or procedures -- just class methods.  C#'s treatment of objects is a bit more uniform than that of Java.

Client-Server and Network support.  Java and C# applets are client-server programs that run on the Internet.

Multimedia support.  The standard Java and C# libraries have support for graphic images, animation, and sound.

Ubiquitous.  Java and C# applications are spreading throughout the Internet.  Students learning these languages can find numerous examples, as well as employment opportunities.

Related to C/C++.  Java and C# are perhaps 75% of C++, and vice versa.  Students who already know C or C++ will have little difficulty learning Java or C#.   Students who learn Java or C# first will have little difficulty picking up C or C++.

==============================
Features of C# Absent in Java
==============================

    C# includes more primitive types and the functionality to catch arithmetic exceptions.

    Includes a large number of notational conveniences over Java, many of which, such as operator overloading and user-defined casts, are already familiar to the large community of C++ programmers.

    Event handling is a "first class citizen"—it is part of the language itself.

    Allows the definition of "structs", which are similar to classes but may be allocated on the stack (unlike instances of classes in C# and Java).

    C# implements properties as part of the language syntax.

    C# allows switch statements to operate on strings.

    C# allows anonymous methods providing closure functionality.

    C# allows iterator that employs co-routines via a functional-style yield keyword.

    C# has support for output parameters, aiding in the return of multiple values, a feature shared by C++ and SQL.

    C# has the ability to alias namespaces.

    C# has "Explicit Member Implementation" which allows a class to specifically implement methods of an interface, separate from its own class methods. This allows it also to implement two different interfaces which happen to have a method of the same name. The methods of an interface do not need to be public; they can be made to be accessible only via that interface.

    C# provides integration with COM.

    Following the example of C and C++, C# allows call by reference for primitive and reference types.

==============================
Features of Java Absent in C#
==============================

    Java's strictfp keyword guarantees that the result of floating point operations remain the same across platforms.

    Java supports checked exceptions for better enforcement of error trapping and handling.


=================================
Other significant differences
=================================



    There are no unsigned primitive numeric types in Java. While it is universally agreed that mixing signed and unsigned variables in code is bad, Java's lack of support for unsigned numeric types makes it somewhat unsuited for low-level programming.

    C# does not include checked exceptions. Some would argue that checked exceptions are very helpful for good programming practice. Others, including Anders Hejlsberg, chief C# language architect, argue that they were to some extent an experiment in Java and that they haven't been shown to be worthwhile [1] [2].

    C#'s namespaces are more similar to those in C++. Unlike Java, the namespace does not specify the location of the source file. (Actually, it's not strictly necessary for a Java source file location to mirror its package directory structure.)

    C# includes delegates, whereas Java does not. Some argue that delegates complicate the method invocation model, because they are handled through reflection, which is generally slow. On the other hand, they can simplify the code by removing the need to declare new (possibly anonymous) classes to hook to events.

    Java requires that a source file name must match the only public class inside it, while C# allows multiple public classes in the same file.

    C# allows the use of pointers, which some language designers consider to be unsafe, but certain language features try to ensure this functionality is not misused accidentally. Pointers also greatly complicate technologies such as Java's RMI (Remote Method Invocation), where program objects resident on one computer can be referenced within a program running on an entirely separate computer. Some have speculated that the lack of memory pointers in Java (substituted by the more abstract notion of object references) was a nod towards the coming of grid computing, where a single application may be distributed across many physical pieces of hardware.

    C# supports the goto keyword. This can occasionally be useful, but the use of a more structured method of control flow is usually recommended.

    C# has true multi-dimensional arrays, as well as the array-of-arrays that is available to Java (which C# calls jagged arrays). Multi-dimensional arrays are always rectangular (in the 2D case, or analogous for more dimensions), whereas an array-of-arrays may store rows (again in the 2D case) of various lengths. Rectangular arrays may speed access if memory is a bottleneck (there is only one memory reference instead of two; this benefit is very dependent on cache behavior) while jagged arrays save memory if it's not full but cost (at the penalty of one pointer per row) if it is. Rectangular arrays also obviate the need to allocate memory for each row explicitly.

    Java does not include operator overloading, because abuse of operator overloading can lead to code that is harder to understand and debug. C# allows operator overloading, which, when used carefully, can make code terser and more readable. Java's lack of overloading makes it somewhat unsuited for certain mathematical programs. Conversely, .NET's numeric types do not share a common interface or superclass with add/subtract/etc. methods, restricting the flexibility of numerical libraries.

    Methods in C# are non-virtual by default. In Java however, methods are virtual by default. Virtual methods guarantee that the most overridden method of an object will be called which is determined by the runtime. You always have to keep that in mind when calling or writing any virtual method! If the method is declared as non-virtual, the method to invoke will be determined by the compiler. This is a major difference of philosophy between the designers of the Java and .NET platforms.

    Java 1.5's generics use type-erasure. Information about the generic types is lost when Java source is compiled to bytecode. .NET 2.0's generics are preserved after compilation due to generics support starting in version 2.0 of the .NET Common Language Runtime, or CLR for short. Java's approach allows Java 1.5 binaries to be run in the 1.4 JRE, at the cost of additional runtime typechecks.

    C# is defined by ECMA and ISO standards, whereas Java is proprietary, though largely controlled through an open community process.

    The C# API is completely controlled by Microsoft, whereas the Java API is managed through an open community process.

    The .NET run-time allows both managed and unmanaged code, enabling certain classes of bugs that do not exist in Java's pure managed code environment but also allows interfacing with existing code.

Android 4.4 v/s Windows 8.1


=======================================================================

Windows Phone 8.1, code-named ‘Blue’, is the latest update to the Microsoft Windows Phone operating system. It was announced at Microsoft’s Build 2014 conference in April, with new devices like the Lumia 930 arriving later that month. Whereas , the most recent major Android update was KitKat 4.4, which was released on October 31, 2013, along with the Nexus 5 smartphone and this offers new features for users and app developers.

Everything on Windows is designed to be uniform with each other, so all of our apps are going to look great next to one another. On Android, we’ll find that the rows of apps and widgets are very spaced out and the UI scrolls vertically instead of horizontally. Most of the apps don’t look uniform with one another. Of course, we can always download 3rd-party widgets and icons for Android…and that takes us to our next point.

Android definitely has more app developer support for it. we can customize the device to our liking, whereas in Windows, we may not even be able to find our favorite game. Although the number of apps available on the Windows Store has grown compared to previous years, we’re still looking at almost 6x more available apps on the Google Play Store.

Windows is also a little behind in quite a few ways other than apps. They just recently added their Action Centre, which is the Windows version of a notification screen that Android added ages ago. we’re also not able to hide any of the unwanted home screen apps on Windows, whereas we can just slide them into the app drawer with Android. There’s also the customization feature Android offers with 3rd-party apps.

There are some things Windows has done better than Android though. When it comes to calling and texting on our Windows phone, we’re integrated with our Facebook profile and Outlook account, so we can see more than just our friends’ profile pictures. we can actually see their Facebook status updates from our contact list, which is a neat little feature. Windows also automatically connects us to WiFi instead of asking we whether we want to connect or not like Android does.

Both mobile operating systems have some of the same features, such as battery monitors and battery savers, Word Flow/Swype, etc. One of the main apps that Windows has over Android is Microsoft Office, which could be very important for students or professionals to have on their devices, but then again we can’t forget about Google Drive, which can accomplish the same things. Both systems are also able to run on lower-end devices as well.

Google Now and Cortana are some great options if we’re into speaking to our mobile device. Both will adapt to us over time, and will give us advice and information based on what they have gathered. One feature Cortana has over Google Now is that we can delete and edit information that it’s collected. Cortana also sounds a little more human and a little less robotic, but hey, what does that matter when both devices get the job done. One feature Google Now has is that it can be completely hands free. If our device’s display is on, our phone will respond to us when we say “OK Google”, allowing us to use our phone without even touching a button.

Previously, Android was the better mobile OS hands down, but it seems with some minor improvements, Windows has caught up. All it really comes down to at this point is what we personally prefer.


=======================================================================