Как стать автором
Обновить
0
0
Андрей @proof

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

Отправить сообщение

Git Wizardry

Время на прочтение17 мин
Количество просмотров451K
1 Введение


В своей прошлой заметке я постарался осветить в общих чертах стиль работы с
распределенной системой контроля версий git и указать на отличия по сравнению с
классическими централизованными СКВ. Целью было прежде всего обобщение опыта
работы с системой без упоминания тонкостей синтаксиса отдельных команд.

Данный же топик задумывался как непосредственное введение в работу с git, нечто
среднее между tutorial и обобщенной справкой, до которого все же рекомендуется
прочитать упомянутое выше введение. Сознательно избегаются технические
подробности работы git, употребляются только общие для СКВ термины и
ограничивается список упоминаемых команд.

Читать дальше →
Всего голосов 89: ↑66 и ↓23+43
Комментарии76

MakeMap — покажи себя на карте

Время на прочтение2 мин
Количество просмотров1.3K
imageЗдравствуй %username%
Хочу представить твоему вниманию новый проект посвященный картам проезда и визуальному созданию кода для карт Google.

Некоторое время назад мой друг поинтересовался, а как встроить в свой сайт карту Google? Показав ему стандартный JavaScript код для встраивания карты в свой сайт я услышал, что это достаточно сложно для неспецалиста. И судя по всему для человека который далек от веб-разработки, это так и есть. В итоге родилась идея которую я и представляю на твой, %username%, суд. Сервис реализовал с помощью Google Maps API + Mootools + Yourls (Спасибо getnaked)
Читать дальше →
Всего голосов 67: ↑46 и ↓21+25
Комментарии94

Html и Skype используем в своих приложениях

Время на прочтение2 мин
Количество просмотров71K
Skype уже наступает повсеместно. Особенно в череде последних событий с групповыми видеозвонками. Даже в нашем захудалом городке, у половины пользователей локальной сети стоит Skype. Почему бы не использовать его как дополнительную возможность для общения с клиентами? Он с легкостью обгонит и перегонит пользу от тех же ICQ или Jabber. Ну а про стоимость звонков, я вообще молчу, опсосы на своих роумингах иногда за минуту разговора снимали баснословные деньги. Так дайте же юзерам общаться через Skype, повысьте свой сервис.


Читать дальше →
Всего голосов 116: ↑84 и ↓32+52
Комментарии35

Разработка с использованием WEB SQL DB и Local Storage

Время на прочтение5 мин
Количество просмотров7K
Совсем недавно на хабре был пост, посвященный работе с WEB SQL DB. Одно из полезных применений локальных баз данных – работа в оффлайн режиме. Кроме этого, я покажу еще один вариант работы, когда вместо sql используется local storage, который поддерживается уже большим количеством браузеров.
Читать дальше →
Всего голосов 28: ↑24 и ↓4+20
Комментарии8

HTML 5. Работа с Web SQL базой данных

Время на прочтение3 мин
Количество просмотров172K
В HTML 5 есть много новых возможностей, которые позволяют web разработчикам создавать более мощные и насыщенные приложения. К этим возможностям относятся и новые способы хранения данных на клиенте, такие как web storage(поддерживается в IE8) и web SQL database.

При этом если web storage ориентирован на хранение пар ключ-значение, то в случае с web SQL database у нас есть полноценный sqlite(во всех текущих реализациях применяется именно этот движок баз данных, что является проблемой при стандартизации).

Далее я расскажу, как работать с web SQL database. При этом примеры естественно будут на JavaScript. Кроме того, стоит отметить, что с поддержкой браузерами всего этого хозяйства дела обстоят, не очень хорошо, но всё постепенно меняется к лучшему и, скажем, в Opera 10.50 поддержка будет, а браузерах на движке WebKit она уже есть. Более подробно про то, какой браузер, что поддерживает можно узнать, пройдя по ссылке.

Соединение с базой данных.


Подсоединиться к базе данных очень просто:

db = openDatabase("ToDo", "0.1", "A list of to do items.", 200000);
Читать дальше →
Всего голосов 66: ↑61 и ↓5+56
Комментарии39

Tips & Tricks

Время на прочтение9 мин
Количество просмотров5.1K
Практически во всех языках программирования одну и ту же задачу можно решить несколькими способами. Однако какие-то из них лучше, какие-то хуже. Для некоторых требуется написать 10 строк кода, для других можно обойтись и одной.

Совершенствование кода и его оптимизация порой отнимает больше времени, чем заняло написание первой версии. Вы часто встречали новый для вас код или интересную реализацию, и говорили себе: «Оказывается, это можно сделать стандартными средствами, а я изобретал велосипед»? Лично я — да. Поэтому в этой статье я собрал свою коллекцию «велосипедов», и рассказал, как от них можно избавиться.

Методы массивов


Простой пример — допустим, у вас имеется массив объектов класса User. У них есть свойство activated, которое выставляется на 1, если юзер активировал свою учетную запись. Вам нужно проверить, все ли юзеры из массива активированы. Не берем во внимание ActiveRecord (там можно и по-другому сделать), моя цель — показать работу с массивами.

Способ первый, самый примитивный:
  1. @users = User.find(:all)
  2. activated_users = 0
  3. foreach user in @users
  4.   activated_users += 1 if user.activated == 1
  5. end
  6.  
  7. # если количество совпадает, значит все юзеры активированы
  8. activated_users == @users.size
Читать дальше
Всего голосов 76: ↑61 и ↓15+46
Комментарии45

Создатель Ruby on Rails Девид Хенссон из 37signals о секретах прибыльного стартапа

Время на прочтение2 мин
Количество просмотров1.1K
imageНедавно на Хабре уже обсуждалось аудио/видео Девида Хенссона (David Heinemeier Hansson) для Стенфорда на тему стартапов.

В данном же материале предлагается обратить внимание на его видео и презентацию со Startup School'08, не потерявшие своей актуальности и сейчас, под названием: The A secret to making money online.
Читать дальше →
Всего голосов 97: ↑85 и ↓12+73
Комментарии28

Полиморфные связи. Маленькое дополнение

Время на прочтение3 мин
Количество просмотров1.3K
В декабре на Хабре была хорошая статья, о полиморфных связях в Рельсах. Вот она. Перед тем как читать дальше, пожалуйста ознакомьтесь с ней.
Однако, у автора статьи осталось несколько неотвеченных вопросов. Вот на них то мы сегодня и найдем ответы.
Читать дальше
Всего голосов 35: ↑30 и ↓5+25
Комментарии6

Межсайтовая авторизация 2

Время на прочтение2 мин
Количество просмотров27K
По итогам поста, сделанного в июле 2009 и продолжительным испытаниям, мы пришли к простой и оптимальной для нас схеме межсайтовой авторизации.
Спешу поделиться с общественностью
Всего голосов 51: ↑41 и ↓10+31
Комментарии61

Таблетка от пингвиньего жара своими руками

Время на прочтение12 мин
Количество просмотров26K
Стал я тут недавно 'счастливым' обладателем нетбука на базе Atom N270. Windows XP, естественно для меня, был немедленно выкинут с жёсткого диска и заменён Linux'ом. И всё было хорошо… где-то минут 15, пока процессор (вообще, конечно, все вам скажут, что не процессор, а чипсет, но всякие тесты, вроде кручения бесконечных пустых циклов в bash показали, что именно процессор) не стал чрезмерно горячим в процессе установки всяких разных пакетов (я вообще не понимаю, откуда Intel взяла оценку для TDP N270 в 2.5Вт).

Другая ситуация. У моего знакомого довольно пожилой ноутбук ASUS с достаточно странными настройками ACPI, в таблицах которого записано, что включать throttling нужно при температуре системы в 89 градусов Цельсия, а отрубать систему от критического перегрева при температуре в 81 градус.

Эмс… Вы не сочтите это всё антипиаром ASUS и Intel, ибо (я уверен) на других ноут(нет)буках с другими x86-процессорами вполне появляются схожие проблемы, и этот пост о том, как их решать, а не о том, какие праАативные флагманы IT… И вообще, я фанат ARM'ов… Так что для меня, что Intel, что AMD — одинаковое x86-зло… Но просто факт остаётся фактом. В некоторых старых моделях ноутбуков от ASUS кривые таблицы ACPI, а Atom'ы греются.

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

Проблема только в том, что стандартные рецепты манипулирования только лишь power-уровнями процессора в Linux (при помощи подсистемы cpufreq), которые раздаются на всех форумах направо и налево, недостаточно эффективны. Тот же Atom ощутимо греется находясь и в самом 'экономном' режиме, а моему знакомому в работе периодически нужна высокая производительность процессора, однако не ценой отключения по критической температуре. И при этом сброс процессора его ноутбука в 'экономный' режим при повышении температуры от перегрева не спасал.

В общем, проблемы надо как-то решать. Собственно вот, где-то на троечку с плюсом их решить получилось, решение описываю ниже с некоторыми подробностями, о которых редко пишут на user-форумах Linux (и вообще, я даже и сам не понял, откуда я всё это решение раздобыл :).

Читать дальше →
Всего голосов 122: ↑100 и ↓22+78
Комментарии55

Создание мульти-модельных форм

Время на прочтение7 мин
Количество просмотров21K
Иногда требуется создать форму, данные которой связаны с несколькими таблицами. К примеру, у вас имеется две модели: Owner и Car. При добавлении нового Owner'a хотелось бы, чтобы была возможность сразу добавить машину. С появлением Rails 2.3 это стало проще.

# Старый вариант (приблизительный)
def create
  @owner = Owner.new(params[:owner])
  ...
  if @owner.save
    @car = Car.new(params[:car])
    if @car.save
    ...
end

# Новый вариант, Rails 2.3+
def create
  @owner = Owner.new(params[:owner])
  ...
end


Где же магия?
Всего голосов 64: ↑54 и ↓10+44
Комментарии16

Browsera — новый инструмент тестирования сайта

Время на прочтение2 мин
Количество просмотров5K
Browsera — сразу определимся что это не ещё один сервис бесплатных скриншотов. Этот сервис позволяет проводить атоматизированнное тестирование кросс-браузерности вашей вёрстки, то есть читается ваш html код, стили, скрипты — и моделируется их отрисовка в соответствии с особенностями того или иного браузера. Впрочем, сервис также генерирует скриншот для каждого браузера: будет что отослать верстальщику.

image
Читать дальше →
Всего голосов 80: ↑71 и ↓9+62
Комментарии29

15 советов по Ubuntu для опытных пользователей Linux (перевод)

Время на прочтение7 мин
Количество просмотров40K
Оригинал статьи на английском. Перевод: Boten, Deniska, MaxElc

Несколько дней назад я (здесь и далее — автор оригинальной статьи — Прим. пер.) написал о книгах, которые могут скачать начинающие пользователи, и прочитать их, чтобы изучить Linux самостоятельно. Сегодня в секции о Linux у нас есть кое-что и для опытных пользователей. Перед вами несколько советов, которые вы должны попробовать, если вы опытный пользователь Ubuntu Linux
Читать дальше →
Всего голосов 143: ↑96 и ↓47+49
Комментарии90

1001-ый способ вертикального выравнивания

Время на прочтение2 мин
Количество просмотров128K
О вертикальном выравнивании блока неизвестной высоты по центру или низу родителя сказано много. Есть способы, основанные на display:table-cell для хороших браузеров (без кавычек) и expression для IE, способы, основанные на относительном позиционировании (могут плохо работать при переполнении). В этой заметке будет описан способ, работающий на особенностях такого мощного отображения, как встроенный блок (display:inline-block).
Читать дальше →
Всего голосов 62: ↑51 и ↓11+40
Комментарии46

Настройка nginx

Время на прочтение5 мин
Количество просмотров294K
Тема правильной настройки nginx очень велика, и, боюсь, в рамки одной статьи на хабре никак не помещается. В этом тексте я постарался рассказать про общую структуру конфига, более интересные мелочи и частности, возможно, будут позже. :)

Неплохой начальной точкой для настройки nginx является конфиг, который идёт в комплекте с дистрибутивом, но очень многие возможности этого сервера в нём даже не упоминаются. Значительно более подробный пример есть на сайте Игоря Сысоева: sysoev.ru/nginx/docs/example.html. Однако, давайте лучше попробуем собрать с нуля свой конфиг, с бриджем и поэтессами. :)
подробности
Всего голосов 88: ↑78 и ↓10+68
Комментарии53

BDD с помощью Cucumber

Время на прочтение3 мин
Количество просмотров105K
Если вы привыкли сначала писать код, а потом его тестировать, то с BDD такой подход совсем не уместен. Сила BDD в том, что он помогает вести разработку начиная со стадии оформления ТЗ. Для BDD это список свойств (фич), который уместно писать вместе с заказчиком.

Но самое главное, что по этому же списку происходит автоматическое тестирование проекта. Инструмент тестирования (в нашем случае это Cucumber) методично пройдет по вашему перечню и дотошно проверит реализацию каждой фичи.
Читать дальше →
Всего голосов 34: ↑30 и ↓4+26
Комментарии21

Обрезаем фото в стиле «ВКонтакте»

Время на прочтение3 мин
Количество просмотров17K
image
В этом HOWTO я раскажу вам как обрезать фотографию до нужного вам размера и залить её на сервер с помощью Ruby on Rails.
Читать дальше →
Всего голосов 69: ↑58 и ↓11+47
Комментарии25

Используем 2+ провайдера (первая часть)

Время на прочтение3 мин
Количество просмотров53K
Здесь я хочу рассказать о настройке шлюза на Linux'e, для использования 2-х (и более) провайдеров интернета.
Для настройки мы будем использовать возможности iptables и утилиты ip из пакета, который как правило называется iproute2. А для решения поставленной задачи пакеты мы будем маршрутизировать на основе «policy routing» (т.е. маршрутизация на основе политик), а не «destination routing» (маршрутизация на основе адреса получателя).
Итак, приступим
Всего голосов 60: ↑50 и ↓10+40
Комментарии38

Верстка скругленных границ и острых углов

Время на прочтение4 мин
Количество просмотров21K
Сложность элементов интерфейса увеличивается с каждым новым макетом, что доставляет немало хлопот верстальщикам. Развивающиеся технологии позволяют создавать в WEBе сложные приложения (Google не даст мне соврать), поэтому дизайнеры себя не сдерживают и рисуют всё более навороченные вещи. Как правило, это приводит к большому количеству графики на страницах.

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

Читать дальше →
Всего голосов 190: ↑183 и ↓7+176
Комментарии96

Визуализируем данные на JavaScript

Время на прочтение3 мин
Количество просмотров4.5K

Развитие компьютерной графики подталкивает нас к изобретению всё новых способов графического представления данных. Разрабатывались различные прикладные программы для визуализации данных на локальных компьютерах. Однако всё изменилось с развитием интернета: в нём содержатся колоссальные объёмы информации, которые нам постоянно хочется представить как-то удобнее, дружелюбнее, понятнее. Что же мы имеем на сегодняшний день?

Существует немалое число серверных библиотек и утилит, способных генерировать сложные графики. Однако я считаю, что такой подход не всегда оптимален. Если мы можем производить визуализацию на стороне клиента с помощью JavaScript, то почему бы нам не воспользоваться такой возможностью? Логика работы подобной связки проста: сервер генерирует данные, а клиент их визуализирует.

Разумеется, вы можете воспользоваться Flash, Silverlight или Java-апплетами, однако в этом обзоре я хотел бы вам показать библиотеки визуализации, написанные на чистом JavaScript.

Читать дальше →
Всего голосов 74: ↑72 и ↓2+70
Комментарии27

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность