Как стать автором
Обновить
6
0

Пользователь

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

3 практических примера использования деструктурирования в JavaScript

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

Пишем код чище, используя паттерны деструктурирования



Вы, наверное, уже знакомы с деструктурированием в JavaScript. Оно пришло к нам в 2015 году в спецификации ES6, но если вам нужно освежить знания, то на сайте Mozilla можно почитать большую подробную статью, как это всё работает.


Но знать как работает совсем не то же, что знать как использовать. Вот три паттерна, которые помогут вам сделать код чище, надёжнее и читаемее!


1. Именованные аргументы функции


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


def sum(a=1,b=2,c=3):
  return a+b+c

sum(b=5,a=10)

Видите? Порядок не важен, если вы явно указали имя параметра. Преимуществами по сравнению с позиционными аргументами является то, что:


  1. Можно опустить один или несколько параметров при вызове функции
  2. Порядок при передаче аргументов теперь не важен
  3. Код стал читаемее 

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


function sum({a = 1, b = 2, c = 3}) {
  return a + b + c
}

sum({b: 10, a: 5}) // 5 + 10 + 3 = 18

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

Читать дальше →
Всего голосов 20: ↑16 и ↓4+12
Комментарии4

6 причин развивать IT карьеру в Армении

Время на прочтение3 мин
Количество просмотров23K
Сегодня Ереван — один из активнейших технологических центров на постсоветском пространстве, подходящих вариант для тех, кто хочет сменить обстановку, страну и компанию, но при этом не отрываться от привычного и родного.

У каждого могут быть свои мотивы переехать в Армению, но есть несколько причин, которые заинтересуют каждого.

1. Большие показатели маленькой страны


В Армении проживает меньше 3 миллионов людей, в Ереване чуть больше миллиона, из них более 22 тысяч работает в IT секторе, это каждый 18-ый трудящийся. При этом еще около 3 тысяч вакансий остается незакрытыми.

Доля IT-сектора в ВВП Армении в 2017 году составила 7% и продолжает расти. По этому показателю Армения стоит на одном уровне с Эстонией, обходит США.
И главная причина...
Всего голосов 58: ↑50 и ↓8+42
Комментарии71

Опытное производство электроники за минимальный прайс

Время на прочтение10 мин
Количество просмотров58K
Привет, Хабр!

Почитал я некоторые ранее опубликованные статьи о том, как жить славному молодцу, перед которым встала задача спаять 10-50-100 устройств из резисторов и микросхем, и взгрустнул, ибо во всех в них советы были даны если не вредные, то и не сильно полезные.


А вот, например, совет держать включённый паяльник за ручку — полезный!

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

  • регулярно надо делать 5-10-50-100 плат с SMD-компонентами
  • по возможности быстро
  • по возможности дёшево

Если вы можете позволить себе — что по срокам, что по деньгам — услуги «Резонита» или «Компэла» (сотрудничающего, впрочем, с «Резонитом») по сборке модулей под ключ, то текст ниже в общем и целом не для вас. Однако, на практике даже в достаточно крупных компаниях люди, занимающиеся опытными образцами, часто собирают их сами — потому что это занимает пару дней вместо недели, потому что всегда можно на ходу что-то подправить, потому что не надо бегать между начальством и бухгалтерией со счетами и актами… В мелких же вопрос упирается попросту в деньги.

Тем более, что в наше время базовое оборудование, позволяющее делать подобные вещи достаточно быстро и достаточно дёшево, доступно даже любителю-одиночке.
Читать дальше →
Всего голосов 170: ↑167 и ↓3+164
Комментарии413

Разворачиваем виртуалку с Windows с пробросом виртуальной видеокарты с помощью QEMU и Intel GVT-g

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

Как заставить Intel GVT-g работать


Всем привет! Intel предложили отличное решение извечной проблемы: "у меня есть ноутбук на Linux и мне надо запускать Windows с аппаратным ускорением, но у меня нет тяжеленного ноутбука с двумя GPU и жидкостным охлаждением". С помощью архитектуры своих GPU или чего-то ещё им удалось сделать так, что вы можете разбить свой встроенный Intel GPU на два или более GPU.


К сожалению, это отнюдь не так просто… Документация слегка устарела, и некоторые вещи ломаются непонятным образом без очевидной причины. Поэтому в данном посте я расскажу вам, как настроить аппаратно ускоренную виртуальную машину с Windows с крутыми быстрыми драйверами virtio и Intel GVT-g.


Для этого вам понадобится более-менее современный GPU (Примечание переводчика: согласно официальной документации, GVT-g поддерживают интегрированные видеокарты, начиная с пятого поколения Intel Core и с четвёртого поколения Xeon).


Windows screenshot

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

Arduino ZX Spectrum AY Player

Время на прочтение8 мин
Количество просмотров33K
Автономный проигрыватель мелодий с компьютера ZX Spectrum на Arduino с минимальным количеством деталей.


Давайте посмотрим что там накуролесили
Всего голосов 26: ↑26 и ↓0+26
Комментарии54

Портирование Lode Runner с БК на УКНЦ

Время на прочтение4 мин
Количество просмотров10K
В марте-мае этого года я потратил несколько недель (по вечерам и выходным) на портирование игрушки Lode Runner с БК-0010 на УКНЦ.
Скриншот меню портированной версии:

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

Анимация персонажей в Blender 3D — это просто

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


Мир open source не стоит на месте и постоянно развивается. Про Blender 3D написано уже много статей, но помимо Blender, существует еще много полезных и бесплатных программ. Одна из них, это MakeHuman. На Хабре упоминания о ней имеются, но какой либо информации по ней нет. Предлагаю вам заглянуть под кат и посмотреть, что анимация персонажей в связке MakeHuman+Blender3D, это действительно просто. Осторожно, много картинок.
Посмотрим...
Всего голосов 65: ↑64 и ↓1+63
Комментарии11

Эмуляция носителя FAT32 на stm32f4

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


Недавно возникла данная задача — эмуляция носителя FAT32 на stm32f4.

Её необычность заключается в том, что среди обвязки микроконтроллера вовсе может не быть накопителя.

В моём случае накопитель был, но правила работы с ним не позволяли разместить файловую систему. В ТЗ, тем не менее, присутствовало требование организовать Mass Storage интерфейс для доступа к данным.

Результатом работы явился модуль, который я озаглавил «emfat», состоящий из одноимённого .h и .c файла.

Модуль независим от платформы. В прилагаемом примере он работает на плате stm32f4discovery.

Функция модуля — отдавать куски файловой системы, которые запросит usb-host, подставляя пользовательские данные, если тот пытается считать некоторый файл.
Читать дальше →
Всего голосов 70: ↑70 и ↓0+70
Комментарии36

Отладчик за копейки: делаем ST-Link из Maple Mini

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


Начав свое знакомство с STM32 с китайских клонов Leaf Maple Mini (потому что самый дешевый вариант, 4$), я столкнулся с неудобством. Поскольку на Maple IDE рассчитывать не стоит, значит, приходится работать с «голым» STM32. А раз ST-Link у меня нет, заливать программу я могу только по UART, что неудобно (и нет возможности отладки).

Но хабраюзер imwode ровно через 9 часов после моей публикации написал ответный материал, из которого я узнал прекрасное: отладчик ST-Link основан на том же микроконтроллере STM. При этом, прошивка отладчика умельцами вытащена и готова к загрузке на неродные устройства. Maple Mini подходит идеально: ничего лишнего, USB распаян, надо только несколько резисторов подключить.

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

Регистрация оффшорной компании в Белизе

Время на прочтение5 мин
Количество просмотров84K
Я горжусь тем, что плачу налоги в Соединенных Штатах. Правда, я бы гордился не меньше за половину суммы. (с) Артур Годфри

Пару месяцев назад я писал на Хабре о регистрации компании в Эстонии.

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

Краткая характеристика


Белиз является оффшорной юрисдикцией и находится в списке оффшорных зон Украины, России, Белоруссии и Казахстана.

Налогообложение оффшорных компаний в Белизе нулевое.

АПДЕЙТ:

Отсутствует требования по подаче финансовой отчетности и проведению аудита компании.

Формально, требование по ведению финансовой документации имеет место быть в Белизе. Это требование навязанное OECD.
Как и в большинстве других оффшоров.
При регистрации агент попросит Вас заполнить вот такой документ, где Вы сможете указать адрес, по которому храните документы:

Resolution of Directors/ Beneficial Owner/ Members in writing

The undersigned being all the directors of the abovenamed company declare as
follows:

REQUIREMENT TO KEEP ACCOUNTING RECORDS

1. It was hereby RESOLVED that the Company shall keep or cause to be kept proper accounting records (as prescribed under Section 3 (1) and (2) of the Accounting Records (Maintenance) Act, No. 18 of 2013 of the Laws of Belize:

(a) That are sufficient to show and correctly explain the Company’s transactions;

(b) To enable the financial position of the Company to be determined with reasonable accuracy at any time; and

© To enable for accounts of the Company to be prepared.

2. It was hereby resolved that the accounting records of the company shall be
kept at the following address:

………………………………………..……………………………
………………………………………………………………………

Dated this day of 2014.

………………………………………
DIRECTOR
COMPANY

Что делают предприниматели, чтоб не хранить документацию:
1) не открывают банковский счет в Белизе (чтоб уменьшить влияние на деятельность компании «местных»)
2) готовы вывести деньги со счета при первой просьбе предоставить документацию (чтоб избежать штрафа за несоблюдение требований)
3) указывают адрес хранения не в Белизе (чтоб не могли проверить)

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

Хранить или не хранить — решение каждого предпринимателя. В любом случае, это не так уж и сложно.

Акционером или директором компании может быть как юридическое, так и физическое лицо, независимо от места регистрации или гражданства.
Требований к количеству акционеров или директоров в Белизском законодательстве нет.

В Белизе закрытый (не публичный) регистр акционеров компании.

Ежегодные пошлины


$100 — если уставной капитал не превышает $50,000 и все акции компании имеют номинальную стоимость. (т.е. если капитал заявлен и не внесен);
$1,000 — если уставной капитал превышает $50,000;
$350 — если уставной капитал не превышает $50,000 и некоторые или все акции компании не имеют номинальной стоимости; и если уставного капитал нет и все акции не имеют номинальной стоимости;
$4,000 — если компания имеет статус «public investment company».

Пошлины платятся в следующем году, после года в котором была зарегистрирована компания, до 31 Июля.
Если вы просрочили оплату ежегодной пошлины, ее размер увеличивается на 10% и дается новый срок — до 31 Октября.
Если же вы не оплатили пошлину до 31 октября, ее размер увеличивается на 50%.
Читать дальше →
Всего голосов 55: ↑48 и ↓7+41
Комментарии46

Визы для стартапов: как открыть собственное дело за рубежом (часть 1)

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

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

Стартапы выгодны принимающим странам, поскольку такие компании генерируют значительное количество рабочих мест. Ежегодно по программам для основателей стартапов в Европу иммигрируют до 20 тыс. человек. Если учесть, что эти компании чаще всего основываются двумя лицами, то можно предположить, что каждый год в ЕС открываются примерно 10 тыс. новых фирм. В среднем, компания, принадлежащая иностранцу, создает четыре рабочих места в первый год существования. Следовательно, в совокупности стартапы являются источником примерно 40 тыс. рабочих мест в Европе за год.

Посмотрим, какие условия иммиграции существуют для основателей стартапов в разных странах.
Читать дальше →
Всего голосов 74: ↑62 и ↓12+50
Комментарии53

Маска Корво, персонажа из игры Dishonored, напечатана на 3д-принтере и впервые выставлена на краудфандинг. История создания проекта

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


Я уже давно задумывался о печати персонажей онлайн игр на 3D-принтерах и сбор средств с помощью краудфандинга для печати их в промышленных масштабах. В рунете я видел несколько проектов, но далеко они не заходили. Весной в мой профиль вконтатке написал фанат игры Dishonored, с просьбой напечатать маску героя Корво Аттано. В то время я только начал вести свою группу вконтакте по 3д-печати, и через нее он меня нашел. Ознакомившись с вопросом, мне стало понятно, что до сих пор маску сделало пару энтузиастов, один из которых находился в штатах, при этом, не собираясь ее продавать. А те, кто решил делать маски на продажу, делали это вручную, очень и очень долго. Для меня стало понятно, что вот она, незаполненная ниша. Конечно, фигурки топовых игр потихоньку печатали, но чтобы на краудфандинг – такого нет.
Читать дальше →
Всего голосов 20: ↑15 и ↓5+10
Комментарии14

Как получать доход с Google Play на расчётный счёт ООО

Время на прочтение3 мин
Количество просмотров56K
Эта статья будет интересна российским компаниям, которые продают приложения через Google Play. У меня такая компания, и на своём опыте расскажу, как мы настроили денежные потоки с GP, чтобы они были легальными. Если вы не белые и не пушистые, т.е. считаете, что налоги можно не платить, то смело закрывайте эту статью.

Проблема:
Доходы с Google Play – такие же доходы, с них нужно платить налоги. Не все разработчики знают, как настроить получение доходов так, чтобы удовлетворять требованиям НК РФ.

Решение:
Получать доход на ИП либо на ООО и официально платить подоходный.
Если интересно про ИП читайте здесь и здесь.
В этой статье про получение доходов на счёт ООО.

Исходные данные
У вас есть аккаунт разработчика на Google Play – как его создать, читайте здесь
У вас есть приложение, которое генерирует доход – как его создать, одним линком не отделаешься.
У вас есть ООО.

Настройка
Google Play ведёт расчёты в USD, поэтому вам понадобится валютный расчётный счёт. Открыть валютный счёт можно в любом нормальном банке. Позвоните туда, Вам объяснят процедуру. Открыть счёт обойдётся в 2-3 т.р.
Когда Вам откроют валютный счёт, Вы получите реквизиты счёта. Вам понадобятся:
1. Название банка по-английски
2. БИК
3. Номер открытого счёта
4. BIC банка (или ещё его называют SWIFT)
Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Комментарии15

Разбираем и собираем обратно стек USB

Время на прочтение14 мин
Количество просмотров104K
Иллюстрированная проекция модели сетевого взаимодействия OSI на универсальную последовательную шину.

Три «замечательных» уровня стека USB


Меня не устроил вид стека USB, который можно встретить чаще всего на просторах сети:

Не сильно полезный стек USB

Уровень шины, логический, функциональный… Это, конечно, замечательные абстракции, но они скорее для тех, кто собирается делать драйвер или прикладной софт для хоста. На стороне же микроконтроллера я ожидаю шаблонный конечный автомат, в узлы которого мы обычно встраиваем свой полезный код, и он сперва будет по всем законам жанра глючить. Или же глючить будет софт на хосте. Или драйвер. В любом случае кто-то будет глючить. В библиотеках МК тоже с наскока не разобраться. И вот я смотрю на трафик по шине USB анализатором, где происходящие события на незнакомом языке с тремя замечательными уровнями вообще не вяжутся. Интересно, это у меня от гриппозной лихорадки в голове такой диссонанс?

Если у читателя бывали сходные ощущения, предлагаю альтернативное, явившееся мне неожиданно ясно в перегретом мозгу видение стека USB, по мотивам любимой 7-уровневой модели OSI. Я ограничился пятью уровнями:



Я не хочу сказать, что весь софт и библиотеки уже сделаны или должны проектироваться, исходя из этой модели. Из инженерных соображений код c уровнями будет сильно перемешан. Но я хочу помочь тем, кто начинает своё знакомство с шиной USB, кто хочет понять протоколы обмена устройств и терминологию предметной области, подобраться поближе к готовым примерам, библиотекам и лучше ориентироваться в них. Эта модель не для загрузки в МК, но в ваши блестящие умы, дорогие друзья. А ваши золотые руки потом всё сами сделают, я не сомневаюсь:)
Разобрать стек USB
Всего голосов 72: ↑70 и ↓2+68
Комментарии23

Отладка C++ программ в ОС GNU/Linux

Время на прочтение2 мин
Количество просмотров28K
Так уж случилось, что по долгу работы очень много времени провожу с операционными системами семейства GNU/Linux. Основным видом моей деятельности является разработка программного обеспечения на С++.

Так вот, основной проблемой при использовании отладчика – это отображение сложных контейнеров, например, stl-контейнеров.

Решение, которое я предлагаю, актуально для gdb. Этот отладчик поддерживает скрипты, написанные на языке python, а механизмы отображения сложных объектов, называются pretty printers. Т.е. чтобы отладчик отображал нам все правильно, необходимо указать ему где находятся скрипты с этими самыми pretty printers. Для указания отладчику дополнительных команд необходим файл .gdbinit.

Итак, попробую оформить все, как инструкцию, так и читать удобней, и сам не забуду.
Читать дальше →
Всего голосов 44: ↑30 и ↓14+16
Комментарии11

Обзор отечественного одноплатного компьютера MB 77.07: От распаковки и прошивки, до написания первой DSP программы

Время на прочтение30 мин
Количество просмотров60K
В наше время рынок SBC (Single Board Computer) сильно разросся, и появилось огромное количество одноплатных компьютеров на самых различных процессорах, от старых и всем известных, до совсем новых и специализированных. Недавно ко мне попал Module MB 77.07 – одноплатный компьютер от НТЦ «Модуль» на процессоре отечественного производства К1879ХБ1Я, про который на хабре уже однажды оставили небольшую заметку люди из компании Promwad. С момента того поста плату стали продавать всем желающим и было выложено ПО на официальный github компании – http://github.com/RC-MODULE

В статье будет дано описание железа и софта, от распаковки и прошивки, до написания простого примера – аудио-эффекта эха на встроенном в используемый процессор DSP ядре NeuroMatrix.
Читать дальше →
Всего голосов 85: ↑81 и ↓4+77
Комментарии54

fork() vs. vfork()

Время на прочтение15 мин
Количество просмотров40K
Послушайте!
Ведь, если звезды зажигают — значит — это кому-нибудь нужно?

В. В. Маяковский, 1914


Я занимаюсь программированием для встроенных систем, и данную статью решил написать для того, чтобы лучше разобраться с проблемой использования системных вызовов fork() и vfork(). Второй из них часто советуют не использовать, но ясно, что появился он не просто так.

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

В качестве бонуса будет приведено описание реализаций vfork()/fork() в нашем проекте. Прежде всего, мой интерес связан с применением этих вызовов во встроенных системах, и главной особенностью приведённых реализаций является отсутствие виртуальной памяти. Возможно, хабровчане, хорошо разбирающиеся в системном программировании и во встроенных системах, дадут советы и поделятся опытом.

Кому интересно, прошу под кат.
Читать дальше →
Всего голосов 80: ↑74 и ↓6+68
Комментарии29

Nvidia + Nexus 7 + две лупы + коробка = VR шлем

Время на прочтение5 мин
Количество просмотров221K
Добрый день! В интернете уже накопилось достаточное количество статей по сборке DIY VR шлемов и хабр тому не исключение. Но в большинстве случаев при сборке используются смартфоны с относительно не большими дисплеями, что не позволяет получить широкий угол обзора. Сегодня же мы будем собирать шлем на основе Nexus 7, потратив всего 600 рублей в ближайшем гипермарките. Ну и т.к. главный лозунг этой статьи «Меньше теории, больше практики», хватит лишних слов, начинаем!



Читать дальше →
Всего голосов 118: ↑115 и ↓3+112
Комментарии31

Получаем банковскую карту, находясь за границей

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


Есть несколько вопросов, которые встают перед фрилансерами, использующими кредитки или карты-рассрочки перед выездом за границу. Один из важнейших — это средство хранения денег и платежей. Карты русских банков по ряду причин становятся неудобны при длительном пребывании за границей — например, в случае утери, блокировки и необходимости восстановления. Или, например, при необходимости завести новый счёт в другой валюте — не полетишь же специально в Россию за этим? В последнее время добавились и политические риски. Но в итоге всё сводится к вопросу чисто логистическому: как получить банковскую карту, находясь за пределами родной страны.
Читать дальше →
Всего голосов 94: ↑88 и ↓6+82
Комментарии174

Контроллер умного дома (с Ethernet, WiFi, USB, блэкджеком и плюшками) за $20?

Время на прочтение7 мин
Количество просмотров217K
Некоторое время назад к нам обратился один потенциальный заказчик со своей идеей проекта «умного дома». Мы заказчикам всегда рады, особенно если у них есть более-менее внятная идея и достаточно денег для ее воплощения (сразу скажу — этот заказчик пока что является идеалом сферического заказчика в вакууме, повезло нам с ним). Так что после пары встреч родилось общее описание проекта, и мы приступили к поиску вариантов технической реализации. Нужен был недорогой контроллер с поддержкой WiFi и USB, небольшим энергопотреблением и, главное, с достаточно открытой архитектурой, чтобы мы могли сделать на его базе собственное кастомизированное решение.

И тут очень удачно попалась нам на глаза статья. Ух ты, какие штуки бывают, оказывается! У меня самого в качестве передвижной точки доступа для поездок по Китаю (где до сих пор RJ-45 розетка в номере при отсутствии WiFi — довольно частое явление) давно уже используется мини-роутер TP-LINK TL-WR702N, купленный рублей за 700, но тот факт, что внутри живет вполне приличный одноплатный компьютер с кучей дополнительных возможностей, стал для меня приятным сюрпризом. А поскольку мы по своему основному бизнесу плотно завязаны с Китаем (и китайскими производителями электроники в частности), стало нам интересно — во сколько же нам обойдется собственная плата на базе SoC AR9331, если целое законченное решение в корпусе, в коробке, с проводами и блоком питания, стоит в России 700р (на то время — $22) в рознице?

image
И мы приступили к исследованиям...
Всего голосов 53: ↑53 и ↓0+53
Комментарии146
1

Информация

В рейтинге
Не участвует
Откуда
Hebei, Китай
Зарегистрирован
Активность