Showing posts with label CouchDB. Show all posts
Showing posts with label CouchDB. Show all posts

Wednesday, October 24, 2012

Награждаване - Cloud Development

Награждаване - Cloud Development

И така  - поредния сертификат от "Телерик"  заслужено си го добавям към моята колекция.


Курса обхвана технологии като .Net, WCF services, NoSql, CouchDB, облачни услуги AppHarbor, Drobbox и др..
Разработихме проект, с който защитихме нашите знания .













Шампионите от курса Разработка на софтуер в cloud среда, които предаваха домашни, положиха тест върху изучавания материал, разработиха и защитиха с отличие практически курсов проект, включващ разработка на cloud приложения с NoSQL база данни, cloud storage, REST услуги в cloud среда и HTML5-базиран front-end, са:
  • CL254 – Г. Ангелов – 103 точки
  • CL511 – С. Стаев – 99 точки
  • CL400 – С. Тодоров – 96 точки
  • CL128 – А. Георгиев – 93 точки
  • CL111 – D. Тодоров – 89 точки
  • CL152 – И. Стоянов – 89 точки
  • CL493 – И. Пенев – 88 точки
  • CL515 – М. Димитров – 84 точки
  • CL399 – Т. Паскалев – 84 точки
  • CL286 – Н. Мехмедов – 82 точки
  • CL036 – Й. Тодоров – 77 точки
  • CL057 – М. Гебов – 74 точки


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

Monday, October 8, 2012

Nurietin Mehmedov CURRICULUM VITAE


Понякога се налага да представиш себе си с няколко думи или пък да кандидатстваш за работа където CV-то е задължително( мотивационно писмо също но за него друг път).
Надявам се да помогна с моето CV на други хора които искат да си оформят тяхното CV



CURRICULUM VITAE

    Personal Information

Name: Nurietin Mehmedov
Position: Delphi (XE), Dot.Net Developer
Date of Birth: 20  January 1974
Marital Status: Single
Mobile Phone: (+359) (889) 25 05 02
Email: jakomena@gmail.com
Skype: jakomen

Education


1989 - 1992:        High School  “CPTU - Transport”, Kazanlak, Bulgaria

1981 - 1989:        Comprehensive Secondary School “Nikola Vapcarov”, Kazanlak, Bulgaria

Certification


     2011 -  2012    Mobile Applications Development “telerik academy”, Sofia, Bulgaria

2012 -  2012    Cloud Development “telerik academy”, Sofia, Bulgaria

2010 – 2011:    High School  “Europe” English  pre intermediate,  Kazanlak, Bulgaria

Employment Career


Jun 2005 – Present: Delphi, Dot.Net Developer for Software Development 
(David-Holding), Bulgaria – http://www.david-holding.com/

Oct 2000 – July 2001  C, C++ Developer for Software Development (SICOM), Bulgaria

Skills


Software project management
Software architectures
Object-oriented programming and modeling
Client-server technologies
Multithreading and thread synchronization
Internet technologies and networking
Web application development
Relational databases, database systems and database design
High-quality programming code construction
Windows network administration and maintenance
Operating systems – Windows,  DOS

 

Programming Languages

     Delphi, C#, Asp.Net, Java, C, C++, PHP 

            Web

                Html5. Jquery, CSS,  javascript

Software Technologies and Platforms

Microsoft .NET Framework and related technologies – C#, ADO.NET, Windows Forms, ASP.NET,  AJAX, Controls Toolkit, XML Web-services
Delphi and related technologies – Visual Component Library (VCL)
Database access – SQL, ADO, ADO.NET, stored procedures
Web sites and client-side scripting – HTML, DHTML, CSS,
JavaScript, Jquery, Mobile, JSON,
Internet protocols – TCP/IP, HTTP, HTTPS, SMTP, POP3, FTP
Socket programming – Winsock, C socket programming
Windows programming – Win32 API, COM, ActiveX, ODBC, ADO

 

Database Servers

Oracle Database (8, 9, 9i, 10g), Microsoft SQL Server (2000, 2008), MySQL (4.0, 5.0),
NoSql – database(CouchDB),InterBase (6.0) / Firebird (1.0), Microsoft Access (2000, 2003)

 

Application Servers

         MS Internet Information Server (5.0, 6.0), Apache (1.3, 2.0)

 

Development Tools

         Java and J2EE related – Eclipse, Eclipse Web Tools, Eclipse , Borland , Microsoft Visual C++
         related – Microsoft Visual Studio (6.0, 2002, 2003, 2005, Borland)

 

Other Skills

Team working skills
Communication skills
Organizational skills


Projects

Инструменти и машини


 Period: now
 Description: online store  
 Technologies: php, Html5, Jquery, Ajax, css 
 Url: http://simo98.com/

PMSystem

 Period: august 2012 – now
 Description: project management system   
 Technologies: Html5, Jquery, Ajax, Json, NoSql – CouchDB, JsonBridje
 Platform –  Widnows, IIS
 Url: http://pmsystem.nh.zonebg.com/          
           
Secret Comunicator

Period: Mart 2012 – now
Description: Cloud Application using NoSql - CouchDB
Technologies: WCF Service, Html5, Jquery, Ajax, Json
Platform –  Microsoft Visual Studio 10.

XGridView  1.0

Period: December 2011 – now
Description: Server Control And Component Development
Technologies: dot.net, html, jquery, css,
Platform –  Microsoft Visual Studio 10.
Url: http://xgridview.apphb.com/


Supplier 1.0

Period: December 2010 – now
Description: Android Mobile business application
Technologies: java se, sqllite database, threading
Platform – Eclipse


Light Mp3 Player 2.2

Period: December 2008 – now
Description: Mp3 Desktop application version 2.2
Technologies: Mp3 encoding win32 API
Platform –   Delphi 7, XE


Auto zone

Period:  January 2011 – now
Description: Web page for auto mobiles version 1.0 Bulgarian Language
Technologies: PHP, java script, HTML, CSS, Jquery, MySql
Application Servers
MS Internet Information Server (5.0, 6.0), Apache (1.3, 2.0)


Research Interests

Object-Oriented Modeling and Software Design
High-Quality Programming Code Construction
Mobile Technologies
Database Development
Data Structures and Algorithms
Business Process Modeling

Languages

Bulgarian – native
English – fluent
Turkish – good

 

Saturday, August 18, 2012

Sample project with WDK.API.CouchDb


Sample project with WDK.API.CouchDb

Здравейте приятели отново продължаваме с CouchDB само, че сега ще ви представя едно ново 
решение с което много лесно и бързо се правят динамични приложение.
Представям ви една библиотека WDK.API.CouchDb и JsonBridge.js
Ето и кода на JsonBridge.js


var JsonBridge = {
   useAuthorization: false,
   authorizationHandler: function (username, password) {
    return "";
   },

   url: '/jsonbridge/',
   execute: function (classpath, method, params, resultHandler, faultHandler) {
    var url = JsonBridge.url + classpath + '/';
    if (method != null && method != '')
     url += method;

    if (params != null) {
     $.ajax({
      url: url,
      beforeSend: function (xhr) {
       if (JsonBridge.useAuthorization) {
        xhr.setRequestHeader("Authorization", JsonBridge.authorizationHandler);
       }
      },
      contentType: 'application/json',
      data: JSON.stringify(params),
      dataType: 'json',
      type: "POST",
      success: resultHandler,
      error: faultHandler
     });
    }
    else {
     $.ajax({
      url: url,
      beforeSend: function (xhr) {
       if (JsonBridge.useAuthorization) {
        xhr.setRequestHeader("Authorization", JsonBridge.authorizationHandler);
       }
      },
      contentType: 'application/json',
      dataType: 'json',
      processData: false,
      type: "GET",
      success: resultHandler,
      error: faultHandler
     });
    }
   }
  };

за да създадете документ в CouchDB имаме следния код:



JsonBridge.execute('WDK.API.CouchDb', 'createDocument', ['users', 'hello'], function (data) {
  // you code is here
});

сега нека разгледаме параметрите на JsonBridge.execute:

WDK.API.CouchDb ви е библиотеката WDK.API.CouchDb.dll

createDocument ви е метод от тази библиотека 

['users', 'hello'] - параметри за метода createDocument където 
users е базата данни 'hello' е новото поле за вашия документ.

за повече информация 
http://jsonbridge.com/

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


Monday, August 13, 2012

Web Application с CouchDB база данни

Здравейте, сигурно вече сте запознати с една от последните и нови технологии NoSql база данни или по точно документно ориентирани където нямате таблици, релации и др. подобни както в Sql ако все още не знаете за какво става въпрос прочетете тук.



А сега  какво направих за няколко часа 


Опитах се първо да извикам  view която имаше само една map функция на java script, но
се оказа че с ajax не може да се прави cross domain.

Ето как реших проблема:

създадох си база tasks в https://cloudant.com/
След което създадох нов документ и в него Upload-нах 
Index.html, Serve.js и Style.css


Използвани технологии:
Cloud computing - Html5, JQuery, Css, Ajax, Json

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




Wednesday, August 8, 2012

CouchDB lists function

Вече два месеца се занимавам с CouchDB и все повече започва да ми харесва.
Преди седмица прочетох за lists функциите поиграх си малко с тях и видях колко полезни са те когато искаме да си направим custom JSON документи.


И така нека да дам един прост пример за list функция:



{
   "_id": "_design/recipes",
   "_rev": "1-7e06eea8045779c50e28a658cfc8b639",
   "lists": {
       "all_documents": "function(head, req){
            var row;
            while(row = getRow()) {
              log(row.key);
             send(toJSON(row.value));
           }
        }"
   }
}

както се вижда от примера list функцията е подобна на view но в нея може да сe обхождат документите и да задавате някакви условия чрез които да си правите custom json документи.

с една дума може да имаме масив в който трупаме документи и да върнем този резултат.

после остава само да се парсне в jquery и да си генерирате динамично съдържание на html

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

Thursday, March 22, 2012

Бази данни – играта се променя


Релационните бази данни, бавно но сигурно излизат от въоръжение. Това, което знаете за нормални форми, SQL, Object/Relational Mapping… се оказва далеч от оптималното.

Какво не е наред с релационните бази данни?

Те не се справят добре с големи обеми данни.
Когато обемът данни в таблиците нарастне на милиони, изпълнението на SQL заявките се забявя. Виждал съм промяна на колона в база данни, която отнема 12-часа. Не е задължително да сте в голяма фирма, за да имате такъв обем записи.
Неудобен език за заявки.
SQL – езикът за заявки към базите данни и бил създаден за счетоводители, които пишат заявки на команден ред. По дизайн той не е предвиден да се използва от софтуер. Твърде лесно е да получите декартово произведение на резултатите. Трябва на внимавате къде ползвате агрегираща функция, в каква последователност използвате sort, group by, having. За извличането на единствен обект може да имате осем join оператора. За изтриване на обект пък трябва да съобразявате в какви таблици е разпределен и да го изтривате на парчета (като пазите парчетата, които може да се използват от други обекти).
Неспазване на стандарт.
За 10 години производителите на бази данни не можаха да стигнат до унификация по базовите въпроси:
  • различни типове данни (nvarchar)
  • различно генериране на последователни идентификатори (auto_increment)
  • различно странициране на резултатите (offset).
  • различно интерпретиране на празно поле (null).
Табличен модел.
В базите данни се съхраняват програмни обекти. Те обаче трябва да се разложат до SQL стринг, който да се интерпретира от базата данни и да разпредели обекта на парчета в различни таблици. При четене се извършва обратния процес.
Това не значи, че релационните бази данни са нещо лошо – просто се оказва, че има по-добър начин.

Новите бази данни

Новото поколение бази данни вече не са релационни, работят без SQL и скалират лесно. 
Наричат ги NoSQL бази данни. Известно е, че могат да обработят 50 TB записи (Facebook). Тези бази данни използват JSON вместо SQL. Таблиците са заменени от колекции, които могат да се оприличат на Map обекти (ключ-стойност).
Какви са недостатъците на NoSQL базите данни? Инструментите за генериране на отчети и за управление на бази данни, са направени за релационни бази. Без специален SQL-емулатор те няма да работят с NoSQL база. Транзакциите се поддържат само до някъде. Не сте сигурни, точно в кой момент документът ви е записан.
NoSQL базите данни все още не са преобладаващ вид, но вече няма съмнение, че ще бъдат основния играч. Вижте кой са фирмите зад тях:
  • BigTable (Google).
  • Cassandra (Facebook).
  • SimpleDB (Amazon).
  • MongoDB (Twitter, SourceForge). Моят фаворит :-)
  • Sherpa (Yahoo).
  • HBase (Adobe).
Големите играчи очевидно залагат на NoSQL… а те имат достатъчно ресурси и влияние върху развитието на индустрията. Очаквам след 5 години, когато започва нов софтуерен проект първият избор на архитектите да бъде MongoDB, а не MySQL.

Ами обектните бази данни?

За софтуер, който не работи с големи масиви данни, обектните бази са съвършеното решение. Те позволяват на програмиста да запише/прочете произволен обект или верига от обекти, без да се занимава изобщо с таблици, мапинги, анотации и прочие. Така се елиминират цели слоеве от приложението (mapping, dao, SQL), което е голямо улеснение и спестява много програмистки грешки.
Например – db4o е обектна база данни, която е безплатна за проекти с отворен код и работата с нея е над 7 пъти по-бърза от тази през Hibernate + HSQLDB (която от своя страна е по-бърза от MySQL). Недостатъците на тази база, са че не поддържа auto_increment функционалност и не е ясно колко струва лицензът за комерсиалната й употреба.
Защо обектните бази не са толкова популярни? Мисля, че фирмите които стоят зад тях не направиха достатъчно за популяризирането им. Също така, обектната база е обвързана с конкретен език за програмиране и не е тривиално да прочетете съдържанието й с програма писана на друг език.

В резюме

Релационните бази данни ще отстъпят място на по-добра технология – NoSQL. Ако стартирате нов проект си струва да помислите за това.