• Как я проходил собеседования на позицию Junior .Net Developer

      Приветствую всех. Сегодня расскажу вам как я проходил собеседования в Москве на позицию .Net Developer. Усиленно готовился к собеседованиям месяц, целыми днями сидел и смотрел вопросы и пытался отвечать на них, а также читал книжки по С#. В статье привожу интересные задачки и вопросы, которые мне задавали в разных компаниях в Москве. Заранее скажу, что я попал в ту компанию, в которой хотел. Я прошел 4 собеседования в этой компании и меня наконец то взяли! Много статей было прочитано в частности здесь и надеюсь, что эту статью тоже будут читать начинающие Net разработчики и спрашивать все в комментариях.

      Кому интересна тема прохождения собеседований, прошу под кат!
      Читать дальше →
    • Экономика токенов: почему так популярны ICO?

        Хайп-батюшка да безумие-матушка на Руси создали крипто-рост не праведный...



        Сегодня хотелось бы продолжить (см. внизу список) публикации про ICO. Причин на то три:
        Читать дальше →
      • Python для сетевых инженеров: начало пути

          Наверное, многие сетевые инженеры уже поняли, что администрирование сетевого оборудования только через CLI слишком трудоёмко и непродуктивно. Особенно когда под управлением находятся десятки или сотни устройств, часто настроенных по единому шаблону. Удалить локального пользователя со всех устройств, проверить конфигурации всех маршрутизаторов на соответствие каким-то правилам, посчитать количество включенных портов на всех коммутаторах — вот примеры типовых задач, решать которые без автоматизации нецелесообразно.



          Эта статья в основном для сетевых инженеров, которые пока не знакомы или очень слабо знакомы с Python. Мы рассмотрим пример скрипта для решения некоторых практических задач, который вы сразу сможете применять в своей работе.

          Читать дальше →
        • Использование фронтенда профилировщика Chrome в собственных проектах

          • Перевод
          Возможно, вы знаете, что у браузере Google Chrome есть встроенный профилировщик. Но даже из тех людей, кто его видел, большинство считает, что использовать его можно только для отладки Javascript или отрисовки кадров в браузере. Но на самом деле его весьма просто можно прикрутить в качестве средства визуализации данных профилирования в вашем проекте.

          Я не открою здесь каких-то уникальных секретов, например, Colt McAnlis писал о подобном применении профилировщика Chrome в игровых проектах ещё в 2012 году. Всё, написанное там, всё ещё является правдой, а я напишу ещё один материал — просто для лучшего распространения знаний о столь полезном инструменте.

          Предыстория


          Для некоторой части нашей системы сборки кода мы когда-то написали простенький профилировщик (называется TinyProfiler). Он достаточно тривиален — замеряет время выполнения определенных блоков кода и создаёт набор HTML+SVG файлов, которые визуализируют эти данные в стиле flame-графов:

          image

          Это, в принципе, неплохо работало, но полученный HTML был не очень интерактивным. Можно было подвести мышку к определенному блоку и увидеть его название во всплывающей подсказке, но на этом все удобства и заканчивались. Не было ни зума, ни фильтрации, ни скрола, ни поиска — в общем ничего, чего хотелось бы получить от более-менее профессионального инструмента. Всё это можно было, конечно, сесть и написать, но… зачем же это делать, если можно этого не делать? Ведь уже есть кто-то (разработчики Chrome), кто всё это уже сделал.
          Читать дальше →
        • Лабораторная работа «Обучаемся настраивать сети в GNU/Linux»

          • Tutorial
          Никто не любит длинные вступления, поэтому сразу к сути.
          В данной импровизированной лаборатории я хотел бы осветить работу с сетями в GNU/Linux
          и рассмотреть следующие темы:

          1. Изучаем vlan. Строим сеть между vm1, vm2 в одном vlan. Пингуем, ловим пакеты, изучаем заголовки.
          2. Разбиваем vm1 vm2 на разные vlan. Настраиваем intervlan routing с помощью R1.
          3. Iptables. Настраиваем маскарад. Имитируем выход во внешние сети.
          4. Iptables. Настраиваем port forwarding для сервисов на vm1 и v2, которые находятся за NAT.
          5. Iptables. Настраиваем security zones. Изучаем tcp сессии.


          З.Ы. все люди ошибаются, я открыт для ваших комментариев, если я написал какую-то глупость, готов ее исправить!
          Читать дальше →
        • Партнерство Cisco и Apple для трансформации бизнеса через мобильность



            К 2020 году 50% всего Интернет трафика будет сгенерировано подключениями по Wi-Fi, согласно прогнозу Cisco VNI (Cisco VNI на русском языке), а проводными подключениями всего 22%. Остальные 28% придутся на подключения по мобильным сетям передачи данных. Очевидно, что значение надежного подключения по Wi-Fi для бизнеса продолжает расти, т.к. все больше и больше производственных процессов зависят от него.

            Чуть более года назад Apple и Cisco объявили о партнерстве с целью трансформации бизнеса через мобильность. Этот год Apple и Cisco активно работали над тем, чтобы обладатели устройств iOS 10 могли получать наилучший опыт работы с приложениями. Cisco и Apple внесли изменения в стандартное взаимодействие устройств и Wi-Fi инфраструктуры, сделав сложное простым и для пользователя, и для ИТ-администратора. В результате устройства с ОС iOS10 и сети Wi-Fi Cisco могут «узнавать» друг друга, что приводит к оптимизации подключения в сети Wi-Fi и приоритизации бизнес-приложений.
            Читать дальше →
          • Что такое свёрточная нейронная сеть

            • Перевод


            Введение


            Свёрточные нейронные сети (СНС). Звучит как странное сочетание биологии и математики с примесью информатики, но как бы оно не звучало, эти сети — одни из самых влиятельных инноваций в области компьютерного зрения. Впервые нейронные сети привлекли всеобщее внимание в 2012 году, когда Алекс Крижевски благодаря им выиграл конкурс ImageNet (грубо говоря, это ежегодная олимпиада по машинному зрению), снизив рекорд ошибок классификации с 26% до 15%, что тогда стало прорывом. Сегодня глубинное обучения лежит в основе услуг многих компаний: Facebook использует нейронные сети для алгоритмов автоматического проставления тегов, Google — для поиска среди фотографий пользователя, Amazon — для генерации рекомендаций товаров, Pinterest — для персонализации домашней страницы пользователя, а Instagram — для поисковой инфраструктуры.


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


            Задача


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


            Читать дальше →
          • Миф о RAM и O(1)

            • Перевод


            Городская библиотека Стокгольма. Фото minotauria.


            В этой статье я хочу рассказать о том, что оценивать время обращения к памяти как O(1) — это очень плохая идея, и вместо этого мы должны использовать O(√N). Вначале мы рассмотрим практическую сторону вопроса, потом математическую, на основе теоретической физики, а потом рассмотрим последствия и выводы.


            Введение


            Если вы изучали информатику и анализ алгоритмической сложности, то знаете, что проход по связному списку это O(N), двоичный поиск это O(log(N)), а поиск элемента в хеш-таблице это O(1). Что, если я скажу вам, что все это неправда? Что, если проход по связному списку на самом деле O(N√N), а поиск в хеш-таблице это O(√N)?


            Не верите? Я вас сейчас буду убеждать. Я покажу, что доступ к памяти это не O(1), а O(√N). Этот результат справедлив и в теории, и на практике. Давайте начнем с практики.


            Измеряем


            Давайте сначала определимся с определениями. Нотация “О” большое применима ко многим вещам, от использования памяти до запущенных инструкций. В рамках этой статьи мы O(f(N)) будет означать, что f(N) — это верхняя граница (худший случай) по времени, которое необходимо для получения доступа к N байтов памяти (или, соответственно, N одинаковых по размеру элементов). Я использую Big O для анализа времени, но не операций, и это важно. Мы увидим, что центральный процессор подолгу ждет медленную память. Лично меня не волнует, что делает процессор пока ждет. Меня волнует лишь время, как долго выполняется та или иная задача, поэтому я ограничиваюсь определением выше.

            Читать дальше →
          • Делать ли мобильную версию? 5 распространенных проблем, которые решает адаптивная верстка. Опыт Яндекса

            • Tutorial

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


            Сайт smashingmagazine.com на различных размерах экранов


            Вскоре многим стало понятно, что разработка отдельной мобильной версии — это долго и дорого в поддержке. Кроме того, это противоречит идеологии веба, который подразумевает, что размеченный документ универсален и может быть прочитан практически на любом устройстве вывода. Для решения возникшего противоречия в CSS был добавлен стандарт Media Queries. Появились новые возможности по определению особенностей устройства, в частности появилась возможность применять различное оформление страницы для произвольных размеров окна.

            Читать дальше →
          • Если вы работаете с государственными организациями

              По адресу http://regulation.gov.ru/projects# доступен очередной проект закона о внесении очередных изменений в закона «Об информации, информационных технологиях и о защите информации». Точнее на данном портале сейчас выложено два таких проекта, но нас интересует проект закона от ФСТЭК РФ:



              Что же предполагается изменить в методах защиты и кого касаются изменения?
              Читать дальше →
              • +11
              • 13,3k
              • 7