Search
Write a publication
Pull to refresh
19
0
Send message

Универсальный способ создания пакетов, для различных дистрибутивов GNU Linux

Reading time4 min
Views18K
Различные дистрибутивы предоставляют свои утилиты, для сборки и установки программ.
Например в Debian/GNU Linux — это debuild и dpkg. В Red Hat Linux — rpmbuild и rpm.
Не редко нам приходится собирать пакеты самостоятельно.
Устанавливать программы через make, в обход системы управления пакетами в дистрибутивах — является дурным тоном.
В случаях, когда мы имеем исходный код, и автор программы позаботился о создании Makefile, можно использовать checkinstall.
Но бывает и так, что автор java приложения, не выкладывает ничего кроме jar файла. Или мы хотим на коленке создать какой-то пакет, и положить в репозиторий, что бы в дальнейшем устанавливать/обновлять его на множестве серверов с различными дистрибутивами. В этом нам поможет утилита под названием fpm.
В чем же ее достоинство? Она из коробки позволяет нам собирать пакеты под различные дистрибутивы и даже операционные системы.

Сейчас поддерживаются:
  • deb
  • rpm
  • solaris
  • tar
  • directories
  • Mac OS X .pkg files (osxpkg)

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

Как открыть научный журнал

Reading time8 min
Views77K
Затеяли мы амбициозный проект — открыть свой электронный научный журнал. Поначалу казалось, что это дело неподъёмное и ничего хорошего не выйдет, тем более, что мы никогда издательским делом не занимались. Однако как и с любым делом тут главное начать. Хотя будущее нашего журнала ещё под вопросом, но я решил описать наш опыт на этом нелёгком пути и, надеюсь, этот рассказ сподвигнет ещё кого-нибудь создать свои хорошие журналы на благо российской науки.

Нам хотелось примерно следующее: создать электронный рецензируемый журнал на английском языке, полностью официальный, который бы воспринимался всерьёз западными учёными, на статьи в котором бы ссылались, чтобы высчитывался импакт-фактор. Программа-минимум — попасть в список журналов ВАК, в идеале — попасть в PubMed (журнал у нас по биоинформатике). Коммерческая выгода не предполагалась.
Читать дальше →

Производительный сетевой сервер на PHP

Reading time9 min
Views29K
Вы пробовали заказать в Макдональдсе жаренного на орудийном шомполе поросенка с домашним вином и, на десерт, девушку рядом с вами за столиком, для приятной беседы во время трапезы? Даже не думали об этом?? Вот-вот — статья как раз об этом, о стереотипах программиста и лени, двигающей прогресс. А если серьезно — в статье мы напишем очень полезный многим высокопроизводительный сетевой сервер на PHP за пару часов. Я совершенно серьезно :-)

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

Размышления о торрентах, легальном контенте и борьбе с пиратством

Reading time4 min
Views32K
Возьмём за аксиомы:
  • Пиратство, как не крути, — плохо.
  • Текущие методы копирастии — неадекватны.
  • Текущие форматы, типа ДВД и т.п. — медленно отмирают.
  • Torrent — реально удобно.
  • Всегда есть категория людей, которым нечем оплачивать, но посмотреть — хочется.


Все согласны? По отдельным пунктам гусары могут помолчать!

P.S. этакий предварительный. Специально для ленивых людей, которые дочитали ровно до строки про пиратство и рванули писать гневные комменты, не прочитав остального: СТАТЬЯ НЕ ОБСУЖДАЕТ, ХОРОШО ЧТО-ТО ИЛИ ПЛОХО! Она ищет путь решения вопроса, при котором «И овцы сыты и волки целы»!

Итак, что можно сварить из этакого «топора»?
Читать дальше →

Траектория развития веб-студии: агентство, производство, конвейер, продукт

Reading time6 min
Views36K
По данным, любезно предоставленным аналитическим порталом CMS Magazine, «на радарах» видно 286 живых русскоязычных веб-студий размером 1—3 человека, 626 — размером 4—7 человек, и 556 — размером 8—15 человек. «Живые» — это те, кто опубликовал на портале хотя бы одну работу в 2012—2013 годах.

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

Последние годы рынок всё чаще говорит о необходимости позиционирования, маркетинга и PR для веб-студий, причём если раньше это относилось к Top-10 компаний, сегодня об этих чуждых интернет-специалистам материях приходится задумываться той самой тысяче с численностью сотрудников 4—15. К счастью, и на Хабре появляются хорошие статьи на эту тему. Мы хотим дать взгляд на проблему позиционирования ещё с одной стороны.
Матрица развития веб-студии? Конечно, интересно!

Хранилище фотографий Topface теперь open source

Reading time3 min
Views33K
У нас неплохо получается хранить фотографии, поэтому мы решили упростить жизнь и вам, если вы хотите соорудить свой tumblr, facebook или imgur. Дело на самом деле нехитрое, но есть тонкости, о которых лучше знать заранее. К тому же мы сделали всё на node.js, что не слишком характерно для хранилища с более чем 100 000 000 фотографий.

image
Обо всём по порядку

War of Machines: создание игры для iOS

Reading time2 min
Views26K
В этой статье я хочу поделиться с вами своим практическим опытом разработки игры для iOS на основе open-source компонентов. Мы пройдемся по техническим решениям, которые были приняты во время разработки игры.
Читать дальше →

Как пишутся книги

Reading time10 min
Views32K
Мой самый крупный самостоятельный проект — увесистый том «Pro Android Web Game Apps» увидел свет не только в электронной форме, но и во плоти. В этой заметке я хочу поделиться своим опытом — рассказать о том, как появляются на свет технические книги — от идеи и переговоров с издательствами до утверждения обложки и печати.

cover

Первые шаги и разговор с издательством


Когда мысль о книге впервые пришла ко мне в голову, я даже не хотел её озвучивать. 99% моих идей кто-то уже придумал, нужно только как следует поискать. В этот раз было не так – google не возвращал ничего кроме блогов или отрывочных заметок — ничего действительно фундаментального. Значит у идеи есть шанс. Раз так, то почему бы не попробовать?

Процесс «для новых авторов» у всех крупных издательств приблизительно одинаковый: опишите нам свою идею, объясните почему именно вы должны её реализовать и не звоните нам, мы сами вам позвоним. Чтобы начать переговоры, нужно написать 2-3 страницы в свободном стиле о вас и вашей книге. Три из пяти издательств, которым я написал ответили, что моя тема не входит в стратегию развития на следующий год. Ещё два издательства — Apress и Manning ответили, что им интересно. Apress ответил быстрее и всего через несколько часов я начал с ними работать.
На этом этапе моей основной проблемой был язык. Я неплохо говорю, и могу сносно обсудить релиз проекта, футбол или игру Эммы Уотсон, но книга — это совсем другое. Любая неточность будет лишний раз напоминать, что автор пишет на неродном языке.
Читать дальше →

Оптимальный алгоритм игры в морской бой

Reading time4 min
Views997K
Пару дней назад я с удивлением узнал, что некоторые мои знакомые не умеют играть в морской бой. Т.е. правила они, конечно, знают, но вот играют как-то бессистемно и в итоге часто проигрывают. В этой записи я постараюсь изложить основные идеи, которые помогут повысить уровень вашей игры.
Читать дальше →

Основы профессиональной верстки электронных писем

Reading time7 min
Views105K
Верстка электронных писем
Ни для кого не секрет, что e-mail маркетинг только начинает набирать обороты во всем мире. А для России – это ещё и вовсе молодая ниша на рынке. И профессиональная верстка электронных писем здесь один из составляющих факторов успеха. Под профессиональной версткой понимается не только визуально красиво и надежно сверстанный макет, но и то, как выглядит usability открытки с маркетинговой точки зрения, как оптимизирована графика вместе с типографией для спам-фильтров и многое другое. Верстка электронных писем довольно обширная тема, в одной статье все не уместить, поэтому в данном посте постараюсь описать только базовые элементы и приемы, надежно проверенные за годы практики и работающие в top самых используемых почтовых клиентах мира: iPhone 4S/5; Outlook 07/10/13; iPad; Apple Mail; Android 2.3/4.0; Yahoo; Gmail. Если рассматривать только российский рынок, то нельзя не упомянуть о Mail.ru и Яндекс.Почта.

Что нужно знать в начале?


Сразу хочу выделить несколько из основных и важных моментов:

  1. В нашем арсенале имеется очень урезанный набор css-свойств, которые поддерживаются всеми почтовиками. При этом, стили нужно прописывать inline, а в head выносить только вендорные свойства и те блоки объявлений, которые не несут нагрузки на основную стилизацию письма. Ну и использовать link in head — крайне нежелательно.
  2. Не используйте background-image в основных визуальных элементах дизайна и не помещайте в изображения важную текстовую информацию. Вообще нужно всегда учитывать такой вариант, что письмо будет просматриваться получателем без единого изображения.


Каркас


Пожалуй каждый, кто хоть раз верстал письмо под рассылку, знает, что каркас лучше строить с помощью таблиц. На самом деле простая блочная модель div поддерживается на данный момент во всех перечисленных выше почтовиках, за исключением MS Outlook начиная с 2007 версии. Это связано с тем, что в качестве движка последние версии Outlook используют Microsoft Word, который в свою очередь много не знает о блочных css-свойствах. Игнорировать при верстке данный почтовый клиент я не рекомендую, поэтому в качестве фундамента все же используйте table. Да и добившись хорошего результата для Outlook, можно быть уверенным, что в большинстве почтовиках, письмо будет смотреться тоже хорошо, а скорее и лучше.

В качестве примера рассмотрим наиболее важные элементы из следующего, не сложного шаблона:
Шаблон письма для рассылки
Читать дальше →

Почем оптимизация или «бесплатных завтраков не бывает»

Reading time2 min
Views9.5K
Today's software engineering word is «farpotshket.» This is a Yiddish word meaning, «broken, because someone tried to fix it.»
(с) Andr Zerozero

Схлеснулись мы тут на днях на работе по вопросу «А хорошо бы закешировать регулярку», в совершенно банальной функции

  uncached = function(data_in) {
    return /_(\d)+(?:#(\d)+)?$/.exec(data_in);
  };

сделав как-то так

  cached = (function() {
    var pattern = /_(\d)+(?:#(\d)+)?$/;
    return function(data_in) {
      return pattern.exec(data_in);
    };
  })();

Идея популярная, но многие ли задумывались о реальном профите и накладных расходах?
Каков профит и почем?

Продолжаем тренировать мозг. Добавляем соревнования

Reading time2 min
Views14K

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

Еще немного о миграциях. Версия для PHP

Reading time6 min
Views7.2K
Вольно цитируя вступление к соответствующей статье на RailsGuides,
Миграции — это удобный способ управления структурой и изменениями схемы БД.
Конечно, можно вести дела по старинке, оперируя множеством SQL-файлов, или, о ужас!, редактируя куски SQL-кода в одном большом файле, который представляет собой актуальную схему БД.

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

Если Вы уже заинтересовались, или все еще не уверены, но перспектива иметь прозрачную историю изменений и возможность с помощью одной-двух консольных команд откатиться на любою версию схемы, звучит заманчиво, прошу под кат.
Читать дальше →

Как сделать MMORPG своими руками. Медленно, сложно, интересно

Reading time4 min
Views33K
Привет, хабрахабр! Меня зовут Егор Курьянович и ты, возможно, помнишь меня по паре интернет-проектов: Кьюби и Идейнику. А быть может, ты даже слышал о других моих начинаниях. Сегодня я хочу рассказать тебе, чем занимался последние пару лет.



Ты ведь любишь игры, не так ли? То, что ты видишь на КДПВ, называется FAR7. Чтобы было немного понятнее, скажу, что молодежь сравнивает её с Космическими Рейнджерами, те кто постарше, вспоминают StarControl2, а совсем уже хардкорные геймеры постоянно твердят об Elite. Сойдемся на том, что это браузерный космосим. В игре вы можете путешествовать между звездными системами, торговать, воевать и выполнять различные миссии.

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

Papeeria: облачный LaTeX редактор и IDE для научной работы

Reading time4 min
Views17K
Одной строкой: тут рекламируется Папирия, онлайновый сервис для подготовки документов в LaTeX. Ходить на papeeria.com.

Введение


Если вы студент, то наверняка либо уже пишете курсовую или диплом, либо всерьез над этим задумываетесь. Если вы к тому же учитесь в техническом вузе и в вашей работе много формул и прочего нетекста, то возможно, вы задумываетесь над тем, в чём его писать — в LibreOffice/Word или в LaTeX. И возможно, от использования LaTeX вас останавливает только то, что Word вот он, под рукой, бери и пиши, а латех надо еще устанавливать, возиться с почти неизбежными подводными камнями и потом еще тупо глядеть на белый лист и думать с чего начать. Вот вам-то мы и хотим помочь. А также тем, кто хочет вести свою научную работу из любого места, где есть интернет.

Для всех остальных: если вы вообще не знаете, что такое латех, то рекомендуем погуглить (можно начать, например, отсюда). Если же что-то знаете и просто хотите потроллить на тему latex vs word, то поищите себе, пожалуйста, другую поляну. Будем премного благодарны.

Итак, о Papeeria

Сервер отчетов на django

Reading time18 min
Views20K
Доброго времени суток.

Так случилось, что моя работа связана с написанием отчетов.
Этому я посвятил около 8 лет. Отчеты — это глаза бизнес-процесса и информация,
необходимая для принятия оперативных решений.

Вначале наш отдел делал отчеты,
— Принимая задачи по outlook
— Составляя sql-запрос
— Отправляя результаты заказчику в xls
— В лучшем случае, сохраняя sql-код куда-то в папку (а иногда и не сохраняя)

Но это было скучно и неинтересно. Так появилось простейшее приложение на PHP,
в котором каждый отчет был представлен в виде php-файла с одним классом, имеющим единственный (помимо конструктора) метод show()

В таком виде, система прожила 5,5 лет, за которые мной и еще одним человеком было написано более 500 различных отчетов.
В процессе появился опыт и стало понятно, что многое (если не все) сделано не так, да и PHP уже не устраивал.

Сервер отчетов был переписан на django, где была «админка» и код приложения уже не правился.
В процессе работы снова накопилось несколько мыслей,
в итоге сервер был снова переписан.

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

Это рабочий инструмент, который вы можете (если захотите) использовать в работе,
который нам использовать просто нравится.

Итак, поехали

Экономическая симуляция как игра для программистов

Reading time6 min
Views28K
Хотелось бы создать некую игру экономической симуляции и рассказать какого рода она может быть и почему она представляет интерес. Причем интерес не только игровой, но и научный в рамках искусственного интеллекта. Т.е. так чтобы программисты могли писать ботов, задачей которых было бы управлять предприятием/игровым агентом автоматически. Поэтому хотелось бы найти единомышленников.

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

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

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

Принцип YAGNI в управлении проектами

Reading time8 min
Views22K
Наша компания занимается разработкой web-приложений на заказ. Не сайтов-визиток, а именно приложений. Чаще всего — для внутрикорпоративного использования.

Один из острейших вопросов заказной разработки — правильная оценка сроков и бюджета проекта, чтобы и работа была выполнена, и заказчик доволен, и прибыль была адекватной. В течение 3-х лет мы перепробовали разные способы работы и подходы к решению проблемы сроков и бюджета. Перечитали кучу книг, побывали на десятках конференций, вебинарах и т.д. Под катом описание решения, которое мы сейчас нашли для нанесения максимальной пользы заказчику за интересный для нас бюджет.
Читать дальше →

Хвостовое масштабирование

Reading time18 min
Views13K
Взаимодействие с системами, которые реагируют на запросы пользователя быстро (в течение 100 мс), ощущается тем же пользователем, как более плавное и естественное, чем взаимодействие с системами, которые реагируют долго. Развитие Интернета и возникновение датацентр-масштабных вычислительных систем (warehouse-scale computing systems) дало возможность появлению появлению веб-сервисов, обладающих высокой скоростью реакции и в тоже время, обрабатывающих терабайтные массивы данных, расположенные на тысячах серверов. Например, поисковая система Google обновляет результаты выдачи в ответ запроса одновременно с тем, как пользователь печатает, при этом система предсказывает наиболее вероятный запрос, основываясь на напечатанном префиксе, и осуществляет поиск и отображение результатов за десятки милисекунд. Устройствам дополненной реальности (таким как, например, Google Glass), которые только-только начали выходить на рынок, понадобятся веб-сервисы с еще более высокой скоростью реакции, дабы гарантировать естественность взаимодействия.
Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity