Pull to refresh
1
0
demin @demin

User

Send message

Запахи в VR: обонятельный дисплей для виртуальной реальности

Reading time10 min
Views2.6K


Виртуальная реальность стала вполне реальной в современном мире, уж простите за каламбур. Когда-то эта технология считалась научной фантастикой, но сейчас любой, имеющий достаточно средств, может приобрести себе развлекательную систему VR (виртуальной реальности). VR используется не только для развлечения, но и для обучения, и даже для лечения различных психических расстройств. Однако среда виртуальной реальности все же не является настоящей, так как в ней не хватает многих аспектов реального мира. Одним из этих аспектов является запах. Ученые из Стокгольмского университета (Швеция) разработали устройство, способное дополнить виртуальную реальность реальными ароматами. Из чего состоит устройство, как оно работает, и где может быть использовано? От этом мы узнаем из доклада ученых.
Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments2

Атаки на сеть. Часть 2

Reading time5 min
Views13K

Основной темой данной части будет сканирование и сбор данных о хостах в сети. Рассмотрим основные методы определения наличия рабочих хостов и сервисов в сети. Первую часть можно прочитать здесь.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments3

Мировая атомная энергетика в 2021 году

Reading time24 min
Views44K

В 2021 году в мире было подключено к сети 6 новых атомных энергоблоков, а закрыто 10. Как по техническим, так и по политическим мотивам. Несмотря на это, выработка электроэнергии на АЭС мира выросла на 3,5% по сравнению с 2020 годом и почти вернулась к уровню доковидного 2019-го. При этом в Китае выработка выросла примерно на 9%, а в Евросоюзе на 7%.

В 2021 году начато строительство девяти новых блоков АЭС, из них пять в Китае, два в Индии и по одному в России и Турции. При этом пять из этих девяти – это блоки российского дизайна ВВЭР-1200, а три – китайские Hualong One.

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

Читать далее
Total votes 94: ↑91 and ↓3+107
Comments47

Падение Slack 4 января 2021

Reading time7 min
Views9.9K


4 января 2021 года для многих людей во всем мире, также как и для большинства работников Slack был первым рабочим днем после нового года (за исключением специалистов горячей линии и службы поддержки, которые никогда не спят). День в Азии и утро в Европе прошло спокойно, но когда забрезжил рассвет в Америке мы стали получать сообщения от внешней службы мониторинга о росте количества ошибок. Мы начали разбираться, в чем дело. Ситуация с ошибками ухудшалась и мы инициировали процесс расследования инцидентов (о том, как у нас устроено управление инцидентами подробнее можно почитать в статье Райана Каткова (Ryan Katkov) All Hands on Deck https://slack.engineering/all-hands-on-deck/).

Как будто нам этого было недостаточно для того, чтобы окончательно испортить первый рабочий день нового года, в тот момент, мы пытались понять, что происходит, упали сервисы панелей мониторинга и оповещений. Мы связались с группой мониторинга, чтобы они попытались восстановить их как можно быстрее.
Читать дальше →
Total votes 21: ↑20 and ↓1+27
Comments2

Как спрогнозировать продуктивность разработчиков?

Reading time44 min
Views7.4K

Компании могут разными способами помочь своим разработчикам добиться максимальной продуктивности: от изменения офисного пространства до приобретения более совершенных инструментов и очистки исходного кода. Но какие решения повлияют сильнее всего? Опираясь на литературу по разработке ПО и промышленной/организационной психологии, мы выявили связанные с продуктивностью факторы и опросили 622 разработчика из трёх компаний. Нас интересовали упомянутые факторы и то, как люди сами оценивают свою продуктивность. Полученные нами результаты предполагают, что на самооценку больше всего влияют нетехнические факторы: энтузиазм в работе, поддержка новых идей вашими коллегами, а также получение полезной обратной связи о вашей продуктивности. По сравнению с другими работниками умственного труда, оценка своей продуктивности разработчиками ПО сильнее зависит от разнообразия задач и возможности работать удалённо.
Читать дальше →
Total votes 22: ↑20 and ↓2+23
Comments4

Индюшатина, как ее готовят

Reading time17 min
Views4.2K

GoooGooo
Привет! Сегодня мы поговорим с ребятами из Literal Team, которые делают игру Sovereign's Will, об их страданиях, мучениях и победах при разработке индюшатины.

Читать дальше →
Total votes 5: ↑2 and ↓3+3
Comments0

Сказ о мифах кадровиков

Reading time4 min
Views24K


Данная статья- это набор измышлизмов насчёт повсеместно грохочущих фраз: «рынок работника», «спецов нет», «кадровый голод», kokokoko

Читать дальше →
Total votes 46: ↑35 and ↓11+36
Comments322

Визуализация работы сервис-воркеров

Reading time5 min
Views16K


Доброго времени суток, друзья!

Вероятно, многие из вас слышали о таком новшестве в экосистеме JavaScript, как сервис-воркеры (Service Workers), которые являются ключевым элементом современной веб-разработки. Сервис-воркеры становятся все более востребованными, в первую очередь, благодаря популярности прогрессивных веб-приложений (Progressive Web Applications — PWA).

Когда я впервые услышал о них, я задался вопросом: «Когда мы должны использовать сервис-воркеры? В каким сценариях или контексте мы можем их использовать?»

В данной статье мы рассмотрим несколько практических примеров использования сервис-воркеров, что впоследствии, смею надеяться, сделает счастливыми ваших пользователей.

Полагаю, прежде чем разбирать практические примеры, необходимо хотя бы в общих чертах рассмотреть теоретические основы работы сервис-воркеров. Для начинающих разработчиков это послужит хорошим подспорьем в дальнейших начинаниях.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments3

Ubuntu — не лучший настольный Linux

Reading time3 min
Views192K
Захотев перейти на Linux дома или на работе, люди обычно ставят Ubuntu, Mint, Fedora, порой даже Debian. И очень зря не пробуют Manjaro Linux — на мой взгляд, этот дистрибутив удобнее Убунты (которая уже де-факто — Default Linux), и даже удобнее Минта.

Manjaro — производная от Arch Linux (так же как Ubuntu — производная от Debian), пилится европейской командой Manjaro Team. У Манжары почти такая же структура системы, как у Арча, но с некоторыми особенностями, которые делают его на 146% юзерфрендли.
Читать дальше →
Total votes 98: ↑68 and ↓30+58
Comments665

4. Fortinet Getting Started v6.0. Firewall Policies

Reading time3 min
Views8.5K


Приветствую! Добро пожаловать на четвертый урок курса Fortinet Getting Started. На прошлом уроке мы развернули макет для будущих лабораторных работ. Пришло время его использовать! На данном уроке мы разберем основы работы политик безопасности, которые разграничивают доступ между сегментами сети. Под катом представлена краткая теория из видео, а также сам видео урок.
Total votes 7: ↑6 and ↓1+8
Comments0

Как использовать именованные конструкторы в PHP

Reading time3 min
Views24K
tl; dr — Не ограничивай себя одним конструктором в классе. Используй статические фабричные методы.

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

<?php
$time = new Time("11:45");
$time = new Time(11, 45);

Правильным ответом будет «в зависимости от ситуации». Оба способа могут являются корректным с точки зрения полученного результата. Реализуем поддержку обоих способов:
Читать дальше →
Total votes 25: ↑20 and ↓5+15
Comments97

Правильное использование Exception’ов в PHP

Reading time16 min
Views121K
Я рад бы написать что “эта статья предназначена для новичков”, но это не так. Большинство php-разработчиков, имея опыт 3, 5 и даже 7 лет, абсолютно не понимают как правильно использовать эксепшены. Нет, они прекрасно знают о их существовании, о том что их можно создавать, обрабатывать, и т.п., но они не осознают их удобность, логичность, и не воспринимают их как абсолютно нормальный элемент разработки.

В этой статье не будет мануала по эксепшенам — это все отлично описано в документации php. Здесь я я расскажу о преимуществах использования эксепшенов, и о том, где их, собственно говоря, надо использовать. Все примеры будут для Yii, но это не особо важно.
Читать дальше →
Total votes 46: ↑42 and ↓4+38
Comments70

Очередь событий в карточной игре + основы Angular

Reading time8 min
Views24K
Доброго дня, новички, сегодня мы попытаемся переделать нашу игрушку, разучивая основы новых для нас «технологий»:

  • AngularJS
  • DataBoom

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

Ну а во второй части с помощью DataBoom создадим замечательную очередь событий, как в оригинальной игре (напоминаю, что делаем по образу и подобию HeartStone). Забегая вперед скажу, что в следующий раз мы вообще избавимся от php сервера, и полностью перейдем на Databoom, но это уже совсем другая статья…

image

Читать дальше →
Total votes 29: ↑23 and ↓6+17
Comments6

Как работают замыкания (под капотом) в JavaScript

Reading time11 min
Views76K
Привет, Хабр!

Мы в Хекслете используем JavaScript не только для очевидных задач во фронтэнде, но и, например, для реализации браузерной среды разработки (наш опен-сорсный hexlet-ide) на React'е. У нас есть практический курс по JavaScript, и один из уроков там посвящен замыканиям. Это важная тема не столько в рамках JS, сколько в программировании вообще. Мы освещаем ее и в других курсах.

В целом, статей и туториалов про использование замыканий в JS полно, но объяснений как это все работает внутри — мало. Сегодняшний перевод посвящен именно этой теме. Как и почему работают замыкания в JS, когда они создаются и уничтожаются и почему каждая функция в JS — это замыкание.


Я использую замыкания уже достаточно давно. Я научился их использовать, но не до конца понимал как они на самом деле работают, что происходит «под капотом». Что это вообще такое? Википедия не очень помогает. Когда замыкание создается и уничтожается? Как выглядит реализация?

"use strict";
 
var myClosure = (function outerFunction() {
 
  var hidden = 1;
 
  return {
    inc: function innerFunction() {
      return hidden++;
    }
  };
 
}());
 
myClosure.inc();  // возвращает 1
myClosure.inc();  // возвращает 2
myClosure.inc();  // возвращает 3
 
// Ага, круто. А как это реализовано?
// И что происходит под капотом?
Читать дальше →
Total votes 54: ↑47 and ↓7+40
Comments11

19 советов по повседневной работе с Git

Reading time14 min
Views286K


Если вы регулярно используете Git, то вам могут быть полезны практические советы из этой статьи. Если вы в этом пока новичок, то для начала вам лучше ознакомиться с Git Cheat Sheet. Скажем так, данная статья предназначена для тех, у кого есть опыт использования Git от трёх месяцев. Осторожно: траффик, большие картинки!

Содержание:
  1. Параметры для удобного просмотра лога
  2. Вывод актуальных изменений в файл
  3. Просмотр изменений в определённых строках файла
  4. Просмотр ещё не влитых в родительскую ветку изменений
  5. Извлечение файла из другой ветки
  6. Пара слов о ребейзе
  7. Сохранение структуры ветки после локального мержа
  8. Исправление последнего коммита вместо создания нового
  9. Три состояния в Git и переключение между ними
  10. Мягкая отмена коммитов
  11. Просмотр диффов для всего проекта (а не по одному файлу за раз) с помощью сторонних инструментов
  12. Игнорирование пробелов
  13. Добавление определённых изменений из файла
  14. Поиск и удаление старых веток
  15. Откладывание изменений определённых файлов
  16. Хорошие примечания к коммиту
  17. Автодополнения команд Git
  18. Создание алиасов для часто используемых команд
  19. Быстрый поиск плохого коммита

Читать дальше →
Total votes 152: ↑149 and ↓3+146
Comments62

Пространства имен в PHP, разъяснение

Reading time5 min
Views123K
Прим.пер.: Я в курсе, что на момент перевода актуальная версия PHP — 5.5, а также что есть мудрая книга мануал. Но мне показалось интересным, то как автор преподносит namespace функционал, возможно кому-то из тех, кто только постигает азы (да и не только, есть немало бородатых разработчиков, остановившихся на PHP 5.2), статья поможет проникнуться. Ходор.

В PHP, начиная с версии 5.3 появились пространства имен. Большинство современных языков уже давно заимели себе такой функционал, но PHP немного опаздывал. Тем не менее, у каждой новой функции есть свое предназначение, давайте выясним, какие выгоды мы можем извлечь, используя namespace.

В PHP у вас не может быть два класса, названных одинаково, все они должны быть уникальны. Проблема этого ограничения в том, что если вы используете чью-либо стороннюю библиотеку, предоставляющую класс с именем User, то вы не можете создать свой собственный класс, также названный User. Это по настоящему скверно, ведь User — очень удобно имя для класса, не так ли?

Пространства имен позволяют нам обойти эту проблему, и мы можем создать столько классов User, сколько нам понадобится.Кроме того пространства имен позволят нам организовать код в удобные пакеты, а также обозначить свои права владения этим кодом.
Давайте взглянем на самый обычный класс...
Total votes 69: ↑51 and ↓18+33
Comments62

Создаем резюме на LaTeX — как и зачем?

Reading time5 min
Views91K
Многие документы я подготавливаю в LaTeX, а не в Word. И к моменту, когда я определяюсь со следующим местом работы, я подвожу итоги сделанного, и, уж чтобы не пропадало, фиксирую их в документах, составляющих каркас моего CV. По моему личному убеждению, тщательность в создании документов для будущего работодателя нужна не столько для коммуникаций с «эйчарами», сколько для осмысления дороги, по которой идешь, и направления, в котором решаешь двигаться дальше. Итак, почему я для резюме выбрал LaTeX?

Читать дальше →
Total votes 125: ↑99 and ↓26+73
Comments71

Создание расширения FireFox для начинающих

Reading time8 min
Views48K
В данной статье представлена пошаговая инструкция по разработке простейшего расширения для FireFox.
Это частичный перевод оригинальной статьи.

Это не моя статья, а моего друга (его мыльце: templar8@gmail.com). Он очень хочет попасть на Хабр. У меня самого не хватает кармы для инвайта.
Текст статьи
Total votes 104: ↑94 and ↓10+84
Comments33

Deploy приложения на RoR 4 с помощью Capistrano 3

Reading time16 min
Views63K

Представьте: Вы — веб-разработчик, который только недавно освоил Ruby on Rails. И тут Ваш первый проект подходит к стадии, когда его нужно выложить в интернет.
Вы, конечно, можете залить его на Heroku, но тамошние цены немного кусаются. Остается только купить VPS, настроить его и выложить проект туда.
«Что может быть проще? Найду какой-нибудь гайд, да следаю всё по нему» — подумаете Вы. Вот только гайдов, которые не просто выкладывают команды, но и объясняющие, что эти команды делают, — единицы, да и те используют уже устаревшую вторую версию Capistrano.

Поэтому я решил написать свой гайд, в котором постараюсь подробно рассмотреть:
  • Первичную настройку сервера
  • Установку и настройку nginx (с модулем PageSpeed), postgresql, redis
  • Установку rvm, rails
  • Настройку гема foreman для управления процессами Вашего приложения
  • Настройку сервера Unicorn
  • Настройку гема Capistrano (v3.1) для автоматизации деплоя


Я надеюсь, что этот гайд будет полезен не только новичкам, но и разработчикам со стажем.

Читать дальше →
Total votes 27: ↑23 and ↓4+19
Comments33

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity