Monday, March 18, 2013

bg join сподели ме!


ОТКРИЙ ТОВА КОЕТО ТЪРСИШ!

Направи живота си различен!


Идеята!
Всички ние доста често скучаем и се опитваме да си намерим занимание.
Целта на сайта е да ви предостави услуга, която
лесно и бързо ще ви даде списък от събития на потребители
за които вие може да направите заявка и ако бъде одобрена от
потребителя, ще бъдете поканени към това събитие например:
(Дискотека, Ресторант, Кафе, Планина, Море и др...)


Това е страхотен начин да се запознаете с нови и интересни хора.

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

Примерно предприемате пътуване до София с кола след една седмица.
След това пускате това събитие в сайта и чакате някой да прояви интерес към него и да ви прати заявка.
Вие решавате дали да приемете или не неговото присъствие.


Така вие споделяте това събитие, като ползата от това може да бъде:

1.Разделяне на пътните.
2.Чудесна компания.
3.Срещане на нови интересни хора.
4.Запознанства.


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

Благодаря Ви!
Поздрави Мехмедов
co-founder: http://bgjoin.com/
email: info@bgjoin.com

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



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