Модульность, как писал Рауф, несет в себе множество преимуществ. Давайте рассмотрим «правильную» модульность в контексте разработки программ. В примерах я специально мешал языки человеческие и программистские, дабы не привязываться к реализации языков программирования, а дать возможность читателю подумать — как такое лучше реализовать в его языке. Во преки тому, что я и сам сторонник максимальной гибкости и модульности, в статье я покажу, что даже здесь может быть перебор. Выбор в любом случае остается за разработчиком. И разработчик несет очень большую ответственность за этот выбор. Что выбрать? Сделать монолит, и через пару лет убиться на его поддержке, или сделать максимально гибко и потратить деньги работодателя на абстракции, которые никогда не пригодятся?
Михаил @ZloiZmei
User
Пишем фильтр «плохих» слов
5 min
94KМногие из вас наверняка не раз бывали в публичных многопользовательских чатах. Будь то форум, вебчат или чат-сервер в локалке провайдера, идеального порядка можно достичь лишь при малом количестве пользователей (не более сотни, на мой взгляд). Когда сообщество разрастается, возникают примерно одни и те же проблемы: мат, спам и флуд — один скучающий индивид каждую минуту постит «Все в кантру!», другой матерится по поводу и без и все в таком духе.
Идеального мат-фильтра до сих пор не изобретено. Но мы этим заниматься и не будем, рассмотрим реализацию необходимого минимума.
Идеального мат-фильтра до сих пор не изобретено. Но мы этим заниматься и не будем, рассмотрим реализацию необходимого минимума.
+40
Scalar type hints в PHP
1 min
3.2KJohannes Schlüter опубликовал в своем блоге информацию о том что в trunk (PHP) появилась поддержка scalar type hints. Многие из нас очень давно этого ждали.
Выглядит это приблизительно так:
Если попытаться передать в такую функцию не int, получим Catchable fatal error.
Выглядит это приблизительно так:
<?php
function check_counter( int $counter)
{
return;
}
?>
Если попытаться передать в такую функцию не int, получим Catchable fatal error.
+46
Секрет успеха для стартапов: инвестируйте ДО принятия продукта рынком, удваивайте ставки ПОСЛЕ
10 min
752Translation
Оригинал статьи на BusinessInsider.com
Dave McClure
Секрет успеха для стартапов: инвестируйте ДО принятия продукта рынком, удваивайте ставки ПОСЛЕ
Прошу прощения… статья получилась длинной (~2500 слов). Не для слабонервных. Если вы хотите сокращенную версию, прочтите нижеследующее резюме и 3 основных утверждения, затем сразу перейдите к выводам вконце.
Резюме: Венчурные фонды становятся меньше (это хорошо), позиции ангельских инвесторов укрепляются (тоже хорошо), но обоим необходимо становиться умнее и инновационнее. Стоимость запуска стартапов значительно снизилась за последние 5-10 лет, а онлайновые каналы дистрибуции через Поиск, Социальные сети, Мобильные платформы (тоесть Google, Facebook, Apple) стали господствовать. В то же время, количество сделок по покупке компаний выросло, но размеры их уменьшились, так как состоявшиеся компании теперь покупают стартапы на более ранних стадиях их жизненного цикла.
Что всё это значит? Какие перспективы и подводные камни это сулит инвесторам?
Давайте начнём с 2 начальных наблюдений текущего рынка для инвесторов и для стартапов.
Dave McClure
Секрет успеха для стартапов: инвестируйте ДО принятия продукта рынком, удваивайте ставки ПОСЛЕ
Прошу прощения… статья получилась длинной (~2500 слов). Не для слабонервных. Если вы хотите сокращенную версию, прочтите нижеследующее резюме и 3 основных утверждения, затем сразу перейдите к выводам вконце.
Резюме: Венчурные фонды становятся меньше (это хорошо), позиции ангельских инвесторов укрепляются (тоже хорошо), но обоим необходимо становиться умнее и инновационнее. Стоимость запуска стартапов значительно снизилась за последние 5-10 лет, а онлайновые каналы дистрибуции через Поиск, Социальные сети, Мобильные платформы (тоесть Google, Facebook, Apple) стали господствовать. В то же время, количество сделок по покупке компаний выросло, но размеры их уменьшились, так как состоявшиеся компании теперь покупают стартапы на более ранних стадиях их жизненного цикла.
Что всё это значит? Какие перспективы и подводные камни это сулит инвесторам?
Давайте начнём с 2 начальных наблюдений текущего рынка для инвесторов и для стартапов.
+24
DVCS and DAGs
11 min
5.5KTranslation
Перевод статьи Эрика Синка (Eric Sink) — DVCS and DAGs (Part 1 and Part 2).
Прим. переводчика: В этой статье я буду использовать оригинальные англоязычные сокращения DVCS и DAG для обозначения распределённых систем контроля версий (Distributed Version Control System — DVCS) и направленных ацикличных графов (Directed Acyclic Graph — DAG).
Прим. переводчика: В этой статье я буду использовать оригинальные англоязычные сокращения DVCS и DAG для обозначения распределённых систем контроля версий (Distributed Version Control System — DVCS) и направленных ацикличных графов (Directed Acyclic Graph — DAG).
+29
Стартапы умирают из-за малого количества пользователей, ХВАТИТ думать о масштабируемости
2 min
1.4KTranslation
Если вы полагаете, что масштабируемость Вашего нового, web приложения — это основное на чем Вам надо сосредоточиться,… подумайте дважды. Можно с уверенностью утверждать, что в обозримом будущем массового нашествия пользователей не ожидается. Вместо этого этого следует готовиться к медленному увеличению количества посетителей, с возможным пиком увеличения их числа (прим. переводчика: хабраэффект например). Но сосредотачиваться на архитектуре и масштабируемости Вашего приложения до миллионов пользователей — не очень хорошая идея. Миллионы это много. Скорее следует приготовиться к борьбе за первую тысячу пользователей. Возможно даже меньше, если Ваш сервис платный.
+116
Как быть с HTML-письмами?
2 min
6KНедавно столкнулся с задачей по верстке HTML-писем. Как известно, многие почтовые клиенты, в том числе и Gmail игнорируют css-классы и содержимое тега style, не говоря уже о подключении внешних CSS-файлов. Поэтому обычной практикой при верстке HTML-писем является использование inline-стилей. Если делать это самостоятельно, то шаблон письма очень быстро превращается в кашу, поддерживать и расширять которую очень сложно. В связи с чем rails-разработчики используют различные плагины, которые позволяют «встроить» css-класс в аттрибут style.
+17
Корпоративный Jabber сервер: догнать и перегнать Google
7 min
33KЯ думаю все знают про Google Apps. Это великолепный сервис для организации почты и коллективной работы в рамках компании. Однако у него есть пара маленьких таких недостатков: он предоставляется as is во-первых, и вся ваша корпоративная документация, почта и переписка при использовании Google Apps будут храниться на серверах Google.
В итоге чаще всего серьёзные фирмы выбирают сложный путь — поддерживать все необходимые сервисы на собственных серверах. Этот путь, конечно, даёт массу преимуществ. Системный администратор компании сможет настроить что угодно и как угодно. Однако есть и один существенный недостаток: если у Google всё уже настроено и связано воедино, то вам придётся настраивать всё вручную. Плюс вы вряд ли сможете обеспечить вашу систему таким же красивым и удобным веб-интерфейсом.
Однако, как показывает практика, развернуть гибкую и мощную инфраструктуру для компании можно легко и не прибегая к помощи Google. Под катом я расскажу как интегрировать XMPP сервер с почтовой системой, чтобы получилось в итоге значительно лучше, чем у Google.
В итоге чаще всего серьёзные фирмы выбирают сложный путь — поддерживать все необходимые сервисы на собственных серверах. Этот путь, конечно, даёт массу преимуществ. Системный администратор компании сможет настроить что угодно и как угодно. Однако есть и один существенный недостаток: если у Google всё уже настроено и связано воедино, то вам придётся настраивать всё вручную. Плюс вы вряд ли сможете обеспечить вашу систему таким же красивым и удобным веб-интерфейсом.
Однако, как показывает практика, развернуть гибкую и мощную инфраструктуру для компании можно легко и не прибегая к помощи Google. Под катом я расскажу как интегрировать XMPP сервер с почтовой системой, чтобы получилось в итоге значительно лучше, чем у Google.
+76
Wordpress 3 multiblog domain mapping
1 min
4.3KНедавно очень захотелось попробовать систему мультиблогов в Wordpress 3.0. Поправив wp-config.php по инструкции и зайдя в настройки сайтов я обнаружил интересную вещь — мультиблоги можно делать только двух видов:
1. example.com/sitename
2. sitename.example.com
Естественно очень захотелось сделать sitename.com. В настройках мультиблога сделал вариант с поддоменами и решил написать плагин. Выискивал разные фильтры и т.д. чтобы перехватить определение блога и переделать немного. Как оказалось таких фильтров нет :(
1. example.com/sitename
2. sitename.example.com
Естественно очень захотелось сделать sitename.com. В настройках мультиблога сделал вариант с поддоменами и решил написать плагин. Выискивал разные фильтры и т.д. чтобы перехватить определение блога и переделать немного. Как оказалось таких фильтров нет :(
+10
Интернет-магазин большой рекламы
3 min
661Много было статей и историй успеха о том, как одиночки или небольшие команды создают нечто невероятно прорывное и классное. Но очень мало статей о том, как большие компании создают свои стартапы. А они действительно создают.
Я бы хотел рассказать про интернет-магазин полного цикла по продаже digital indoor рекламы vireklama.ru, который является стартапом крупнейшего российского продавца рекламы «Видео Интернешнл», в котором я собственно и работаю над этим проектом.
Рекламные экраны (digital indoor) – это такие телевизоры, которые висят в супермаркетах, торговых центрах, аэропортах и показывают рекламу. Я думаю, все вы их видели и слышали в Перекрёстке, Пятёрочке, Меге или Аэропорте.
Видео Интернешнл является лидером в России в этом виде рекламы, осуществляя продажу рекламных возможностей более 10 000 экранов в 90 городах. Но заказать рекламу на них для мелких и средних предпринимателей было не так-то просто. До настоящего момента.
Я бы хотел рассказать про интернет-магазин полного цикла по продаже digital indoor рекламы vireklama.ru, который является стартапом крупнейшего российского продавца рекламы «Видео Интернешнл», в котором я собственно и работаю над этим проектом.
Немного ликбеза
Рекламные экраны (digital indoor) – это такие телевизоры, которые висят в супермаркетах, торговых центрах, аэропортах и показывают рекламу. Я думаю, все вы их видели и слышали в Перекрёстке, Пятёрочке, Меге или Аэропорте.
Видео Интернешнл является лидером в России в этом виде рекламы, осуществляя продажу рекламных возможностей более 10 000 экранов в 90 городах. Но заказать рекламу на них для мелких и средних предпринимателей было не так-то просто. До настоящего момента.
+24
Популярные продукты для электронной коммерции с открытым исходным кодом
4 min
30KTranslation
Нас часто просят порекомендовать продукты eCommerce, которые могут интегрироваться с CMS или использоваться совместно с к.л. CMS. Ниже опубликован список ПО с открытым исходным кодом, пригодного для этих целей.
Примечание: русскоязычных пользователей, прежде всего, интересует наличие локализованных версий, поддержка отечественных платёжных систем и русское сообщество. В комментариях по тексту, выделенных курсивом, по-возможности указана эта информация.
Примечание: русскоязычных пользователей, прежде всего, интересует наличие локализованных версий, поддержка отечественных платёжных систем и русское сообщество. В комментариях по тексту, выделенных курсивом, по-возможности указана эта информация.
+38
5 галочек: чеклист юзабилити
6 min
30KМы выделили 5 основных пунктов, по которым можно определить юзабилити сайта. Список спорный и в основном касается продающих сайтов. И да, эти пять пунктов — среднее арифметическое опыта, полученного при обработке заявок на конкурс «Юзабельный вебпроект». Думаете, мы раздали слонов и забыли?
оригинал картинки
Когда мы предложили дать бесплатные комментарии по юзабилити всем желающим, нам пришло 166 заявок. На каждый сайт мы тратили до получаса.
Ошибки, само собой, повторялись. Голова пухла, а мы продолжали писать одинаковые комменты. Результатом марафона стал ниже приведенный чеклист.
Сразу оговоримся, что мы не оцениваем юзабилити в вакууме, нам важно, чтобы сайт работал, т.е. «продавал». Товары, услуги, идеи — не важно. Речь может идти о бесплатном веб-сервисе, для которого транзакцией станет регистрация посетителя.
оригинал картинки
Когда мы предложили дать бесплатные комментарии по юзабилити всем желающим, нам пришло 166 заявок. На каждый сайт мы тратили до получаса.
Ошибки, само собой, повторялись. Голова пухла, а мы продолжали писать одинаковые комменты. Результатом марафона стал ниже приведенный чеклист.
Сразу оговоримся, что мы не оцениваем юзабилити в вакууме, нам важно, чтобы сайт работал, т.е. «продавал». Товары, услуги, идеи — не важно. Речь может идти о бесплатном веб-сервисе, для которого транзакцией станет регистрация посетителя.
+115
Подведены результаты конкурса стартапов
2 min
6.1KУважаемые хабровчане!
Подведены итоги конкурса IT стартапов, который проводился в период с 12 мая до 1 июля 2010 компанией «ИТ-ГРАД». На конкурс было подано порядка 20 заявок от стартапов, нуждающихся в инфраструктуре центра обработки данных.
Сразу хочется сказать, что выбрать победителей было очень сложно, но особое внимание было уделено тем проектам, которые занимаются разработкой технологически инновационных решений. В первую очередь, это связано с мировыми тенденциями развития информационных систем, с растущей популярностью облачных вычислений и сервисов.
Подведены итоги конкурса IT стартапов, который проводился в период с 12 мая до 1 июля 2010 компанией «ИТ-ГРАД». На конкурс было подано порядка 20 заявок от стартапов, нуждающихся в инфраструктуре центра обработки данных.
Сразу хочется сказать, что выбрать победителей было очень сложно, но особое внимание было уделено тем проектам, которые занимаются разработкой технологически инновационных решений. В первую очередь, это связано с мировыми тенденциями развития информационных систем, с растущей популярностью облачных вычислений и сервисов.
+18
Самодельный стабилизатор для цифровых камер
1 min
21KИнженеры из Microsoft Research разработали интересную насадку, которая крепится на корпусе и подключается к сенсору цифровой камеры. Во время экспозиции стабилизатор точно регистрирует движения камеры, а потом автоматически исправляет резкость изображения.
Конструкция из недорогих гироскопов и акселерометра собрана на плате Arduino и, по заявлениям разработчиков, работает лучше, чем встроенные стабилизаторы в даже самых дорогих современных фотоаппаратах.
Конструкция из недорогих гироскопов и акселерометра собрана на плате Arduino и, по заявлениям разработчиков, работает лучше, чем встроенные стабилизаторы в даже самых дорогих современных фотоаппаратах.
+67
Как бороться с «пузырями»
9 min
1.1KTranslation
Перевод статьи Джейсона Калаканиса (jasonnation.com) «How to deal with bubbles».
За свою карьеру я промахнулся более 9 тысяч раз. Проиграл практически 300 игр. 26 раз мне доверяли сделать решающий бросок, но я промахивался. В своей жизни, я терпел неудачу снова и снова. Поэтому я и добился успеха.
Майкл Джордан jc.is/bI33SE
«Мыльный пузырь интернета скоро лопнет? Когда?»
«Мне лучше продать компанию сейчас, либо подождать, и продать дороже в следующем году?»
«Нужно ли мне поднимать деньги сейчас, до того, как бум закончится?»
Мне постоянно задают эти вопросы. Раньше они не давали мне спать. Теперь же они настолько врезались в мой мозг, что превратились в инстинкт.
Молодые игроки в покер задумываются о том, как разыграть короля-девятку и восьмерку-пятерку до флопа. Так же и новоиспеченные предприниматели думают о том, как играть на рынке.
Ответ в том, что не стоит разыгрывать ни одну из рук. Также и на рынке.
В этом письме я затрону следующие темы:
1. Как я научился по-сложному (aka мой смешанный опыт)
2. Правда о пузырях
3. Правда о выдающихся компаниях
4. Что делать, если мыльный пузырь растет
5. Что делать, если мыльный пузырь лопается
6. Заключительные мысли: Как я научился всему этому (aka у кого я все это украл)
За свою карьеру я промахнулся более 9 тысяч раз. Проиграл практически 300 игр. 26 раз мне доверяли сделать решающий бросок, но я промахивался. В своей жизни, я терпел неудачу снова и снова. Поэтому я и добился успеха.
Майкл Джордан jc.is/bI33SE
«Мыльный пузырь интернета скоро лопнет? Когда?»
«Мне лучше продать компанию сейчас, либо подождать, и продать дороже в следующем году?»
«Нужно ли мне поднимать деньги сейчас, до того, как бум закончится?»
Мне постоянно задают эти вопросы. Раньше они не давали мне спать. Теперь же они настолько врезались в мой мозг, что превратились в инстинкт.
Молодые игроки в покер задумываются о том, как разыграть короля-девятку и восьмерку-пятерку до флопа. Так же и новоиспеченные предприниматели думают о том, как играть на рынке.
Ответ в том, что не стоит разыгрывать ни одну из рук. Также и на рынке.
В этом письме я затрону следующие темы:
1. Как я научился по-сложному (aka мой смешанный опыт)
2. Правда о пузырях
3. Правда о выдающихся компаниях
4. Что делать, если мыльный пузырь растет
5. Что делать, если мыльный пузырь лопается
6. Заключительные мысли: Как я научился всему этому (aka у кого я все это украл)
+64
Для phpMyAdmin появился эксплоит
1 min
5.9KЗашел только что в свой почтовый ящик и увидел письмо от своего провайдера где арендую VPS, что в для phpmyadmin появился эксплоит. Вот само письмо:
+49
Были получены исходники 3300 глобальных интернет-проектов
5 min
276KПару месяцев назад нами (2Товарища и Антон Исайкин) была обнаружена уязвимость, присущая в основном большим интернет-проектам (вроде Рамблера, Мейла, Яндекса, Оперы и пр.). Удалось получить доступ к файловым структурам известнейших сайтов (в общей сложности 3320 сайтов) и в ряде случаев их полные исходные коды.
+1154
Десять советов начинающим программистам
5 min
109KПредисловие
Хорошо, когда работаешь с человеком, который отлично знает толк в своём деле. А что, если случается работать с коллегой, опыт которого не столь большой. Особенно это касается профессионально-личностных качеств. Невольно приходится подсказывать, местами помагать ему, а где-то даже откровенно учить. Все мы когда-то начинали. Все эти действия требуют немалых усилий, которые можно было бы применить по прямому назначению — в разработке проекта, но без подготовки новых специалистов будет тяжелее.
Так вот, чтобы минимизировать эти затраты, давайте «создадим» хорошего, а возможно и идеального начинающего программиста, с высоким потенциалом и светлыми горизонтами.
Предлагаемые здесь десять советов не претендуют на оригинальность и, в основном, базируются на моем небольшом пятилетнем опыте разработок. Итак, начнем.
1. Будьте самостоятельными
Если у вас есть какой-то вопрос, и вы не знаете как с ним поступить, то вначале постарайтесь исследовать его самостоятельно. Не ждите постоянной помощи от коллег — у них и без вас работы хватает. Используйте всю мощь поисковых систем, специализированных ресурсов (например, stackoverflow), профессиональных блогов, форумов разработчиков, и конечно же хабра. Большинство типичных «граблей» можно обойти различными эффективными вариантами, а для решения базовых задач есть дюжины готовых решений. Просто пойдите и возьмите.
+73
Отслеживание заполнения форм с помощью Google Analytics
3 min
23KЭффективность работы коммерческого интернет-проекта зависит от количества заказов, регистраций, отзывов и других элементов обратной связи оставленных посетителями сайта через электронную форму.
Соответственно, форма — уязвимое место приема таких обращений, которое может сократить их число из-за своей неэффективности.
Для оценки эффективности можно использовать различные методы, но сейчас мы остановимся на оценке форм с помощью системы веб-аналитики Google Analytics.
Соответственно, форма — уязвимое место приема таких обращений, которое может сократить их число из-за своей неэффективности.
Для оценки эффективности можно использовать различные методы, но сейчас мы остановимся на оценке форм с помощью системы веб-аналитики Google Analytics.
+32
Уязвимость связки PHP+nginx с кривым конфигом
1 min
61KSummary
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;
}
+129
Information
- Rating
- Does not participate
- Location
- Россия
- Date of birth
- Registered
- Activity