World of Warcraft today

I got a “gift” from Blizzard, 7 days of free subscription to WoW. Not that I would have needed it, I still have several tokens I could exchange for game time. But it did what it was supposed to do, prompt me to update the client and play World of Warcraft for an hour or so. Unfortunately for Blizzard that didn’t get me hooked again. Instead I got rather bored with running errands, aka quests, and logged out again.

One major difficulty I have with World of Warcraft is that the buttons I have for each character have changed so often over the life of this game. Which means that even on my main character which I have played literally for thousands of hours I can’t remember the optimum sequence of button presses after a year and a half of not playing the game. That doesn’t appear to matter for quests, I can do those with just randomly mashing buttons, but it is a serious barrier to re-entry if I wanted to play again.

The next thing that hit me was getting billions of artifact points thrown at me for doing not much. It basically made all the effort I had previously put into artifact weapons seem pointless. On the other hand, I had stopped playing with only part 1 of the achievement necessary for flying done, and it turns out that part 2 still needs weeks of grinding to get to. No thanks!

In summary, World of Warcraft has changed the details frequently (which makes it hard to remember how to play well), while not changing the basic structure of the game enough (which makes it hard to find a renewed interest in playing). I still don’t think I will buy the next expansion, Battle for Azeroth.

Paul Krugman: The GOP Is Completely, Hopelessly Corrupt

It’s not just Republican donors that stand to rake in millions from the party’s latest tax bill.

It’s a common misconception in liberal media circles that Republicans govern solely to satisfy their wealthy donors. They do that too, but as the recent #CorkerKickback controversy reveals, they’re as motivated by financial self-interest as the president of the United States.

In his Tuesday column, the New York Times’ Paul Krugman argues that the GOP grift is even broader and deeper than the public realizes. The Tax Cuts and Jobs Act, which is expected to be signed into law as early as this week, has a 26 percent approval rating, according to the latest Monmouth University poll. While they may not grasp its particulars, most Americans understand they will ultimately be paying more to finance tax cuts for multinational corporations and the 1 percent. What they may not know is that Republican officials themselves stand to profit handsomely from this legislation. 

“Raw bribery probably isn’t the issue, although insider trading based on close relationships with companies affected by legislation may be a much bigger deal than most realize,” Krugman writes. “But the revolving door is an even bigger deal. When members of Congress leave their positions, voluntarily or not, their next jobs often involve lobbying of some kind. This gives them an incentive to keep the big-money guys happy, never mind what voters think.”

The malfeasance of Sen. Bob Corker (R-TN) is even more transparent. After initially voting against the GOP tax bill, citing concerns about the trillion dollars that would be added to the deficit over the next decade, Corker abruptly reversed course last week. The Congressional Budget Office hasn’t issued a new report, so what changed?

Well, Republicans inserted a new provision into the legislation adding real estate companies to the list of “pass-through” businesses entitled to a huge tax break. The language directly benefits Donald Trump and—wait for it—Bob Corker, who owns a significant amount of income-producing property. Hence, the #CorkerKickback.

“We may never know exactly what happened with Corker,” Krugman concludes. “But there’s every reason to believe that Republicans in Congress are taking their cues from a president who openly uses his office to enrich himself. Goodbye, ideology; hello, corruption.”

Read Paul Krugman’s column at the New York Times.

 

Related Stories

  • Trump Judicial Nominee Withdraws After GOP Senator Publicly Humiliates Him
  • Trump Considered Rescinding His Neil Gorsuch Nomination Because He Wasn’t Sufficiently ‘Loyal’: Report
  • Mueller Russia Investigation Will Continue Through 2018: Report

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.

Don’t want to battle for Azeroth

World of Warcraft announced a 7th expansion called Battle for Azeroth. At this point in time I don’t feel any interest in that expansion. If it came out today, I wouldn’t buy it. As it is coming out in a year, there is still time for me to change my mind. But there is a greater than zero probability that this will be the first World of Warcraft expansion I’m opting out of.

SailCraft Online

The game of Battleship as played with pen and grid paper is a hundred years old. 50 years ago Milton Bradley turned it into a board game with plastic pegs. There have been various computer versions, and even a rather horrible movie in 2012. Now I found a mobile game called SailCraft or SailCraft Online, which is basically Battleship on speed with all modern Pay2Win conveniences.

The original game is strictly symmetrical, except for the player moving first having a slight advantage. But in SailCraft the two players don’t have the exact same fleet, nor do they even have the same size of grid. Instead your grid size and your special abilities depend on the ships you choose for your fleet, limited by the level of your mothership. Ships come in common, uncommon, rare and legendary types, and the more of the same ship you find, the higher you can upgrade them in level. Each ship has an active and a passive ability, and stats for how many spaces it adds to your grid and how much “luck” you have going first. Active abilities allow you to do different things than just targeting space D4 and hoping you hit the battleship: For example you can fire a torpedo, send out a bomber, or use a telescope to scout some grid spaces. There are also counter-abilities like a torpedo-net or anti-aircraft guns.

Overall that makes the game a lot more dynamic to play than the original. But obviously the player who has collected more powerful ships has a distinctive advantage, having more powerful active abilities and a larger grid on which to hide his ships. Fortunately there is a matchmaking system that prevents you getting paired against the top players while you are still in the lower leagues. Which makes the game okay playable without paying any money, or just buying the occasional special offer. Having endless amount of time isn’t much help, as you can only grind a certain number of chests full of ships every day.

I don’t think there is any game left that didn’t get this sort of monetization make-over in a mobile version, frequently based around collectible items. I’ve even seen coin dozer games that work like that. SailCraft has the advantage that the underlying game of Battleship is a relatively intelligent one, and you can actually outthink your opponent to a certain degree. I just don’t think I’ll ever make it to the very top, because that appears to require some serious spending, which I am not willing to do.

Simplified : Client_Server – Socket Programming in Java

Client_Server – Socket Programming in Java

java socket programming



Client -server communication

At a basic level, network-based systems consist of a server , client , and a media for communication. A computer running a program that makes a request for services is called client  machine. A computer running a program that offers requested services from one or more clients is called  server machine.

Client-Server Architcture


What are Sockets?

In Client-Server architecture, you have two processes (running client-Server programs) that want to communicate with each other. For that, they have to establish a communication link between themselves. There is a network available,they just need to connect to this network , for this they use sockets.

Sockets in client server architecture

A socket is one endpoint of a two-way communication link between two programs running on the network.

An endpoint is a combination of an IP address and a port number. Every TCP connection can be uniquely identified by its two endpoints. That way you can have multiple connections between your host and the server.
The java.net package in the Java platform provides a class, Socket, that implements one side of a two-way connection between your Java program and another program on the network. 

How do I Open a Socket ?

If you are programming a client, then you would open a socket like this:
 Socket s;
s
= new Socket("Machine name", PortNumber);
Where Machine name is the machine you are trying to open a connection to, and Port-Number is the port (a number) on which the server you are trying to connect to is running. When selecting a port number, you should note that port numbers between 0 and 1,023 are reserved for privileged users (that is, super user or root). These port numbers are reserved for standard services, such as email, FTP, and HTTP. When selecting a port number for your server, select one that is greater than 1,023!


It is a good practice to handle exceptions. The above can be written as:

    Socket s;
try {
s
= new Socket("Machine name", PortNumber);
}
catch (IOException e) {
System.out.println(e);
}
If you are programming a server, then this is how you open a socket:

    ServerSocket ss;
try {
ss
= new ServerSocket(PortNumber);
}
catch (IOException e) {
System.out.println(e);
}
When implementing a server you also need to create a socket object from the ServerSocket in order to listen for and accept connections from clients.

Socket clientSocket = null;
try {
serviceSocket
= ss.accept();
}
catch (IOException e) {
System.out.println(e);
}

How do I create Buffered Reader?

Java BufferedReader class is used to read the text from a character-based input stream. It can be used to read data line by line by readLine() method. It makes the performance fast. 
    try {
BufferedReader br = new BufferedReader(new InputStreamReader(ss.getInputStream()));

}
catch (IOException e) {
System.out.println(e);
}

How do I create an output stream?

On the client side, you can create an output stream to send information to the server socket using the class  of java.io:
    PrintStream output;
try {
OutputStream ostream = sock.getOutputStream();
DataOutputStream dos = new DataOutputStream(ostream);

}
catch (IOException e) {
System.out.println(e);
}
The class DataOutputStream allows you to write Java primitive data types; many of its methods write a single Java primitive type to the output stream. The method writeBytes is a useful one.

How do I Close a Socket ?

On the client side:

    try {
output
.close();
input
.close();
s
.close();
}
catch (IOException e) {
System.out.println(e);
}

On the server side:

    try {
output
.close();
input
.close();
ss
.close();
}
catch (IOException e) {
System.out.println(e);
}
Let’s see java code for one-way communication using socket programming:

Client Side Code:
import java.net.Socket; 
import java.io.OutputStream;
import java.io.DataOutputStream;

public class SCPTL
{
public static void main(String args[]) throws Exception
{
Socket sock = new Socket("localhost", 5000);
String message1 = "Learn-Intern-Certify from SCPTL";

OutputStream ostream = sock.getOutputStream();
DataOutputStream dos = new DataOutputStream(ostream);
dos.writeBytes(message1);
dos.close();
ostream.close();
sock.close();
}
}
Server Side Code:
import java.net.ServerSocket;            
import java.net.Socket;
import java.io.*;

public class SERVER
{
public static void main(String args[]) throws Exception
{
ServerSocket sersock = new ServerSocket(5000);
System.out.println("server is ready"); // message to know the server is running

Socket sock = sersock.accept();

BufferedReader br = new BufferedReader(new InputStreamReader(sock.getInputStream()));

String message2 = br.readLine();
System.out.println(message2);
sock.close(); sersock.close();
}
}

Output:

Client:

Client side output
Server:

Server side output

Want to learn more about java?

Test Your SQL Basics – Part_3

Manipulating Data Questions

1. What all operations can MERGE statement perform in SQL?

  1. INSERT
  2. DELETE
  3. GROUP BY
  4. None of the above

2.Which of following commands is a DDL (Data Definition Language) command but is often considered along with DML commands?
  1. DELETE
  2. INSERT
  3. TRUNCATE
  4. None of the above

3. What among the following is a TRUNCATE statement equivalent to? (Choose the most suitable answer)
  1. To a DELETE statement
  2. To an UPDATE statement
  3. A DELETE statement without a WHERE clause
  4. None of the above

4.Which of the following situations indicate that a DML operation has taken place?
  1. When new rows are added to a table
  2. When two queries are combined
  3. When a table is truncated
  4. None of the above

5.What is true about the keyword VALUES in INSERT statements?
  1. VALUES can add multiple rows at a time during the INSERT
  2. VALUES can add only 100 rows at a time during the INSERT
  3. VALUES is mandatory to be used if we use the keyword INSERT
  4. VALUES add only one row at a time

6. Which of the following commands is used to save the changed data in a table permanently?
  1. ROLLBACK
  2. COMMIT
  3. INSERT
  4. UPDATE

7. Which of the following commands / statements would end a transaction?
  1. COMMIT
  2. SELECT
  3. SAVEPOINT
  4. CREATE

8.What happens when a transaction is committed?
  1. The changes made during the transaction are saved for a particular user session
  2. The changes made during the transaction are discarded
  3. If the transaction is a DDL, the commit doesn’t work
  4. None of the above

9. Which of the following reasons will the best one on the usage of string?
  1. Using sub-queries
  2. Syntax errors
  3. Access permissions
  4. Constraint violations

Answer
1-(A,B),   2-C,   3-C,   4-A,  5-D,   6-D,   7-(A,D),   8-D,   9-(C,B,D)

function mco() { var x = document.getElementById(‘myDIV’); if (x.style.display === ‘block’) { x.style.display = ‘none’; } else { x.style.display = ‘block’; } }


Using DDL Statements Questions

1.DDL statements are used for which of the following Oracle database objects?
  1. Tables
  2. Sub-queries
  3. Rows
  4. Columns

2.What is the basic unit of storage in Oracle Database that contains data?
  1. View
  2. Column
  3. Query
  4. Table

3.Which of the following database objects improves the performance of some queries?
  1. Table
  2. Synonym
  3. View
  4. Index

4. When a table can be created?
  1. When the database is not being used by any user
  2. When the database is newly created
  3. It can be created any time, even when a user is using the database
  4. None of the above

5. What is true about a table?
  1. It is not mandatory to specify the size of a table
  2. The size of each table is the same
  3. A table can be modified online
  4. None of the above

6. A table named 123_A is created for storing the number of employees in an organization. What is wrong in the name of the table?
  1. The name of a table cannot start with a digit
  2. Nothing is wrong in this name.
  3. You cannot use an underscore while naming a table
  4. None of the above

7. What among the following are the pre-requisites for creating a table?
  1. CREATE TABLE privilege
  2. Storage space
  3. Data in the table
  4. None of the above

8. What is the syntax for creating a table?
  1. CREATE TABLE [schema.] table (column datatype [DEFAULT expr] [,..] );
  2. CREATE TABLE INTO [schema.] table (column datatype [DEFAULT expr] [,..] );
  3. CREATE TABLE VALUES [schema.] table (column datatype [DEFAULT expr] [,..] );
  4. None of the above

9. What is true about a namespace?
  1. It is a group of object types
  2. Within a namespace, all the object names should be uniquely identified by schema and name
  3. The same type of objects in different namespaces can share the same name
  4. All of the above

10. Which of the following object types share the same namespace?
  1. Synonyms
  2. Table
  3. Views
  4. All of the above

11. Which of the following are the data types for date and time data?
  1. TIMESTAMP
  2. INTERVAL DAY TO SECOND
  3. TIMESTAMP WITH LOCAL TIMEZONE
  4. All of the above

12. Which of the following data types are for large objects?
  1. CLOB
  2. BLOB
  3. RAW
  4. All of the above

13. What will happen if the inserted value is of a smaller length as defined for a VARCHAR2 data type column?
  1. It will throw an ORA error
  2. It will get inserted successfully and the value will take up as much space as it needs.
  3. It will get inserted and the remaining space will be padded with spaces
  4. None of the above

14. What happens when a table which is marked Read Only is attempted for drop?
  1. It will throw an error
  2. It will no longer remain Read Only but cannot be dropped either
  3. It will be dropped without errors
  4. It will remain un-touched

15. Which of the following data types cannot be used with a GROUP BY and an ORDER BY clause?
  1. CLOB
  2. VARCHAR2
  3. CHAR
  4. LONG

16. How many LONG columns can a table contain?
  1. None
  2. Maximum 2
  3. Minimum 2
  4. Only one

Answer
1-A,   2-D,   3-D,   4-C,  5-(A,C),   6-A,   7-(A,B),   8-A,   9-D,  10-D,   11-D,  12-(A,B),  13-B,  14-C,  15-D,  16-D

function mct() { var x = document.getElementById(‘myDIV2’); if (x.style.display === ‘block’) { x.style.display = ‘none’; } else { x.style.display = ‘block’; } }


Creating Other Schema Objects Questions

1. What among the following is true about synonyms?
  1. PUBLIC and PRIVATE synonyms can have the same name for the same table
  2. DROP SYNONYM will remove a synonym
  3. DROP PUBLIC SYNONYM can be executed only by a SYSDBA
  4. None of the above

2. What is true about creating a view? (Choose the most appropriate answer)
  1. A view can only be created from a table
  2. A view can only be created from one table
  3. A view can be created from one or many tables or views
  4. None of the above

3. Which of the following privileges are required to create views in one’s own schema?
  1. CREATE TABLE system privilege
  2. CREATE VIEW system privilege
  3. ALTER VIEW system privilege
  4. CREATE ANY VIEW system privilege

4.How is a view stored in the data dictionary?
  1. As a WHERE clause
  2. As a CREATE statement
  3. As an UPDATE statement
  4. As a SELECT statement

5.Which of the following can contain single-row functions?
  1. Inline Views
  2. Simple Views
  3. Complex Views
  4. Composite Views

6.When can the rows from a view be removed?
  1. Deletion of rows through a view is not possible
  2. It should be a simple view
  3. It should be a complex view
  4. None of the above

7.When can the data in a view not be modified?
  1. When there are group expressions
  2. When there is a GROUP BY clause
  3. When ROWNUM is used in the view query
  4. All of the above

8.What is true about the WITH CHECK CONSTRAINT?
  1. INSERTs or UPDATEs performed through the view cannot create rows that the view cannot select
  2. Only INSERTs performed through the view cannot create rows that the view cannot select
  3. Only UPDATEs performed through the view cannot create rows that the view cannot select
  4. None of the above

9.How can you prevent DML operations on a View?
  1. By defining a WITH CHECK OPTION constraint
  2. By defining a WITH READ ONLY option
  3. Neither of A nor B
  4. None of the above

10.What is true about the above statement?
  1. The view will not be created
  2. INSERT operation on this view an will throw an ORA error
  3. On UPDATING the rows for all the employees in department 100, an ORA error will be thrown
  4. None of the above

11.How many rows can be deleted from the view as shown above?
  1. All rows of the view
  2. All the rows of only the department 100
  3. No rows
  4. None of the above

12.What is true about sequences?
  1. It generates integers
  2. It is a shareable object
  3. Can be used to create a PRIMARY KEY value
  4. All of the above

13.What can be the last value generated by this sequence?
  1. 0
  2. 100
  3. 101
  4. 9999

14.What is true about NEXTVAL pseudo column?
  1. It re-generates the CURRVAL of a sequence
  2. It returns the next available sequence value
  3. It can return duplicate values
  4. It generates the same values for different users

15.What is true about CURRVAL pseudo column?
  1. CURRVAL can be used before NEXTVAL with respect to a sequence
  2. CURRVAL gives the current value of a sequence
  3. CURRVAL can give duplicate values
  4. None of the above

16.Which of the following is used by an index to locate the data quickly?
  1. ROWNUM
  2. ROWID
  3. Sequence
  4. None of the above

17.What happens when there is no index on a column of a table?
  1. The data is located quickly
  2. There is a full table scan
  3. The table cannot be created
  4. The table cannot be altered

Answer
1-(A,B),   2-C,   3-B,   4-D,  5-(A,B),   6-B,   7-D,   8-A,   9-B,  10-(B,C),   11-C,  12-D,  13-D,  14-B,  15-B, 16-B, 17-B

function mctt() { var x = document.getElementById(‘myDIV3’); if (x.style.display === ‘block’) { x.style.display = ‘none’; } else { x.style.display = ‘block’; } }


Want to Learn Database Programming?