Tuesday, December 27, 2011

База ресурсів)

  1. Html and Jquery playe - аудіо та відео плеєр
  2. Scroll bar - забезпечить прикольний скролінг як для роліка так і для тачскріна

Share links Twitter and Facebook

Для того щоб розшарити лінк в твітер достатньо написати так:
https://twitter.com/share?url=<потрібний урл>&via=<профіль користувача до якого належить лінк>

виглядати буде так: "http://URL с помощью @profile" профіль можна опустити і залишиться тільки урл. Для фесбуку вигляд такий:
https://www.facebook.com/sharer.php?u=<потрібний урл>

по замовчуванню буде взято фонове зображення і тайтл сайту, але їх можна задати власноруч користуючись мета тегами:
<meta property="og:title" content="Тайтл" />
<meta property="og:description" content="Опис" />
<meta property="og:image" content="Зображення" />

Для більш детального огляду тегів стосовно фб тут, для розгляду розшарювання на інші ресурси можливо вам згодиться це посилання!
Також можливий прикол коли мета теги задані, а реакції немає, для того щоб перевірити чи фейсбук отримав нашу сторінку і теги в цілосні і справності користуємось цим лінком! Зверніть увагу ще на те, що фейсбук кешує дані по разшарюваному лінку))

Sunday, December 25, 2011

Відновлення Grub

Да, Да, Да!
Знаю! Всі одним голосом кажуть шо в гуглі тони такого добра! Да тони, я бачив!
Але замість LiveCD я б радив загружатись з допомогою SuperGrub.
І плюс ось цей лінк! А то в мене після багатьох спроб просто запускалась консоль Grub> )))

Thursday, December 22, 2011

Links for Ruby on Rails

1)    Хороший туторіал для знайомства з Ruby on Rails
       "Ruby on Rails Tutorial Изучение Rails на Примерах Майкл Хартл"
2)    Доступно і внятно, можна ще й попитати якщо дуже хочеться
       "Ruby on Rails по русски"


Thursday, December 8, 2011

Консоль ZF

Створення проекту:
zf create project <name_project>

Створити форму,контролер, вигляд чи модель
zf create form|model|view|controller <name_form>

Створює каталог application/layouts/scripts і поміщує в нього layout.phtml, а також обновляє application.ini добавляючи в секцію [production] 
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
zf enable layout

Хочете більше тоді пишете в консолі # zf -h, але на багато сподіватись не варто, вашу роботу ніяка консоль за вас не зробить і звідси моя вам порада - те що навіть я тут написав, краще виконувати руками))

Замітки по Linux

Для того щоб визначити який процес знаходиться на конкретному порті можна виконати наступну команду:
lsof -i :<номер порат>

Для завершення процесу можна використати:
kill -9 <номер PID>

Якщо ви щось установлюєте, а система вам каже що немає чим скомпілювати, або просто в лог файлі все стопориться в g++ і дальше error, то можливо вам потрібно саме це:
sudo apt-get install g++
sudo apt-get install build-essential



permission
R = 4
W = 2
X = 1


sudo chsh -s /bin/zsh <username> - щоб поміняти шел для користувача


Пригоди ROR + MySql

Ящо в вас при виконанні команди "# bundle install" вискакує подібне повідомлення
...
...
Gem files will remain installed in /var/lib/gems/1.8/gems/sqlite3-1.3.5 for inspection.
Results logged to /var/lib/gems/1.8/gems/sqlite3-1.3.5/ext/sqlite3/gem_make.out
An error occured while installing sqlite3 (1.3.5), and Bundler cannot continue.
Make sure that `gem install sqlite3 -v '1.3.5'` succeeds before bundling.

то це означає що не все в гаразд з драйверами для БД, чи то mysql чи то sqlite3 немає різниці, помилка всерівно буде подібною). Інтересне те що  # gem install sqlite3 -v '1.3.5'  нічим не допоможе, хоча і буде показувати що все встановлює. Для того щоб позбавитись цієї помилки для драйвера mysql потрібно поставити наступний пакетик "libmysqlclient-dev", робиться це так:
sudo apt-get install libmysqlclient-dev

і відповідно:
# gem install sqlite3 -v '1.3.5'
# bundle install

Для інших БД майже те саме))

Ставимо Ruby та RoR

Як постaвити рубі? Відповідь на це питання я думаю ви уже знайшли, а якщо ні то це робиться так:
# sudo apt-get install ruby

При установці рубі разом з ним ставиться ще і gem! Для того щоб поставити останню версію RoR потрібно скористатись саме ним. Робиться це так:
# sudo gem install rails

можна ще вказати версію добавивши "-v=3.1.3". Ящо після цього ви введете
# rails -v

то побачите версію RoR, але якщо ви поставили рельси з репозиторія то версія не буде останньою, в мене це була версія 2.5.4). Особисто мені не підійшла версія з репозиторію по тій причині що команда "# rails server" не виконувалась і не запускала мій проект, а створювала новий з назвою "server". Нагадаю що в версії 3.0.0 така команда вже доступна і для створення нового проекту потрібно написати так "# rails new my_project".
Після того як я видалив RoR із репозиторія, захотівши подивитись версію я отримав відповідь про те що система незнає що таке "rails" хоча нова версія вже була поставлена з допомогою гема. Переустановка результату не дала, але пізніше я зрозумів що RoR є за наступною адресою "/lib/gems/1.8/bin/rails" якраз сюди його і кидав gem. Для того щоб рельси стали доступними ми можемо зробити символьний лінк на потрібний файл ось так:
# sudo ln -s /var/lib/gems/1.8/bin/rails /usr/bin/rails,

Friday, December 2, 2011

Java і сокети

Приклад реалізації серверної частини:

import java.io.*;
import java.net.*;
public class Provider{
  ServerSocket providerSocket;
  Socket connection = null;
  ObjectOutputStream out;
  ObjectInputStream in;
  String message;
  Provider(){}
  void run()
  {
    try{
      //1. creating a server socket
      providerSocket = new ServerSocket(2004, 10);
      //2. Wait for connection
      System.out.println("Waiting for connection");
      connection = providerSocket.accept();
      System.out.println("Connection received from " + connection.getInetAddress().getHostName());
      //3. get Input and Output streams
      out = new ObjectOutputStream(connection.getOutputStream());
      out.flush();
      in = new ObjectInputStream(connection.getInputStream());
      sendMessage("Connection successful");
      //4. The two parts communicate via the input and output streams
      do{
        try{
          message = (String)in.readObject();
          System.out.println("client>" + message);
          if (message.equals("bye"))
            sendMessage("bye");
        }
        catch(ClassNotFoundException classnot){
          System.err.println("Data received in unknown format");
        }
      }while(!message.equals("bye"));
    }
    catch(IOException ioException){
      ioException.printStackTrace();
    }
    finally{

      //4: Closing connection
      try{
        in.close();
        out.close();
        providerSocket.close();
      }
      catch(IOException ioException){
        ioException.printStackTrace();
      }
    }
  }
  void sendMessage(String msg)
  {
    try{
      out.writeObject(msg);
      out.flush();
      System.out.println("server>" + msg);
    }
    catch(IOException ioException){
      ioException.printStackTrace();
    }
  }
  public static void main(String args[])
  {
    Provider server = new Provider();
    while(true){
      server.run();
    }
  }
}

Відповідно для нього приклад клієнтської частини:

import java.io.*;
import java.net.*;
public class Requester{
  Socket requestSocket;
  ObjectOutputStream out;
  ObjectInputStream in;
  String message;
  Requester(){}
  void run()
  {
    try{
      //1. creating a socket to connect to the server
      requestSocket = new Socket("localhost", 2004);
      System.out.println("Connected to localhost in port 2004");
      //2. get Input and Output streams
      out = new ObjectOutputStream(requestSocket.getOutputStream());
      out.flush();
      in = new ObjectInputStream(requestSocket.getInputStream());
      //3: Communicating with the server
      do{
        try{
          message = (String)in.readObject();
          System.out.println("server>" + message);
          sendMessage("Hi my server");
          message = "bye";
          sendMessage(message);
        }
        catch(ClassNotFoundException classNot){
          System.err.println("data received in unknown format");
        }
      }while(!message.equals("bye"));
    }
    catch(UnknownHostException unknownHost){
      System.err.println("You are trying to connect to an unknown host!");
    }
    catch(IOException ioException){
      ioException.printStackTrace();
    }
    finally{
      //4: Closing connection
      try{
        in.close();
        out.close();
        requestSocket.close();
      }
      catch(IOException ioException){
        ioException.printStackTrace();
      }
    }
  }
  void sendMessage(String msg)
  {
    try{
      out.writeObject(msg);
      out.flush();
      System.out.println("client>" + msg);
    }
    catch(IOException ioException){
      ioException.printStackTrace();
    }
  }
  public static void main(String args[])
  {
    Requester client = new Requester();
    client.run();
  }
}

Java і DB


Щоб мати можливість працювати з базою даних в Java потрібно знайти потрібний коннектор для вашої бази данх, після того як ви скачаєте конектор в моєму випадку це був "mysql-connector-java-5.1.18-bin.jar" ви маєте зробити його доступним для вашої майбутньої програми.
Дальше можна створити такий простенький клас:
import java.io.*;
import java.sql.*;
  public class Database
  {
    Connection conn = null;
    String userName;
    String password;
    String url;
   
    public Database (String host, String user, String pass, String database)
    {

    try {
     userName = user;
     password = pass;
     url = "jdbc:mysql://" + host + "/" + database;
     Class.forName("com.mysql.jdbc.Driver").newInstance();
     conn = DriverManager.getConnection(url, userName, password);
     System.out.println("Database connection established");
   }
   catch (Exception e) {
     System.err.println ("Cannot connect to database");
     e.printStackTrace();
   }
 }

 public Connection getConnection()
 {
   return conn;
 }
 public void closeConnection()
 {
   try {
     conn.close ();
   }catch (Exception e) {}
 }
}

 
 
Blogger Templates