Pull to refresh
0
0
Михаил @ZloiZmei

User

Send message

Еще раз о модульности

Reading time2 min
Views2.6K
Модульность, как писал Рауф, несет в себе множество преимуществ. Давайте рассмотрим «правильную» модульность в контексте разработки программ. В примерах я специально мешал языки человеческие и программистские, дабы не привязываться к реализации языков программирования, а дать возможность читателю подумать — как такое лучше реализовать в его языке. Во преки тому, что я и сам сторонник максимальной гибкости и модульности, в статье я покажу, что даже здесь может быть перебор. Выбор в любом случае остается за разработчиком. И разработчик несет очень большую ответственность за этот выбор. Что выбрать? Сделать монолит, и через пару лет убиться на его поддержке, или сделать максимально гибко и потратить деньги работодателя на абстракции, которые никогда не пригодятся?

Читать дальше →
Total votes 21: ↑12 and ↓9+3
Comments19

Пишем фильтр «плохих» слов

Reading time5 min
Views94K
Многие из вас наверняка не раз бывали в публичных многопользовательских чатах. Будь то форум, вебчат или чат-сервер в локалке провайдера, идеального порядка можно достичь лишь при малом количестве пользователей (не более сотни, на мой взгляд). Когда сообщество разрастается, возникают примерно одни и те же проблемы: мат, спам и флуд — один скучающий индивид каждую минуту постит «Все в кантру!», другой матерится по поводу и без и все в таком духе.

Идеального мат-фильтра до сих пор не изобретено. Но мы этим заниматься и не будем, рассмотрим реализацию необходимого минимума.
Читать дальше →
Total votes 82: ↑61 and ↓21+40
Comments79

Scalar type hints в PHP

Reading time1 min
Views3.2K
Johannes Schlüter опубликовал в своем блоге информацию о том что в trunk (PHP) появилась поддержка scalar type hints. Многие из нас очень давно этого ждали.

Выглядит это приблизительно так:
<?php
function check_counter( int $counter)
{
return;
}
?>


Если попытаться передать в такую функцию не int, получим Catchable fatal error.
Total votes 84: ↑65 and ↓19+46
Comments127

Секрет успеха для стартапов: инвестируйте ДО принятия продукта рынком, удваивайте ставки ПОСЛЕ

Reading time10 min
Views752
Оригинал статьи на BusinessInsider.com
Dave McClure

Секрет успеха для стартапов: инвестируйте ДО принятия продукта рынком, удваивайте ставки ПОСЛЕ

Прошу прощения… статья получилась длинной (~2500 слов). Не для слабонервных. Если вы хотите сокращенную версию, прочтите нижеследующее резюме и 3 основных утверждения, затем сразу перейдите к выводам вконце.

Резюме: Венчурные фонды становятся меньше (это хорошо), позиции ангельских инвесторов укрепляются (тоже хорошо), но обоим необходимо становиться умнее и инновационнее. Стоимость запуска стартапов значительно снизилась за последние 5-10 лет, а онлайновые каналы дистрибуции через Поиск, Социальные сети, Мобильные платформы (тоесть Google, Facebook, Apple) стали господствовать. В то же время, количество сделок по покупке компаний выросло, но размеры их уменьшились, так как состоявшиеся компании теперь покупают стартапы на более ранних стадиях их жизненного цикла.

Что всё это значит? Какие перспективы и подводные камни это сулит инвесторам?

Давайте начнём с 2 начальных наблюдений текущего рынка для инвесторов и для стартапов.

Читать дальше →
Total votes 54: ↑39 and ↓15+24
Comments14

DVCS and DAGs

Reading time11 min
Views5.5K
Перевод статьи Эрика Синка (Eric Sink) — DVCS and DAGs (Part 1 and Part 2).

Прим. переводчика: В этой статье я буду ис­поль­зо­вать ори­гиналь­ные анг­ло­языч­ные сокращения DVCS и DAG для обозначения расп­ре­делён­ных систем контроля версий (Distributed Version Control System — DVCS) и нап­равлен­ных ацикличных графов (Directed Acyclic Graph — DAG).
Читать дальше →
Total votes 33: ↑31 and ↓2+29
Comments18

Стартапы умирают из-за малого количества пользователей, ХВАТИТ думать о масштабируемости

Reading time2 min
Views1.4K
Если вы полагаете, что масштабируемость Вашего нового, web приложения — это основное на чем Вам надо сосредоточиться,… подумайте дважды. Можно с уверенностью утверждать, что в обозримом будущем массового нашествия пользователей не ожидается. Вместо этого этого следует готовиться к медленному увеличению количества посетителей, с возможным пиком увеличения их числа (прим. переводчика: хабраэффект например). Но сосредотачиваться на архитектуре и масштабируемости Вашего приложения до миллионов пользователей — не очень хорошая идея. Миллионы это много. Скорее следует приготовиться к борьбе за первую тысячу пользователей. Возможно даже меньше, если Ваш сервис платный.
Читать дальше →
Total votes 136: ↑126 and ↓10+116
Comments85

Как быть с HTML-письмами?

Reading time2 min
Views6K
Недавно столкнулся с задачей по верстке HTML-писем. Как известно, многие почтовые клиенты, в том числе и Gmail игнорируют css-классы и содержимое тега style, не говоря уже о подключении внешних CSS-файлов. Поэтому обычной практикой при верстке HTML-писем является использование inline-стилей. Если делать это самостоятельно, то шаблон письма очень быстро превращается в кашу, поддерживать и расширять которую очень сложно. В связи с чем rails-разработчики используют различные плагины, которые позволяют «встроить» css-класс в аттрибут style.
Читать дальше →
Total votes 39: ↑28 and ↓11+17
Comments38

Корпоративный Jabber сервер: догнать и перегнать Google

Reading time7 min
Views33K
Я думаю все знают про Google Apps. Это великолепный сервис для организации почты и коллективной работы в рамках компании. Однако у него есть пара маленьких таких недостатков: он предоставляется as is во-первых, и вся ваша корпоративная документация, почта и переписка при использовании Google Apps будут храниться на серверах Google.

В итоге чаще всего серьёзные фирмы выбирают сложный путь — поддерживать все необходимые сервисы на собственных серверах. Этот путь, конечно, даёт массу преимуществ. Системный администратор компании сможет настроить что угодно и как угодно. Однако есть и один существенный недостаток: если у Google всё уже настроено и связано воедино, то вам придётся настраивать всё вручную. Плюс вы вряд ли сможете обеспечить вашу систему таким же красивым и удобным веб-интерфейсом.

Однако, как показывает практика, развернуть гибкую и мощную инфраструктуру для компании можно легко и не прибегая к помощи Google. Под катом я расскажу как интегрировать XMPP сервер с почтовой системой, чтобы получилось в итоге значительно лучше, чем у Google.

Читать дальше →
Total votes 102: ↑89 and ↓13+76
Comments81

Wordpress 3 multiblog domain mapping

Reading time1 min
Views4.3K
Недавно очень захотелось попробовать систему мультиблогов в Wordpress 3.0. Поправив wp-config.php по инструкции и зайдя в настройки сайтов я обнаружил интересную вещь — мультиблоги можно делать только двух видов:
1. example.com/sitename
2. sitename.example.com

Естественно очень захотелось сделать sitename.com. В настройках мультиблога сделал вариант с поддоменами и решил написать плагин. Выискивал разные фильтры и т.д. чтобы перехватить определение блога и переделать немного. Как оказалось таких фильтров нет :(
Читать дальше →
Total votes 24: ↑17 and ↓7+10
Comments17

Интернет-магазин большой рекламы

Reading time3 min
Views661
Много было статей и историй успеха о том, как одиночки или небольшие команды создают нечто невероятно прорывное и классное. Но очень мало статей о том, как большие компании создают свои стартапы. А они действительно создают.

Я бы хотел рассказать про интернет-магазин полного цикла по продаже digital indoor рекламы vireklama.ru, который является стартапом крупнейшего российского продавца рекламы «Видео Интернешнл», в котором я собственно и работаю над этим проектом.

Немного ликбеза


Рекламные экраны (digital indoor) – это такие телевизоры, которые висят в супермаркетах, торговых центрах, аэропортах и показывают рекламу. Я думаю, все вы их видели и слышали в Перекрёстке, Пятёрочке, Меге или Аэропорте.

image

Видео Интернешнл является лидером в России в этом виде рекламы, осуществляя продажу рекламных возможностей более 10 000 экранов в 90 городах. Но заказать рекламу на них для мелких и средних предпринимателей было не так-то просто. До настоящего момента.
Читать дальше →
Total votes 48: ↑36 and ↓12+24
Comments31

Популярные продукты для электронной коммерции с открытым исходным кодом

Reading time4 min
Views30K
imageНас часто просят порекомендовать продукты eCommerce, которые могут интегрироваться с CMS или использоваться совместно с к.л. CMS. Ниже опубликован список ПО с открытым исходным кодом, пригодного для этих целей.
Примечание: русскоязычных пользователей, прежде всего, интересует наличие локализованных версий, поддержка отечественных платёжных систем и русское сообщество. В комментариях по тексту, выделенных курсивом, по-возможности указана эта информация.
Чертова дюжина движков под катом
Total votes 70: ↑54 and ↓16+38
Comments79

5 галочек: чеклист юзабилити

Reading time6 min
Views30K
Мы выделили 5 основных пунктов, по которым можно определить юзабилити сайта. Список спорный и в основном касается продающих сайтов. И да, эти пять пунктов — среднее арифметическое опыта, полученного при обработке заявок на конкурс «Юзабельный вебпроект». Думаете, мы раздали слонов и забыли?


оригинал картинки

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

Ошибки, само собой, повторялись. Голова пухла, а мы продолжали писать одинаковые комменты. Результатом марафона стал ниже приведенный чеклист.

Сразу оговоримся, что мы не оцениваем юзабилити в вакууме, нам важно, чтобы сайт работал, т.е. «продавал». Товары, услуги, идеи — не важно. Речь может идти о бесплатном веб-сервисе, для которого транзакцией станет регистрация посетителя.
Читать дальше →
Total votes 147: ↑131 and ↓16+115
Comments101

Подведены результаты конкурса стартапов

Reading time2 min
Views6.1K
Уважаемые хабровчане!
Подведены итоги конкурса IT стартапов, который проводился в период с 12 мая до 1 июля 2010 компанией «ИТ-ГРАД». На конкурс было подано порядка 20 заявок от стартапов, нуждающихся в инфраструктуре центра обработки данных.

Сразу хочется сказать, что выбрать победителей было очень сложно, но особое внимание было уделено тем проектам, которые занимаются разработкой технологически инновационных решений. В первую очередь, это связано с мировыми тенденциями развития информационных систем, с растущей популярностью облачных вычислений и сервисов.
Читать дальше →
Total votes 32: ↑25 and ↓7+18
Comments5

Самодельный стабилизатор для цифровых камер

Reading time1 min
Views21K
Инженеры из Microsoft Research разработали интересную насадку, которая крепится на корпусе и подключается к сенсору цифровой камеры. Во время экспозиции стабилизатор точно регистрирует движения камеры, а потом автоматически исправляет резкость изображения.



Конструкция из недорогих гироскопов и акселерометра собрана на плате Arduino и, по заявлениям разработчиков, работает лучше, чем встроенные стабилизаторы в даже самых дорогих современных фотоаппаратах.
Читать дальше →
Total votes 81: ↑74 and ↓7+67
Comments124

Как бороться с «пузырями»

Reading time9 min
Views1.1K
Перевод статьи Джейсона Калаканиса (jasonnation.com) «How to deal with bubbles».

За свою карьеру я промахнулся более 9 тысяч раз. Проиграл практически 300 игр. 26 раз мне доверяли сделать решающий бросок, но я промахивался. В своей жизни, я терпел неудачу снова и снова. Поэтому я и добился успеха.
Майкл Джордан jc.is/bI33SE


«Мыльный пузырь интернета скоро лопнет? Когда?»
«Мне лучше продать компанию сейчас, либо подождать, и продать дороже в следующем году?»
«Нужно ли мне поднимать деньги сейчас, до того, как бум закончится?»

Мне постоянно задают эти вопросы. Раньше они не давали мне спать. Теперь же они настолько врезались в мой мозг, что превратились в инстинкт.
Молодые игроки в покер задумываются о том, как разыграть короля-девятку и восьмерку-пятерку до флопа. Так же и новоиспеченные предприниматели думают о том, как играть на рынке.
Ответ в том, что не стоит разыгрывать ни одну из рук. Также и на рынке.

В этом письме я затрону следующие темы:

1. Как я научился по-сложному (aka мой смешанный опыт)
2. Правда о пузырях
3. Правда о выдающихся компаниях
4. Что делать, если мыльный пузырь растет
5. Что делать, если мыльный пузырь лопается
6. Заключительные мысли: Как я научился всему этому (aka у кого я все это украл)

Читать дальше →
Total votes 104: ↑84 and ↓20+64
Comments40

Были получены исходники 3300 глобальных интернет-проектов

Reading time5 min
Views276K
Пару месяцев назад нами (2Товарища и Антон Исайкин) была обнаружена уязвимость, присущая в основном большим интернет-проектам (вроде Рамблера, Мейла, Яндекса, Оперы и пр.). Удалось получить доступ к файловым структурам известнейших сайтов (в общей сложности 3320 сайтов) и в ряде случаев их полные исходные коды.
Читать дальше →
Total votes 1226: ↑1190 and ↓36+1154
Comments909

Десять советов начинающим программистам

Reading time5 min
Views109K

Предисловие


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

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

Предлагаемые здесь десять советов не претендуют на оригинальность и, в основном, базируются на моем небольшом пятилетнем опыте разработок. Итак, начнем.

1. Будьте самостоятельными


Если у вас есть какой-то вопрос, и вы не знаете как с ним поступить, то вначале постарайтесь исследовать его самостоятельно. Не ждите постоянной помощи от коллег — у них и без вас работы хватает. Используйте всю мощь поисковых систем, специализированных ресурсов (например, stackoverflow), профессиональных блогов, форумов разработчиков, и конечно же хабра. Большинство типичных «граблей» можно обойти различными эффективными вариантами, а для решения базовых задач есть дюжины готовых решений. Просто пойдите и возьмите.

читать далее...
Total votes 151: ↑112 and ↓39+73
Comments84

Отслеживание заполнения форм с помощью Google Analytics

Reading time3 min
Views23K
Эффективность работы коммерческого интернет-проекта зависит от количества заказов, регистраций, отзывов и других элементов обратной связи оставленных посетителями сайта через электронную форму.

Соответственно, форма — уязвимое место приема таких обращений, которое может сократить их число из-за своей неэффективности.

Для оценки эффективности можно использовать различные методы, но сейчас мы остановимся на оценке форм с помощью системы веб-аналитики Google Analytics.

image
Читать дальше →
Total votes 48: ↑40 and ↓8+32
Comments10

Уязвимость связки PHP+nginx с кривым конфигом

Reading time1 min
Views61K

Summary


Announced: 2010-05-20
Credits: 80sec
Affects: сайты на ngnix+php с возможностью загрузки файлов в директории с fastcgi_pass




Background


Зачастую How-To по настройке связки nginx с php-fpm / php-cgi есть подобные строчки:

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    include fastcgi_params;
}

Читать дальше →
Total votes 163: ↑146 and ↓17+129
Comments109

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity