Wednesday, March 13, 2013

Ajax Crawlable Demo за работа с динамични сайтове



Здравейте, отново е време да се захванем с някой нови интересни неща с които се занимавах тези дни.

Започнах нов проект за споделяне на събития.

http://bgjoin.com/

в сайта може да разгледате секция "КАК РАБОТИ ?".

Но да се върна към темата:

Технологиите, които ползвам за html 5, jquery, ajax, css и php за rest service.

По време на разработка на проекта  всичко беше добре, докато не стигнах до извода, че динамичните сайтове не се индексират от google.

Веднага се разрових в internet и открих решение на проблем става въпрос за:

how to make ajax crawlable

Ето и мое демо http://test.nh.zonebg.com/

Идеята на всичко това е, че когато зареждаме динамично сайта ние работим с # hash знака
и така с jquery прихващаме този селектор, но проблема е  че това се рендира при клиента 
и няма content които да бъде индексиран от google.

За целта от google са намерили решение, като след # добавяме и удивителен знак (!)
получаваме www.example.com/#!99 примерно 99 играе ролята на ID за да може после да се направим заявка и да се генерира content.

как става това.

google замества кобинацията от #! със ?_escaped_fragment_  което играе ролята на ключ за търсене в $_GET.

Примерно $_GET['_escaped_fragment_'];


но за да стане всичко по прегледно нека пусна и кода



Надявам се да съм бил полезен.

Ако имате въпроси пишете ми

Поздрави Мемхедов!


Tuesday, February 19, 2013

NodeJS пример четене от MySQl



Ех доста време си играх с това чудо, докато си направя прост
пример с който да покажа как се чете от база данни и как се обработва DOM

NodeJS пример четене от MySQl -
http://jakomen.chat.jakomen.jit.su/

И тук
http://chat.pmsys.org/

Ето и кода да се забавлявате
https://github.com/halachev/NodeJS-Example---MySql

Поздрави Мехмедов

















Monday, February 18, 2013

Hello World на node.js


Hello World на node.js

Здравейте, днес ще ви покажа как да инсталираме node.js и да си направим hello world.


Сваляте файла от http://nodejs.org/ инсталирате

пускате cmd козолата и пишите:

npm install -g express

намирате папката на инсталацията създавате си файл app.js (Най - добре си направете нова папка)

пишите следния код и запазвате (ползвам notepad++):

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

Стартирате node server с конзолна команда:

node + file name

example: node app.js

Стартирате chrome или mozila локално на адрес http://localhost:1337/

Честито имате Hello World!

Поздрави Мехмедов

Wednesday, February 6, 2013

Как да си напишем Service на .NET и да го ползваме в Delphi XE.

Using C# Library in Delphi XE


Как да си напишем Service на .NET и да го ползваме в Delphi XE


Ще започна с един прост пример "Hello World", който онагледява целия процес при изграждането на Dynamic-link library

1. Създайте нов проект в .NET  изберете class library.




















2. Изтрийте файла class1.cs
3. Създайте нов interface: ITest.cs























4. Създайте нов class : Test.cs

5. Добавете следния код в ITest.cs


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace HelloWorld
{
public interface ITest
{
[ComVisible(true)]
string HelloWorld();
}
}


6.Добавете следния код в Test.cs


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace HelloWorld
{
[ComVisible(true)]
[ClassInterface(ClassInterfaceType.None)]
public class Test : ITest
{
public Test()
{

}

[ComVisible(true)]
public string HelloWorld()
{
return "Hello World";
}
}
}

7.Отворете файла AssemblyInfo.cs и променете  [assembly: ComVisible(false)]
 на  [assembly: ComVisible(true)]


8.Компилирайте

9.Отворете с administrator command prompt на Visual Studio и регистрирайте вашата dll-ка














regasm [target path] /tlb:HelloWorld.tlb

Тarget path e пътя до вашата dll-ка пример:  (D:\Projects\HelloWorld\\HelloWorld\bin\Debug\HelloWorld.dll)


Използване на Dll в Delphi


1.Изберете Component - Import component - import type library.Изберете Next
2. Изберете (потърсете) HelloWorld от списъка - Изберете Next
3.Изберете отметка "Generate Component Wrappers"
4.Изберете отметка "Create Unit"

Създайте нов проект добавете в uses HelloWorld_TLB
Добавете файла създаден в .net HelloWorld.dll  в Debug\Win32

Ето и кода в Delphi


unit HelloWorld;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, HelloWorld_TLB, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    ftest: TTest;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  ftest := TTest.Create(nil);
  ShowMessage(ftest.HelloWorld);
end;

end.


Резултат



















Надявам се да съм бил полезен!





Tuesday, January 8, 2013

.net custom control

.net custom control


Преди време тръгнах да пиша на .net custom control с идеята да си направя Grid View.
Оказа се , че се получи нещо прилично за което ми пишат вече разни хора.


Ако мислите, че и на вас ви харесва идеята, може да се включите към проекта като ми пишете на email.


Поздрави мехмедов!



Thursday, December 27, 2012

Jquery - кеширане на данни


Jquery  - кеширане на данни


Проблем

Скоро ми се наложи да се замисля над един проблем в един мой сайт, където при определена ситуация правя заявка към сървъра и пълня DropDown с потребители и това всеки път, когато се върна към началната страница DropDown се рендира на ново.

Всичко това води до забавяне на цялата система, и води до негативни отзиви от страна на потребителя.

За целта реших да оптимизирам функционалността.
Системата ползва CouchDB База данни (NoSql) + Jquery и .net Service.
html5, css3 или по точно SPA(Single Page Application)

Решение на проблема


Интересното тук е, че се сетих да ползвам Cookies или local storage и в тях да пазя информацията за потребителя
(UserID, UserName), като само в началото при Login се инициализира всичко от сървъра и се складира в Cookies0, като Array от обекти представени в JSON формат.

Source Code



Ако има нещо неясно пишете ми надявам се да съм бил полезен.
Поздрави Мехмедов!

Wednesday, December 19, 2012

Стани програмист


Стани програмист 


Ако сте от провинцията и искате да се реализирате в живота, но се чудете как и какво да направите по въпроса, аз ви предлагам едно ново решение, с което, ако сте мотивирани и креативни - ще успеете.

Стани програмист 

Преди две години, за  първи път, чух за академията на "Телерик", която обучава повече от 1000 курсисти на година за софтуерни инженери.
След като, се записах и взех успешно два сертификата за:
Mobile Development и Cloud Development
Реших, че ще е хубаво да подпомогна всичко това, като го нарекох Стани програмист

Това е курс за хора, който искат да се реализират в живота и да работят като програмисти.
Това е една от най-добре заплатените професии в момента.

Курсистите, ще могат да се явяват на изпит за сертификат в една от най-големите софтуерни компании в България - София "Telerik"
Самия курс, има онлайн форма на обучение с видео уроци и много добре описани презентации.


За повече детайлна информация:
http://academy.telerik.com/
http://www.telerik.com/


Ако имате въпроси може да се свържете с мен на:
Tel: 0893/826629
Email: jakomena@gmail.com
Blog: http://mehmedov-web.blogspot.com/


Nurietin Mehmedov - CEO and Co-Founder : http://pmsys.org/