bmu.li

bmuli_logoესე იგი, იშვიათად თუ მახარებს რაიმე ქართულ ვებში, თუმცა გუშინ ირაკლი შემომეხმიანა და თავისი ახალი პროექტის შესახებ შემატყობინა ეს არის სოციალური სერვისი სახელად ბმუ.ლი. რა საჭიროა ასეთი სერვისი? იხ. ციტირება სერვისის ვებ საიტიდან:



წარმოიდგინეთ, რომ Amazon.com-ზე იპოვეთ საინტერესო ფოტო-კამერა, და გნებავთ მეგობარს გაუგზავნოთ მასზე ლინკი SMS-ით. Amazon-ის მისამართები საკმაოდ გრძელია და დაახლოებით ასე გამოიყურება:

http://www.amazon.com/Canon-Digital-Camera-18-55mm-3-5-5-6/dp/B0012YA85A/ref=sr_1_1? ie=UTF8&s=photo&qid=1239587390&sr=1-1

ცხადია ამხელა მისამართს SMS-ში არავინ აკრეფს. ამიტომ, თქვენ შეგიძლიათ შეამოკლოთ ის bmu.li-ს საშუალებით, რის შედეგადაც მიიღებთ მოკლე მისამართს, მაგალითად: http://bmu.li/ss4 რომლის SMS-ით გაგზავნაც არანაირ პრობლემას აღარ წარმოადგენს.
bmu.li მხოლოდ SMS-ისთვის არ არის სასარგებლო. იგი შეგიძლიათ გამოიყენოთ ყველგან სადაც გრძელი მისამართების გაცვლა მოუხერხებელია: ფორუმებზე, ბლოგებზე, სოციალურ ქსელებში (ფეისბუკი, ოდნოკლასნიკი და სხვ.), ტვიტერში, იმეილში, გაზეთებში, რადიოს და სატელევიზიო რეკლამებში და გამოშვებებში ან თუნდაც მეგობრისთჳის ფურცლის ნაგლეჯზე მისამართის უცებ დასაწერად.

ყველაფერი ძალიან მარტივია. ამ სერვისის მეშვეობით შეგვიძლია წარმატებით დავამოკლოდ უსაშველოდ გრძელი და გაუგებარი URL – ები სულ რაღაც 10 სიმბოლომდე(http:// პრეფიქსის გამოკლებით) და გამოვიყენოთ უამრავ შემთხვევაში.

მოკლედ ძალიან, ძალიან სასარგებლო სერვისია რომელიც აუცილებლად გამოგადგებათ და იმედია სათანადოდ დავაფასებთ სულ ცოტა ხანში :)

ასევე მინდა ცოტათი გავთქვა ინსაიდერული ინფორმაცია და გითხრათ, რომ, სულ ცოტა ხანში კიდევ რამდენიმე საინტერესო სირპრიზი დაემატება სერვისს რაც კიდევ უფრო კომფორტულს გახდის მის მოხმარებას.

ასე რომ Hold on B-)

ტეგები:

HTML Form “elements” Property

ამ პოსტის დაწერამდე რამდენიმე წუთით ადრე წავაწყდი HTML form ელემენტის elements თვისებასთან დაკავშირებულ ერთ პრობლემას(შეცდომას) რომლის შესახებაც აქამდე არაფერი მსმენია და ცოტა არ იყოს უაზროდ დამახარჯინა დრო.

ცნობილია, რომ form ელემენტის აღნიშნული თვისება არის HTMLCollection ტიპის კოლექცია და იგი შეიცავს კონკრეტული HTML ფორმის შიგნით გამოყენებულ ყველა(input, select, button) ელემენტს. სწორედ ეს კოლექცია წარმოადგენს საჭირო ფორმის ელემენტებთან წვდომის ყველაზე უსაფრთხო(თურმე პირობითად) გზას.

როგორც აღმოჩნდა თუ ფორმის ელემენტებს მოვათავსებთ fieldset ტეგში(და წესით ეს ასეც უნდა გავაკეთოთ) elements კოლექცია მოულოდნელ რეზულტატს დაგვიბრუნებს. კერძოდ კი fieldset ელემენტიც(ან ელემენტები) ამ კოლექციაში აღმოჩნდება.

ჩემი ამოცანა მდგომარეობდა შემდეგში, რომ ფორმის ყველა ელემენტებისაგან მიმეღო მათი სახელებისა და მნიშნვნელობების ე.წ. key/value ობიექტი:

1
2
3
4
5
var map = {}, els = target.form.elements;
for (var i = 0, el; (el = els[i++]);) {
   map[el.name] = el.value;
}
console.log(map);

თუმცა ძალიან უცნაური შედეგი მივიღე რადგან fieldset ელემენტს არც name და არც value თვისებები არ გააჩნია.

პრობლემის იდენტიფიცირების შემდგომ ინტერნეტში მოვიძიე მცირეოდენი ინფორმაცია:

The HTML 4 standard adds new <fieldset> and <label> tags to the set of elements that can appear within a form. In IE 5 and later, placing a <fieldset> in a form causes a corresponding object to be added to the form’s elements[] array. Fieldset elements are not scriptable in interesting ways like other form elements are, and their objects do not have a type property like other form elements do. Therefore, the presence of Fieldset objects in the elements[] array seems like a mistaken design decision. This is particularly true since <label> tags do not cause corresponding objects to be added to the elements[] array. The Mozilla and Netscape 6 browsers have chosen to follow Microsoft’s lead on this in order to be compatible with IE.

What this means is that if you define a form that contains fieldsets, the contents of the elements[] array differ in recent, HTML 4-capable browsers and in older, pre-HTML 4 browsers. In this situation, using position-based numeric indexes in the elements[] array is not portable, and you should define name attributes for all your form elements and refer to them by name.

მოკლედ კვლავ IE :D ნუ რას ვიზამთ რეალობა ასეთია :P

ტეგები: , ,

YouTube EDU და ბევრი საინტერესო მასალა პროგრამისტებისათვის

youtubeedu-215x53 დღეს YouTube – მ დასტარტა ახალი სევერისი YouTube EDU. ეს არის შესანიშნავი საგანმანათლებლო რესურსი რომელზეც უკვე შესაძლებელია არაერთი შესანიშნავი ლექციისა თუ ლექციების კურსის ნახვა.

ძალიან გამეხარდა და მომეწონა რომ აღნიშნულ რესურსზე წარმოდგენილია ისეთი მოწინავე ტექნოლოგიური უნივერსიტეტების სასწავლო მასალა როგორიც არის მაგ. MIT.

ძალიან დიდი დრო არ დამიხარჯავს, თუმცა მოვასწარი MIT – ის გვერდზე განთავსებული კურსის MIT 6.046J / 18.410J Introduction to Algorithms (SMA 5503) პირველი ლექციის მოსმენა და მინდა გითხრათ რომ უსაზღვროდ მომეწონა. საოცარი ლექტორია საოცარი გადმოცემის უნარითა და ლექციის წაყვანის მანერით.

გარდა მაგ კურსისა თუ დაძებნით სხვა უამრავ საინტერესო მასალასაც მიაგნებთ.

enjoy :)

ტეგები:

საინტერესო ვაკანსია jobs.ge – ზე :D

მიუხედავად იმისა რომ სამსახურს არ ვეძებ მაინც საკმაოდ ხშირად ვსტუმრობ jobs.ge – ს. ამას მარტივი მიზეზი აქვს, მაინტერესებს თუ რა ტიპისა და რანგის ვაკანსიებია ინფორმაციული ტექნოლოგიების სფეროში. თუმცა ზოგჯერ მართლა გასაოცარ მარგალიტს შეიძლება წააწყდე :D

მოკლედ ერთ ასეთ ვაკანსიას წავაწყდი დღეს:

IBS (Integrated Business Solutions) is a Georgian official business partner of 1C and business partner of 1C-bitrix, the software business firm offering automated business systems. IBS is pleased to announce a vacancy for for the full-time position of Web Programmer/Designer.

Responsibilities:

** Learn 1C-bitrix software solutions
** Prepare the sites in compliance with 1C-bitrix and according to the client demand
** Carry out all duties defined by the Manager on time.

Requirements:

** Relevant higher education (preferably in web design field)
** At least 6 months work experience as a Web Programmer/Designer
** Knowledge of the following program languages: HTML, GSS, JavaScript, PHP, Ajax, Asp.Net
** Excellent knowledge of Russian language (ability to analyze Russian texts and strong knowledge of spoken Russian)
** English language knowledge is desirable
** Strong sense of responsibility, organized person
** Programming skills
** Ability to work in a team
** Time management skills.

მისამართი: http://www.jobs.ge/17376/

რითი მიიქცია ამ ვაკანსიამ ყურადღება? :D ჩამოთვლილი პუნქტებიდან ორმა ფრიად მომხიბლა:

** Relevant higher education (preferably in web design field)

ისა რომელ უმაღლესში ასწავლიან ამას? :D შეიძლება ასწავლიან და არ ვიცი თუ მეტყვით კარგი იქნება :D

** Knowledge of the following program languages: HTML, GSS, JavaScript, PHP, Ajax, Asp.Net

ესე იგი Knowledge of the following program languages როგორ უნდა გავიგოთ? პროგრამის ენები? ეგება პროგრამირების ენები უნდა იყოს? :D

კიდევ საინტერესოა GSS რომელი “პროგრამის” ენაა? :D

ასევე საინტერესოა Ajax პროგრამისა თუ პროგრამირების ენაა? ან ენაა საერთოდ? :P

ტეგები:

IE8 – ფინალური ვერსია გამოვიდა

IE8 როგორც იქნა გვეღირსა და გამოვიდა IE8 – ს ფინალური ვერსია.

მიუხედავად იმისა რომ ბრაუზერების ვენდორებმა ძალიან გაგვანებივრეს ბოლო თვეების მანძილზე, ეს ინფორმაცია გაცილებით სასიხარულო და მნიშნველოვანი იყო ჩემთვის. რატომ? იმიტომ რომ დღესდღეობით IE6 და IE7 ორი გამორჩეულად ჩამორჩენილი ბრაუზერია რომლებსაც ბაზრის 67% უკავიათ ჯამში. იმედი მაქვს რომ IE8 რომელიც გაცილებით განვითარებულია მის ორ წინამორბედზე თუნდაც IE6 – ის სიკვდილს შეუწყობს ხელს. საბოლოო მომხმარებლისთვის შესაძლებელია ამას არსებითი მნიშნველობა არ აქვს, მაგრამ ჩემთვის(და არა მარტო) როგორც პროფესიონალისთვის ეს ძალიან ძალიან ძალიან მნიშვნელოვანია :)

მაშ ასე გადმოწერეთ და გაავრცელეთ რაც შეიძლება ჩქარა აიძულეთ ყველა IE – ს მომხმარებელს რომ ეს განახლება რაც შეიძლება სწრაფად გააკეთოს, ამითი ყველა დავაჩქარებთ IE6 – ის საბოლოო გარდაცვალების პროცესს :D

ტეგები:

JavaScript: arrayChunk

დღეს კოდის წერისას დამჭირდა მასივის რამდენიმე თანაბარ ნაწილად დაყოფა, PHP – ს ამ ამოცანის გადასაჭრელად გააჩნია შესაბამისი array_chunk() ფუნქცია, მაგრამ, JavaScript – ს მსგავსი არაფერი გააჩნია.

ეს არის ე.წ. quick solution ამ ამოცანის გადასაჭრელად:

1
2
3
4
5
6
7
function arrayChunk(array, size) {
    var start = 0, result = [], chunk = [];
    while((chunk = array.slice(start, start += size)).length) {
        result.push(chunk);
    }
    return result;
}

ფუნქცია ღებულობს ორ პარამეტრს 1) მასივი რომელიც გვინდა დავყოთ; 2) თითოეული დანაყოფის ზომა;

თუ ამ ფუნქციას შეასრულებთ FireBug – ის კონსოლში:

var a = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(arrayChunk(a, 2));

მიიღებთ შემდეგ შედეგს:

 [[1, 2], [3, 4], [5, 6], [7, 8], [9]]

შედეგიდან გამომდინარე ფუნქციის საბოლოო რეზულტატი თვალსაჩინოა, იგი აბრუნებს სასურველი(ამ შემთხვევაში 2) ზომის მასივების მასივს.

დამატებითი დეტალების ახსნისგან თავს შევიკავებ რადგან ფუნქცია უმარტივესია, თუმცა ძალიან სასარგებლო :)

ტეგები: