Pull to refresh
3
0
Send message

PHP-Дайджест № 121 (20 ноября – 10 декабря 2017)

Reading time4 min
Views15K

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.2.0, Symfony 4 и другие релизы, предложение из PHP Internals, материалы по фреймворкам, асинхронный PHP, порция полезных инструментов, и многое другое. Приятного чтения!

Почему дизайн Go плох для умных программистов

Reading time7 min
Views75K

На протяжении последних месяцев я использую Go для имплементаций Proof of Concept (прим.пер.: код для проверки работоспособности идеи) в свободное время, отчасти для изучения самого языка программирования. Программы сами по себе очень просты и не являются целью написания статьи, но сам опыт использования Go заслуживает того, чтобы сказать о нем пару слов. Go обещает быть (прим.пер.: статья написана в 2015) массовым языком для серьезного масштабируемого кода. Язык создан в Google, в котором активно им пользуются. Подведя черту, я искренне считаю, что дизайн языка Go плох для умных программистов.

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

Как построить сообщество. Перевод книги «Социальная архитектура»: Глава 1. Инструментарий

Reading time26 min
Views42K
image

Мой инструментарий социального архитектора состоит из 20 инструментов, каждый из которых соответствует какому-либо аспекту сообщества или группы. Их можно использовать двумя способами.


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


Во-вторых, вы можете использовать их для создания сообщества, при этом прилагая усилия там, где они наиболее необходимы.


  • Четкая миссия – заявленная причина существования группы.
  • Свободное участие – насколько легко люди могут присоединиться к группе.
  • Прозрачность – насколько открыто и публично принимаются решения.
  • Бесплатные участники – как много можно платить людям за участие.
  • Свобода работы с материалами (ремиксабельность) – насколько свободно участники могут использовать работу друг друга.
  • Четкость протокола – насколько хорошо прописаны правила.
  • Компетентность власти – насколько хорошо следят за соблюдением правил.
  • Нон-трайбализм – насколько далеко распространяются права группы над своими участниками.
  • Самоорганизация – насколько свободно могут участники определять свои задачи.
  • Толерантность – как группа разбирается с конфликтами.
  • Измеримый успех – как хорошо группа может отслеживать свой прогресс.
  • Высокое награждение – как группа вознаграждает своих участников.
  • Децентрализация – насколько широко распределены участники группы.
  • Свободная рабочая среда – насколько легко создавать новые проекты.
  • Стандартная структура – насколько общая структура стабильна и предсказуема.
  • Плавность обучения – насколько легко начать и продолжить учиться.
  • Позитивность – насколько группа движима позитивными целями.
  • Чувство юмора – насколько серьезно группа себя воспринимает.
  • Минимализм – сколько лишней работы делает группа.
  • Разумное финансирование – как группа борется за выживание в экономическом плане.

Спасибо Сергею Даньшину за помощь с переводом.

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

ИТ-прогнозы 2018 года: 8 инфраструктурных трендов

Reading time5 min
Views11K


Конец года — время подведения итогов и обсуждения грядущих трендов. Мы проанализировали соответствующие материалы аналитиков Gartner, IDG и других компаний, чтобы понять, как на самом деле будет развиваться направление ИТ-инфраструктуры.
Читать дальше →

Туториал по Unreal Engine. Часть 5: Как создать простую игру

Reading time13 min
Views161K
image

Если вы новичок в разработке игр, то логичнее всего начинать с создания простой игры. Она научит вас реализации простых механик и тому, как объекты взаимодействуют друг с другом.

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

  • Бесконечно перемещать игрока вперёд
  • Генерировать препятствия, которые игрок должен избегать
  • Рандомизировать препятствия для создания вариаций
  • Создавать кнопку перезапуска, которая отображается, когда игрок сталкивается с препятствием
Читать дальше →

Как прочитать большой файл средствами PHP (не грохнув при этом сервак)

Reading time9 min
Views50K

Перевод статьи Christopher Pitt.


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


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


Fragmented terrain


Последняя проблема и будет рассмотрена в этом уроке.

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

8 учебных проектов

Reading time3 min
Views149K
«Мастер совершает больше ошибок, чем новичок — попыток»

Предлагаем 8 вариантов проектов, которые можно сделать «по фану», дабы получить реальный опыт разработки.

Проект 1. Клон Trello


image


Клон Trello от Indrek Lasn .

Что вы освоите:

  • Организация маршрутов обработки запросов (Routing).
  • Drag and drop.
  • Как создавать новые объекты (доски, списки, карточки).
  • Обработка и проверка входных данных.
  • Со стороны клиента: как использовать локальное хранилище, как сохранять данные в локальном хранилище, как читать данные из локального хранилища.
  • Со стороны сервера: как использовать базы данных, как сохранять данных в базе, как читать данные из базы.

Тут пример репозитория, сделанного на React+Redux.
Читать дальше →

Готовим свой UI-интерфейс к Zabbix API средствами React component

Reading time8 min
Views9.4K
Всем привет! Все началось с интеграции телефонной платформы в корпоративный сайт.

WEB-разработка поразила разнообразием подходов и методов реализации. Стек технологий пестрит разнообразием, выбор инструментов определяет стиль разработки, модульность или закостенелость проекта.

Про телефонную платформу я напишу в следующий раз. Сильный уклон в VoIP-специфику отвлечет от главного — методов разработки современного SPA-приложения.

В статье будет описан процесс внедрения стороннего сервиса в существующую рабочую среду.

Сегодня поиграемся с Zabbix-API.

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

DevDay про микросервисы. Запись лучших докладов

Reading time1 min
Views10K


В прошлую пятницу мы собрали 140 разработчиков, чтобы поговорить о микросервисах — деплое, координации, согласованности. Делимся с вами записью двух лучших, по мнению участников, выступлений.
Смотрите, что получилось

 «Угнать за 60 секунд» на примере одного каршеринга

Reading time4 min
Views45K
image
«Без разочарований не ощутишь вкус победы» © Мемфис Реймс

История началась банально. В каком то ролике на YouTube рассказывали про каршеринг. С демонстрацией функции «приветствия», когда вам не удается найти автомобиль на большой парковке. У меня тут же возникла мысль проверить — а не смогу ли я активировать функцию приветствия на абсолютно все автомобили этой компании?! Ну весело же. Крупный российский город. И в какой то момент тысячи автомобилей по команде начинают сигналить и моргать фарами. Почти как в фильме «Крепкий Орешек 4».

В результате все получилось куда интереснее. Ведь фактически я нашел возможность угона любого автомобиля.
Читать дальше →

Отчет c мини-конференции Использование визуальных моделей в ИТ. Проверено опытом

Reading time2 min
Views10K


1 ноября на площадке Райффайзенбанка прошла мини-конференция «Использование визуальных моделей в ИТ. Проверено опытом.»

О том, как это было и что обсуждали, читайте под катом.

Визуализация процесса обучения нейронной сети средствами TensorFlowKit

Reading time5 min
Views24K
Hint
Перед прочтением этой статьи советую ознакомиться с предыдущей статьей о TensorFlowKit и поставить star репозиторию.

Я не люблю читать статьи, сразу иду на GitHub
GitHub: TensorFlowKit
GitHub: Example
GitHub: Другое
TensorFlowKit API
Посeтив репозиторий, добавьте его в «Stars» это поможет мне написать больше статей на эту тему.

image

Начиная работать в сфере машинного обучения, мне было тяжело переходить от объектов и их поведений к векторам и пространствам. Сперва все это достаточно тяжело укладывалось в голове и далеко не все процессы казались прозрачными и понятными с первого взгляда. По этой причине все, что происходило внутри моих наработок, я пробовал визуализировать: строил 3D модели, графики, диаграммы, изображения и тд.

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

Существуют целые сообщества, решающие такого рода задачи, например Distill, Welch Labs, 3Blue1Brown.

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

Не криптовалютами едиными: наша блокчейн-платформа для факторинга

Reading time6 min
Views12K


С чем у вас в первую очередь ассоциируется слово «блокчейн»? Правильно, с криптовалютами и Германом Оскаровичем. И хотя для специалистов мы не откроем Америку, но для большинства людей, не столь искушённых в блокчейнах, может быть откровением, что эта технология применима в самых разных сферах, а вовсе не только для учёта транзакций биткоинов, эфириумов и прочих виртуальных монет. Например, блокчейн прекрасно подошёл для использования в сфере факторинга. В начале года мы завершили разработку совместного со Сбербанком проекта по созданию факторинговой платформы на основе блокчейна, открытой для всех желающих. Что это за платформа, зачем нужна и как устроена — наш рассказ под катом.
Читать дальше →

Компьютерное зрение, разработка облака и конкурс

Reading time6 min
Views8.6K
image

Внезапная лошадь из работы «Spatial Memory for Context Reasoning in Object Detection» (представлена на ICCV 2017)

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

Недавно завершилась крупнейшая конференция по технологиям компьютерного зрения – International Conference on Computer Vision 2017. На ней команды ученых и представители исследовательских подразделений различных корпораций представили разработки по улучшению фото, генерации изображений по описанию, заглядыванию за угол с помощью анализа света, etc. Мы расскажем о нескольких интересных решениях, которые могут найти применение в области видеонаблюдения.

Что такое бизнес-процесс и описание бизнес процесса

Reading time16 min
Views365K
Это старая версия статьи, новую вы можете найти перейдя по ссылке
И, тем не менее, ум человеческий тщетно пытался постигнуть ее в течение более чем 2 000 лет, между тем как, с другой стороны, ему удался, но крайней мере приблизительно, анализ гораздо более содержательных и сложных форм. Почему так? Потому что развитое тело легче изучать, чем клеточку тела. К тому же при анализе экономических форм нельзя пользоваться ни микроскопом, ни химическими реактивами. То и другое должна заменить сила абстракции.

Карл Маркс. Капитал. Том 1. Предисловие к первому изданию.

О бизнес-процессах говорят много и часто преимущественно в связи с автоматизацией бизнеса. Использую этот термин и я, в том числе, в своих статьях, посвященных CRM-системам, ERP, работе с BPMN-нотациями, IDEF0 и других инструментов, которые могут понадобиться в работе бизнес-консультанта и внедрении систем автоматизации. При этом в Рунете понятное и развернутое определение термина «бизнес-процесс» я не нашел.

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

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

Мифы о CMMI, или кому и зачем она нужна

Reading time10 min
Views9.7K
Вначале об аббревиатуре: Capability Maturity Model Integration (CMMI) — модель оценки зрелости компании, основанная на ее производстенном, техническом и управленческом потенциале. Разработана она Software Engineering Institute. Подробно о ней писалось в хабрастатьях: Модель CMMI и Как наша компания получила 3 уровень CMMI.

Будучи «внедренной» в CMMI вот уже 5 лет, я часто сталкиваюсь с запросами и суждениями относительного этого фрэймфорка, которые, в целом, можно свести к следующему «Это конечно хорошо, но невозможно в реальных условиях». Кто-то скептически настроен с самого начала, кто-то разочарован (прежде всего, из-за чрезмерных ожиданий). Я не являюсь ни «апологетом», ни фанатом CMMI, но моя непосредственная работа заключается в поддержании соответствия компании CMMI Level 3. Это требует, прежде всего, очень серьезных моральных усилий. Связано это, на мой взгляд, с распространенностью ряда мифов о CMMI, которые появились в силу логических доводов о пользе модели (которые приводятся во всей «рекламной» литературе), примеров повышения эффективности работы в таких «монстрах» как «Боинг», попыток внедрения в отечественных компаниях (после чего в них «ничего не изменилось»), и опыта работы с индийскими компаниями, которые позиционируют себя как соответствующие CMMI Level 5. И еще с непониманием того, как и когда стоит использовать модель, чтобы она приносила пользу.

В статье я попытаюсь «развенчать» некоторые мифы, развеять скептицизм, и, возможно, мне удастся помочь тем, кто хочет использовать CMMI, но не знает как.
Читать дальше →

Изучение Go путём портирования небольшого Python веб-бекенда

Reading time9 min
Views15K
Содержание: Чтобы выучить Go, я портировал свой бекенд небольшого сайта с Python на Go и получил забавный и безболезненный опыт в процессе.

Я хотел начать учить Go какое-то время — мне нравилась его философия: маленький язык, приятная кривая обучения и очень быстрая компиляция (как для статически-типизированного языка). Что меня наконец заставило шагнуть дальше и таки начать его учить, так это то, что я стал видеть всё больше и больше быстрых и серьезных программ, написанных на Go — Docker и ngrok, в частности, из тех, которые я недавно использовал.


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


Портирование


Я начал с парочки 20-ти строчных скриптов на Go, но этого было как-бы мало, чтобы понять язык и экосистему. Поэтому я решил взять проект побольше и выбрал для портирования бекенд для моего сайта GiftyWeddings.com.


На Питоне это было около 1300 строк кода, используя Flask, WTForms, Peewee, SQLite и ещё несколько библиотек для S3, ресайзинга картинок и т.д.


Для Go-версии я хотел использовать как можно меньше внешних зависимостей, чтобы лучше освоить язык и как можно больше поработать со стандартной библиотекой. В частности, у Go есть отличные библиотеки для работы с HTTP, и я решил пока не смотреть на веб-фреймворки вообще. Но я всё же использовал несколько сторонних библиотек для S3, Stripe, SQLite, работы с паролями и ресайза картинок.

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

Почему визуальное программирование и D3NE могут быть Вам полезны

Reading time8 min
Views31K

Визуальное программирование позволяет описывать процессы в графическом виде, в отличии от текстового представления, где нужно приложить дополнительные усилия, чтобы мыслить так, как это должен выполнять компьютер. Звучит многообещающе, но попробуем разобраться в сути и выяснить, почему Вам стоит это попробовать.



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

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

Самотестируемая система с оповещениями на Laravel + Bitbucket + HipChat

Reading time7 min
Views8.6K
В этой статье я расскажу, как можно оперативно настроить автоматическое стягивание нового кода на тестовый сервер вашего laravel-приложения, автозапуск тестов и оповещение о результате в соответствующий корпоративный чат. А также отлавливание новых ошибок в laravel.log
Читать дальше →

Как я нашел уязвимости в системе баг-трекинга Google и получил $15,600

Reading time6 min
Views31K
Вы когда-нибудь слышали о Google Issue Tracker? Наверное, нет, если вы не являетесь сотрудником Google или разработчиком, который недавно сообщил о проблемах в инструментах Google. И я тоже не знал, пока не заметил, что мои сообщения об уязвимостях теперь обрабатываются, путем открытия нового обсуждения, помимо обычных уведомлений по электронной почте.

Поэтому я сразу начал пытаться взломать его.

image

Так что же это за сайт? Согласно документации, Tracker Issue (также называемая Buganizer System) — это инструмент, используемый компанией Google для отслеживания ошибок и запросов о добавление новых фич во время разработки продукта. Он доступен за пределами Google для использования общественностью и пользователями-партнерами, которым необходимо сотрудничать с командой Google по конкретным проектам.

Другими словами, когда у кого-то проблема (issue) с продуктом Google, он идет в баг-трекер. Имеет смысл, не так ли? Мы, как внешние пользователи, видим только верхушку айсберга: небольшой набор предварительно одобренных категорий и проблем, связанной с добавлением сотрудником Google внешней учетной записи, например, сообщения об уязвимостях. Но сколько информации лежит под поверхностью?

image

Наблюдая за ID, назначенных на последние опубликованные баги, мы можем легко оценить, сколько применения этот инструмент получает изнутри. В рабочие часы в Mountain View открывается около 2000-3000 проблем за час. Похоже, утечка данных из этой системы будет иметь большую ценность. Давайте взломаем ее!

Information

Rating
Does not participate
Registered
Activity