What is PATH and CLASS-PATH all about in JaVa ?

What is PATH and CLASS-PATH 


Many problems in the installation and running of Java applications are caused by incorrect setting of environment variables (global system variables available to all the processes running under the system), in particular, PATH, CLASS-PATH.

PATH Variable:

PATH is basically an environment variable on Unix-like operating systems, DOS, OS/2, and Microsoft Windows, specifying a set of directories where executable programs are located. In general, each executing process or user session has its own PATH setting.
When you launch a program from the command line, the operating system uses the PATH environment variable to search for the program in your local file system. PATH maintains a list of directories for searching executable programs.
If the program cannot be found in these directories, you will get an error. For example, if Java Compiler “javac.exe” is not found in the current directory and all the directories in the PATH, you will receive this error when compiling java source code:

ERROR:javac is not recognized as an internal or external command.



 For Java applications, PATH must include the following directories:
  • JDK’s “bin” directory (e.g., “c:Program Filesjavajdk1.7.0_{xx}bin”), which contains JDK programs such as Java Compiler “javac.exe” and Java Runtime “java.exe”.
  • “c:windowssystem32” and “c:windows” which contain console programs and commands.

How To set Path in java?

There are 2 ways to set java path:
  1. Temporary.
  2. Permanent.
1.Temporary path of JDK in windows:

  • Open command prompt
  • copy the path of jdk/bin directory
  • write in command prompt: set path=copied_path

Let’s see it in the figure given below:


2.Permanent path of JDK in Windows:
  • Right click on ‘My Computers’ and open ‘Properties’.
  • In Windows Vista or Windows 7, go to “Advanced System Settings”. Else go to next step.
  • Go to ‘Advanced Tab’ and click on Environment Variables button.
  • click on new tab of user variables
  • write path in variable name and paste path of bin folder in variable value.
  • Click on OK botton.

Setting JAVA path in Linux OS:

Setting the path in Linux OS is same as setting the path in the Windows OS. But here we use export tool rather than set. Let’s see how to set path in Linux OS:

export PATH=$PATH:/home/jdk1.6.01/bin/


CLASS-PATH in java:

The CLASS-PATH is an Environment variable is one way to tell applications, including the JDK tools, where to look for user classes. Class-path in Java is the path to directory or list of the directory which is used by Class-Loaders to find and load classes in Java program.
It would be impractical to have the JVM look through every folder on your machine, so you have to provide the JVM a list of places to look.  Therefore you need to set your class-path such that, JVM should be able to locate all your resources like classes, files, jars etc.
Setting CLASS-PATH:

In order to set Classpath for Java in Windows you need to specify the value of environment variable CLASSPATH, the name of this variable is not case sensitive and it doesn’t matter if the name of your environment variable is Classpath, CLASSPATH or classpath in Java.

Steps:

    How to se Java Classpath in windows and Unix Linux

  1. Go to Environment variable window in Windows by pressing  or you can go from rig“Windows + Pause “–> Advanced –> Environment variable ht click on my computer than choosing properties and then Advanced and then Environment variable this will open Environment variable window in windows.
  2. Now specify your environment variable CLASSPATH and put the value of your JAVA_HOMElib and also include CURRENT DIRECTORY by including (dot or period sign).

Now to check the value of Java classpath in windows type “echo %CLASSPATH” in your DOS command prompt and it will show you the value of directory which is included in CLASSPATH.

  • You can also set classpath in windows by using DOS command like:
set CLASSPATH=%CLASSPATH%;JAVA_HOMElib;

This way you can set the class-path in Windows XP, windows 2000 or Windows 7 and 8, as they all come with command prompt.


Setting CLASS-PATH in LINUX:

To set Class-path for Java In Linux, you can simply export CLASSPATH=”your classpath” from either your .bash_profile or .bashrc script which will run whenever your login into your Linux or Unix Machine. Now to check the value of Java CLASSPATH in Linux type “echo ${CLASSPATH}” this will print the value of Classpath in command prompt. By using the export command, you can set the classpath for Java in Unix, Linux, Solaris, or any other UNIX operating system. 
What are main differences between CLASSPATH and PATH?

  1. Path is an environment variable which is used by the operating system to find the executables. Classpath is an environment variable which is used by the Java compiler to find the path, of classes.i.e in J2EE we give the path of jar files.
  2. PATH is nothing but setting up an environment for operating system. Operating System will look in this PATH for executables. Classpath is nothing but setting up the environment for Java. Java will use to find compiled classes.
  3. Path refers to the system while classpath refers to the Developing Environment.

Want to learn more about java?

Is a Twitter Purge of the Alt-Right Underway?

The site just banned a prominent white supremacist, who could be the first of many.

Finally bowing to public pressure, Twitter is enforcing a series of rules Monday that will potentially suspend accounts affiliated with hate groups, and lead to a long overdue crackdown on the so-called alt right, Recode reported on Sunday. 

The rules were initially announced in November but are only now going into effect. According to Recode, “Twitter will also start penalizing accounts that include ‘hateful imagery and display names,’ presumably including Nazi insignia, or those who ‘use [a] username, display name, or profile bio to engage in abusive behavior.'”

Hate groups have exploited Twitter’s incredibly lax oversight to harrass Jewish journalists; organize the Charlottesville Neo-Nazi rally, which killed Heather Heyer and injuried countless others; and help propagate Pizzagate, which led to a shooting in a DC pizza place, among other offenses.

Users have complained for nearly two years that the company has squandered its considerable resouces on cosmetic changes and expanded character limits, all the while providing a platform for racism and violence online and off. Most critically, Twitter said that in addition to banning accounts, it “would be monitoring groups’ behavior outside of the website, as it makes its decision as to which users have run afoul of its new guidelines.”

Twitter’s new policy also states that, “You also may not affiliate with organizations that — whether by their own statements or activity both on and off the platform — use or promote violence against civilians to further their causes.” 

Not ones to go quietly, many of the hate groups are already shifting to another social media platform, Gab, which has proven friendlier to white nationalists.

The purge began Monday morning. As Will Somner, Campaign Editor at the Hill and alt-right expert is documenting on his Twitter feed, so far Jared Taylor and his American Renaissance site were off as of 10am EST. 

Follow Sommer for more updates on Twitter’s progress.

 

Related Stories

  • What Is The Alt-Right ‘White Sharia’ Movement?
  • Richard Spencer’s Former Classmate Confirms He’s Always Been a Monster
  • Richard Spencer’s Former Classmate Dishes on Pure Hell of Knowing Him

Ex-CIA Director Warns ‘Inaccurate, Unprofessional’ Fox News Against Its ‘Conspiratorial Hit Job’ on Robert Mueller and the FBI

The network has attempted to discredit special counsel Robert Mueller and undermine his Russia investigation.

Ambassador James Woolsey, a former CIA director under President Bill Clinton, has put Fox and their host Lou Dobbs “on notice” amid the network’s continued attempts to discredit special counsel Robert Mueller and undermine his Russia investigation.

In a statement provided to Raw Story, Woolsey’s representative Jonathan Franks said the former CIA director is “extremely disappointed” in Dobbs, Fox Business and Fox News “over this inaccurate, unprofessional [and] conspiratorial hit job.”

“We’ve placed Fox on notice,” Franks added.

He referenced a Friday night Fox News clip in which commentator Christopher Bedford, editor-in-chief of the conservative Daily Caller website, said the special counsel lacks integrity and his probe has been “hopelessly compromised.”

Dobbs then said that he finds it “stunning that [Deputy Attorney General] Rob Rosenstein doesn’t find any need for any concern whatsoever, and even as his entire department has been ripped asunder by so many conflicts of interest.”

Ambassador Woolsey resigned from Trump’s transition team on January 5, 2017 amid tensions between the two stemming from the then-president-elect’s increasingly critical rhetoric about the intelligence community. He was subsequently interviewed in late October by Mueller regarding his knowledge of Trump’s former aide Mike Flynn, who Woolsey knew through sitting on the board of the latter’s lobbying firm. A month later, Woolsey was seen dining with the president at Mar-A-Lago.

Watch the Fox News clip that the former CIA director calls a “conspiratorial hit job” on Mueller below.

 

Related Stories

  • Rupert Murdoch Seems to Have Forgotten That He Fired Bill O’Reilly
  • Corporate Media Allowed Net Neutrality to Die in Silence
  • 12 Most Insane Rules From the Biggest Neo-Nazi Website on the Internet

YouTube TV app for Apple TV and Roku to launch Q1 2018

  • The YouTube TV app will be launching on Apple TV and Roku in Q1 2018.
  • The app was originally supposed to be out by the end of the year.
  • Older Samsung and Sony smart TVs will also see the app early next year.

One of the limiting factors when choosing an over-the-top streaming service is the ability to stream the content to your TV. Most services allow some sort of casting from your phone or tablet, but that’s not a perfect solution. To do this, you’re relying on multiple pieces of hardware that could fail at any time. Additionally, some programming like the NFL don’t currently allow mobile streams of their content.

That’s why, when YouTube TV started to roll out its standalone app, I started doing a happy dance. I can now use the app on my smart TV or Xbox, and the experience is great. It saves me on Sundays and allows me to watch my beloved (but terrible) Bengals.

Editor’s Pick

Unfortunately for some users, they’re still lacking the app. Users with Apple TV and Roku devices were slated to get the app before the end of the year. Now, with only 12 days left in 2017, we’re getting word the apps are being pushed back to Q1 2018. In addition to Apple TV and Roku, the YouTube TV app will also come to older smart TVs in the first quarter. These TVs include some Samsung sets from 2013 and 2014. Older Sony TV’s that use a Linux-based OS instead of Android TV will get the app too.

Most of YouTube TV’s competitors like Sling, Hulu, DirecTV Now, and PlayStation Vue are all on numerous platforms. YouTube TV lags a bit behind the others as they’re all on Apple TV and Roku already. Where you won’t see YouTube TV is on Amazon’s Fire TV or the PlayStation 4. Google and Amazon have had very public battles (although things do appear to be getting better) and Sony refuses to let other streaming services on its gaming system while its pushing PlayStation Vue.

Despite all of that, YouTube TV is one of the popular options for cord-cutters right now. The lineup of channels is fantastic, and at just $35 a month, it’s very affordable. The service initially rolled out to only a few cities in the US when it first launched, but that number has recently pushed past 80.

The best Total War?

I have played a few of the games in the Total War series, but I am not a big fan. Now I’m playing Total War: Arena, which isn’t a real Total War game at all, and like it much better. I’ve already played over 300 battles in the closed beta, in spite of knowing that my progress will be reset. So, why would I prefer this one?

I tend to think of games as having a core game, which in the case of Total War would be a battle, and a shell game, which is the rest of the game outside of battle. Now in the classic Total War games I feel that the core and the shell are at counter-purpose to each other. For maximum success in the shell game, the strategic map, you will always want to have battles in which your troops outnumber the enemy. You don’t want pitched battles, because even if you win, the losses will set you back in the strategic game. But if you consider the core game, the battles in which you are clearly superior in numbers and quality just aren’t any fun. The pitched battles are more fun, because they are more balanced and have a less certain outcome.

Total War: Arena gets rid of the strategic map, and thus resolves that conflict. And the matchmaking makes every battle balanced. I don’t really need to care about losses, because they are automatically bought back with silver, and playing aggressively earns you more silver than your losses cost you. The shell game around the battles is a game of simple progression of units and commanders. And as I said, I don’t even care much about that, as it will be reset at the end of the closed beta anyway.

Of course I can see how the battles in Total War: Arena might not be for everyone. You only control 3 units, and the action is mostly tactical. Due to the usual lack of coordination when playing with random strangers, the strategic positioning on the battle map is mostly non-existing. In fact the game appears to be designed to aggravate the kind of player that doesn’t suffer fools lightly, because there is friendly fire: Ranged units are not very accurate, and artillery is very slow and might fire on a spot where the enemy has moved away from and an ally moved into, so even with the best of intentions it is nearly impossible to completely avoid causing friendly fire when playing ranged. You can even suffer friendly fire from spearmen or pikemen in phalanx formation. Some players are extremely sensitive to losing units to friendly fire, or losing a battle due to allies playing badly or without coordination. I wouldn’t recommend Total War: Arena to them. Me, I’m having a lot of fun and even bought a founder pack.

Former Fox News Analyst Tamara Holder Shares Explicit Details of Sexual Assault

She spoke out after claiming Rupert Murdoch violated the terms of her settlement.

Former Fox News analyst Tamara Holder publicly revealed the details of her workplace sexual assault to CNN, because she believes Rupert Murdoch violated the terms of her settlement agreement in an interview where he described sexual misconduct allegations at Fox News as “nonsense.”

“Fox News ruined people’s lives,” Holder said. “He [Murdoch] ruined my life. I don’t have a job in TV anymore because the place that he has secured down like Fort Knox allowed abusive predators to work.”

She excoriated Murdoch for trying to downplay the pervasive culture of sexual predation at Fox News and dismiss some accounts as being “flirting.”

“Let me be clear. I had a man pull out his penis in his office and shove my head on it. That was not flirting, that was criminal. That was not sexual harassment,” Holder explained.

She said she expects to be sued for speaking out about the culture of sexual misconduct at Fox News, but believes she hasn’t violated the terms of her settlement.

“What Mr. Murdoch said, in my opinion as a lawyer, not as a victim or a survivor, as a lawyer, is that this gives me a legal right to respond,” she said. “And I’m responding not for myself, but on behalf of every woman in America who has been abused.”

Watch the full segment below.

 

Related Stories

  • The Fempire Strikes Back with #MeToo
  • DeRay McKesson Is Suing Fox News and Jeanine Pirro for Defamation
  • The GOP’s Favorite Weapon to Hijack Our Elections

Understanding Synchronous and Asynchronous JavaScript – paRt_1 : JavaScript – its DiFFereNt

Javascript logo
In JavaScript Synchronous and Asynchronous are very important concepts. Beginners might find them difficult to learn.
When two or more things happen at same time then it is Synchronous and when they don’t that’s Asynchronous. These definitions are easy to understand but it’s complicated than it looks from here. So let’s dig a little deeper. 
You’d probably call a normal function in JavaScript synchronous, right? And if it’s something like setTimeout() or AJAX that you’re working with, you will refer to it as being asynchronous, yes? What if I tell you that both are asynchronous in a way?
Let’s understand with an example. We’ll get help from Mr. K,

Scenario 1:-> Mr. K is trying Synchronicity 

Here’s the setup:
  1. Mr K is someone who can answer tough questions, and carry out any requested task.
  2. The only way to contact him is through a phone call.
  3. Whatever question or task you got, in order to ask Mr K’s help to carry it out; you call him.
  4. Mr K gives you the answer or completes the task right away, and lets you know it’s done.
  5. You put down the receiver feeling content and go out on a date.
What you’ve just carried out was a synchronous (back and forth) communication with Mr K. He listened as you were asking him your question, and you listened when he was answering it.

client calling server

Scenario 2:-> Mr. K isn’t happy with Synchronicity 

Since Mr K is so efficient, he starts receiving many more calls. So what happens when you call him but he’s already busy talking to someone else? You won’t be able to ask him your question – not till he is free to receive your call. All you will hear is a busy tone.

So what can Mr K do to combat this?
Instead of taking calls directly:
  1. Mr K hires a new guy, Mr J and gives him an answering machine for the callers to leave messages.
  2. Mr J’s job is to pass on a message from the answering machine to Mr K once he knows Mr K has completely finished processing all previous messages and is already free to take a new one.
  3. So now when you call him, instead of getting a busy tone, you get to leave a message for Mr K, then wait for him to call you back (no date time yet).
  4. Once Mr K is done with all the queued up messages he received before yours, he will look into your issue, and call you back to give you an answer.
Now here lies the question: were the actions so far synchronous or asynchronous?
It’s mixed. When you left your message, Mr K wasn’t listening in to it, so the forth communication was asynchronous.
But, when he replied, you were there listening, which makes the return communication synchronous.
Until now you must have understand synchronicity in communication. It’s time to bring in JavaScript in the picture.

JavaScript An Asynchronous Language

When someone labels JavaScript asynchronous, what they are referring to in general is how you can leave a message for it, and not have your call blocked with a busy tone.
The function calls are never direct in JavaScript, they’re usually done via messages
JavaScript uses a message queue where incoming messages (or events) are held. An event-loop (a message dispatcher) sequentially dispatches those messages to a call stack where the corresponding functions of the messages are stacked as frames (function arguments & variables) for execution.
The call stack holds the frame of the initial function being called, and any other frames for functions called via nested calls on top of it .

JavaScript Call Stack
JavaScript Call Stack

When a message joins the queue, it waits until the call stack is empty of all frames from the previous message, and when it is, the event-loop de-queues the previous message, and adds the corresponding frames of the current message to the call stack.
The message waits again until the call stack becomes empty of its own corresponding frames (i.e. the executions of all the stacked functions are over), then is de-queued.
Consider the following code:

function foo(){}
function
bar(){
foo();
}
function
baz(){
bar();
}
baz();

The function being run is baz() (at the last row of the code snippet), for which a message is added to the queue, and when the event-loop picks it up, the call stack starts stacking frames for baz(), bar(), and foo() at the relevant points of execution.

Push action in Call Stack

Once the execution of the functions is complete one by one, their frames are removed from the call stack, while the message is still waiting in the queue, until baz() is popped from the stack.

Pop Action in Call Stack


Remember, the function calls are never direct in JavaScript, they’re done via messages. So whenever you hear someone say that JavaScript itself is an asynchronous programming language, assume that they are talking about its built-in “answering machine”, and how you’re free to leave messages.

But what about the specific asynchronous methods?

So far I’ve not touched on APIs such as setTimeout() and AJAX, those are the ones that are specifically referred to as asynchronous. Why is that?
It’s important to understand what exactly is being synchronous or asynchronous. JavaScript, with the help of events and the event-loop, may practice asynchronous processing of messages, but that doesn’t mean everything in JavaScript is asynchronous.
Remember, I told you the message didn’t leave until the call stack was empty of its corresponding frames, just like you didn’t leave on a date until you got your answer — that’s being synchronous, you are there waiting until the task is complete, and you get the answer.
Waiting isn’t ideal in all scenarios. What if after leaving a message, instead of waiting, you can leave on the date? What if a function can retire (emptying the call stack), and its message can be de-queued even before the task of the function is complete? What if you can have code executed asynchronously?
This is where APIs such as setTimeout() and AJAX come into the picture, and what they do is… hold on, I can’t explain this without going back to Mr K, which we’ll see in the second part of this article. Stay tuned…

Google expands booking features for travelers with price tracking and deals

Google

We are a week and a half away from Christmas, but it’s still not too late to fly away for the holidays — it’ll just cost a pretty penny to do so. If you’re okay with that, Google updated its suite of travel applications and services to feature price tracking and deals.

Starting with Google Flights, the search giant is leveraging its machine learning chops to take a look at historical price data to let you when is the best time to book a flight. Once you let Google Flights know where you want to go, you can choose to have it send you tips like “prices won’t drop further” or “prices are less than normal.” That way, you can be better informed as to whether you should book your flight now or wait a bit longer.

Editor’s Pick

Moving right along, Google’s hotel search results offer similar information. Because you’re dealing with hotels, Google lets you know if rates for a specific room are higher or if the surrounding area is busier due to a local event. That way, you can better plan when to make a hotel room reservation, though you can opt for email alerts whenever prices fluctuate.

Finally, Google’s Trips app now features a “Discounts” section. As the name implies, the section nets you deals for things like tickets, tours, activities, and attractions. Discounts vary based on where you’re located, though the app also leverages Google’s travel-booking features.

Overall, the new features sound very familiar to what services like Kayak and Hopper already offer. The main difference is, since many folks are already deeply immersed in Google’s ecosystem, these are just more reasons why they shouldn’t leave that ecosystem.

The flight and hotel price tracking are currently rolling out worldwide, whereas the Discounts tab inside of the Trips app will be available in English, French, Italian, German, Spanish, and Portuguese.

Comparing Bootstrap With Google’s Material Design Lite : Bootstrap – ResponSive Design

Bootstrap vs Materialize

What is Materialize and Bootstrap?


Both Google’s Materialize and Twitter’s Bootstrap are front end CSS frameworks for webpages. Both are open source. In the question“What is the best CSS framework?” Bootstrap is ranked 1st while Materialize is ranked 5th. The most important reason people chose Bootstrap is:
Bootstrap is developed to be instantly compatible with all sizes of screens, so you don’t have to worry about which device the user is accessing your site from. Yet if you prefer, you can disable responsiveness of Bootstrap.

Bootstrap:

Bootstrap is a free and open-source front-end web framework for designing websites and web applications. It contains HTML and CSS-based design templates for typography, forms, buttons, navigation and other interface components, as well as optional JavaScript extensions. Unlike many web frameworks, it concerns itself with front-end development only.


Materialize:

Created and designed by Google, Material Design is a design language that combines the classic principles of successful design along with innovation and technology. Google’s goal is to develop a system of design that allows for a unified user experience across all their products on any platform.


Major Differences!

Philosophy

  • Bootstrap was originally built by Twitter with the purpose of making it easy to build responsive websites. It gives you a lot of components and customization options for making web apps.
  • Material Design Lite is a way for Google to spread its material design concept to the web. It gives you only the base building blocks for building material apps. The rest is up to the developer.

Development Experience

  • Bootstrap has a very detailed documentation. Development involves copy pasting from the examples and getting a usable result fast.
  • MDL is built around BEM, and components are built by combining multiple classes. This approach gives a great deal of control, but can sometimes lead to unwieldy HTML.

Components

  • In Bootstrap, almost all built-in HTML elements are styled and can fit nicely together in a layout. It gives you a great number of additional components for any type of design.
  • MDL gives you fewer components than Bootstrap, but they are all focused on building modern Material Design applications. They come with animations and beautiful default styles.

Layout

  • Bootstrap has an advanced grid system with offsets, column wrapping, hiding and reordering of columns.
  • MDL has a more primitive grid that gets the job done most of the time, but doesn’t support advanced features.

Design

  • Bootstrap gives you a passable default design which we have grown tired of by now, but there are plenty of wonderful themes to chose from.
  • MDL looks fresh and features bold colors and animations. It dictates exactly how your web app should look like and gives you a limited opportunity for customization by choosing base and accent colors.

Community

  • Bootstrap has been around for quite some time and has an enormous community, which produces themes, plugins and blog posts.
  • MDL came out only recently but has already become quite popular on GitHub. However it is still in its early days, and most of the time you are on your own.

Interest Over Time

    trends.embed.renderExploreWidget(“TIMESERIES”, {“comparisonItem”:[{“keyword”:”Bootstrap”,”geo”:””,”time”:”2004-01-01 2017-06-12″},{“keyword”:”Materialize”,”geo”:””,”time”:”2004-01-01 2017-06-12″}],”category”:0,”property”:””}, {“exploreQuery”:”date=all&q=Bootstrap,Materialize”,”guestPath”:”https://trends.google.com:443/trends/embed/”});

    < 1 > Grid 

    Grid is the most important part of the framework as it makes the webpage responsive for all devices. 
    • The Bootstrap grid splits the page into 12 equally sized columns. Depending on the viewport width, four different size classes are applied – extra small (from 0 to 768px wide), small (768px to 992px), medium (992px to 1200px), and large (1200px+).
    • MDL has a similar grid system, but it only has three sizes – phone (0 to 480px), tablet (480px to 840px) and desktop (840px+). MDL desktop has 12 columns, tablet has 8 columns and phone has only 4 columns.
    comparison between materialize and bootstrap
    Grid system in Bootstrap and MDL
    comparison between materialize and bootstrap
    Grid changes in Bootstrap 
    comparison between materialize and bootstrap
    Grid changes in MDL

      Docs: Bootstrap Grid | MDL Grid
      Learn Bootstrap’s Grid system

      < 2 > Header Navigation

      Headers in Bootstrap are called Navbars. They begin collapsed in mobile views and become horizontal when there is enough space for them. Inside, you can nest an array of different elements that can be positioned with the help of classes.

      Similarly, MDL header navigations start off collapsed behind a hamburger menu and expand with the growth of the viewport. They too have different stylings and possible positions.

      Header navigation bars in Bootstrap and MDL

      Bootstrap’s collapsible menu
      A hamburger menu in MDL

      Docs: Bootstrap Navbars | MDL Navigation

      < 3 > Footer

      Bootstrap doesn’t actually have separate footer components, while Material Design Lite has two options, a mini and a mega footer. For this example, we’ve translated the default MDL design to Bootstrap, using the grid and a bit of extra CSS.
      Footers in Bootstrap and MDL

      Bootstrap’s menu in mobile’s view

      MDL’s mini footer

       Docs: MDL Footers

      < 4 > Tabs

      Both frameworks use pretty similar syntax to create selectable tabs with different content. A number of links for swapping between the tabs, and an array of divs, selectable by id, for storing the content. They also both require JavaScript to work (Bootstrap requires jQuery as well).
      Tabs in Bootstrap and MDL
      Docs: Bootstrap Tabs | MDL Tabs

      < 5 > Buttons

      Bootstraps default buttons are rectangular and have a bunch of size options. They can have their color changed via CSS or with the modifier classes. Another unique feature to Bootstrap is the split button which is half button, half drop-down.
      MDL offers both rectangular and circular buttons. Google has a guide on how and in which situations to use the different types of buttons. All buttons in MDL support the ripple animation effect.
      Different Buttons in Bootstrap and MDL
      Docs: Bootstrap Buttons | MDL Buttons

      < 6 > Tables

      In Bootstrap responsiveness is achieved using a scrollbar at the bottom of the table. MDL hasn’t added responsiveness to their tables yet. But they added different styles to the tables to make it attractive!  
      Tables in Bootstrap and MDL
      Docs:Bootstrap Tables | MDL Tables 

      < 7 > Forms

      • Bootstrap’s forms support more types of input elements and have classes to make alignments to labels and inputs but it doesn’t have inbuilt library for validation.
      • While MDL has few input elements but the ones with material animation support to make them attractive and fun! they have pattern matching and verification as well. MDL support validation. 
      Forms in Bootstrap and MDL

      Docs: Bootstrap forms | MDL forms

      < 8 > Drop-down Menu

      • Here Bootstrap give you an advantage by making a button split which makes half f the button dropdown menu and half normal button.
      • While MDL gives smooth animation effects compared to Bootstrap’s technique! 
      JavaScript is needed in both the cases.
      Dropdown menu styles in Bootstrap and MDL
      Docs:Bootstraps Menu | MDL Menu

      < 9 > Tool-tips

      Bootstrap gives you the best experience in case of Tool-tips. It gives you the options to show the tool-tip at at top or at bottom or at right or at left or you could just popover it on click!
      MDL has gone with simple approach here. Just two options small and Large design. 
      Tool-tips in Bootstrap and MDL 

      Docs: Bootstrap’s Tool-tips | Bootstrap’s Popover | MDL Tool-tips

        < 10 > Icons
      Bootstrap comes with the Glyphicons icon font, which gives you over 250 pretty icons to choose from. They come bundled with the bootstrap CSS file and no special setup is needed.
      MDL uses a set of icons that Google released some time ago called Material Icons. This is a huge set of nearly 800 icons. They are not bundled with MDL so you need to link it in the HEAD section of your page:

      <link rel=stylesheet href=https://fonts.googleapis.com/icon?family=Material+Icons>

      Icons in Bootstrap and MDL

      Conclusion

      By all means Google’s Materialize Lite is shaping up as a good front-end framework. It makes the webpage look cooler! It is still the early days, but the fact that it is made by Google gives you confidence that it will always conform to the latest material design spec.
      if you don’t find Material Design appealing, there is Bootstrap with its large community. You can even get the best of both worlds by using one of the material themes that are available for it.
      Learn Bootstrap!

      D&D Reader

      Another app for players of Dungeons & Dragons has been announced, called D&D Reader. Basically it is a kind of e-book reader only for D&D rulebooks and adventures. Instead of bringing a backpack full of books to your game, you bring a single tablet with all the information on it. And to some extent it is searchable, which isn’t the case for paper books.

      Now a few years ago I would have said that this is a brilliant idea, exactly what I needed. But since then I spent $280 to get access to all D&D books in digital form on D&D Beyond. As long as I have internet access, that gives me the same functionality: Able to read any D&D book on my tablet and search it. But the new D&D reader app is from a different company. So, you guessed it, if I wanted to use that app as well, I would need to pay *again* for all those books. Which would be the third time, since I already own the books in paper format and on D&D Beyond. Just to have offline access. No thanks!

      Wizards of the Coast really need to rethink their strategy on this one. In this time and age it is a great idea to have content available in different ways, paper, online, and offline digital. But a full collection of D&D books is already expensive to buy once. The paper books should include a coupon for all digital versions. I was already exaggerating by buying the books twice, but who on earth is going to go for a third version at full price?