Как стать автором
Обновить
16
0
Владислав Орлов @biziwalker

Добрый веб-гик из Сибири

Отправить сообщение

Манифест Чистого Программиста или краткий конспект книги «Чистый Код» Роберта Мартина

Время на прочтение8 мин
Количество просмотров95K

Данная статья является конспектом книги "Чистый Код" Роберта Мартина и моим пониманием того, каким Чистый Код должен быть. Тут нет разделов о тестировании, TDD, о том какая должна быть архитектура и т.д. Здесь все только о том, каким должен быть Чистый Код.


Читать дальше →
Всего голосов 48: ↑44 и ↓4+40
Комментарии49

React, Drag&Drop и performance

Время на прочтение31 мин
Количество просмотров29K


В данной статье мы расскажем про свой опыт реализации интерфейса редактирования расписания занятий. Расскажем о проблемах, с которыми мы столкнулись и о возможных путях решения.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии26

Websockets. Возможный подход по использованию

Время на прочтение7 мин
Количество просмотров18K
Коллеги, приветствую. Хочу вынести на публичное обсуждение свои мысли и некоторые моменты реализации своего проекта. Websockets — тема пожалуй уже избитая, но меня простимулировала на этот шаг работа “WebRTC Cookbook” под авторством Andrii Sergiienko, в которой технология Websockets используется в качестве сигнального сервиса для управления потоковыми данными.

В чистом виде протокол Websockets не содержит ничего, что могло бы осуществить мультиплексирование данных. К сервису Websockets одновременно может подключиться множество клиентов из разных проектов. Так вот хотелось бы иметь полностью утилизированный подход для разных платформ, сервисов, сайтов и т.д.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии10

Пособие по Ansible

Время на прочтение29 мин
Количество просмотров671K

управление конфигурацией оркестра


Это практическое пособие познакомит вас c Ansible. Вам понадобится виртуальная или реальная машина, которая будет выступать в роли узла для Ansible. Окружение для Vagrant идет в комплекте с этим пособием.


Ansible — это программное решение для удаленного управления конфигурациями. Оно позволяет настраивать удаленные машины. Главное его отличие от других подобных систем в том, что Ansible использует существующую инфраструктуру SSH, в то время как другие (chef, puppet, и пр.) требуют установки специального PKI-окружения.


Пособие покрывает такие темы:


  1. Установка Ansible и Vagrant
  2. Файл инвенторизации
  3. Модули shell, copy, сбор фактов, переменные
  4. Запуск на группу хостов
  5. Плейбуки
  6. Пример: поднимаем кластер, устанавливаем и настраиваем Apache и балансировщик нагрузок HAproxy
  7. Обработка ошибок, откат
  8. Шаблоны конфигурации
  9. Роли

Ansible использует так называемый push mode: конфигурация «проталкивается» (push) с главной машины. Другие CM-системы обычно поступают наоборот – узлы «тянут» (pull) конфигурацию с главной машины.


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

Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии15

Как привести на сайт посетителей честными способами и сэкономить: дайджест полезных материалов для начинающих

Время на прочтение2 мин
Количество просмотров20K


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

Я собрал небольшой дайджест, в котором собраны ссылки на практические материалы, в которых рассказывается о том, как действенно привлечь трафик на свой сайт и после этого повысить его конверсию, а также каких ошибок стоит избегать в процессе работ.
Читать дальше →
Всего голосов 20: ↑13 и ↓7+6
Комментарии0

Boilerplate для WordPress

Время на прочтение3 мин
Количество просмотров9.7K

Bedrock — это стартовый шаблон для WordPress с современными инструментами разработки, простым конфигурированием и улучшенной файловой структурой:


  • файлы и папки wp-content/ перемещены в app/
  • управление установкой WordPress и плагинов с помощью менеджера пакетов Composer. Вы и ваша команда будете точно знать о всех зависимостях.
  • настройки сайта осуществляются с помощью присвоения значений переменным в одном конфигурационном файле .env.

Кроме этого, Bedrock может быть дополнен замечательным плагином Soil и стартовой темой Sage. В статье описан алгоритм развертывания проекта на его основе в Ubuntu 16.04. Туториал по установке Bedrock в Windows здесь.


Читать дальше →
Всего голосов 13: ↑10 и ↓3+7
Комментарии5

Запускаем Node.js на JVM

Время на прочтение3 мин
Количество просмотров16K

Прошли те дни, когда целые компании зависели от одного поставщика технологий. Даже маленькие фирмы и любители найдут оптимальное для себя решение, объединяя технологии в одном проекте. Долгое время Java держала первенство среди серверных технологий. Но сегодня Node.js повсюду.



Но даже с ростом популярности Node.js и JavaScript, Java не теряет силу. Кроме того, немногие организации могут позволить себе перенести всю платформу с JVM на Node.js. Это значит, что компания должна либо продолжать использовать текущий стек технологий, либо запускать несколько стеков, которые будут общаться через сетевое API. Однако есть и другой способ: запустить Node.js прямо в процессе JVM. И J2V8, наконец, сделала это возможным.

Читать дальше →
Всего голосов 30: ↑21 и ↓9+12
Комментарии31

Почему, ну почему, эти #?@! придурки используют vi?

Время на прочтение12 мин
Количество просмотров119K

Предлагаю читателям "Хабрахабра" перевод статьи "Why, oh WHY, do those #?@! nutheads use vi?" за авторством John Beltran de Heredia.


Да, даже если вы не можете в это поверить, у редактора vi, увидевшего свет более тридцати лет назад (и его более молодого, всего-то пятнадцатилетнего лучшего клона & большого улучшения — vim) очень много фанатов.


Нет, они не динозавры, которые не хотят идти в ногу со временем — сообщество пользователей vi продолжает увеличиваться: я, который начал только два года назад (после десяти лет работы программистом). Мои друзья переходят на vi сейчас. Черт, большинство пользователей vi даже еще не были рождены, когда он был написан!


Да, есть конкретные причины, почему модель редактирования vi/vim превосходит любую другую. Вам не надо быть экспертом в Unix, чтобы использовать vi — он доступен бесплатно практически для любой существующей платформы; для большинства IDE существуют плагины, позволяющие использовать его возможности. Давайте же развеем некоторые заблуждения и рассмотрим пару примеров, демонстрирующих его превосходство.

Читать дальше →
Всего голосов 172: ↑143 и ↓29+114
Комментарии769

CRAWL динамических страниц для Google и Яндекс поисковиков (snapshots, _escaped_fragment_, ajax, fragment)

Время на прочтение6 мин
Количество просмотров16K
image

Всем мир!

Содержание статьи:

1. Что такое CRAWL
2. Динамический CRAWL
3. Задачи, инструменты, решение
4. Почитать
5. Выводы

Читать дальше →
Всего голосов 16: ↑11 и ↓5+6
Комментарии9

Как большие данные меняют рынок рекламы в СМИ

Время на прочтение7 мин
Количество просмотров6.6K

image

8 из 10 крупнейших издательских домов Германии работают над созданием единой базы данных о своих читателях. Паралллельно данные о пользователях объединяют The Guardian, CNN, Financial Times, Reuters и The Economist.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии0

Как стать успешным бизнесменом? 4 вдохновляющих мировых примера

Время на прочтение4 мин
Количество просмотров3.9K


Всем нам не раз приходилось слышать о людях, которые стали некими эталонами времени в своей профессиональной области. О тех людях, которые смогли добиться выдающихся результатов и продвинуть индустрию далеко вперед. В сегодняшнем выпуске мы рассмотрим примеры четырех выдающихся предпринимателей, которые стали некими законодателями тенденций сегодняшнего времени, и попробуем разобраться, что именно сделало их таковыми.
Читать дальше →
Всего голосов 19: ↑3 и ↓16-13
Комментарии3

Сон и продуктивная деятельность

Время на прочтение8 мин
Количество просмотров106K

Вступление


Доброго времени суток, %habrauser%! Думаю, в этой статье я не открыл ничего нового. Просто меня самого заинтересовала тема продуктивного сна. Несколько последних лет я был приверженцем мнения, что сон – это бесполезная трата времени, к сожалению необходимая организму. И посему, я максимально старался сократить время сна. Но чем больше я это делал, тем больше я начинал походить на зомби. И тогда я стал искать альтернативу. И результатом обобщения всей найденной мной информацией и стала эта статья. Итак, поехали!
Читать дальше →
Всего голосов 243: ↑215 и ↓28+187
Комментарии149

Эффективный способ повысить умственную работоспособность

Время на прочтение13 мин
Количество просмотров221K
В прошлой заметке я писал о том, чего не стоит делать, если у вас проблемы с работоспособностью. В этой части я расскажу об эффективном способе, не требующем медикаментов. Медикаменты — это только поддержка, дополнение. Но способ этот требует организованности и силы воли, а потому так нелюбим большинством из нас.
Читать дальше →
Всего голосов 173: ↑165 и ↓8+157
Комментарии272

HTML5/AngularJS/Nginx приложение с правильным с google-индексированием

Время на прочтение3 мин
Количество просмотров38K
Большинство web-приложений и web-фреймворков используют архитектуру, не позволяющую разделить ui и backend разработку. Тем самым нет возможности разделить команду на узкоспециализированных frontend и backend разработчиков. Вне зависимости от предпочтений разработчика ему приходится иметь понимание как о слое представления, так и о слое логики. Если ui-разработчик знает только о том, как запустить сервер, и о модели данных — это огромная удача. В плохих случаях ui-разработчику необходимо провести полную сборку проекта чтобы увидеть изменения строчки в javascript файле, или знать о языке jsp файлов чтобы поменять стиль элемента. Формирование и передача на сервер обработанных html файлов так-же пагубно влияет на производительность сервера и сети.

non-ajax

Читать дальше →
Всего голосов 33: ↑31 и ↓2+29
Комментарии7

Объединяй и властвуй. Интеграция облачной IP-АТС, CRM и мобильной связи

Время на прочтение6 мин
Количество просмотров4.2K
Время, прошедшее с момента публикации последней записи в нашем блоге на Мегамозге, мы старались не тратить зря. Честно отгуляв положенные отпуска и осмыслив еще раз проект, команда разработчиков пришла к единственно правильному решению: пытаться прямо сейчас стать лидером на рынке облачных IP-АТС — мечта из разряда «Полетов на Луну» и в смысле трудозатрат и в смысле бюджетов. Рынок SaaS-телефонии стал таким же конкурентным и плотным, как когда-то им стал рынок обычной IP-телефонии. Вся аналитика, сделанная нами и нашими партнерами, четко свидетельствует: место для роста есть, но стремиться к нему стандартными путями, осваивая громадные маркетинговые бюджеты, стратегия не из правильных. Мы неизбежно отстанем от тройки-пятерки безусловных лидеров. По сути, то что сейчас происходит в сегменте облаков — в большей степени война пиара и маркетинга и только во вторую очередь война технологий. Технологически многие платформы идентичны и, порой, с трудом понимаешь чем одно решение отличается от другого функционально.


Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии2

Создаём REST-сервис на Rust. Часть 4: переходим к REST API

Время на прочтение9 мин
Количество просмотров26K
В прошлый раз мы реализовали обновление БД.

Осталось сделать только REST-интерфейс. Давайте займёмся этим.

Введение


Эта часть будет, пожалуй, самой сложной — мы близко узнаем типажи Send и Sync, а также тонкости работы замыканий и времён жизни. По-другому я бы озаглавил её «зануда исследует, почему обязательно нужно клонировать данные». Она полезна тем, что затрагивает тонкие места Rust и показывает причины некоторых неочевидных ошибок. Так что если хотите разобраться досконально — добро пожаловать.

Также хочу отметить: если вам что-то непонятно относительно приведённого кода или сами объяснения кажутся недостаточно ясными, не стесняйтесь писать об этом в комментариях. Автор потратил не минуту и не полчаса, пытаясь понять, почему код работает именно в том виде, в котором он написан, и вынужден был не раз сходить в IRC и на форум за разъяснениями.
Читать дальше →
Всего голосов 17: ↑14 и ↓3+11
Комментарии2

Разработка ПО и отношения с заказчиком с точки зрения юриста

Время на прочтение6 мин
Количество просмотров9.9K


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

Разберем основные ошибки, которые допускают компании-разработчики.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии21

Делаем многопользовательскую игрy на Go и WebSocket'ах

Время на прочтение9 мин
Количество просмотров48K
golang gopher
Продолжаем знакомство с языком программирования Go (golang). В прошлый раз мы посмотрели основные конструкции языка. В этой статье я хочу показать использование горутин и каналов. И, конечно, продемонстрировать все это на реальном приложении, в данноcм случае многопользовательской игре. Рассматривать будем не всю игру, а только ту часть бэкэнда, которая отвечает за сетевое взаимодействие между игроками посредством WebSoket.

Игра пошаговая, для двух игроков. Однако, описанные ниже приемы можно применять для создания других игр, от покера до стратегий.
Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии9

Интерпретатор Оберона на Go

Время на прочтение6 мин
Количество просмотров11K

Введение


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

Сегодня язык Оберон забыт, но дело Вирта проявилось в языке Go совершенно неожиданно. В некоторых аспектах реализации сходство подходов не вызывает сомнений. Конечно, каждый язык по-своему уникален и нет нужды из одного языка делать другой. Время не повернуть назад. Но в разное время люди стремились сохранить технологии, ушедшие в прошлое. Чего стоят бережно хранимые эмуляторы Спектрума и MSX, музеи старых компьютеров в разных странах. Эмуляция, как один из способов остановить мгновение прочно зарекомендовал себя.

Общепринято считать, что язык Go нашел себя в нише сетевых сервисов. Но мы пойдем другим путем.
BEGIN
Всего голосов 22: ↑21 и ↓1+20
Комментарии9

Будни багхантинга: еще одна уязвимость в Facebook

Время на прочтение4 мин
Количество просмотров53K


Декабрь для меня получился наиболее удачным за четыре года участия в разнообразных программах bug bounty, и я хотел бы поделиться информацией об одной из обнаруженных уязвимостей. Речь пойдет о небезопасной обработке Request-URI (Request Target). На этот раз красивой комбинацией уязвимостей порадовал Facebook.
Читать дальше →
Всего голосов 104: ↑101 и ↓3+98
Комментарии8
1

Информация

В рейтинге
Не участвует
Откуда
Новосибирск, Новосибирская обл., Россия
Дата рождения
Зарегистрирован
Активность