АРХИВ ПО ТЭГУ "ПРОГРАММИРОВАНИЕ"
ФЕВРАЛЬ 27, 2009

Йо!

Вчера с коллегой по работе думали, как оптимальнее и короче реализовать распознавание языка (локали) браузера, используя JavaScript. В итоге пришли к такому мнению:

var lang = (navigator.language ||
            navigator.systemLanguage ||
            navigator.userLanguage ||
           'en').substr(0, 2).toLowerCase();

Теперь сравниваем переменную lang с потенциальными значениями, например: русский — «ru», английский — «en», немецкий — «de», итд. Это решение отсекает разные диалекты и выдает только язык (локаль) браузера.

Вот и все!

icon smile JavaScript   Определение языка браузера %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8

ФЕВРАЛЬ 25, 2009

Йо!

Давно уже хотел сделать свой плагин для Firefox. Так вот сделал таки. Обстоятельства так сложились, что коллега по работе показал свой сайт и там он показал статью о том, как скачать видео вконтакте. И вот я решил сделать плагин к Firefox, который скачивает видео с контакта!

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

Некоторые полезные туториалы (доки) по созданию расширений для Firefox:

Если честно, то это экспериментальный проект по SEO — интересно, сколько народу будут пользоваться моим плагином. Посмотрим.

icon smile Как сделать Firefox плагин %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8

ФЕВРАЛЬ 22, 2009

Хай!

У меня скопился уже достаточно большой опыт разработки интернет-проектов и теперь я хочу несколько систематизировать свои знания, возможно это будет полезно и вам.

Тут я рассмотрю исключтельно технологии для быстрой разработки интернет-проектов — фреймворки и движки. Вы можете возмутиться и сказать что это медленно, небезопасно и не гибко. Угу, это конечно не чистый Java со Spring’ом или EJB и не чистый .NET со своей бадягой. И это будет работать не так быстро как на чисто этих технологиях. Но эти технологии мы оставим для крупных компаний, короый хотят писать свои мега масштабные Enterprise проекты годами. Я же предпочитаю делать не большие проекты и делать их быстро. Итак, что мы рассмотрим: Grails, Ruby on Rails, Cakephp, Drupal, WordPress.

WordPress (PHP)

Начнем с простейшего. Это движок блога с возможностью кастомизации с помощью готовых или самописных плагинов. Движок очень простой правда не очень быстрый. Зато в нем уже интегрировано куча полезностей, так что сделать блог, форум или сайт новостей на нем очень просто. Как вы можете заметить — мой блог построен именно на WordPress. Правда эта ботва не годится для более менее больших проектом, и кастомизировать его запарно, если нужны какие-нибуть мега фичи на сайте. Вобщем подойдет для небольшого новостного сайта. (сайт Worpress)

Drupal (PHP)

Опять движок, но уже посерьезнее чем WordPress. Движок не очень простой в освоении, но если понять как и что там делается, то можно с быстрой скоростью херачить неплохие сайтосы под практически любые нужны. Существует очень много расширений (модулей, плагинов) для Drupal’а, которые свободно доступны в сети. Правда за все удобства приходится платить скоростью работы этой хрени и достаточно долгим вниканием в эту технологию (именно на уровне кода). Так же использование этого движка ставит под сомнению всю безопасность сайта, особенно если используется много сторонних расширений. Но вобщем движок очень неплохой и удобный, правда мне он кажется тяжеловесным немного icon smile Технологии быстрой разработки веб приложений %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8 (сайт Drupal)

Ruby on Rails (Ruby)

Это революционный фреймворк, который дал старт новой эре разработки интернет-проектов. Очень многие фреймворки родились именно после успеха Ruby on Rails (в том числе Cakephp и Grails). MVC, ORM — да. Все очень удобно и по «папски» icon smile Технологии быстрой разработки веб приложений %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8 Правда сам язык Ruby немного некрасивый ИМХО (и не только ИМХО), есть в этом языке Ruby что-то такое Perl-Brainfuck’овое icon smile Технологии быстрой разработки веб приложений %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8 Возможно именно поэтому этот фреймворк не так популярен среди разработчиков, и не так уж много на нем реально хороших проектов, хотя они есть это несомненно! Лично я щупал этот фреймворк на деле как в домашних условиях так и в некоторых компаниях где я работал, но видимо незнание (и нежелание) языка Ruby сделало свое дело и я так и не написал на Ruby on Rails хотя бы один полноцельный проект. Мне кажется сейчас есть более качественные альтернативы это фреймворку такие как Cakephp и Grails, о которых ниже. (сайт Ruby on Rails)

Cakephp (PHP)

Cakephp — это отличный фреймворк для разработки веб-приложений. Поддерживает все лучшие паттерны проектирования веб в том числе MVC. Так же есть и ORM — куда же без него! Изучается достаточно быстро (правда с пользователями придется немного повозиться, не очень понятная хрень в кейке icon smile Технологии быстрой разработки веб приложений %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8 ). После изучение фреймворка можно разрабатывать любой сложности и уровня веб-проекты. Легковесный и в то же время очень мощный Framework. Очень хорошая документация и активный Community. Вобщем на данный момент это мой любимый фреймворк, на котором я сейчас веду активную разработку нескольких своих проектов. (сайт Cakephp)

Grails (Groovy / Java)

Как много хороших воспоминаний у меня с этим фреймворком! Если честно, то это самый удобный фреймворк для разработки веб-приложений, с которым я когда-либо работал. Все очень логично, просто и эффективно. Изучается очень быстро, активный Community при поддержке Intel. Используется язык Groovy, но для тех, кто знаком с Java это не вызовет никаких осложнений, т.к. Groovy это почти та же Java, только немного упнощенная по синтаксису. Groovy — это скриптовая Java, на выходе работы Groovy мы получаем работающий Java код. Правда то что в итоге получается Java код и WAR’ка, то это ставит некоторый ограничения на деплоймент проекта, т.е. на сервере нужно как минимум Application Server (Tomcat, JBoss, …), Java и Groovy. Зато это все работает быстро (Java же!). Прелестный фреймворк. (сайт Grails)

Итог

ИМХО итог. Ruby on Rails немного тяжеловат в изучении и отстает по удобству некоторым своим последователям. WordPress хорош для небольших новостных сайтов. Drupal тяжеловат и сложен в изучении, неплох для сайтов средней нагрузки. Cakephp lightweight framework и легок в изучении, лучший выбор для сайтов любого уровня сложности. Grails — отлично подходит как для небольших проектов так и для Enterprise веб-проектов, где нужна кластеризация, возможно и ESB (Enterprise Service Bus), т.к. технологии Java дают легкий доступ ко всему мировому Enterprise опыту.

Вот и все.

icon smile Технологии быстрой разработки веб приложений %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8

ЯНВАРЬ 22, 2009

Привет! icon smile CXF WebServices Client on Tomcat %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8

Седня некоторое время втыкал на работе такую особенность работы Tomcat’а, когда на нем задеплоина аппликуха со сгенеренным CXF клиентом для веб-сервиса.

Прикол в том, что когда генеришь клиента, то нужно указывать параметр wsdlLocation (можно и без него, но это плохая практика использоватть дефолтовое значение). Этот параметр говорит сгенеренному клиентскому классу, где лежит WSDL’ка, по которой сгенерен код. Так вот, просто использовать WEB-INF/wsdl/SomeWebService.wsdl не прокатило, я так же пробывал file:/WEB-INF/…, file:WEB-INF/…, /WEB-INF/.. — ничего не помогало. Я уже подумал, что это мэджик и такого не может быть и указал абсолютный путь типа file:/C:/Tomcat/webapps/SomeApp/WEB-INF/wsdl/…. — заработало! Но ведь это абсолютный путь, что не есть хорошо!

В итоге я выяснил, что на томкате путь нужно писать относительно места исполняемого скрипта томката! т.е. Tomcat/bin. В Итоге получилось так: wsdlLocation=../webapps/SomeApp/WEB-INF/wsdl/…

Вот такая небольшая заметка, чтобы запомнить ее и больше не попадаться на одну и ту же удочку дважды icon smile CXF WebServices Client on Tomcat %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8

ЯНВАРЬ 22, 2009

Итак! Задача на математику-программирование от моего друга Тохина icon smile Интересная задачка   Высчитывать линейную оболочку полигона  %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8

«выщитывать ленейную оболочку полигона» — ога!

Дается полигон любой и параметром задается н-угольник как его линейная оболочка, то есть кол-во углов нового полигона (точки в координатах X;Y), в который должен быть вписан старый, причем углы нового должны быть и углами старого.

Например, дается первый полигон, передается массивом скажем массив из 20 точек, и еще тебе дается параметр, в скольки-угольник вписать твой полигон, скажем 13, => ты создаешь новый полигон так, чтоб его 13 углов (точек) были взяты из 20 старого и при этом старый должен быть вписан в новый.

Нужно будет как-нибуть решить на досуге icon smile Интересная задачка   Высчитывать линейную оболочку полигона  %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8

Решаем!

icon smile Интересная задачка   Высчитывать линейную оболочку полигона  %d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d0%b8

ЯНВАРЬ 22, 2009

Привет!

Седня у меня по дороге домой с работы возникла мысль о том, как движется программист по ступенькам языков программирования. Итог — график:

grap programmer Уровни жизни программиста %d0%b8%d0%b4%d0%b5%d0%b8

График - Уровни жизни программиста

Зеленая линия показывает уровень поддержки языка, и трендовое восхождение вверх — на самом деле на графике не отражено изменения высокоуровневости на длительный период, т.к. там линия тренда идет под бОльшим углом, т.е. через некоторое время программист превращается в архитектора и мыслит высоким уровнем (UML, BPM, …).

Голубая линия показывает уровень поддержки усталости от IT, чем она выше, тем больше устал программист от своей работы icon smile Уровни жизни программиста %d0%b8%d0%b4%d0%b5%d0%b8 Т.е. в конце концов ему это все надоедает и он перестает работать на кого-то в IT — занимается другим дело, в частности может быть управленческие обязанности, трейдинг или свои проекты. Но в конце жизни (это не показано на графике), он все же устанавливает значение усталости от IT где-то чуть ниже середины (50), т.к. он уже работает себе в удовольствие.

Что-то типа того, быстрая мысль, поэтому не очень внятная.

icon smile Уровни жизни программиста %d0%b8%d0%b4%d0%b5%d0%b8

Страницы:1...7891011