• Студентам-технарям: автоматизируем оформление курсачей в таблицах Google

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

    Т. е. так нельзя: S = π⋅R² = 314 [м²]
    надо так: S = π⋅R² = 3,14⋅10² = 31,4 [м²]

    Причина в том, что расчеты сдавались на бумаге, а профессорам проверять все это не видя цифр неудобно. Обычно расчеты мы делали в Excel, оформлять формулы и подстановку цифр приходилось вручную, и если исходные данные менялись, все автоматом пересчитывалось и оформление снова переделывали вручную. Я то понимал, что с такой примитивной задачей, как подставлять циферки в формулы, компьютер может справиться самостоятельно, но, как оказалось, такой возможности не реализовано ни в Mathcad, ни в Mathematica, ни в Excel.
    Читать дальше →
  • Быстро, бесплатно и без СМС, плагин для Babel JS

    Привет. Нужно понять, как писать этот чёртов плагин для Babel? Завари чайку или кофе и устраивайся поудобнее, начинаем…

    Для начала инициализируем npm
    npm init

    Отвечаем на вопросы «enter»

    Теперь устанавливаем babel

    npm install babel-cli babel-core babel-preset-es2015

    babel-cli — интерфейс для работы с babel из консоли.
    babel-core — самая главная штука в babel.
    babel-presets-es2015 — это модуль для транспиляции в ES5.

    Теперь создадим два каталога src — файлы которые будем преобразовывать и dist — куда будем преобразовывать.

    В src сделаем файлик some.js (имя на свой вкус и цвет) и напишем в нём код.

    const str = "something!";
    
    Читать дальше →
  • Основы прозрачного проксирования с использованием 3proxy и iptables/netfilter или как «пустить всё через прокси»

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

    Когда я начинал решать данную задачу то столкнулся с тем, что её реализация имеет одну существенную проблему — протокол HTTPS. В старые добрые времена особых проблем с прозрачным проксированием HTTP не возникало, но при проксировании HTTPS браузеры сообщают о вмешательстве в протокол и на этом счастье заканчивается.

    В распространенных инструкциях к прокси-серверу Squid предлагают даже сгенерировать собственный сертификат и установить его клиентам, что полный бред как минимум нерационально и выглядит как MITM — атака. Я знаю, что Squid уже что-то подобное умеет делать, но речь в этой статье о проверенном и рабочем способе с использованием 3proxy от уважаемого 3APA3A.

    Далее мы подробно рассмотрим процесс сборки 3proxy из исходников, его настройку, полное и выборочное проксирование с использованием NAT, распределение канала на несколько внешних прокси-серверов, а также использование роутера и статических маршрутов. В качестве ОС используем Debian 9 x64. Начинаем!
    Читать дальше →
  • Первая работа в IT: взгляд с другой стороны стола

    Буквально несколько дней назад я наткнулся на вопрос в Hacker News — «Стоит ли нанимать и обучать джуниоров?[1]». В комментах развернулась бурная дискуссия, желающие могут сходить по ссылке и принять участие. Меня же эта дискуссия сподвигла поделиться с аудиторией хабра несколькими советами тем, кто хочет пройти первое собеседование на позицию программиста.

    image
    Читать дальше →
  • Forever Junior. Почему вне зависимости от квалификации нужно всегда оставаться Junior



    Юность неукротима и имеет нужду во многих наставниках, учителях, руководителях, надсмотрщиках, воспитателях. Что конь необузданный, что зверь неукротимый, то же самое и юность.

    Иоанн Златоуст
    Открывая сайт наподобие «хэ-хэ-ру», вбив в поиск вакансий «Java» (подставьте свой любимый язык) вы получите список, просматривая который вам будут попадаться слова «Junior», «Middle», «Regular», «Senior». Эти слова относятся к общепринятой классификации уровней разработчика. На тему к какому уровню отнести себя написано огромное количество статьей, в том числе и на хабре, поэтому я не буду повторяться. Напишу лишь общий вывод: нет точных критериев, по которым можно точно отнести себя тому или иному уровню. У каждой компании они свои.

    Зачем такая градация существует в вакансиях — понятно. Зачем нам как разработчикам относить себя к какому-то уровню — не ясно. Где наша выгода? Потешить самолюбие? Повысить ЧСВ? Мы тратим на этот процесс время и силы, особенно в начале пути в мире IT. Я не выбираю такую философию!
    Читать дальше →
  • Начиная свой путь в Game Dev

    Добрый день, дорогой читатель!

    Хочу поделиться с тобой своим опытом изучения языком программирования и поиска себя в этой сфере, и заодно увидеть этот опыт глазами стороннего наблюдателя. Может, взгляд со стороны поможет по-другому взглянуть на выбранное направление и раскрыть новые возможности.

    Я закончил технический институт по направлению “Железо и Программирование”. Все знания были свалены в одну кучу, и единственным условием обучения было “Разобраться или искать новый вуз”. Процесс был непростой, но интересный: по пути пришлось изучить все возможные языки программирования. Assembler, Shell, Fortran, Pascal, C/C++/C#, Javascript, HTML, Python — никто и не подумал объяснить, для чего они могут использоваться, какой лучше применять для решения той или иной задачи. Даже банальный вопрос: “Что такое Backend и Frontend?” — первое время оставался без ответа. Пришлось изучить историю компьютеров полностью, даже написать свой микропроцессор с нуля. Я очень полюбил программирование, но параллельно занимался другой деятельностью, и не мог полностью ему себя посвящать. Пытался устроиться на стажировки, практики и открытые вакансии, но поскольку являюсь гражданином другой страны, не все возможности были открыты.

    После института год сидел без работы и пытался выяснить, что мне нравится. Изучил десятки книг по программированию, но все они были на одно лицо: описание языка, история, типы данных, функции, структуры, классы. Общие слова без особых разъяснений, несколько глав, заключение… и ты уже “знаешь” очередной язык программирования. Молодец!
    При этом дальнейшего развития нет, и куда применить знания — не особо понятно.
    Читать дальше →
  • История одного cover letter

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


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


    Читать дальше →
  • React-redux, connect по-новому, разделение отвественности в компонентах

    При написании SPA с помощью связки react-redux, для работы с redux используют функцию connect в файле react компонента для проброски стейта и «диспатча». Вся боль в том, что «коннекторы» и «диспатчеры» многие описывают там же, в компоненте. В этой статье я опишу connect по новому, и покажу простой способ разделения кода.
    Читать дальше →
  • Hellow hubr из esp32 с исползованием Platformio и framework espidf

    1 Start


    Приветствую %user% в данной статье мы быстро пробежимся о том как собрать и настроить корабль для путешествие в дивный чудный мир iot на esp32 .


    1.1 Используемые П.О и устройства


    • Kubunty 18 ->
      Linux x 4.15.0-39-generic #42-Ubuntu SMP Tue Oct 23 15:48:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
    • Текстовый редактор Atom
      Atom: 1.26.1
      Electron: 1.7.11
      Chrome: 58.0.3029.110
      Node: 7.9.0
    • Toolchain разработки PlatformIO
      Home 1.0.6
      Core 3.6.2a2
    • TTGO MINI32 V2.0 ESP32

    1.2 Первоначальная настройка


    Начнем с установки текстового редактора Atom:


    wget -O atom-amd64.deb https://atom.io/download/deb

    Gdebi

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


    Далее установим gdebi которую мы будем использовать для установки ранее загруженного пакета Atom. А также clang.


    sudo apt install gdebi-core clang 

    Используем gdebi для установки пакета с зависимостями .


    sudo gdebi atom-amd64.deb 

    Проверим на работоспособность командой atom в консоле


    Platformio настройка


    1.Для начала устоновим нужные пакеты в атом для этого
    надо перейти Menu: Edit > Preferences > Install
    2.Провести поиск пакета platformio-ide
    3.Установить кликнув install .


    Ещё один способ установки ввести в командную строку


     apm install platformio-ide 

    Также можно посмотреть, установилось ли или нет командой :


     apm list 
     apm list | grep platformio 
    Читать дальше →
  • Установка SQLite.Swift (CocoaPods)

    Введение


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

    Предисловие
    При написании своего приложения для IOS было необходимо использовать существующую таблицу. Само приложение очень простое. Существует некая таблица с определенным количеством строк и столбцов. Каждому столбцу соответствует свое текстовое поле (TextField). Пользователь вводит число в любой TextField нажимает «Готово» и во всех остальных текстовых полях автоматически подгружаются значения из таблицы. В случае если такого числа нет, то необходимо выполнять интерполяцию чисел взятых из двух ближайших строк.
    Приложения простое, вот только возникла проблема: как связать базу данных и Swift.

    Читать дальше →
  • Студент в ИТ: учиться нельзя работать

    Не раз встречала здесь статьи о собеседованиях в ИТ-гигантнах, европейско-американских компания и прочих, довольно сказочных для меня местах. Возможно, и у меня такая будет. Но сейчас я хочу поделиться историей более приземленной.

    Мне никогда не сиделось на месте, и к окончанию второго курса я успела побывать в роли официанта, администратора, пораздавать предвыборные газеты и поварить пельмешки на дегустацию в супермаркете (до сих пор считаю, что это была первая и лучшая работа). Но в скором времени я поняла, что пора включать мозг, а не только обаяние, и принялась искать работу по специальности бизнес-аналитика.
    Читать дальше →
  • Опыт создания игры для Android в одиночку с нуля и как ее зафичерили на Google Play

    Привет! Меня зовут Ибрагим, я — начинающий инди-разработчик. У меня всегда было желание заняться программированием, но меня отпугивала сложность и неопределенность выбора (что именно изучать и делать). И лишь 2 года назад я все-таки преодолел этот психологический барьер, смог высвободить достаточно времени, и решил уже основательно подойти к задаче. Я был решительно настроен найти и освоить профессию, от которой я бы получал кайф.

    Сужать круг поиска, чем именно заниматься, было тяжело. Знакомых в этой области не было, поэтому решил отталкиваться от каких-то общих соображений. Так как в приоритете было в первую очередь найти что-то интересное, выбор пал на геймдев. Понравилась идея для начала сделать простенькую 2D-игру под Android и выложить на Google Play.
    Читать дальше →
  • Как Telegram-бот поборол дизайнерскую прокрастинацию и помог увеличить доход digital-агентства­

    Основатель digital-агентства Роман Квартальнов делится простым решением, которое помогло сделать производственные процессы прозрачными, дало возможность в любой момент времени оценить себестоимость проекта и компании целиком, а также экономить около 1 000 000 рублей на сборе отчетов с сотрудников.

    Знаете ли вы себестоимость работы вашей компании? Можете за 3 минуты получить доступ к информации о выполненной работе за вчера? А за неделю?

    Четыре года назад я открыл свою компанию. На старте у нас была небольшая команда. Очевидно, что чем меньше людей, тем лучше у них получается работать слаженно, быть единым организмом. К концу первого года мы начали активно масштабироваться и столкнулись с проблемами роста. В определенный момент мы просто потеряли контроль над процессами внутри компании и начали принимать решения хаотично. Есть такой термин – «хаотичное управление», его можно трактовать так: руководитель не имеет возможности прогнозировать риски, постоянно тушит пожары и не разбирается почему они происходят. У такого подхода есть 2 пути развития:

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

    2. Осознать, что пожаротушение развивается спиралевидно, т.е. время идет, задачи растут, ресурсы уменьшаются. В этом случае ваша цель — поднапрячься и выйти за рамки, встать над проблемами и постараться найти системные решения.

    Читать дальше →
  • Мерещится: ждать ли «криптовалюту» ко второму чтению «О цифровых активах»?

    «Не случайно мы встретились с вами здесь 7 ноября, в канун Революции!, — выдала на конференции по блокчейн в Санкт-Петербурге Элина Сидоренко, руководитель рабочей группы по оценкам рисков оборота криптовалюты Госдумы, — Самое время совершить переворот относительно стандартов работы на крипто рынке и стать примером для всех остальных стран». Как именно совершать переворот — спикер не уточнила. Но предупредила, блокчейн — хорошо, а вот децентрализация может довести до абсурда — появления сразу нескольких жен у участников крипто-сообщества в самых разных городах мира. Что называется: на пальцах о технологичном.
    Читать дальше →
  • Оптимизация скриптов с Webpack SplitChunksPlugin

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


    const path = require("path");
    
    const PATHS = {
      src: path.resolve(process.cwd(), "src"),
      dist: path.resolve(process.cwd(), "dist")
    };
    
    module.exports = {
      entry: {
        common: `${PATHS.src}/js/common`,
        index: `${PATHS.src}/js/index`,
        contacts: `${PATHS.src}/js/contacts`,
        about: `${PATHS.src}/js/about`,
      }
    }

    При сборке для каждой страницы будет создан свой бандл. В точку входа common я вынес общие скрипты для всех страниц. Чтобы подключить наши бандлы на страницы воспользуемся плагином Webpack'a HtmlWebpackPlugin.


    Рассмотрим на примере:


      module.exports = {
      ...
      plugins: [
        new HtmlWebpackPlugin({
          filename: `${PATHS.dist}/index.html`,
          template: `${PATHS.dist}/index.html`,
          chunks: ["index", "common"]
        })
        ...
      ]
      ...
    };
    Читать дальше →
  • Как девочки помогли мне подружится с Django

    В данной статье я бы хотел поделиться опытом изучения языка программирования Python в целом и фреймворка Django в частности (с нуля, или почти с нуля).


    Немного истории


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


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


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

    Читать дальше →
  • Настройка IPTV от Ростелеком на роутерах MikroTik

    В свое время когда я купил роутер MikroTik, передо мной кроме базовой настройки инета встала задача обеспечить работу IPTV, до того момента у меня был установленный Ростелекомом D-link. Сама базовая настройка инета на микротике заняла у меня примерно 10 минут, а вот с IPTV пришлось повозиться. Все мануалы прочитанные мной тогда не учитывали многих моментов, до которых я дошел расковыряв настройки многострадального D-link-а и без которых работать в данной схеме ТВ нормально не будет. В этой статье я хочу обозначить полученную мной универсальную инструкцию в данной ситуации.
    Читать дальше →
  • Про социальные лифты. Конкурс «Лидеры России»

    Данная заметка является последствием прочтения недавней статьи на Хабре: “Карьерные стероиды. Лифты”. Спасибо автору. Прекрасная мотивация. Решил и я попробовать один из лифтов. Тот самый конкурс «Лидеры России» (конкурс управленцев).

    Конечно, я слышал о нём и раньше. И даже один мой друг дошёл в прошлом конкурсе до финальной стадии. И он с большим воодушевлением рассказывал мне об этом конкурсе. О всяких «плюшках» при проведении регионального отбора, о ещё более замечательных фуршетах, знакомствах и т.д. при проведении финальной части. И я даже жалел тогда, что не стал участвовать в нём.

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