Tuesday, September 7, 2010

USE R!




Highlight Source Codes in Web Pages

Examples of source codes in web pages are important for educational purposes. But showing them in a textarea can reduce readability. GNU Source-highlight presents a practical solutions for this.

Ubuntu users can download this using:

sudo apt-get install source-highlight

and the usage is like this:


source-highlight filename

If the filename is blah.extension, source-highlight creates blah.extension.html file in the same directory of filename.

The example C code below is about using sockets in POSIX type systems:

/*
** client.c -- a stream socket client demo
*/

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>

#include <arpa/inet.h>

#define PORT "3490" // the port client will be connecting to 

#define MAXDATASIZE 100 // max number of bytes we can get at once 

// get sockaddr, IPv4 or IPv6:
void *get_in_addr(struct sockaddr *sa)
{
 if (sa->sa_family == AF_INET) {
  return &(((struct sockaddr_in*)sa)->sin_addr);
 }

 return &(((struct sockaddr_in6*)sa)->sin6_addr);
}

int main(int argc, char *argv[])
{
 int sockfd, numbytes;  
 char buf[MAXDATASIZE];
 struct addrinfo hints, *servinfo, *p;
 int rv;
 char s[INET6_ADDRSTRLEN];

 if (argc != 2) {
     fprintf(stderr,"usage: client hostname\n");
     exit(1);
 }

 memset(&hints, 0, sizeof hints);
 hints.ai_family = AF_UNSPEC;
 hints.ai_socktype = SOCK_STREAM;

 if ((rv = getaddrinfo(argv[1], PORT, &hints, &servinfo)) != 0) {
  fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(rv));
  return 1;
 }

 // loop through all the results and connect to the first we can
 for(p = servinfo; p != NULL; p = p->ai_next) {
  if ((sockfd = socket(p->ai_family, p->ai_socktype,
    p->ai_protocol)) == -1) {
   perror("client: socket");
   continue;
  }

  if (connect(sockfd, p->ai_addr, p->ai_addrlen) == -1) {
   close(sockfd);
   perror("client: connect");
   continue;
  }

  break;
 }

 if (p == NULL) {
  fprintf(stderr, "client: failed to connect\n");
  return 2;
 }

 inet_ntop(p->ai_family, get_in_addr((struct sockaddr *)p->ai_addr),
   s, sizeof s);
 printf("client: connecting to %s\n", s);

 freeaddrinfo(servinfo); // all done with this structure

 if ((numbytes = recv(sockfd, buf, MAXDATASIZE-1, 0)) == -1) {
     perror("recv");
     exit(1);
 }

 buf[numbytes] = '\0';

 printf("client: received '%s'\n",buf);

 close(sockfd);

 return 0;
}




And this is a Java example about using Sockets in all platforms:



/**
 * SocketClient.java
 * Copyright (c) 2002 by Dr. Herong Yang
 */
import java.io.*;
import java.net.*;
public class SocketClient {
   public static void main(String[] args) {
      BufferedReader in = new BufferedReader(new InputStreamReader(
         System.in));
      PrintStream out = System.out;    
      try {
         Socket c = new Socket("localhost",8888);
         printSocketInfo(c);
         BufferedWriter w = new BufferedWriter(new OutputStreamWriter(
            c.getOutputStream()));
         BufferedReader r = new BufferedReader(new InputStreamReader(
            c.getInputStream()));
         String m = null;
         while ((m=r.readLine())!= null) {
            out.println(m);
            m = in.readLine();
            w.write(m,0,m.length());
            w.newLine();
            w.flush();
         }
         w.close();
         r.close();
         c.close();
      } catch (IOException e) {
         System.err.println(e.toString());
      }
   }
   private static void printSocketInfo(Socket s) {
      System.out.println("Remote address = "
         +s.getInetAddress().toString());
      System.out.println("Remote port = "
         +s.getPort());
      System.out.println("Local socket address = "
         +s.getLocalSocketAddress().toString());
      System.out.println("Local address = "
         +s.getLocalAddress().toString());
      System.out.println("Local port = "
         +s.getLocalPort());
   }
}

Monday, September 6, 2010

Dylin Prestly: Microsoft .NET vs Java Trailer


Dylin Prestly: Microsoft .NET vs Java Trailer

Linux, Windows and Mac

What is Linux for Mac,Win and Linux fans!

How OS users see their OS's and others?

Linux means black screen shit for windows users...

Also windows is full of white characters on a blue screen...

Thursday, August 5, 2010

examples on ifconfig, grep and awk
















These examples are about "read ip address of linux interfaces" entry;

1) get interface list;

root@ismail-laptop:/usr/lib/cgi-bin# ifconfig | grep "Link encap"| awk -F ' ' '{print $1}'
eth0
eth2
lo
ppp0
root@ismail-laptop:/usr/lib/cgi-bin#


2) get mac address from each interfaces;

root@ismail-laptop:/usr/lib/cgi-bin# ifconfig | grep "HWaddr" | awk -F ' ' '{print $1 " - " $5}'
eth0 - 00:26:b9:9a:65:06
eth2 - c4:17:fe:1e:fe:6d
root@ismail-laptop:/usr/lib/cgi-bin#

3) get upload/download size for specific interface;

root@ismail-laptop:/usr/lib/cgi-bin# ifconfig ppp0 | grep "RX bytes" | awk -F ' ' '{print "download size: " $3 " " $4}'
download size: (5.8 MB)
root@ismail-laptop:/usr/lib/cgi-bin# ifconfig ppp0 | grep "RX bytes" | awk -F ' ' '{print "download size: " $7 " " $8}'
download size: (2.3 MB)
root@ismail-laptop:/usr/lib/cgi-bin#