Pull to refresh
23
0
Степанов Игорь @stepio

User

Send message

Что такое анти-паттерны?

Reading time9 min
Views147K
Анти-паттерны — полная противоположность паттернам. Если паттерны проектирования —
это примеры практик хорошего программирования, то есть шаблоны решения определённых задач. То анти-паттерны — их полная противоположность, это — шаблоны ошибок, которые совершаются при решении различных задач. Частью практик хорошего программирования является именно избежание анти-паттернов. Не надо думать, что это такая непонятная теоретическая фигня — это конкретные проблемы, с которыми сталкивался практически каждый разработчик. Кто осведомлен, тот и вооружён! Рассмотрим же несколько расрпотранённых анти-паттернов в программировании.
Да, рассмотрим!

10 самых привлекательных категорий ПО для начинающего стартапа

Reading time3 min
Views831
Мы в Бизнес-инкубаторе «Ингрия» довольно много общаемся с различными проектами, по большей части IT-шными, которые хотят принять участие в одной из наших программ или просто заходят пообщаться на различные мероприятия. Многие из них уникальны и действительно инновационные, некоторые чем-то похожи на западные стартапы по первоначальной идее или даже иногда и по реализации. И еще обрабатывая заявки на конкурс Web Ready, заметили некоторые закономерности в Интернет-проектах. И недавно наткнулись на статью, в которой Dharmesh Shah, выделил неизменные типы приложений, которые разрабатывают стартаперы. Каждый раз они прибегают к одному из этих типов. «Не то чтобы это плохо, я лишь нашел это любопытным», — говорит он. Ну да, далее перевод (оригинал) этой небольшой заметки.

image

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

О нагрузочном тестировании

Reading time3 min
Views17K
imageВесной этого года наша команда получила заказ на нагрузочное тестирование и оптимизацию нескольких версий CMS 1C-Битрикс. Прекрасная задача, но как ее делать? В этой статье мы поговорим о том, как правильно тестировать и что вообще означает “нагрузочное тестирование”? А в следующих — как мы тестировали Битрикс и что у нас получилось.

Цели


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

Портал EmForge — платформа коллективной разработки

Reading time3 min
Views906
Так получилось, что последние несколько лет мне приходится принимать участие исключительно в распределенных проектах. Руководство проекта в США, business owner во Франции, разработка в России и Бразилии, а тестирование в Китае — это нормальная ситуация. В таких проектах — очень важна грамотная организация коммуникаций. В разных проектах использовались разные системы. Идеала найдено не было, потому то и был написан собственный «неидеал»: EmForge Portal, который я и хочу сегодня представить, надеясь что кому-то он может оказаться полезным
EmForge
Читать дальше →

64 бита

Reading time12 min
Views81K

Статья раскрывает смысл термина «64 бита». В статье кратко рассмотрена история развития 64-битных систем, описаны наиболее распространенные на данный момент 64-битные процессоры архитектуры Intel 64 и 64-битная операционная система Windows.
Читать дальше →

10 хитростей Google Analytics

Reading time4 min
Views37K
Казалось бы, установка и настройка счетчика Google Analytics — задачи простые. На деле, эта «простота» скрывает за собой множество подводных камней. Мы постоянно сталкиваемся с тонкостями, неочевидными особенностями подсчета и глубоко спрятавшимися ошибками (конечно, обычно виноваты мы сами:).

На базе нашего опыта я сформулировал 10 советов, которые пригодятся большинству пользователей Analytics – когда-то это были и наши грабли! Некоторые темы заслуживают отдельных статей, но пока расскажу о более-менее очевидных и простых технических хитростях.

Проверка регулярных выражений при установке целей

Достаточно часто при указании адреса цели приходится использовать регулярные выражения: например, если искомый фрагмент адреса окружен другими частями. Регулярные выражения – тонкая материя, а ждать обновления данных для проверки правильности написания не хочется. Проверить правильность выражения можно мгновенно, перейдя в раздел «Содержание – Самое популярное содержание» и введя в поле фильтра выражение. Содержимое сразу же отфильтруется, а вы сможете убедиться в корректности кода.
Читать дальше →

Фильтруем с помощью jQuery большое количество данных

Reading time5 min
Views2.7K
image У меня на хабре очень крупное приданное избранное. Там что-то найти было очень сложно, а если ещё не помнишь как и что, то чрез чур. По сему решил написать на jQuery фильтр всего этого добра по тэгам. Для того бы сграбить закладки, прошлой весной ukko сделал простой граббер. В итоге у нас получался огромный htm в формате NETSCAPE Bookmarks и xml.

Принцип работы прост, устанавливаем себе грабер, получаем заветный habrabookmarks.htm, и просто запускаем мой файл сортировки рядом.
Читать дальше →

Библия стартапера от Гая Кавасаки (The Art of the Start)

Reading time2 min
Views2.8K
imageПоискал на Хабре, не нашел рецензии на русское издание знаменитой книги Гая Кавасаки The Art of the Start (2004) (на англоязычную было), поэтому решил «закрыть брешь» и поделиться ее кратким содержанием и своими мыслями.

Итак, в русской версии книга получила название «Стартап. 11 мастер-классов от экс-евангелиста Apple и самого дерзкого капиталиста Кремниевой долины».

Если вы производите прорывной софт для разведения креветок, то эта книга точно для вас.
Что должен знать стартапер...

Hegel4j — диалектические переменные на Java

Reading time6 min
Views1.2K

Что такое диалектическая переменная?


Кто-то возможно скажет: «Что общего у философии и программирования?». Человек недалекий скажет: «Ничего!», а мы с вами задумаемся.

Есть такой раздел философии — диалектика. Было сформулировано три закона диалектики:

1. Закон перехода количественных изменений в качественные
2. Закон единства и борьбы противоположностей
3. Закон отрицания отрицания

Из определения первого закона и родилось понятие диалектической переменной.
Диалектическая переменная — некоторое свойство объекта, от значения которого зависит внутреннее состояние объекта, принадлежность объекта к некоторому классу и, как следствие, его поведение. Так, например, температура является диалектической переменной для классов Water и Ice, а возраст для Child и Mature и т.д.

В данной статье я хочу описать библиотеку для работы с диалектическими переменными hegel4j и показать пример работы с данной библиотекой.
Читать дальше →

Выполнение SQL-подобных запросов над данными — как в браузере, так и на сервере

Reading time1 min
Views2K
Marak Squires выпустил в свет JSLINQ — реализацию LINQ для JavaScript, работающую как на стороне браузера, так и на стороне сервера (к примеру, node.js). Поддерживаются такие конструкции, как JOIN, UNION, RANGE, DISTINCT, COUNT etc.

Смотрите:
Читать дальше →

Простая кастомизация Ubuntu LiveCD

Reading time4 min
Views18K
Данный топик описывает простую и быструю кастомизацицию Ubuntu LiveCD.
Включает в себя:
— установку дополнительных пакетов
— настройку прокси сервера и TimeZone

Несколько раз мне уже приходилось собирать свой LiveCD. Один для загрузки по сети с набором необходимых инструментов, другой для записи на DVD с полной поддержкой японского языка и дополнительного ПО. При сборке я руководствовался вот этой ссылкой https://help.ubuntu.com/community/LiveCDCustomization. Всё выходило замечательно за исключением затраченного времени. Такая ручная сборка иногда может занять несколько часов, особенно если предыдущая делалась достаточно давно.

В последний раз я решил не собирать руками а воспользоваться описанной на Хабре Ubuntu Customization Kit (http://habrahabr.ru/blogs/ubuntu/77331). К сожалению на тот момент, а это было несколько дней назад, версия 2.0.12 не заработала (ругается на отмонтирование .gvfs) на Ubuntu 10.04. Версия из trunk-а, на которую я возлагал надежды, так же не заработала, но уже с другой ошибкой.

В результате я решил больше не возиться с Ubuntu Customization Kit, а написать свой скрипт на основе WIKI статьи с help.ubuntu.com, который покрывает мои потребности и следует принципу KISS. Рабочая версия скрипта и описание под катом.
Читать дальше →

Получение id добавленной записи в PostgeSQL

Reading time1 min
Views62K
Каким бы супер-пупер спецом вы не были — в процессе разработки эпизодически попадаются интересные и удобные вещи о которых, казалось бы, давно бы пора знать, но все никак не складывалось. Этакий ништячок, найдя который хочется воскликнуть: «Эврика!». Вот таким ништячком для меня стал элемент синтаксиса INSERT в PostgreSQL, которым я и хочу поделиться с вами.

Ситуация: После добавления записи в базу нужно получить id этой самой свеже-вставленной записи.
Решение на PostgreSQL: INSERT… RETURNING id где id — это PRIMARY_KEY в таблице.

Просто и элегантно, не правда ли?
Читать дальше →

Приложения iPhone с открытым кодом

Reading time4 min
Views31K
В данной статье речь пойдет о приложениях с открытым кодом, которые размещены в App Store. Мы будем рассматривать только приложения которые одобрены компанией Apple и опубликованы. Начинающие разработчики могут изучать их код для повышения своих навыков.

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

6 дискет

Reading time1 min
Views13K
%Username%, ты уже собрал несколько корованов чемоданов, но дискеты не кончаются, а может на чемодан дискет ну никак не хватает?

Хорошая новость, всего из 6-ти дискет можно собрать стильный бокс для мелочей. Ура!

image

Еще пару фотографий, пожалуйста.

UPD: + Замечательная сумка из 16 дискет бонусом от Vadaboom.

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

IPv6 в новом TCP/IP стеке Windows

Reading time9 min
Views22K

Вступление


В этой, по большей части, чисто технической, статье я расскажу о реализации IPv6 в новом TCP/IP стеке Microsoft. Новый стек включен в ОС Windows начиная с Vista и Server 2003. Короткое введение рассказывает о том, что такое IPv6, а следующие три раздела — об отличиях нового стека от старого (особенно подробно — об отличиях, связанных с IPv6). Надеюсь, вас не напугает слишком строгое изложение.


1. Введение: коротко о IPv6


IPv4

Протокол IP Version 4 (IPv4) не претерпевал сколь-либо серьезных изменений со времен опубликованного в 1981 году RFC 791. Благодаря удачному исходному дизайну, IPv4 выдержал сопутствовавшее росту обслуживаемому им сетей испытание на масштабируемость. IPv4 устойчив, прост в имплементации и взаимодействии.

Однако, к началу 90-х годов основанный на TCP/IP интернет начал расти колоссальными темпами. Уменьшение количества свободных IP-адресов происходило угрожающе быстро даже с учетом введения бесклассовой адресации. Стало очевидно, что требуется разработать способ избежать их дефицита в будущем. В 1992 году IETF опубликовала в виде RFC (RFC 1550) призыв к разработке и публикации прототипов протокола, названного «IP The Next Generation» (IPng).
Читать дальше →

Корпус для домашнего медиасервера из старого принтера своими руками

Reading time2 min
Views11K
После приобщения к быстрым интернетам и торрентам назрела необходимость иметь компьютер включенный 24/7.
Собрать самому мне показалось намного интересней, чем просто купить, и я решил этим заняться на досуге.


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

Javascript Pseudo-3d Game

Reading time2 min
Views6.6K

Здравствуйте, Хабрасообщество.
Я очень люблю JavaScript за его изящество, красоту и много других преимуществ. А еще я очень люблю на нём писать. Более того, я люблю писать не только стандартные вещи, но и то, что обычно на этом языке мало кто пишет. В этой серии статтей я хочу подробно рассказать о создании кроссбраузерной (IE6+, Chrome, O9+, Fx2+, Konq) псевдо-3д игры на JavaScript+DOM (без использования Canvas) в несколько этапов. Игра будет подобна к первым Might and Magic. В планах сделать передвижение по лабиринту с видом сверху, потом с видом от первого лица, затем населить лабиринт монстрами, ловушками, дверями, а в конце добавить сетевую игру с серверной частью на PHP и, естественно, не забыть про многофункциональный редактор карт. Уверен, со временем и предложениями появятся и другие идеи.

Итак, презентую готовый первый этап игры.
Читать дальше →

Правильная загрузка ядра linux с EFI на Macbook

Reading time2 min
Views11K
Предлагаю несколько вольный перевод программиста Gentoo о правильном способе загрузке на ноутах с EFI вместо BIOC-а на борту.
Мне недавно купили Macbook Pro 13.3 дюйм и я решил поставить на нём Gentoo Linux.

Сказано — сделано. В целом инсталляция прошла успешно, не считая маленьких недоразумений вроде неработающей клавы из под LiveCD, ядро видит консоль только с vesafb.

Единственное, что немного меня напрягало, это эмуляция BIOS-а. Маки используют для загрузки интеловский EFI, а для остальных ОС Apple добавило уровень эмуляции BIOS-а. Именно так Ubuntu и грузится на Маках.

Мне же это показалось неверным в техническом плане и в принципе. Я немного поднапрягся и мне удалось запустить ядро Linux из под EFI без всяких эмуляций. Документации достаточно мало, поэтому хочу поделиться своим способом.
Читать дальше →

Вынужденный моддинг DSL модема D-Link 2600U

Reading time3 min
Views41K
Привет тебе, хабрачеловек!

Если ты знаком не по наслышке с полным гавн.. девайсом D-Link 2600U, то понимаешь зачем был сделан этот моддинг. Если нет, то признаюсь, что по мимо кучи проблем с настройкой и поднятием работоспособности этого девайса есть еще один не маловажный сюрприз — температура работы!

image

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

ASN GateWay — шлюз доступа WiMAX

Reading time3 min
Views6.6K
Этим небольшим топиком я завершаю цикл статей (раз, два) о технологии WiMAX.
Статья будет посвящена по большей части центральному устройству сети: ASN-GW (что в переводе на общечеловеческий Access Service Network GateWay)

Что к чему

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Registered
Activity