Как стать автором
Обновить
0
0
Роман @Romeo_spb

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

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

Признаки плохого программиста

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

Неспособность рассуждать о коде


«Рассуждать о коде» значит понимать порядок исполнения инструкций («исполнять программу в голове»), зная, каково предназначение кода.

Симптомы

  • Наличие «волшебного», «вуду» кода или кода, который не имеет никакого отношения к целям программы, но всё равно тщательно поддерживается (например, инициализация переменных, которые никогда не используются, вызов функций, не имеющих отношения к цели, создание выходных данных, которые не используются, и т.д.).
  • Многократные вызовы идемпотентных функций (например, вызов save() по нескольку раз, «чтобы уж точно»).
  • Исправление ошибок написанием избыточного кода, который замещает данные, полученные при исполнении неисправного кода.
  • «Йо-йо код», который конвертирует значения в различные представления, а потом конвертирует их обратно ровно в то же представление, с которого начинали (например, преобразование десятичного числа в строку, а потом обратно в десятичное число, или padding строчки с последующим trim'ом).
  • «Бульдозерный код», который создает впечатление рефакторинга посредством разбития кусков кода на процедуры, которые, правда, затем невозможно использовать где-либо еще (высокая когезия).

Читать дальше →
Всего голосов 374: ↑297 и ↓77+220
Комментарии260

Рецепт приготовления Xubuntu, или нетбук для супруги

Время на прочтение3 мин
Количество просмотров63K
С момента написания статьи вышли новые версии Xubuntu. Статья устарела. Писал, в основном, для собственной памяти и актуальность поддерживаю там где удобнее. Актуальный вариант и продолжение темы смотрите в блоге.

Читать дальше →
Всего голосов 125: ↑89 и ↓36+53
Комментарии78

Adobe Flash Player и передача потоковых данных без участия сервера, часть 1-я: организация пирингового вещания

Время на прочтение6 мин
Количество просмотров18K
    Как известно недавнее обновление продуктов Adobe Flash Player до 10.1 и Adobe AIR до 1.5 версий осуществило целый фурор, презентовав новый протокол связи Real-Time Media Flow Protocol (RTMFP). Заранее попрошу не путать вышеупомянутый с Real-Time Messaging Protocol (RTMP) для использования которого был необходим Adobe Flash Media Server (FMS) на стороне обслуживающего сервера.
    Разработчики обещают, что протокол будет обладать низкой задержкой во времени при пересылке пакетов, но самое главное, протокол ориентирован на организацию пиринговой сети.
Читать дальше →
Всего голосов 49: ↑44 и ↓5+39
Комментарии30

Имена людей и интерфейс

Время на прочтение13 мин
Количество просмотров49K
Пространство рассуждения статьи затрагивает вопросы различия имен людей во всем мире, и то, как это влияет на дизайн форм ввода, баз данных, онтологий информатики и др. в контексте Всемирной Паутины.

image

Заинтересованная аудитория: авторы HTML-контента, разработчики скриптов серверных приложений (PHP, JSP и т.д.), менеджеры веб-проектов и любые другие люди, так или иначе связанные с дизайном форм ввода данных, дизайна баз данных и онтологий, которые затрагивают личные имена людей.

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

Читать дальше →
Всего голосов 314: ↑301 и ↓13+288
Комментарии121

Правила личной эффективности от ЭД

Время на прочтение21 мин
Количество просмотров65K
Заранее предупреждаю и извиняюсь, но оно того стоит: букаф многа.

Введение

В средней школе я был «круглым» двоечником, которого переводили в следующий класс только под значительным влиянием моего отца, в то время проректора ФПИ, довольно влиятельного (в личном общении) и властного человека.

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

Попытка понять программу восьмого класса провалилась в виду отсутствия элементарных знаний предыдущих классов (начиная с второго-третьего), что не оставляло передо мной выбора, кроме как начать изучать все предметы по новой, самостоятельно.

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

Читать дальше →
Всего голосов 197: ↑155 и ↓42+113
Комментарии202

Произносим правильно

Время на прочтение2 мин
Количество просмотров151K
Из знакомых мне айтишников очень немногие стараются правильно произносить английские слова. Конечно, привычнее произносить C++ как «си-плюс-плюс», а не «си-плас-плас» или «опен-бэ-эс-дэ», а не «оупэн-би-эс-ди».
Но когда «echo $value;» читают как «ечо валуй» — это уже не смешно. Другой человек вас может просто не понять, особенно иностранец.

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

♫ — прослушать произношение в словаре
► — прослушать произношение на youtube

Начнем с названий:
ABBYY аби
Adobe эдоуби [əˈdəʋbɪ]
Apache эпэчи [əˈpætʃiː] от «a-patchy»
Asus офиц. э́сус
амер. э́йсус

 
BenQ бенкью
Cisco сискоу [ˈsɪskoʊ]
EBay ибэй
Eee PC и писи
Ethernet изэрнэт [ˈiθərˌnɛt]
Itanium айтэйниум [aɪˈteɪniəm]
Juniper джу́нэпэр [ˈdʒunəpər]
LaTeX лэйтех
лэйтек
латех
латек
[ˈleɪtɛk]
['leɪtɛx]
[ˈlɑːtɛx]
[ˈlɑːtɛk]
Linux офиц. линэкс
вар. линукс
[ˈlɪnəks]
[ˈlɪnʊks]

 
Mac OS X мэк оу-эс тэн
MySQL офиц. май-эс-кью-эл
вар. май-сиквел
как «My Ess Que Ell», см. оф. сайт
nginx энджин-икс (от engine-x)
PuTTY пати [ˈpʌtɪ] см. оф. сайт
Qt кьют [kyut] см.
TeX тех
тек
[ˈtɛx]
[tɛk]
не «текс»
XBox 360 экс-бокс фри сискти
Xen зен [ˈzɛn]
Xeon зион
Xerox зирокс [ˈzɪərɒks]
Xilinx зайлинкс [ˌzaɪliːŋks]
ZyXel рус. зайксел
амер. зайзел
см.


Аббревиатуры:
GNU гну вар. гню
GWT гвит [ˈɡwɪt]
ICANN айкэн
IEEE ай-трипл-и как «I triple E»
ISO айсо
PNG пинг [ˈpɪŋ] как «ping», см. спецификацию
PXE пикси [ˈpɪksi]
RUP рап
SCSI скази ['skʌzi]
SOAP соуп [soʊp]
SQL эс-кью-эл [ˈɛsˈkjuˈɛl] неофиц. «сикуел»
SWF свиф [ˈswɪf] см. спецификацию
WYSIWYG визивиг [ˈwɪziˌwɪg]
XAML зэмл [ˈzæməl]
XUL зул [ˈzuːl]
Yii длинное «и» [ji:]

Обычно аббревиатуры произносятся по правилам английского языка: API — эй-пи-ай, PCMCIA — пи-си-эм-си-ай-эй, OpenBSD — оупен-би-эс-ди и т.д.

Обычные слова дальше
Всего голосов 388: ↑344 и ↓44+300
Комментарии514

Типовые ошибки на собственных сайтах веб-студий

Время на прочтение8 мин
Количество просмотров68K
Привет, Хабр! Я продолжаю цикл статей по теме маркетинга и продаж в веб-студиях / интерактивных агентствах. В этом материале я хочу поговорить о собственных сайтах студий и типовых ошибках, которые очень часто совершают их владельцы.

Этот дайджест основан на моем приличном опыте мониторинга и анализа сайтов на рынке веб-разработок (исследования конкурентов в ADV, мониторинг и анализ участников «Тэглайн», проведение заказных аудитов для студий и пр.).

Я попытался систематизировать основные «ляпы» и упущения по нескольким основным категориям, на которых и остановлюсь подробнее:
  • Ошибки позиционирования;
  • Ошибки расстановки приоритетов;
  • Неправильная презентация компании и услуг;
  • Неправильная презентация портфолио и кейсов;
  • Ошибки в коммуникации с заказчиком;
Читать дальше →
Всего голосов 133: ↑130 и ↓3+127
Комментарии49

RentFilter.ru — снимите квартиру без посредников

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

Не хотите платить агентам по недвижимости комиссию?



Новый проект www.rentfilter.ru подтверждает: снять квартиру без помощи риэлтеров — реально! Да, зайдя на любой сайт с объявлениями об аренде квартир, вам придется позвонить не по одному десятку номеров, прежде чем найдете объявление действительно от владельца квартиры, а не от риэлторского агентства. Но и это может случиться, только если вам очень повезет.

RentFilter.ru поможет снять квартиру без посредников. Наши роботы круглосуточно фильтруют объявления об аренде помещений и оставляют только те, которые подают сами хозяева квартир. Просто позвоните по указанному в объявлении телефону, посмотрите квартиру, изучите все документы на право собственности, подпишите договор и — пакуйте чемоданы. Кстати, на RentFilter.ru можно прочитать все, что нужно знать, если вы решили снять квартиру без агентской помощи. Здесь же можно скачать стандартный договор аренды жилого помещения.
Читать дальше →
Всего голосов 128: ↑107 и ↓21+86
Комментарии191

Бесплатные образы Windows для тестирования сайтов в Internet Explorer

Время на прочтение1 мин
Количество просмотров19K
14 мая Microsoft обновили набор образов для тестирования сайтов в Internet Explorer.

Теперь под Windows XP остался только IE6.
IE7 есть под Windows Vista.
Также добавили образы Windows 7 c IE8 и IE9.
Читать дальше →
Всего голосов 102: ↑89 и ↓13+76
Комментарии75

Построение отказоустойчивой (fault tolerant) системы

Время на прочтение8 мин
Количество просмотров47K
В разработке банковского ПО данному аспекту системы уделяется наибольшее внимание. Часто, описывая отказоустойчивую систему, используют слова: Fault Tolerance, Resilience, Reliability, Stability, DR (disaster recovery). Данная характеристика — суть способность системы продолжать корректно работать при падении одной или нескольких подсистем, от которых она зависит. Я кратко опишу какие подходы могут применяться в данной области и приведу пару примеров.
Читать дальше →
Всего голосов 75: ↑68 и ↓7+61
Комментарии10

Что нужно знать перед тем, как писать под iOS

Время на прочтение7 мин
Количество просмотров307K
«Под Windows можно писать для iPhone?»
Анонимный разработчик


«Мы не планируем публиковаться в AppStore, это ведь возможно? И еще мы хотим версию под Android...»
Анонимный заказчик


Если вы решились разрабатывать приложения для iPhone/iPad, то, скорее всего, вас заинтересуют следующие вопросы:
  • как можно заработать на приложениях?
  • как зарегистрироваться в iOS Developer Program и что дает регистрация?
  • обязательно ли нужен Mac?
  • какие инструменты можно использовать для разработки?
Ответы на вопросы
Всего голосов 120: ↑110 и ↓10+100
Комментарии87

Принципы дизайна страниц оплаты для интернет-магазинов

Время на прочтение14 мин
Количество просмотров22K
Представляю вашему вниманию перевод статьи под названием "Fundamental Guidelines Of E-Commerce Checkout Design" от Christian Holst. Перевели в компании UXDepot специально для пользователей Хабрахабра с одобрением издания Smashing Magazine.


Грустная статистика систем электронной коммерции — согласно последним исследованиям, по крайней мере 59,8% потенциальных покупателей покидают сайт на этапе оформления заказа и его оплаты (у разных исследований разные показатели — от 59,8% у MarketingSherpa до 83% у SeeWhy).

Основной вопрос заключается в том, почему пользователи так часто и массово покидают свою корзину, не закончив оформление заказа? Причина заключена в какой-то фундаментальной ошибке дизайнеров, создающих интернет-магазины? А быть может есть какие-то формальные правила, которые усложняют жизнь простым пользователям и мешают им покупать продукты? Существует ли какая-то возможность улучшить ситуацию и повысить конверсию электронных магазинов?
Читать дальше →
Всего голосов 174: ↑168 и ↓6+162
Комментарии58

Улучшаем интерфейс Java-приложения

Время на прочтение27 мин
Количество просмотров99K
Добрый день, Хабражитель!

Достаточно много различной раздробленной информации существует на тему работы со Swing и графикой в просторах интернета, а также на тему интерфейсов Java-приложений. Кто-то твердит о том, что Java морально устарела и десктоп-приложения на Java не имеет смысла писать, кто-то с пеной у рта доказывает обратное. В то же время работа идет, приложения пишутся и встают очередные проблемы. В предыдущей статье я уже привел небольшой список полезных библиотек для исключительных случаев, но нередко бывает так, что никакая сторонняя библиотека не позволяет сделать то, что Вам нужно. Именно в такой момент стоит задуматься о возможной необходимости написания своих компонентов.

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

Читать дальше →
Всего голосов 118: ↑113 и ↓5+108
Комментарии71

Масштабирование нагрузки web-приложений

Время на прочтение6 мин
Количество просмотров60K
С ростом популярности web-приложения его поддержка неизбежно начинает требовать всё больших и больших ресурсов. Первое время с нагрузкой можно (и, несомненно, нужно) бороться путём оптимизации алгоритмов и/или архитектуры самого приложения. Однако, что делать, если всё, что можно было оптимизировать, уже оптимизировано, а приложение всё равно не справляется с нагрузкой?
Читать дальше →
Всего голосов 109: ↑98 и ↓11+87
Комментарии38

Рецепт нагрузочного тестирования на JMeter

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

Стоит ли вообще браться за JMeter


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

Составление сценария


В моем случае было необходимо протестировать сервис, и понять как долго он еще протянет без оптимизации кода или добавления серверов.
В идеале нужно загрузить в JMeter сценарий по которому как бы работает пользователь, после чего прогнать сценарий в несколько потоков, наблюдая за скорость обработки запросов.
Главная сложность в том, как этот сценарий получить и собственно этим рецептом я и хочу поделиться.
Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии10

Все что нужно для JSONP

Время на прочтение1 мин
Количество просмотров15K
Если вам хочется работать с JSONP, но нет желания подключать для этого большие фреймворки, то JSONP.js ваш выбор.
Либа весит 216 байт и имеет всего одну функцию, которой мы передаем url и callback.
Читать дальше →
Всего голосов 48: ↑35 и ↓13+22
Комментарии31

Три частых ошибки в общении с клиентом

Время на прочтение4 мин
Количество просмотров22K
По долгу службы нам часто приходится общаться с фрилансерами. Это общение часто выходит за рабочие рамки, становясь приятельско-дружеским. В приватных беседах о тяготах фрилансерской жизни часто приходилось слышать об одинаковых проблемах, возникающих у них при общении с непосредственным клиентом. Давайте рассмотрим три совета, которые приходилось давать чаще всего:
  • Не ограничивайте общение перепиской
  • Объясняйте клиенту рабочий процесс
  • Главный вопрос на все случаи жизни: «Какова цель?»

Читать дальше →
Всего голосов 72: ↑61 и ↓11+50
Комментарии43

Подводные камни при использовании кэширования в nginx

Время на прочтение10 мин
Количество просмотров57K
В web-сервер и reverse-proxy nginx встроены очень мощные возможности по кэшированию HTTP-ответов. Однако в ряде случаев документации и примеров не хватает, в результате не все получается так легко и просто, как хотелось бы. Например, мои конфиги nginx-а местами написаны кровью. Этой статьей я попробую немного улучшить ситуацию.

В этой статье: а) подводные камни при полностраничном кэшировании; б) кэширование с ротацией; в) создание динамического «окна» в закэшированной странице.

Я буду предполагать, что вы используете связку nginx+fastcgi_php. Если вы применяете nginx+apache+mod_php, просто замените имена директив с fastcgi_cache* на proxy_cache*

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

Кэширование всей страницы целиком


Если на вашем сайте главная страница хоть и генерируется динамически, но меняется достаточно редко, можно сильно снизить нагрузку на сервер, закэшировав ее в nginx. При высокой посещаемости даже кэширование на короткий срок (5 минут и меньше) уже дает огромный прирост в производительности, ведь кэш работает очень быстро. Даже закэшировав страницу всего на 30 секунд, вы все равно добьетесь значительной разгрузки сервера, сохранив при этом динамичность обновления данных (во многих случаях обновления раз в 30 секунд вполне достаточно).
Читать дальше →
Всего голосов 91: ↑87 и ↓4+83
Комментарии83

Сборник советов и фактов по оптимизации PHP-скриптов

Время на прочтение9 мин
Количество просмотров45K
image Эту статью давно стоило переписать (слишком много «экономии на спичках»), но руки не доходят. Пускай весит и напоминает о том, как мы глупы в молодости.
Одним из основных критериев успешности любого интернет-ресурса является скорость его работы и с каждым годом пользователи становятся всё более и более требовательными по этому критерию. Оптимизация работы php-скиптов — это один из методов обеспечения скорости работы системы.
В этой статье я бы хотел представить на суд общественности свой сборник советов и фактов по оптимизации скриптов. Сборник собирался мною достаточно долго, основан на нескольких источниках и личных экспериментах.
Читать дальше →
Всего голосов 237: ↑134 и ↓103+31
Комментарии215

Настольные игры: во что играют в IT-офисах?

Время на прочтение9 мин
Количество просмотров113K
В этом топике — обещанный обзор разных настольных игр.

— Первая часть — это «портированные» версии известных компьютерных (по сюжету Starcraft, Warcraft, Civilization, Age of Empires, Master of Orion, Doom)
— Вторая часть — игры, которые интересны многим хабражителям, судя по комментариям к прошлым топикам.
— В комментариях предлагаю делиться информацией об интересных играх: думаю, многие смогут подсказать нечто необычное в плане поиграть или же предупредить от напрасной покупки.
— Топик будет интересен тем, кто хочет понять, что популярно на рынке, вкратце посмотреть товар для магазина и тем, кому просто интересно, что же там вообще есть из настольных игр для себя, компании или в подарок.
— В конце есть приятный бонус хабрачитателям.

Читать дальше →
Всего голосов 132: ↑120 и ↓12+108
Комментарии171

Информация

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