MySQL стал собственностью Oracle, есть ли альтернативы и как быстро движение вперед?.. Вроде как обобщающего обзорчика «who is who?» еще не было. Итак, обзорчик для тех кто «не в теме»
iniweb @iniweb
User
Рецепт быстрого приготовления расширений под популярные браузеры
2 min
1.2K
Возникла задача написание простенького расширения под все (по возможности) популярные браузеры. Деятельность расширения заключается во внедрении javascript`а в тело документа.
+70
Getting Started with MongoDB and PHP
18 min
62KTranslation
Generation Next
За последний год произошла небольшая революция в мире СУБД, связанная с появлением безсхемных (безструктурных) СУБД таких как Apache CouchDB. В этих базах данных используется другой подход нежели в реляционных БД. Они достаточно быстро становятся популярны среди Web-разрабочиков из-за своей гибкости, простоты и легкой интеграции с современными технологиями такими как JSON.
В данной статье изложен краткий обзор MongoDB, одной из новых поколений безсхемных СУБД, которая получила большое внимание разработчиков.
За последний год произошла небольшая революция в мире СУБД, связанная с появлением безсхемных (безструктурных) СУБД таких как Apache CouchDB. В этих базах данных используется другой подход нежели в реляционных БД. Они достаточно быстро становятся популярны среди Web-разрабочиков из-за своей гибкости, простоты и легкой интеграции с современными технологиями такими как JSON.
В данной статье изложен краткий обзор MongoDB, одной из новых поколений безсхемных СУБД, которая получила большое внимание разработчиков.
+87
Про бесполезность длительного проектирования
3 min
2.3K
Порядка 95% компаний, а может даже больше, используют классическую схему разработки: обязательное проектирование, разработка, тестирование, внедрение. Оценить, хорошо это или плохо, можно только попробовав что-то другое. Я попробовал, и эта статья будет сугубо про мой практический опыт.
Сказка про то, как мы биллинг проектировали
Это было примерно два года назад. Наш сервис переживал очередную реинкарнацию, и пришла пора добавить некий внутренний биллинг для пущего контроля финансовых взаимоотношений с клиентом. От него не требовался функционал полноценных коммерческих биллинговых систем, нужно было автоматизировать всего лишь внутренние процессы компании.
+41
ООП Практикум PHP5: эмуляция примесей (mixin) в языке
11 min
5.1KКак-то вечером для реализации моделей поведения в ORM в моем велосипеде фреймворке мне понадобилось что-то, ведущее себя как примесь (mixin) в Ruby или как метод расширения (extension method) в C# (или как трейт / графт в будущих версиях PHP) Я решил для интереса посмотреть, как у меня получится реализовать примеси на PHP. Если вы не знаете, что такое примесь, не беда, сейчас все расскажу.
Приглашаю последовать за мной в рассуждениях о реализации примесей на PHP и программировании небольшой библиотеки, позволяющей их реализовать. Статья ориентирована на PHP разработчиков начинающего и среднего уровня (главное, чтобы вы хорошо ориентировались в ООП). В процессе я также сделаю небольшую ошибку, касающуюся тонкостей работы PHP 5.3 с классами, через какое-то время на нее укажу и предложу исправить. А также предоставлю свое решение для вашей критики. Приятного чтения.
Приглашаю последовать за мной в рассуждениях о реализации примесей на PHP и программировании небольшой библиотеки, позволяющей их реализовать. Статья ориентирована на PHP разработчиков начинающего и среднего уровня (главное, чтобы вы хорошо ориентировались в ООП). В процессе я также сделаю небольшую ошибку, касающуюся тонкостей работы PHP 5.3 с классами, через какое-то время на нее укажу и предложу исправить. А также предоставлю свое решение для вашей критики. Приятного чтения.
+60
Надо ли тратить время на проектирование?
4 min
3.9KЭта статья родилась как ответ на статью Про бесполезность длительного проектирования. Хотелось бы высказать свое мнение на этот счет, поделиться опытом, но уложить все это в комментарии не представляется возможным.
Во-первых, проектировать надо всегда, даже если в проекте все «очевидно и так».
Во-вторых, длительность проектирования и его цикличность будет зависить от того насколько сложен проект и насколкьо опытна команда исполнителя проекта.
Во-первых, проектировать надо всегда, даже если в проекте все «очевидно и так».
Во-вторых, длительность проектирования и его цикличность будет зависить от того насколько сложен проект и насколкьо опытна команда исполнителя проекта.
+56
Немного о прелестях NetBeans + php
3 min
39KЯ, как человек, связанный университетом с Java, следил за развитием NetBeans практически с момента его становления изначально меня принудил ей пользоваться мне показал эту IDE мой учитель — Вадим Монахов (с гордостью обнаружил, что ссылка на него ведет с wikipedia, раздел литература). Сейчас часто сталкиваюсь с тем, что программисты PHP пишут говнокод ссылаясь на недоразвитость IDE не умеют делать Refactoring и многих из них останавливает отсутствие автоматизированных средств. Собственно, я решил отобрать у них этот аргумент: средства есть и сегодня я рассмотрю NetBeans как среду разработки для PHP и продемонстрирую заложенную в нее мощь.
+88
Objective-C с нуля
23 min
442K
+147
Новичкам в программировании под Mac/iPhone: смотрите видеоролики от эпла под Маком — сможете увидеть субтитры! (а также несколько самых важных ссылок)
2 min
7.3KПо моему мнению, осваивать новые фреймворки при программирования под айфон (и, возможно, под мак) крайне удобно, посмотрев про них видеоролики, лежащие бесплатно в iTunes University (каждый длиной около часа, их штук 50). После просмотра видеоролика в голове создается четкая картина, что с чем связано и как что вызывает, какие у классов есть возможности, и после этого достаточно reference, что встроен в Xcode, чтобы посмотреть прототипы методов и имена свойств. IMHO, без этих видео, используя лишь reference и guide и примеры, разобраться в том же фреймворке на порядки сложнее и дольше (особенно во всяких, связанных с видео и аудио).
Все время смотрел эти видеоролики на айфоне во время поездок на транспорте (ну и иногда под виндой, используя quicktime player v 7.6.6 — это практически текущая версия). Недавно первый раз запустил проигрывание видеоролика под макосью, и по доброму офигел — у них, оказывается, есть субтитры на английском! Это крайне удобно для тех, кто плохо понимает английский на слух.
UPD: На айфоне и айпэде субтитры тоже можно включить!!! Ткните на кнопку слева от слайдера уровня громкости.
Надеюсь, кому-то это поможет (особенно тем, кто еще не имеет комп с макосью, но подумывает о разработке под айфон и знакомится с документацией).
Ну и любезно предоставленная коллекция ссылок для начинающих от xzDeveloper — что почитать, что посмотреть (в порядке удаления от первоисточника):
Все время смотрел эти видеоролики на айфоне во время поездок на транспорте (ну и иногда под виндой, используя quicktime player v 7.6.6 — это практически текущая версия). Недавно первый раз запустил проигрывание видеоролика под макосью, и по доброму офигел — у них, оказывается, есть субтитры на английском! Это крайне удобно для тех, кто плохо понимает английский на слух.
UPD: На айфоне и айпэде субтитры тоже можно включить!!! Ткните на кнопку слева от слайдера уровня громкости.
Надеюсь, кому-то это поможет (особенно тем, кто еще не имеет комп с макосью, но подумывает о разработке под айфон и знакомится с документацией).
Ну и любезно предоставленная коллекция ссылок для начинающих от xzDeveloper — что почитать, что посмотреть (в порядке удаления от первоисточника):
- Документация iOS SDK, которая состоит из книг, руководств, примеров исходного кода, справочных документов (доступно разработчикам).
- Видео-лекции iPhone Development Videos от Apple (доступно разработчикам).
- Видео-лекции iPhone Application Development (Winter 2010) и Developing Apps for iOS (Fall 2010) из Stanford University
- Много тематических ресурсов: Developer forum на iphones.ru, http://touchdev.ru, http://habrahabr.ru, http://stackoverflow.com, http://google.com
+33
Удачная модель ветвления для Git
10 min
1MTranslation
Перевод статьи Vincent Driessen: A successful Git branching model
В этой статье я представляю модель разработки, которую использую для всех моих проектов (как рабочих, так и частных) уже в течение года, и которая показала себя с хорошей стороны. Я давно собирался написать о ней, но до сих пор не находил свободного времени. Не буду рассказывать обо всех деталях проекта, коснусь лишь стратегии ветвления и управления релизами.

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

В качестве инструмента управления версиями всего исходного кода она использует Git.
+162
Nano: И всё-таки его придётся выучить [1]
2 min
115K Речь идёт о текстовом редакторе nano в Linux.
Я не люблю nano и предпочитаю vim. Однако, в отсутствии vim, выбирая между vi и nano, я всё-таки предпочту nano, ибо как говорится в старой поговорке, «у vi есть два режима: бибикать и всё портить».
Кроме того, идёт активная замена vi на nano во многих дистрибутивах. Например, в новых версиях Debian и Ubuntu по-умолчанию vi устанавливается в самом куцем виде. А главное, его больше нет в busybox install/initrd этих ОС, что однозначно заставляет задуматься об изучении nano, не из любви к нему, а по необходимости.
Я понимаю, что сидеть и зубрить список комбинаций кнопок бесполезно, так что вместо этого я думаю сделать маленькие nano-уроки — по 8 комбинаций или фич за урок (я и сам их планирую изучать по мере публикации).
Nano не имеет «режима команд» как vim, и этим похож на oldschool-редакторы из консоли DOS/Windows (NC, Far Manager, DN, hiew/biew, внезапно втесавшегося в список mcedit и т.д.). Все команды отдаются нажатием комбинаций клавиш — функциональными кнопками или комбинацией Ctrl-буква, Alt-буква.
Важное отличие от 'generic editor' — это поддержка эмуляции Ctrl'а и Alt'а.

Кроме того, идёт активная замена vi на nano во многих дистрибутивах. Например, в новых версиях Debian и Ubuntu по-умолчанию vi устанавливается в самом куцем виде. А главное, его больше нет в busybox install/initrd этих ОС, что однозначно заставляет задуматься об изучении nano, не из любви к нему, а по необходимости.
Я понимаю, что сидеть и зубрить список комбинаций кнопок бесполезно, так что вместо этого я думаю сделать маленькие nano-уроки — по 8 комбинаций или фич за урок (я и сам их планирую изучать по мере публикации).
Nano не имеет «режима команд» как vim, и этим похож на oldschool-редакторы из консоли DOS/Windows (NC, Far Manager, DN, hiew/biew, внезапно втесавшегося в список mcedit и т.д.). Все команды отдаются нажатием комбинаций клавиш — функциональными кнопками или комбинацией Ctrl-буква, Alt-буква.
Важное отличие от 'generic editor' — это поддержка эмуляции Ctrl'а и Alt'а.
+93
Nano: И всё-таки его придётся выучить [2]
2 min
201KПродолжаем. Предыдущий топик (навигация по тексту): тут.
Сегодняшняя тема — работа с выделением, копирование и удаление кусков текста.
Для понимания принципов команд работы с текстом нужно сначала понять принцип выделения текста. Он осуществляется либо мышью, либо с клавиатуры. С клавиатуры выделение происходит так: сначала отмечается начало выделение: Alt-A или Ctrl-^. Далее следует навигация — и до момента выполнения действия над текстом в буффере, выделение сохраняется (обратите внимание, выделение сохраняется даже при вводе текста, в этом оно сильно отличается от выделения в gui-приложениях windows и ближе к persistent blocks в TurboC, DN и соответствующей опции Far Manager'а).
Обратите внимание, применимы все функции навигации, включая переход по номеру строки или поиск (в следующих выпусках).
Далее выделенный текст можно удалить или скопировать в буффер. Это делает комбинация
Выделенный текст можно скопировать в буффер обмена — комбинация
Далее мы можем вставить текст из буффера обмена —
Сегодняшняя тема — работа с выделением, копирование и удаление кусков текста.
Для понимания принципов команд работы с текстом нужно сначала понять принцип выделения текста. Он осуществляется либо мышью, либо с клавиатуры. С клавиатуры выделение происходит так: сначала отмечается начало выделение: Alt-A или Ctrl-^. Далее следует навигация — и до момента выполнения действия над текстом в буффере, выделение сохраняется (обратите внимание, выделение сохраняется даже при вводе текста, в этом оно сильно отличается от выделения в gui-приложениях windows и ближе к persistent blocks в TurboC, DN и соответствующей опции Far Manager'а).
Обратите внимание, применимы все функции навигации, включая переход по номеру строки или поиск (в следующих выпусках).
Далее выделенный текст можно удалить или скопировать в буффер. Это делает комбинация
Ctrl-K
(или F9
). Выделенный текст можно скопировать в буффер обмена — комбинация
Alt-6
(да, мы ЛЮБИМ nano).Далее мы можем вставить текст из буффера обмена —
Ctrl-U
или F10
. Обратите внимание — в подсказке снизу написана неправда, это не отмена удаления, это вставка.+13
Реализация паттерна Observer средствами PHP 5.3
3 min
11KПрочитав недавно нововведения PHP 5.3, я обратил внимание на несколько интересных особенностей, скомпоновав которые можно получить реализацию шаблона проектирования Observer, гораздо красивее, чем имеющиеся в pear и symfony, причём вся реализация займёт всего несколько строк кода.
+42
Свой сервер мониторинга с nagios и cacti
5 min
71KПод катом советы по быстрому развертыванию «системы мониторинга» посредством nagios и cacti.
+6
Ajenti 0.4
1 min
1.7KЗа короткий срок мне удалось выполнить почти все ваши, хабраюзеры, заказы на функциональность, и теперь я просто хочу донести до вас новость о выпуске новой версии (осторожно, пост-changelog!).
Традиционная картинка для привлечения внимания:

Традиционная картинка для привлечения внимания:

+171
Тестирование антенн Wi-Fi для приема WiMax
2 min
33KВ этой статье я только что рассказал об установке miniPCIe модуля WiMax в Samsung Q1 Ultra.
В процессе ожидания доставки контроллера я мучался вопросом, как быть с антенной для него.
Q2W меня немного обнадежил своим ответом, и я решил, что попытаю счастья со своими антеннами.
В этой статье я описывал добавление внешней антенны к инегрированному в UMPC контроллеру Wi-Fi.
А ниже я приведу результаты их использования для WiMax

UP. В статье три апдейта:
1. Сравнение с HTC MAX 4G в плохих условиях приема.
2. Тест новой антенны — победительницы
3. Результаты трассировки google.com и тест торрентом 7-го сезона House M.D. :)
В процессе ожидания доставки контроллера я мучался вопросом, как быть с антенной для него.
Q2W меня немного обнадежил своим ответом, и я решил, что попытаю счастья со своими антеннами.
В этой статье я описывал добавление внешней антенны к инегрированному в UMPC контроллеру Wi-Fi.
А ниже я приведу результаты их использования для WiMax

UP. В статье три апдейта:
1. Сравнение с HTC MAX 4G в плохих условиях приема.
2. Тест новой антенны — победительницы
3. Результаты трассировки google.com и тест торрентом 7-го сезона House M.D. :)
+34
Как избавиться от пристрастия к синхронности
6 min
5.8KTranslation
При сравнении асинхронное программирование превосходит синхронное, как по потреблению памяти, так и по производительности. Мы знакомы с этим фактом уже годы. Если посмотреть на Django или Ruby on Rails, возможно два самых многообещающих веб-фреймворка, появившихся за последние несколько лет, оба написаны из расчета на синхронный стиль. Почему даже в 2010 году мы пишем программы, полагающиеся на синхронное программирование?
Причина, по которой мы застряли в синхронном программировании, двоякая. Во-первых, манера написания кода непосредственно для асинхронного поведения неудобна. Во-вторых, популярные и/или распространенные языки имеют недостаточно встроенных конструкций, требующихся для реализации менее прямолинейных походов к асинхронному программированию.
Причина, по которой мы застряли в синхронном программировании, двоякая. Во-первых, манера написания кода непосредственно для асинхронного поведения неудобна. Во-вторых, популярные и/или распространенные языки имеют недостаточно встроенных конструкций, требующихся для реализации менее прямолинейных походов к асинхронному программированию.
+52
Лог комита: зачем он нужен на самом деле?
4 min
5.3KРазработчики уже давно привыкли пользоваться системами контроля версий. Для кого-то это является естественным переходом, кто-то воспринимает сначала систему контроля версий как некоторое дополнительное усложнение своей работы, но работа над проектом в команде невозможна без этого инструмента.
Очень часто переход от мышления «я сохранил файл — код зафиксирован» к мышлению «я сделал комит — код зафиксирован» натыкается на то, что процесс комита требует написания лога комита. Первое решение — оставить лог пустым или написать что-то из:
Очень часто переход от мышления «я сохранил файл — код зафиксирован» к мышлению «я сделал комит — код зафиксирован» натыкается на то, что процесс комита требует написания лога комита. Первое решение — оставить лог пустым или написать что-то из:
- «фикс бага»;
- «закомитил всё, что сделал»;
- «тестовый комит»;
- «исправил опечатку»;
- и т.п.
+56
node.js сокращатель ссылок
6 min
8.2K
Привет, Хабр! В этой статье я пошагово рассмотрю создание простого веб-приложения — сокращателя ссылок на node.js, используя mysql-libmysqlclient, MooTools на сервере и jQuery на клиенте. Статья предполагает, что читатель уже прошёл упражнение «Hello world» и разобрался в самых основах node.js.
+48
Непрерывная интеграция и TeamCity
4 min
102KНепрерывная интеграция (англ. Continuous Integration) — это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. В обычном проекте, где над разными частями системы разработчики трудятся независимо, стадия интеграции является заключительной. Она может непредсказуемо задержать окончание работ. Переход к непрерывной интеграции позволяет снизить трудоёмкость интеграции и сделать её более предсказуемой за счет наиболее раннего обнаружения и устранения ошибок и противоречий.

+39
Information
- Rating
- Does not participate
- Location
- Минская обл., Беларусь
- Date of birth
- Registered
- Activity