Search
Write a publication
Pull to refresh
5
0
Виталий @orloff

Пользователь

Send message

Программирование для мобильных платформ (КПК)

Reading time4 min
Views5K
Введение.
Сейчас КПК и другие мобильные прибамбасы есть уже наверное у каждого десятого. То есть у многих. А раз есть КПК — значит, нужны и программы к ним ). Также очень часто встречается ситуация, что нужная программка для наладонника есть, но она платная). А еще может быть, что Вам самим захочется добавить какие-нибудь функции для Вашего любимого девайса. В этом Вам поможет наш небольшой обзор. Писать будем на языке С# в всенародно любимой Visual Studio 2005. Вы увидите, что писать такие приложения совсем несложно и процесс не очень отличается от написания программ для обычных компьютеров x86.
Читать дальше

Сделай сам — проекционные часы.

Reading time4 min
Views60K
Надеюсь те, кто были на моем портале видели первую версию проекционных часов. Я изготовил вторые. Данная статья частью дублирует тот материал. А частью раскрывает грабли на которые я наступил. Никаких микроконтроллеров внутри, доступно для повторения всем!)


Читать дальше →

MDC: beta-релиз нового мультипротокольного мессенджера

Reading time3 min
Views3.1K
Сегодня я расскажу о MDC — новом проекте компании NetStream. MDC – мультипротокольный клиент обмена сообщениями с поддержкой операционных систем Windows, Linux, MacOS X и протоколов ICQ, Mail.Agent, Jabber, AOL (постепенно мы будем расширять список протоколов).

Что за велосипед они изобрели?

MySQL Performance real life Tips and Tricks. To be continued.

Reading time6 min
Views8.1K
По заявкам трудящихся решил написать еще одну статью, посвященную оптимизации запросов в MySQL.

В прошлой статье habrahabr.ru/blogs/mysql/38907 рассматривались вопросы оптимизации LIMIT, GROUP BY, COUNT.

В данной статье я немного вернусь к вышеописанному и опишу пару примеров, с которыми столкнулся на проекте недавно, после этого приведу еще пару небольших примеров относительно того что такое хорошо и что такое плохо в MySQL.
Читать дальше →

MySQL Performance real life Tips and Tricks

Reading time9 min
Views37K
Пообещал вчера написать статью о реальных случаях оптимизации БД MySQL.
Пришлось сегодня вставать утром пораньше чтобы воплотить обещанное в жизнь.
Централизованное управление мыслями поддерживать еще сложно, поэтому не судите строго за казусы и ляпсусы в моей статье.

В последнее время приходится достаточно часто заниматься оптимизацией производительности сайтов. И как правило «бутылочным горлышком» в производительности работы этих сайтов является именно БД, ошибки как в архитектуре так и в выполнении запросов. Начиная от неправильной расстановки индексов, либо совершенным их отсутствием, неправильным (неэкономным) выбором типов данных под определенное поле, заканчивая абсолютно нелогичной архитектурой БД и такими же нелогичными запросами.

В данной статье опишу несколько приемов, которые были использованы для приложения с 4млн+ пользователей и которое имея порядка 100млн+ хитов в сутки, а в конце опишу задачу, которая решалась недавно и может быть многоуважаемое сообщество предложит мне решения этой задачи более эффективное нежели то, к которому пришел я.

Читать дальше →

jQuery in Action. Глава 2

Reading time9 min
Views23K
Как я и обещал, вторая глава из книги «jQuery in Action» (авторы Bear Bibeault и Yehuda Katz). Как и из первой главы, выбрал все самое вкусное и интересное ;-)

Напоминаю, что первую главу можно прочесть здесь.

Читать дальше →

Использование выражений в PHP

Reading time4 min
Views6.9K
В данном тексе я лишь обращаю внимание на некоторые возможности языка PHP. Я не предлагаю их использовать, так как это в некоторых случаях существенно усложняет читабельность кода и приводит к сложностям при отладке. Однако описанные мной подходы в ряде случаев существенно позволяют сократить код.

Выражения — это краеугольный камень PHP. Почти все, что вы пишете в PHP, является выражением. Самое простое и точное определение выражения — «все что угодно, имеющее значение». (с сайта php.net)

UPD: Статья только о том, как МОЖНО делать в некоторых случаях, когда это оправданно. В большинстве случаях (и тем более повсеместно) описанную практику применять не стоит ни в коем случае, так как она сильно усложняет код. Цель статьи — расказать о возможностях языка, не более того.

Читать дальше →

Что PHP может узнать о браузере посетителя?

Reading time3 min
Views31K

О чем это?


Возможно ли узнать более детальную информацию о браузере посетителя кроме строки, содержащейся в $_SERVER[«HTTP_USER_AGENT»]: поддерживает ли яву, апплеты, таблицы стилей и фреймы? А может это вообще гуглобот зашел?
Читать дальше →

jQuery для начинающих

Reading time9 min
Views515K
jQuery Logo

jQuery — это замечательный JavaScript Framework, который подкупает своей простотой в понимании и удобством в использовании. Но изучение надо с чего-то начинать, и лично моё мнение — лучше всего начинать с наглядных примеров, и они далее…

Читать дальше →

wysiwyg своими руками

Reading time3 min
Views24K
Существует куча платных\бесплатных визуальных редакторов на любой вкус и цвет. Но что, если они работают не во всех браузерах, Вас не устраивает дизайн или функциональность, или просто душа лежит к написанию своего собственного? Ответ на вопрос, как это сделать —
Читать дальше →

Что такое полиморфизм на самом деле. В PHP он тоже существует.

Reading time3 min
Views94K
Написать этот пост побудила недавняя статья о полиморфизме. Она вызвала много споров, но знающие люди понимают, что автор написал скорее о наследовании и о переопределении методов, чем о полиморфизме. Не буду говорить ни хорошее ни плохое о той статье, а просто расскажу, что такое полиморфизм на самом деле. Дабы начинающие php-программисты не остались в заблуждении.
Читать дальше →

Полиморфизм для начинающих

Reading time7 min
Views999K
Полиморфизм — одна из трех основных парадигм ООП. Если говорить кратко, полиморфизм — это способность обьекта использовать методы производного класса, который не существует на момент создания базового. Для тех, кто не особо сведущ в ООП, это, наверно, звучит сложно. Поэтому рассмотрим применение полиморфизма на примере.
Читать дальше →

Супер-юзабильные формы

Reading time2 min
Views54K
super_form

Как-то на хабре разгорелся спор, как заставить пользователя вводить дату в правильном формате, было множество интересных решений, но заставлять пользователя совершенно не надо — пусть за пользователя основную работу делают машины :-).

На помощь приходит замечательный скрипт «Masked Input Plugin», который позволяет назначить для каждой формы маску, по которой данные будут заполнятся.

Возможно Вы не совсем поняли, но лучше один раз увидеть, чем сто раз услышать.
Читать дальше

Замыкание в Java Script для непосвященных

Reading time2 min
Views3.3K
У моих программистов была задача: в фото галерее при активном изображении подсвечивать thumbnail показываемого изображения. Задача вроде тривиальная, но вызвала у них некоторый затык при решении. Хочу сказать сразу, что владение JS было у них не на высоте.
Вообще мало людей по настоящему знающих этот язык и не путующий его с принципами работы DOM документа.

В чем же была проблема…
1. В том, что сначала они решали её рекурсией :)
2. Вторая попытка решить привела к введению глобальной переменной, что я не считаю хорошим тоном
3. Загрязнение общего кода подобными маленькими функциями вместо использования объектного подхода

В бытности будучи программистом я написал маленький каркас для демонстрации. Вот он:

<script type=«text/javascript»>
          
          
function MainMenu(){
            
            var OldImage;

            this.getOldImage = function(){ return OldImage; }
            this.setOldImage = function( img ){ OldImage = img;}
            this.chgImage = function( obj, newImage){
              if(newImage != null){
                this.setOldImage(obj.src);
                obj.src = '/images/'+newImage;
              } else {
                obj.src = this.getOldImage();
              }
            }

}

var Menu = new MainMenu();

</script>
* This source code was highlighted with Source Code Highlighter.


Вызывать следует так:

<img src="/images/home.gif" width=«88» height=«23» alt="" onmouseover=«Menu.chgImage(this, 'home_over.gif')» onmouseout=«Menu.chgImage(this)»>* This source code was highlighted with Source Code Highlighter.


Что это нам дало:

1. Мы не используем рекурсию. Этим мы бережем ресурсы компьютера. У клиентских машин они же не резиновые вопреки обратным утверждениям
2. Мы не ввели глобальную переменную, которая в больших системах неудобна по объективням причинам
3. В третьих мы сделали универсальный объект. У него инкапсулированы данные!

Новичкам просьба разобраться и понять. Этот вариант сделан специально проще, чем мы реализовывали.

Мы создаем в теле функции локальную переменную. Затем захватываем эту переменную методом этой функции (это класс, точнее прототип). В итоге получаем хитрый трюк. При выходе из самой функции данные в ней запомнились.

Вообще-то по этому вопросу материала достаточно в сети. Этот трюк далеко не новый. Но о нем нужно напоминать «отцам» и учить новичков.

Как показать в виде страниц результат большой выборки

Reading time1 min
Views664
Когда результатов выборки много обычно невозможно отобразить их все в виде страниц — показывают несколько первых и последних, а в середину «прыгнуть» или невозможно или для этого нужно вручную набивать номер нужной страницы.
Для решения этой проблемы придумал алгоритм логарифмической шкалы страниц (в примере используется 20 миллиардов условных результатов разбитых на 1 миллиард страниц):

online пример

Идеально подходит для сайтов с быстрорастущим количеством контента, т.к. избавляет от необходимости контролировать и применять меры для того чтобы полоска списка страниц не превысила разумные пределы.

P.S. К сожалению, алгоритм при создании не был документирован (писалось по наитию), поэтому по каким математическим принципам он работает я и сам уже плохо представляю :)

Когда критическая ошибка приносит радость…

Reading time1 min
Views2K
Прочитав недавно на пьяную голову «Обработка ошибок и исключений в PHP», решил применить полученные знания на практике. Честно, ещё 6 часов назад не знал, куда это меня приведёт, но в итоге теперь мои скрипты при ошибка зажигают вот такой симпотный экран:


Хотите узнать, как я этого добился?

Как сделать двигающийся аплоадер минимального размера и красиво

Reading time1 min
Views899
Хочу поделиться небольшим трюком для создания анимированной полосы загрузки как в флеш проигрывателях или в операционной системе.
Имеем в наличии просто картинку:


Как заставить её двигаться? А очень просто! Нужно двигать бекграунд в интервале попиксельно.
Смотрим демо

немного кода

Взрослость опасносте (с)

Reading time3 min
Views1.1K
Здравствуйте, уважаемые хабрапользователи! Сегодня мы хотели бы рассказать вам про SmartMasses – наш магазин для взрослых детей и гиков.

С чего всё началось.



мне мало одного заголовка, я хочу прочесть весь топик

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity