How to Secure Your Wireless Home Network

Jan 22, 2010

This article describes how you can secure your Wireless Network from hackers and you’ll also learn about free tools that people generally use to intercept your Wi-Fi signals.

Wireless networks (wi-fi)Wireless Networking (Wi-Fi) has made it so easy for you to use the computer, portable media player, mobile phones, video game consoles, and other wireless devices anywhere in the house without the clutter of cables.

With traditional wired networks, it is extremely difficult for someone to steal your bandwidth but the big problem with wireless signals is that others can access the Internet using your broadband connection even while they are in a neighboring building or sitting in a car that’s parked outside your apartment.

This practice, also known as piggybacking, is bad for three reasons:

  • It will increase your monthly Internet bill especially when you have to pay per byte of data transfer.
  • It will decrease your Internet access speed since you are now sharing the same internet connection with other users.
  • It can create a security hazard* as others may hack your computers and access your personal files through your own wireless network.

[*] What do the bad guys use - There have been quite a few instances where innocent Internet users have been arrested for sending hate emails when in reality, their email accounts where hacked though the unsecured Wi-Fi networks that they had at home. Wireshark is a free packet sniffing tool for Linux, Mac and Windows that can scan traffic flowing though a wireless network including cookies, forms and other HTTP requests.

How to Secure Your Wireless Network

The good news is that it is not very hard to make your wireless network secure, which will both prevent others from stealing your internet and will also prevent hackers from taking control of your computers through your own wireless network.

Here a few simple things that you should to secure your wireless network:

Step 1. Open your router settings page

First, you need to know how to access your wireless router’s settings. Usually you can do this by typing in “192.168.1.1” into your web browser, and then enter the correct user name and password for the router. This is different for each router, so first check your router’s user manual.

You can also use Google to find the manuals for most routers online in case you lost the printed manual that came with your router purchase. For your reference, here are direct links to the manufacturer’s site of some popular router brands – Linksys, Cisco, Netgear, Apple AirPort, SMC, D-Link, Buffalo, TP-LINK, 3Com, Belkin.

Step 2. Create a unique password on your router

Once you have logged into your router, the first thing you should do to secure your network is to change the default password* of the router to something more secure.

This will prevent others from accessing the router and you can easily maintain the security settings that you want. You can change the password from the Administration settings on your router’s settings page. The default values are generally admin / password.

[*] What do the bad guys use - This is a public database of default usernames and passwords of wireless routers, modems, switches and other networking equipment. For instance, anyone can easily make out from the database that the factory-default settings for Linksys equipment can be accessed by using admin for both username and password fields.

Step 3. Change your Network’s SSID name

The SSID (or Wireless Network Name) of your Wireless Router is usually pre-defined as "default" or is set as the brand name of the router (e.g., linksys). Although this will not make your network inherently* more secure, changing the SSID name of your network is a good idea as it will make it more obvious for others to know which network they are connecting to.

This setting is usually under the basic wireless settings in your router’s settings page. Once this is set, you will always be sure that you are connecting to the correct Wireless network even if there are multiple wireless networks in your area. Don’t use your name, home address or other personal information in the SSID name.

[*] What do the bad guys use - Wi-Fi scanning tools like inSSIDer (Windows) and Kismet (Mac, Linux) are free and they will allow anyone to find all the available Wireless Networks in an area even if the routers are not broadcasting their SSID name.

Step 4. Enable Network Encryption

In order to prevent other computers in the area from using your internet connection, you need to encrypt your wireless signals.

There are several encryption methods for wireless settings, including WEP, WPA (WPA-Personal), and WPA2 (Wi-Fi Protected Access version 2). WEP is basic encryption and therefore least secure (i.e., it can be easily cracked*, but is compatible with a wide range of devices including older hardware, whereas WPA2 is the most secure but is only compatible with hardware manufactured since 2006.

To enable encryption on your Wireless network, open the wireless security settings on your router’s configuration page. This will usually let you select which security method you wish to choose; if you have older devices, choose WEP, otherwise go with WPA2. Enter a passphrase to access the network; make sure to set this to something that would be difficult for others to guess, and consider using a combination of letters, numbers, and special characters in the passphrase.

[*] What do the bad guys use - AirCrack and coWPAtty are some free tools that allow even non-hackers to crack the WEP / WPA (PSK) keys using dictionary or brute force techniques. A video on YouTube suggests that AirCrack may be easily used to break WiFi encryption using a jail-broken iPhone or an iPod Touch.

Step 5. Filter MAC addresses

Whether you have a laptop or a Wi-Fi enabled mobile phone, all your wireless devices have a unique MAC address (this has nothing to do with an Apple Mac) just like every computer connected to the Internet has a unique IP address. For an added layer of protection, you can add the MAC addresses of all your devices to your wireless router’s settings so that only the specified devices can connect to your Wi-Fi network.

MAC addresses are hard-coded into your networking equipment, so one address will only let that one device on the network. It is, unfortunately, possible to spoof a MAC address*, but an attacker must first know one of the MAC addresses of the computers that are connected to your Wireless network before he can attempt spoofing.

To enable MAC address filtering, first make a list of all your hardware devices that you want to connect to your wireless network**. Find their MAC addresses, and then add them to the MAC address filtering in your router’s administrative settings. You can find the MAC address for your computers by opening Command Prompt and typing in “ipconfig /all”, which will show your MAC address beside the name “Physical Address”. You can find the MAC addresses of Wireless mobile phones and other portable devices under their network settings, though this will vary for each device.

[*] What do the bad guys use - Someone can change the MAC address of his or her own computer and can easily connect to your network since your network allows connection from devices that have that particular MAC address. Anyone can determine the MAC address of your device wireless using a sniffing tool like Nmap and he can then change the MAC address of his own computer using another free tool like MAC Shift.

Step 6. Reduce the Range of the Wireless Signal

If your wireless router has a high range but you are staying in a small studio apartment, you can consider decreasing the signal range by either changing the mode of your router to 802.11g (instead of 802.11n or 802.11b) or use a different wireless channel.

You can also try placing the router under the bed, inside a shoe box or wrap a foil around the router antennas so that you can somewhat restrict the direction of signals.

Apply the Anti-Wi-Fi Paint – Researchers have developed a special Wi-Fi blocking paint that can help you stop neighbors from accessing your home network without you having to set up encryption at the router level. The paint contains chemicals that blocks radio signals by absorbing them. "By coating an entire room, Wi-Fi signals can’t get in and, crucially, can’t get out."

Step 7. Upgrade your Router’s firmware

You should check the manufacturer’s site occasionally to make sure that your router is running the latest firmware. You can find the existing firmware version of your router using from the router’s dashboard at 192.168.*.

Connect to your Secure Wireless Network

To conclude, MAC Address filtering with WPA2 (AES) encryption (and a really complex passphrase) is probably the best way to secure your wireless network.

Once you have enabled the various security settings in your wireless router, you need to add the new settings to your computers and other wireless devices so that they all can connect to the Wi-Fi network. You can select to have your computer automatically connect to this network, so you won’t have to enter the SSID, passphrase and other information every time you connect to the Internet.

Your wireless network will now be a lot more secure and intruders may have a tough time intercepting your Wi-Fi signals.

Who is Connected to your Wireless Network

If you are worried that an outsider may be connecting to the Internet using your Wireless network, try AirSnare – it’s a free utility that will look for unexpected MAC addresses on your Wireless network as well as to DHCP requests. Another option is that you open your router’s administration page (using the 192.168.* address) and look for the DHCP Clients Table (it’s under Status > Local Network on Linksys routers). Here you will see a list of all computers and wireless devices that are connected to your home network.

*It is also a good idea to turn off the router completely when you are not planning to use the computer for a longer period (like when you are out shopping). You save on electricity and the door remains 100% shut for wireless piggybackers.

**If you ever want to let a new device connect to your network, you will have to find its MAC address and add it to your router. If you simple want to let a friend connect to your wireless network one time, you can remove his MAC address from the router settings when he or she leaves your place.

source

READ MORE - How to Secure Your Wireless Home Network

Increased Functionality without Complexity: Mobility Solution for SAP


Bill McDaniel: Navara Software Engineering



SAP. No three letters command such a wide range of emotion in the enterprise. Well, in the late 90's perhaps CRM came close. Large-scale enterprise-wide systems are incredibly complex. It's a major investment not only financially but emotionally. For those who have lived through an SAP implementation, the aftermath is varied: Some are delighted, some frustrated, and everyone can agree that it's a long, long road.

As far as installations go, SAP may be one of the most costly and complex systems in the world. Multi-year installations are common. SAP is so complex that many consulting businesses focus exclusively on the system. Teams of dozens of engineers and analysts working around the clock and around the globe provide customization and integration services while project managers attempt to keep their schedules on track. As with any long-term systems project, extensions are also common - and therefore frustration and confusion are common as well.

The roller coaster ride of emotions is understandable. SAP often replaces many home-grown systems and affects the very heart of every business that adopts it. Often a complete overhaul of the core systems that control every unique aspect of a business are collaborated into one system for the whole of the business. This big of a change does not come without stress for those who will use it.

Specialized Solutions

With such a wide range of customizations available, SAP can be considered a blank canvas. This is fantastic for allowing a customer the ability to design their dream-system; and a nightmare for those who could use a little suggestion. Of course, infinite customization takes (infinite) time and money - and when some specific system needs are identified, it can take an extremely long time and a large amount of resources to implement them. For some businesses, searching for a third-party to provide additional specialized functionality has proven to be a great decision.

Both the strength and the weakness of wide-scope systems like SAP is in its flexibility and complexity. Wide-scope systems are so flexible that they introduce a high level of complexity. Enter third-party solutions which provide very specialized functionality, such as Mobility in a relatively simple product. These solutions focus on a much more narrow set of functionality and work in conjunction with many different types of large-scale systems such as SAP. Because they are so narrow in focus, these specialized solutions can provide increased functional and technical capabilities without increased complexity. Over the course of the systems life cycle, the benefits of using a specialized solution increase even more as change control and enhancements are much easier and quicker to implement than with a more complex wide-scale system. The flexibility: complexity relationship changes dramatically and the customer gets the best of both worlds - a capable solution that is quick to implement and change.

Increased Functionality without Complexity

By using third-party products for specialized functionality, suddenly we don't need teams of dozens of people. We don't need years to develop and implement. By focusing on one specific functional need, specialized third-party solutions eliminate much of the complexity that would be required to configure a wide-scale system to perform the same tasks. The resources required to use a specialized product are drastically reduced which translates into a quicker and greater ROI, and much less stress for everyone.
READ MORE - Increased Functionality without Complexity: Mobility Solution for SAP

Using KnowledgeTree SOAP Services from Java apps

Jan 21, 2010

I'm making a front-end to KnowledgeTree using the ZK Ajax framework so I eventually dipped my fingers into KT's web service integration from a Java app. My previous SOAP projects involved a Tcl client and a Google gadget using the javascript/php combo.

KnowledgeTree's wiki article on Web Service integration using JavaBeanshell interpreter to execute the Java code, I also modified the tester client application accordingly.

What's needed:
has been most helpful. Since I'm doing my development work on Windows, I've adapted the procedures slightly. And since ZK uses the

The proxy classes were generated using the WSDL2Java utility provided by the Apache Axis. I'm providing the packaged ktws.jar available for download here. To generate the proxy classes yourself, you would need the Java Compiler and not just the JRE. Here's the batch file to generate the jar package.

set CP=axis-1_4/lib/axis.jar;axis-1_4/lib/commons-discovery-0.2.jar
set CP=%CP%;axis-1_4/lib/commons-logging-1.0.4.jar;axis-1_4/lib/jaxrpc.jar
set CP=%CP%;axis-1_4/lib/log4j-1.2.8.jar;axis-1_4/lib/saaj.jar
set CP=%CP%;axis-1_4/lib/wsdl4j-1.5.1.jar
java -cp %CP% org.apache.axis.wsdl.WSDL2Java -c T1 -p com.pipoltek.ktws http://docs.pipoltek.com/ktwebservice/webservice.php?wsdl
"%JAVA_HOME%\bin\javac" -d . -classpath %CP% com/pipoltek/ktws/*.java
"%JAVA_HOME%\bin\jar" cvf ktws.jar .\com\pipoltek\ktws\*.class

Here's the Beanshell script to execute a login via SOAP.

/*
filename: ktsoaptest.bsh
to run, type from the command-line:
java -cp bsh-2.0b4.jar bsh.Interpreter ktsoaptest.bsh
*/

// add axis classes
addClassPath ("./axis-1_4/lib/axis.jar");
addClassPath ("./axis-1_4/lib/axis-ant.jar");
addClassPath ("./axis-1_4/lib/jaxrpc.jar");
addClassPath ("./axis-1_4/lib/commons-logging-1.0.4.jar");
addClassPath ("./axis-1_4/lib/commons-discovery-0.2.jar");
addClassPath ("./axis-1_4/lib/log4j-1.2.8.jar");
addClassPath ("./axis-1_4/lib/wsdl4j-1.5.1.jar");
addClassPath ("./axis-1_4/lib/saaj.jar");

// knowledgetree proxy classes
addClassPath ("./ktws.jar");

// others
addClassPath ("./lib/activation.jar");
addClassPath ("./lib/mail.jar");

import com.pipoltek.ktws.KnowledgeTreeBindingStub;
import com.pipoltek.ktws.Kt_response;
import com.pipoltek.ktws.Kt_folder_contents;
import com.pipoltek.ktws.Kt_workflow_transitions_response;
import org.apache.axis.client.Service;
import java.net.URL;
import com.pipoltek.ktws.Kt_folder_item;

URL url = new URL("http://kt352c.pipoltek.com/ktwebservice/webservice.php");

KnowledgeTreeBindingStub stub = new KnowledgeTreeBindingStub(url, new Service());

System.out.println("Logging into KnowledgeTree");
Kt_response response = stub.login("rexjun","cabanilla","127.0.0.1");

int status_code=response.getStatus_code();
String session;
if (status_code == 0) {
session = response.getMessage();
System.out.println("Session: " + session);
} else {
System.out.println("Status Code: " + status_code);
System.out.println("Session: " + response.getMessage());
return;
}

I'll be using this piece of code to invoke SOAP services from my ZK app. More on this later..
READ MORE - Using KnowledgeTree SOAP Services from Java apps

Using Beanshell with the iSeries/AS400 JTOpen JDBC driver

What seemed to be simple and straightforward task is not as what I expected it to be. And I'm referring to making JTOpen JDBC work with Beanshell. Isn't it supposed to be as easy as load and connect? I guess not..

The common method of invoking java.sql.DriverManager to load the JTOpen JDBC drivers for IBM iSeries (erstwhile AS400) doesn't seem to work with Beanshell. The subsequent calls to DriverManager.getConnection result to a message "No suitable driver found..".

The closest clue I got without going thru the code is contained in this post. Sad to say it is in Spanish --- but there's always Babelfish to the rescue. Still, the translation is wanting, but good enough to tell me not to use DriverManager.

Here's an alternative code. Most of the statements were lifted from IBM.


addClassPath ("./jt400.jar");

import java.sql.*;
import java.util.Properties;
import com.ibm.as400.access.AS400;
import com.ibm.as400.access.AS400JDBCDriver;

private Connection connection = null;
private Statement s = null;
private String mySchema = "REXJUN1";
private String myAS400 = "m170pub1.rzkh.de";
private String myUserId = "REXJUN";
private String myPasswd = "--change-me-";

System.out.println("Loading JDBC driver..");
try {
AS400JDBCDriver d = new AS400JDBCDriver();
AS400 o = new AS400(myAS400, myUserId, myPasswd);
Properties p = new Properties();
Connection c = d.connect (o, p, mySchema);
s = c.createStatement();
} catch (Exception e) {
System.out.println("Caught exception: " + e.getMessage());
System.exit(0);
}
System.out.println("Setting up connection..");
try {
s.executeUpdate("drop table basicjdbc");
} catch (SQLException e) {
// Do not perform anything if an exception occurred. Assume
// that the problem is that the table that was dropped does not
// exist and that it can be created next.
System.out.println("Table may not have been dropped.");
}
System.out.println("Creating table..");
try {
s.executeUpdate("create table basicjdbc(id int, name char(15))");
s.executeUpdate("insert into basicjdbc values(1, 'Frank Johnson')");
s.executeUpdate("insert into basicjdbc values(2, 'Neil Schwartz')");
s.executeUpdate("insert into basicjdbc values(3, 'Ben Rodman')");
s.executeUpdate("insert into basicjdbc values(4, 'Dan Gloore')");
} catch (SQLException sqle) {
System.out.println("Failure occurred while setting up " +
" for running the test.");
System.out.println("Test will not continue.");
System.exit(0);
}
System.out.println("Dumping table..");
try {
ResultSet rs = s.executeQuery("select * from basicjdbc");
System.out.println("--------------------");
int i = 0;
while (rs.next()) {
System.out.println("| " + rs.getInt(1) + " | " + rs.getString(2) + "|");
i++;
}
System.out.println("--------------------");
System.out.println("There were " + i + " rows returned.");
System.out.println("Output is complete.");
} catch (SQLException e) {
System.out.println("SQLException exception: ");
System.out.println("Message:....." + e.getMessage());
System.out.println("SQLState:...." + e.getSQLState());
System.out.println("Vendor Code:." + e.getErrorCode());
e.printStackTrace();
}
System.out.println("Clean-up..");
try {
if (connection != null)
connection.close();
} catch (Exception e) {
System.out.println("Caught exception: ");
e.printStackTrace();
}
READ MORE - Using Beanshell with the iSeries/AS400 JTOpen JDBC driver

A Tcl Web Service client for KnowledgeTree Document Management System

Sometime last year, I dabbled with KnowledgeTree's web services and (somehow I've forgotten why) I ended up with a Tcl client to perform a document upload.

Before I lose this chunk of code or forget about it altogether (and it happens a lot), I decided to post it here:


package require SOAP
package require http
package require TclCurl

set prx "http://192.168.211.128/ktwebservice/webservice.php"
set url "http://192.168.211.128/ktwebservice/upload.php"
set usr "admin"
set pas "admin"
set ipa "any"

set upf "upload-me.txt"
set typ "multipart/form-data"

proc log_it { chn msg } {
set stm [clock format [clock seconds] -format "%Y/%m/%d %H:%M:%S %a"]
puts $chn "$stm : $msg"
}

SOAP::create kt_login \
-proxy $prx \
-params { "username" "string" "password" "string" "ip" "string"} \
-name login
SOAP::create kt_add_document \
-proxy $prx \
-params { "session_id" "string" "folder_id" "int" "title" "string" "filename" "string" \
"documentype" "string" "tempfilename" "string" } \
-name add_document
SOAP::create kt_logout \
-proxy $prx \
-params { "session_id" "string"} \
-name logout

set log "debug.log"

if { [catch {open $log a} out] } {
puts stderr "Error: $out"
set out "stderr"
}

set rsp [kt_login $usr $pas $ipa]
set sta [lindex $rsp 1]
set ses [lindex $rsp 3]
log_it $out "Login: status ($sta); session ($ses)"

set opt "session_id $ses action A"
set crl [curl::init]
set rsp [$crl configure -url $url -bodyvar rsp -post 1 \
-httppost [list name "file1" file $upf contenttype $typ] \
-httppost [list name "session_id" contents $ses] \
-httppost [list name "action" contents A] \
-httppost [list name "output" contents php] \
]
catch { $crl perform } curlErrorNumber
if { $curlErrorNumber != 0 } {
error [curl::easystrerror $curlErrorNumber]
}
$crl cleanup

log_it $out "Upload: response ($rsp)"

set ps1 [string first "\"tmp_name\";s:" $rsp 0]
set ps2 [string first ":\"" $rsp [expr $ps1 + 12]]
set ps3 [string first "\";s:5:\"error\"" $rsp 0]
set tmp [string range $rsp [expr $ps2 + 2] [expr $ps3 - 1]]

# Define folder where to upload files
set fld 1;
set ttl "My Document";
set doc "Default"

set rsp [kt_add_document $ses $fld $ttl $upf $doc $tmp]
log_it $out "Add Document: response ($rsp)"

set rsp [kt_logout $ses]
log_it $out "Logout: response ($rsp)"

close $out

The upload facility is implemented by upload.php and returns a response coming out of php's serialize() function. I've mangled upload.php to return a response in xml or json format. The code changes are posted in the Knowledgetree community forum here.

The above Tcl code digests the php's serialize() output.

For xml output, here are the relevant changes:

set crl [curl::init]
set rsp [$crl configure -url $url -bodyvar xml -post 1 \
-httppost [list name "file1" file $upf contenttype $typ] \
-httppost [list name "session_id" contents $ses] \
-httppost [list name "action" contents A] \
-httppost [list name "output" contents xml] \
]
...
set top [dom parse $xml]
set sel [$top selectNodes /results/uploads/document/tmp_name/text()]
set tmp [$sel nodeValue]
$top delete

And for json..

set rsp [$crl configure -url $url -bodyvar rsp -post 1 \
-httppost [list name "file1" file $upf contenttype $typ] \
-httppost [list name "session_id" contents $ses] \
-httppost [list name "action" contents A] \
-httppost [list name "output" contents json] \
]
...
set ps1 [string first "\"tmp_name\":\"" $rsp 0]
set ps2 [string first "\",\"error\"" $rsp 0]
set tmp [string range $rsp [expr $ps1 + 12] [expr $ps2 - 1]]

Check the contents of debug.log for any errors. A successful operation produces this output:

READ MORE - A Tcl Web Service client for KnowledgeTree Document Management System

Simple Subject Sunday: WORDS Have Meaning! Do you believe that words have power through the meaning they convey? If you agree, I think you understan

Simple Subject Sunday: WORDS Have Meaning!


Do you believe that words have power through the meaning they convey? If you agree, I think you understand the power of learning.

After noticing that unfriend, was selected by the New Oxford American Dictionary as the 2009 word of the year, I decided that I need to put my oar in the water to row the learning boat to a more conciliatory island. What should we call people with whom we work, learn and share in our professional social networks?

For instance, I know the default word choice for associate is called "friend" on .nings, yet it seems to me the term "friend", has become such an overused term nowadays, it doesn't always accurately portray the professional relationships of those who are learning and working together online.


A few years ago, when I first joined Classroom2.0, I always referred to the people that I "friended" as colleagues, as did several other people in that network. As time went on, Steve Hargadon change the term "friend" to COLLEAGUE. I was very happy with that decision. I felt that "colleague" more accurately described our professional/learning relationships. Many people had mentioned that they were hesitant to agree to be "friends" with another person on CR2.0, but they would become "colleagues". Some of us ARE friends, but most are colleagues because we work together in groups or teams that are not related to our age, gender or other defining concepts.

After seeing many learning networks use the word "friend", as I see on personal networks like MySpace and FaceBook, I would like to suggest that teachers, parents and other community members who interact online with students, MUST consider investigating the use of some other word.


What kind of a message are we sending to students if we want them to participate in these online networks, but we make then run gauntlets like friending people they may barely know or even tolerate at school? Or worse, what kind of message are we sending if these students are not friended or unfriended?

I'm hoping that you will agree, and consider using another word, besides friend, on your networks. A friend is a person that you build a relationship with, not someone you just met....online or in the World of Matter. Personally, I like the word COLLEAGUE, but I would suggest that you might use VisuWords to find a better synonym.

Thanks in advance for considering this idea!
READ MORE - Simple Subject Sunday: WORDS Have Meaning! Do you believe that words have power through the meaning they convey? If you agree, I think you understan

Winsome Wednesday: The Plurk LIKE Button When I first learned of ARPANET in science education groups, I wanted to be a part of these online interacti

Winsome Wednesday: The Plurk LIKE Button

When I first learned of ARPANET in science education groups, I wanted to be a part of these online interactions. When I participated in NSF programs, I began to use online interactions like email and forums. Over the past six years, I've moved on to the semantic web. I can't even imagine not having access to interactive applications such as Plurk.

I'm actively committed to include interactive web applications and networks in my professional development and teaching. Just as the Graphic User Interface, GUI, changed the way I "see" programs, the World Wide Web changed the way I interact in the World of Electrons.

At the core of all this online interaction is the ability to acquire a vast amount of information. What we do with that information, data, has been at the core of our quest to improve the interactive life. For that, we have data mining which is performed by various programs that have improved greatly over time. Data mining has been the impetus for the birth of the semantic web which has improved the way we visualize data.

Programs, sometimes called applets, turn a set of words (data) into lists or "clouds" that vary in size by the amount of time they appear in the set, like WORDLE. Other applets use lexical databases to create nodes based on the relationships among words, like VisuWords. Other programs or applets are tiny, yet powerful, like the new search capability of Plurk as it's presented through the new LIKE button.


The LIKE button is a way that anyone can mark and monitor a particular Plurk conversation by clicking on the LIKE button. While I've previously discussed the reasons why Plurk can be more effective for professional development or any other ongoing conversations on a particular topic than Twitter, I was a bit disappointed that there was no way to mark the Plurk Stream. Now there is. Use the LIKE button.

The LIKE button is very much like using a hashtag, only better. The main advantage is that you don't have to type a hashtag in every time you tweet on a topic. In Plurk, all you have to do is click on the LIKE button to put a particular conversation in a special collection that you can check to find out if the conversation has continued. You can also use the LIKE button to find the Plurk when you want to access the conversation for any other reason. The LIKE button is a magnificent data mining tool.
READ MORE - Winsome Wednesday: The Plurk LIKE Button When I first learned of ARPANET in science education groups, I wanted to be a part of these online interacti

 
 
 
free counters 
HTML Hit Counter