Pull to refresh
0
0
Виктор @lslayer

User

Send message

Прекратите скручивать — 2. О способах крепления кабеля

Reading time7 min
Views557K
По заявкам слушателей, так сказать. Правильно соединить кабель — половина дела, но если он будет свободно болтаться, то долго он не проживет — или заденут, или порвут, или откусят(необязательно со злыми намерениями). А может просто под своим весом выскользнуть из соединения. А может не выскользнуть, что еще хуже — поди-ка найди место пропадания контакта. Так что эта статья расскажет о том, какими способами можно закрепить кабель так, чтоб он никуда не делся.
Да и вот такие крепления некрасивы, неудобны, и выдают непрофессионала:

Читать дальше →
Total votes 313: ↑304 and ↓9+295
Comments161

Настройка Nginx + LAMP сервера в домашних условиях. Часть 1: Настройка frontend — backend

Reading time8 min
Views84K

Здравствуйте. Недавно я задавал вопрос по поводу создания цикла статей. Вот первая статья.

В этом цикле статей вы узнаете как грамотно настроить LAMP сервер, аля «хостинг только мощней».
Мы будем использовать следующий стек: nginx — apache-mpm-itk — mod_php — mysql — linux/debian.

Буду освещать следующие темы:
  • Настройка frontend — backend
  • Расчет возможностей сервера, настройка mysql и backend
  • Рассказ об опыте на базе intel s3420gp

Совершенно уверенно могу сказать, что настройка LAMP сервера не ограничивается 6-10 командами установки и раскомментирования определенных строчек в файлах настройки.
Пример: по умолчанию nginx не дает возможности закачать на сервер тело запроса больше чем 1M. Если не настроить данный параметр, будет возникать ошибка 414 (Request-URI Too Large), при попытке добавления небольшой серии фотографий.
У apache совершенно противоположное: у него тело запроса по умолчанию не ограничено. Это делает возможным совершать пакости.

В этой статье мы познакомимся со всей настройкой досконально. В статье вы сможете найти конфигурационные файлы, подготовленные мной. Будучи педантом, мои конфигурационные файлы всегда сгруппированы по типу, например: «производительность», «генерация контента», «страницы ошибок», «сжатие», «другие настройки», «общие настройки». Мне кажется, что читаемость данных файлов становится намного лучше, если они сгруппированы.

Мы узнаем о том какие бывают простые атаки и как от них защищаться. Сразу скажу, что при базовой конфигурации frontend в лице nginx — backend apache все равно остается уязвим.

Я практически уверен, что я не смогу уместить все в одну статью. Добро пожаловать под кат.
Читать дальше →
Total votes 107: ↑75 and ↓32+43
Comments78

Простенькие часики на MSP430

Reading time10 min
Views71K
Начитавшись огромным количеством статей про Arduino/LaunchPad захотелось приобрести подобную игрушку. Выбор пал на MSP430, так как его цена намного более привлекательна для старта в мир микроконтроллеров.
После томительных 5 дней ожидания, волшебная коробочка оказалась в моих руках. Поиграв минут 10 со светодиодами, захотелось сделать что-нибудь более интересное… Например часики!

Читать дальше →
Total votes 42: ↑36 and ↓6+30
Comments17

Прекратите скручивать (восклицательный знак)

Reading time6 min
Views1.7M
Ну действительно, прекратите. Есть куча прикольных штук для соединения самых разнообразных проводов, а все равно технология «откусить зубами изоляцию, скрутить, замотать изолентой» жива до сих пор.

Дальше много текста, фотографий, разборок. Ну все как обычно
Total votes 682: ↑667 and ↓15+652
Comments360

Генерация PDF на сервере в Ruby

Reading time8 min
Views4.6K
Чуть более месяца назад я устроился верстальщиком в старт-ап, в команду Ruby-разработчиков. Так повезло, что команда оказалась очень хорошей и моё стремление учиться совпало с их желанием получить хорошего специалиста.

HTML-вёрстка сама по себе имеет немного ценности и не единственное, чем можно нагрузить верстальщика.

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

Варианты генераторов для Ruby


Согласно сайту Ruby Toolbox существует два принципиальных подхода к генерации PDF-файлов:


Первый вариант подразумевает генерацию HTML-страницы и конвертацию её в PDF, в то время как второй позволяет, по факту, работать с canvas и генерировать документ без дополнительных прослоек.

Я выбрал вариант с использованием Prawn (по большей части, конечно, по тому, что предыдущая версия PDF-файла генерировалась этим способом) даже не смотря на то, что мне пришлось вынырнуть из привычного мне мира HTML и CSS

Тех, кому интересно приглашаю под хабракат.
Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments6

27+ ресурсов для онлайн-обучения

Reading time5 min
Views969K

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

Статья содержит перечень ресурсов для онлайн-обучения, представляющих интерес преимущественно для программистов.

Читать дальше →
Total votes 174: ↑163 and ↓11+152
Comments68

Подборка инструментов для эффективной frontend разработки

Reading time3 min
Views101K
В эту прекрасную пятницу осмелюсь предложить хабрасообществую небольшую подборку приложений, предназначенных для увеличения продуктивности во время работы с фронтэндом. Если ваш любимый апп здесь не представлен — добро пожаловать в комментарии!

Form Builder

image

Этот прекрасный генератор форм поможет вам в создании красивейших CSS логин-боксов и прочих input вещей, при минимальных временных затратах. Помимо форм на сайте этого проекта можно создавать и другие не менее красивые CSS элементы, в том числе кнопки и ленты.
еще 24 ссылки
Total votes 204: ↑197 and ↓7+190
Comments46

Практическое применение MSP430 для web-разработчика

Reading time8 min
Views55K
На хабре предостаточно статей для начинающих о том, какой волшебный и замечательный этот MSP430 LaunchPad от Texas Instruments. Однако дальше стандартной мигалки светодиодом обычно никто не заходит. Пора исправлять эту ситуацию.
Работая в команде, мы пользуемся старым добрым SVN для контроля версий. Казалось бы, причём тут микроконтроллеры?
Как раз для сигнализации очередного коммита в репозиторий я и приспособил эту дивную штуковину.

Читать дальше →
Total votes 37: ↑29 and ↓8+21
Comments37

Включение чего угодно по HTTP без заморочек c OpenWRT

Reading time15 min
Views304K

В комментариях к статье об опыте изготовления «интернет розетки» мое внимание привлекли два комментария. Один, в котором утверждалось, что такая штука, по сути, бесполезна, показался мне несправедливым — хорошо помню, как мне однажды понадобилось, например, дистанционно «ресетить» одну хитрую штучку и думаю, что я не одинок. А вот идея о том, что можно решить подобный вопрос проще и дешевле, использовав, например, TP-LINK TL-MR3020 + OpenWRT показалась мне дельной. Я решил к тому же обойтись без разборки устройства, программирования и микроконтроллеров — короче, сделать решение как можно доступнее. И у меня это почти получилось!
Читать дальше →
Total votes 88: ↑84 and ↓4+80
Comments61

Лекция №02: MSP430. Города и регистры

Reading time11 min
Views29K
Примечание переводчика: Не так давно, мне пришел заказанный мною LaunchPad. Единственное что мне тогда хотелось, это сразу же начать мигать светодиодиками. Так я столкнулся с первой проблемой — у меня Linux. Почитав про основные IDE для разработки под эту платформу, я понял, что ничего хорошего мне тут не светит. А использовать Energia, просто напросто не позволяла религия. Имею привычку(не знаю, хорошую или нет) не работать с подобными инструментами «повышенной абстракции» пока не изучу подноготную того с чем работаю. Поэтому, Energia быстро отсеялась из возможных вариантов. Осталось только одно — собрать тулчейн gcc-msp430, включающий в себя все необходимое. Ноутбук у меня очень слабый, поэтому собирался этот тулчейн аж полдня. Что никак не радовало меня, так как я уже хотел МИГАТЬ. Когда собрал, столкнулся со следующей сложностью. Очень мало русскоязычной литературы и справки по этому микроконтроллеру. Что-то поспрашивал среди хабровчан, что-то кое-как смог вытащить из примеров кода от TI, но проблема оставалась — я слабо понимал все то что делаю. Продолжалось это ровно до тех пор, пока я не набрел на один замечательный англоязычный блог в котором хоть и на английском языке, но довольно доступно объяснялись все основы. Его я и принялся читать и переводить. Признаюсь честно, перевод я этот писал не столько для хабры, сколько для себя, чтобы на все 100% понять изложенный материал. Сказать что понял все на 100% — немного соврать. Скажу честно — от электроники я далёк, на момент получения лаунчпада я обладал нулевыми знаниями в этой сфере. Поэтому некоторые моменты перевода, могут, наверное, заставить плакать кровавыми слезами более серьезных разработчиков. К примеру — Vcc и Vss или PxREN. Идею я понимаю, но я сомневаюсь что перевел технически грамотно. Тем не менее, переводить я старался так, чтобы было понятно такому же нулю как я. В общем, если что — не обессудьте. Как мог. Кроме того, в переводах есть абзацы которые написаны чисто от себя, чтобы немного более подробно разжевать материал.
Ах да, начал переводить с лекции 02, так как в первой «Вводной» лекции содержится слишком много воды, которой и так море и на просторах хабры, да и вообще интернета. Мы же хотим сразу же работать, а не читать о том, как хорошо поступили TI выпустив дешевые LaunchPad'ы.
Читать дальше →
Total votes 21: ↑17 and ↓4+13
Comments9

Установка node.js на VPS

Reading time2 min
Views21K
В этой статье я расскажу, какие проблемы прийдется решить, чтобы получить VPS с реально работающим node.js сервисом. Это все элементарные вещи, но, может быть, кому-нибудь еще пригодится.

Установка node


Проблема: в репозитории может не оказаться пакета для нужной версии node. Как вариант, у вас может быть два проекта, требующих разные версии node.
Решение: на девелоперских машинах в таких случаях используют nvm. На боевом сервере его тоже можно запросто использовать, просто прийдется написать специальный скрипт для запуска своего сервера.
Читать дальше →
Total votes 30: ↑23 and ↓7+16
Comments10

Что нужно делать смолоду или как стать богатым айтишником

Reading time7 min
Views630K

Статья написана после прочтения статьи Копи деньги смолоду или пара утверждений, легко проверяемых в Excel.

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

Нужно заметить, что три года назад, я и сам не знал этого принципа, и мне даже пришлось продать свою машину, чтобы выплатить долги. Но я не расстроился – я уже знал этот принцип и был уверен, что у меня получится стать богатым. Ведь если ты действуешь исходя из этого принципа, то настоящее богатство – лишь вопрос времени. И я не ошибся.
Не важно, кто ты – дизайнер или программист, но я уверен, если ты тоже последуешь ему, то станешь богатым.
Ближе к делу
Total votes 389: ↑303 and ↓86+217
Comments578

Tips & Tricks

Reading time9 min
Views5K
Практически во всех языках программирования одну и ту же задачу можно решить несколькими способами. Однако какие-то из них лучше, какие-то хуже. Для некоторых требуется написать 10 строк кода, для других можно обойтись и одной.

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

Методы массивов


Простой пример — допустим, у вас имеется массив объектов класса User. У них есть свойство activated, которое выставляется на 1, если юзер активировал свою учетную запись. Вам нужно проверить, все ли юзеры из массива активированы. Не берем во внимание ActiveRecord (там можно и по-другому сделать), моя цель — показать работу с массивами.

Способ первый, самый примитивный:
  1. @users = User.find(:all)
  2. activated_users = 0
  3. foreach user in @users
  4.   activated_users += 1 if user.activated == 1
  5. end
  6.  
  7. # если количество совпадает, значит все юзеры активированы
  8. activated_users == @users.size
Читать дальше
Total votes 76: ↑61 and ↓15+46
Comments45

Знакомство с Ruby on Rails 3.0

Reading time5 min
Views17K


Добрый день, друзья. Не так давно мы с друзьями-коллегами решили поизучать Ruby on Rails – что это такое и с чем едят – для использования в будущем при разработке своих проектов.

Так как знаний по данной теме не было вообще, то и двигаться решили постепенно. При начальной установке Ruby с Rails 3.0 мы столкнулись с некоторыми трудностями, о которых в мануалах так сходу никто не упоминал. Поэтому я решил написать это небольшое руководство (которое является обобщением собственного опыта и перевода мануала на guides.rubyonrails.org/getting_started.html) по изначальной установке и настройке Ruby on Rails 3.0 для того, чтобы помочь таким же начинающим как я найти полезную информацию в одном месте и сэкономить свое время.
Читать дальше →
Total votes 75: ↑58 and ↓17+41
Comments80

Миллион партиклов. Часть 1

Reading time6 min
Views22K
imageХочу рассказать как я создавал, и потом переводил собственную систему частиц на GPU. Как я наивно думал просто будет сделать (мол чо там, двигать частицы, тююю). На самом деле о нюансах, возникающих при реализации, можно говорить очень много и долго, поэтому далее я расскажу только об решении проблем «узких» мест.

История вопроса


Заказчик разрабатывает динамические музыкальные фонтанные комплексы, которые управляются через dmx контроллеры по сценарию. Редактор сценариев он сделал самостоятельно. Но на практике создавать сценарии оказалось неудобным, потому что для того, чтобы видеть как получается нужно иметь целиком построенный и запущенный фонтан. Кроме того, если вдруг дизайнеру хореографу захотелось добавить дополнительные сопла для фонтана — то этого сделать уже практически невозможно. Поэтому заказчик захотел обзавестись модулем для моделирования фонтанов, чтобы хореограф мог без настоящего фонтана разрабатывать сценарии. В целом у меня вышло что-то в таком духе: вот видео того что было смоделировано Hawaii50.wmv, а вот то, что вышло в реале после конструирования фонтана: H5OClip.wmv
Читать дальше →
Total votes 90: ↑86 and ↓4+82
Comments35

Отдаем файлы эффективно с помощью PHP

Reading time3 min
Views281K
Если Вам потребовалось отдавать файлы не напрямую веб сервером, а с помощью PHP (например для сбора статистики скачиваний), прошу под кат.
Три способа отправить пользователю файл и не повесить сервер
Total votes 132: ↑108 and ↓24+84
Comments59

MySQL Query Cache

Reading time5 min
Views109K
В MySQL есть очень полезная функциональность — кеш запросов. Кеш запросов доступен в MySQL начиная с версии 4.0.
Многие СУБД имеют подобную функциональность, но в отличие от MySQL они кешируют планы выполнения запросов, тогда как MySQL кеширует результаты запросов.
Дальше о том, как работает кеш запросов, как его настраивать и оптимально использовать.
Читать дальше →
Total votes 70: ↑67 and ↓3+64
Comments60

Консоль для маководов: Beyond the GUI

Reading time6 min
Views219K
Доброго дня, уважаемые хабравчане-маководы!

Сегодня я расскажу как увеличить эффективность работы в Mac OS X за счёт использования консоли.

Лирическое отступление


Думаю, ни для кого не секрет, что Mac OS является Unix-based системой, но переработанной почти до неузнаваемости. Даже консоль засунули куда подальше — не сразу и найдёшь. И вся система нацелена на использование GUI, при дефолтных настройках даже переключение между кнопками по Tab не работает — без мыши никуда. И тем не менее, Мак — это не только окошки, не только док и лаунчер. Мак это ещё и вся мощь shell скриптов и консоли!

Если Вы пришли из мира M$, то для начала неплохо бы поучить общие команды shell'а, например, по вот этому учебному пособию. Как минимум, нужно усвоить команды перехода по каталогам и способы запуска программ и скриптов.

Если Вы пришли в мир Mac OS из мира Linux'а и FreeBSD, то, скорее всего, знаете как минимум основы shell-скриптинга. Но и для вас в статье может оказаться кое-что интересное, ведь в маке есть уникальные консольные команды, которые так же полезно знать.

Вот о некоторых особенностях маковской консоли далее и пойдёт речь.
Поехали!
Total votes 104: ↑91 and ↓13+78
Comments126

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity