Pull to refresh
  • by relevance
  • by date
  • by rating

Bundler: клиентская оптимизация Javascript в ASP.NET

Client optimization *
imageСегодня, при разработке приложений в интернете, вопрос клиентской оптимизации встает все чаще. Если раньше, страница отправленная клиенту содержала только информацию, то сегодня очень часто такая страница содержит много JavaScript-кода. Для достижения наилучшей производительности и снижения нагрузки на сервер применяются правила клиентской оптимизации.

В этой статье речь пойдет про Bundler — удобное средство клиентской оптимизации JavaScript для .net-проектов.
Читать дальше →
Total votes 44: ↑35 and ↓9 +26
Views 2.1K
Comments 7

Bundler — менеджер для управления gem'ами

Ruby *

Что такое Bundler?


Это менеджер для управления зависимостями gem'ов в ruby приложениях. Эта утилита позволяет легко устанавливать необходимые gem'ы для вашего приложения, при этом вовсе не зависеть от установленных в системе. Если вы использовали Rails для своих разработок, то вы вспомните, как задавали зависимости gem'ов c помощью config.gem в enviroment.rb, Bundler решает эту задачу намного удобнее и проще. Его включили в Rails 3.0 по умолчанию и теперь, именно он используется для управления зависимостями gem’ов в данной версии фреймворка. Эту утилиту можно использовать для любого ruby фреймворка.
Читать дальше →
Total votes 25: ↑21 and ↓4 +17
Views 68K
Comments 6

Управляем версиями с помощью Bundler

Ruby *
Translation
Недавно вышло обновление rake с версии 0.8.7 до версии 0.9.0, которое наделало много шума в сообществе и в очередной раз выявило проблему управления версиями. Мне бы хотелось прояснить ситуацию и снова проговорить основные моменты, которые я уже упоминал во времена релиза Bundler 1.0. Вначале я расскажу о простых правилах работы, а затем слегка углублюсь в детали.
Читать дальше →
Total votes 42: ↑39 and ↓3 +36
Views 14K
Comments 4

Используйте бандлер вместо практики rvm gemset per project

Ruby *
Наша команда долгое время использовала известную практику rvm gemset per project. Однако, после работы с пакетным менеджером nodejs мы поняли, что гораздо удобнее складывать зависимости в папку проекта (дефолт для нодовского пакетного менеджера).

Немного покопавшись в документации бандлера я обнаружил, что тоже самое можно сделать и на его основе.
Читать дальше →
Total votes 51: ↑48 and ↓3 +45
Views 7K
Comments 32

Связка rvm + Rails + Nginx + Unicorn или деплоим рельсы правильно

Ruby on Rails *
Sandbox
Целью данной заметки я ставлю в подробностях описать организацию сервера для Rails приложений в самой популярной на данный момент связке: rvm + Rails + Nginx + Unicorn. К написанию статьи побудило отсутствие полной пошаговой документации по этой связке, понятной не только ядреным профессионалам этой области. Далее я попытаюсь подробно, шаг за шагом, описать идеологически правильный процесс организации сервера для обслуживания нескольких Rails приложений (на примере одного) — если у вас есть абсолютная уверенность в том, что на подопытной машине никогда не будет работать более одного приложения — настройка может быть существенно короче и проще. Хочу предупредить, что тонкости, касающиеся работы приложения под высокой нагрузкой в статье не описываются, т.к. цель ставилась иная — заставить работать приложение в связке и сократить количество конфликтов с другими приложениями до минимума.
Читать дальше →
Total votes 68: ↑63 and ↓5 +58
Views 53K
Comments 135

Пишем свой первый gem

Ruby *
Sandbox
Хочу рассказать Вам свой опыт написания gem. Данная идея возникала у меня давно, но до реализации все никак не доходила. Все упиралась в банальную лень и отсутствие достаточной мотивации. Однако неделю назад мне достался проект, связанный с сервером рассылки писем.

Выбираем генератор

На первом этапе нужно было определиться с тем, как будет создаваться библиотека: с нуля или с помощью какого-то генератора. Для первого раза, на мой взгляд, писать с нуля будет достаточно сложно и долго, поэтому рассмотрим известные генераторы. Небольшой поиск показал такие gems: hoe, newgem, bundler. Лично мне понравились два – newgem и bundler. Первый представляет полный комплект шаблонов, охватывающий множество случаев. Но я выбрал bundler за его простоту, минимальный набор сгенерированных файлов и набор rake tasks для создания пакета и его дальнейшей публикации.

Читать дальше →
Total votes 38: ↑37 and ↓1 +36
Views 8.6K
Comments 21

Разворачиваем приложение на чистой Убунте: от A до Z

Ruby on Rails *
Итак, у вас есть чистая Ubuntu, в консоли открыто ssh-соединение с сервером и консоль вас заманчиво приглашает — «root@my-awesome-host:~#» — и больше ничего нет. А хочется запустить и показать всему миру какое-то рельсовое приложение. Поехали от супа до орехов.

Читать дальше →
Total votes 65: ↑48 and ↓17 +31
Views 3.3K
Comments 43

Когда нужен RVM, а когда достаточно rbenv

Ruby *
Sandbox
В данной статье я не буду вдаваться в подробности работы RVM и rbenv. Информации по данным штуковинам хватает на просторах интернета. Здесь же я хочу попытаться раскрыть вопрос: когда стоит использовать rbenv, а когда нет?

Цель


Для этого давайте для начала разберемся для чего же создавался RVM, а для чего rbenv. Для этого достаточно взглянуть на возможности обоих систем.
Читать дальше →
Total votes 26: ↑21 and ↓5 +16
Views 14K
Comments 29

Создание гемов — Руководство

Ruby *
Хотя на Хабре уже проскакивали статьи о создании гемов, они либо содержат устаревшую, либо неполную информацию.

Как же на самом деле надо создавать, развивать и публиковать свои гемы?

Современный подход заключается в использовании Bundler совместно с другими инструментами, такими, как Git, YARD и RSpec-2.
Читать дальше →
Total votes 32: ↑29 and ↓3 +26
Views 8.7K
Comments 12

NoName Podcast S04E05

Self Promo

Вместо вступления


Подкаст вышел с опозданием, поскольку мы ждали, когда мне вернут микрофон. На момент записи его так и не отдали, поэтому меня слышно не очень хорошо, выводы сделали, своих ошибок повторять не будем.
Таинственный образом с хабра пропал «подкаст», поэтому слушайте нас на rpod-е.
Читать дальше →
Total votes 33: ↑29 and ↓4 +25
Views 839
Comments 1

Рельсы сошли с рельс: Почему я переписываю Archaeopteryx на CoffeeScript

Programming *Ruby on Rails *Node.JS *CoffeeScript *
Translation
Вы бывали на вечеринках, где друзья с работы и друзья из колледжа не разговаривают?

Я запостил видео на Tumblr, которое бы никогда не запостил на Facebook:


Это гитарист, отжигающий под «Bangarang» Skrillex'а.
Эй, при чём тут вообще Рельсы?!
Total votes 86: ↑66 and ↓20 +46
Views 4.7K
Comments 94

Ruby NoName Podcast S04E17

Ruby *

Подкаст

http://ruby.rpod.ru/283342.html

Новости



Читать дальше →
Total votes 21: ↑17 and ↓4 +13
Views 1.9K
Comments 0

Ruby NoName Podcast S04E18

Ruby *

Подкаст

http://ruby.rpod.ru/284727.html

Новости


Читать дальше →
Total votes 22: ↑18 and ↓4 +14
Views 2.1K
Comments 7

Узнайте бандлер получше

Engine Yard corporate blog Website development *Ruby on Rails *
Translation
Tutorial
Бандлер оказался замечательным средством установки и отслеживания джемов, которое так нужно каждому руби проекту настолько, что почти каждый проект использует его. Однако, несмотря на его повсеместность, большинство пользователей не знают о встроенных средствах и помощниках бандлера. В попытке повысить осведомленность (и производительность Руби разработчиков), я собираюсь рассказать вам о них.

Читать дальше →
Total votes 58: ↑52 and ↓6 +46
Views 15K
Comments 11

Pundle — bundler для python

Python *
Начну с пиара другого проекта, который мне очень нравится использовать — pyenv. Это порт rbenv для python, который служит для установки нужных версий python в папку пользователя в недра ~/.pyenv, и активации нужной версии руками или, что более грамотно, через файл .pyenv-version в папке проекта.

Следуя этой старой доброй традиции обмениваться здравыми идеями с ruby сообществом, я решил портировать идею Bundler (http://bundler.io/), и назвал его Pundle. Это вторая часть рабочего процесса связанного с версиями интерпретаторов и пакетов в руби, и как и первая, достаточно разумна.

Главная идея pundle в том, чтобы не создавать отдельную директорию на каждую комбинацию версий пакетов как в virtualenv, а вместо этого поставить все пакеты в директории типа .pundlerdir/python-version-variant/package-name-2.3.4, и при старте проекта, взяв информацию из frozen.txt, активировать нужные версии пакетов

Читать дальше →
Total votes 31: ↑26 and ↓5 +21
Views 11K
Comments 21

Фундаментальная проблема пакетных менеджеров для языков программирования

Programming *Version control systems *
Translation
Почему существует столько много различных пакетных менеджеров? Их можно встретить как во многих операционных системах (apt, yum, pacman, Homebrew), так и работая со многими языками программирования (Bundler, Cabal, Composer, CPAN, CRAN, CTAN, EasyInstall, Go Get, Maven, npm, NuGet, OPAM, PEAR, pip, RubyGems, и т.д. и т.п.). «Каждый язык программирования нуждается в собственном пакетном менеджере, это уже стало общепризнанной истиной». Что за необъяснимое притяжение заставляет языки программирования, один за другим, скатываться в этот обрыв? Почему бы нам просто не использовать уже существующие пакетные менеджеры?
Читать дальше →
Total votes 26: ↑23 and ↓3 +20
Views 15K
Comments 13

Ruby Together – фонд развития языка Ruby

Open source *Ruby *Ruby on Rails *


Пару раз проскочив в условном Ruby Weekly, сайт инициативы Ruby Together не зацепил моего внимания, хотя должен был. Давайте разберемся, на что нам предлагают потратить свой трудовой доллар.

Ruby Together — некоммерческая организация, занятая привлечением и распределением денег на развитие инфраструктуры языка Ruby. Уже сейчас под крылом организации находятся столпы экосистемы Ruby: гем bundler, репозиторий rubygems.org и сам проект rubygems. Организация управляется советом директоров, который состоит из хорошо знакомых всем рубистам имен: André Arko, Aaron Patterson (интервью для хабра), Steve Klabnik (интервью для хабра, «Как я нахожу время?»), Sarah Mei, Terence Lee, Ines Sombra, Joel Watson.

Индивидуальное членство в организации стоит $40 в месяц, корпоративное членство – $800. Взносы дают право голоса и ряд бонусов, о которых под катом. Для тех, кто просто хочет помочь проекту деньгами, существует статус «друга», без доступа к внутренним ресурсам и права голоса, с ежемесячным взносом $10, либо разовым взносом произвольной суммы. На текущий момент к проекту присоединились компании Stripe и Engine Yard, а также более 30 индивидуальных участников.

Принять участие.
Читать дальше →
Total votes 19: ↑16 and ↓3 +13
Views 8.5K
Comments 5

Сравнение 7 систем фотограмметрии. Что лучше выбрать?

Working with 3D-graphics *
Translation


Приветствую, Хабр. Это моя первая попытка перевода статьи. Надеюсь, она будет полезна не только жителям хабра, но и археологам, на которых ориентирован оригинал статьи.

Когда я объясняю людям, что фотограмметрия аналогична процессу 3D-сканирования с фотографиями, мне всегда не доверяют, так как это кажется слишком фантастическим, чтобы быть правдой. Только представьте себе, сделать несколько снимков объекта, отправить их в алгоритм и получить текстурированную 3D модель. Вау!

После представления модели, второй вопрос, который задают – вопрос точности. Какова точность 3D-сканирования по фото? Ответ: субмиллиметровый диапазон. И снова я удивлен выражением недоверия. К счастью, наша команда написала научную статью об эксперименте, который показал среднее отклонение 0,78 мм, то есть меньше одного миллиметра по сравнению со сканированной 3D моделью, сделанной с помощью лазерного сканера.
Читать дальше →
Total votes 16: ↑14 and ↓2 +12
Views 21K
Comments 0

Как создавать компактный и эффективный javascript используя RollupJS

JavaScript *
Sandbox
rollupjs
Последнее время все чаще и чаще на ряду с другими сборщиками javascript стал встречать rollupJS. И даже стал использовать его для написания модулей, используемых в основном проекте компании. Поэтому хочу поделиться с вами переводом стать об этом компактном и удобном сборщике.

Стиль — авторский.

Узнаете, об использовании Rollup как более компактную и эффективную альтернативу webpack и Browserify для объединения файлов JavaScript.

В конце этого руководства мы сконфигурируем Rollup для:

  • объединения нашего скрипта,
  • удаления неиспользуемого кода,
  • трансплайнинг его для работы со старыми браузерами,
  • поддержки использования модулей Node в браузере,
  • работы с переменными окружения и
  • оптимизации нашего кода для уменьшения размера выходного файла

Предварительные требования


  • Начальные знания в JavaScript.
  • Первоначальное знакомство с модулями ES2015 также не повредит.
  • На вашем компьютере должен быть установлен npm. (У вас его нет? Установите Node.js здесь.)

Читать дальше →
Total votes 20: ↑15 and ↓5 +10
Views 20K
Comments 63

Parcel — очень быстрый бандлер, не требующий настройки

Website development *JavaScript *Node.JS *


Для чего


Parcel — маленький и быстрый бандлер, позиционируется как решение для маленьких проектов. С момента первого релиза (7 дней назад) уже собрал 8725 звездочек на гитхабе. Согласно официальной документации имеет следующие плюсы:


Быстрая сборка


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


Собирает все ваши ассеты


Из коробки имеется поддержка ES6, TypeScript, CoffeeScript, HTML, SCSS, Stylus, raw-файлов. Плагины не требуются.


Автоматические преобразования


Весь код автоматически проходит через Babel, PostCSS, PostHTML — подхватываются при необходимости из node_modules.


Разделение кода без лишней конфигурации


Используя динамический import(), Parcel разделяет бандл для возможности быстрой начальной загрузки точки входа в приложение


Горячая перезагрузка


Типичный хот-релоад без конфигурации — сохраняете изменения и они автоматически применяются в браузере.


Дружелюбный вывод ошибок


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

Читать дальше →
Total votes 22: ↑18 and ↓4 +14
Views 35K
Comments 68
1