Рубрика «Go» - 26

Yet another P2P Messenger

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

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

Пример UI чата на ReactJs

Статья ориентирована на новичков интересующихся языком go и пиринговыми сетями.
И для профессионалов, умеющих предлагать разумные идеи или конструктивно критиковать.

Читать полностью »

Принцип работы импульсного металлодетектора
Одним из популярных вариантов конструктивного исполнения устройств для металлопоиска является импульсный (pulse induction (PI)) металлодетектор- неприхотливый и надежный аппарат (хорошая глубина обнаружения, устойчивость к повышенной минерализации грунта, способность работать в соленой воде), имеющий различные сферы применения — от военного дела (традиционные пользователи «импульсников») до поиска золота (особенно популярно это хобби в Австралии).
Но и у него есть существенный недостаток — большие сложности с дискриминацией, т.е. определением типа мишени, например, узнать — из цветного металла она или из черного, или отличить противопехотную мину в пластиковом корпусе от кучки металлического мусора? Какая же причина этой проблемы?
Рассмотрим принцип работы импульсного металлодетектора.
Металлопоиск и… нейросеть - 1
Читать полностью »

Notes on euler release of cyber:// protocol reference implementation using Go.

Читать полностью »

Так случилось, что ваша программа написана на скриптовом языке — например, на Ruby — и встала необходимость переписать ее на Golang.

Резонный вопрос: зачем вообще может понадобится переписывать программу, которая уже написана и нормально работает?

Как победить дракона: переписываем вашу программу на Golang - 1Читать полностью »

Перед вами перевод статьи пользователя под ником Constantin, опубликованной на ресурсе hackernoon.com. Под катом можно узнать, какие из языков программирования сегодня достойны того, чтобы их освоили.

К чему готовиться в 2019 году: тренды в программировании - 1
Читать полностью »

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

По правде говоря, я ничего не понимаю в комиксах, но люблю барахолки, особенно в формате форума, какие были популярны в нулевых. Отсюда, допущение (возможно ложное), из которого проистекают последующие выводы, только одно — основной тип взаимодействия с приложением — просмотр, второстепенные — размещение объявлений и обсуждение.

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

Читать полностью »

Когда вы пишите command line утилиту, последнее, на что вам хочется полагаться, так это на то, что на компьютере где она будет запущена установлен JVM, Ruby или Python. Так же хотелось бы на выходе иметь один бинарный файл, который будет легко запустить. И не возиться слишком много с memory management'ом.

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

У Go относительно простой синтаксис, неплохая стандартная библиотека, есть garbage collection, и на выходе мы получаем один бинарник. Казалось бы, что еще нужно?

Не так давно Kotlin так же стал пробовать себя на схожем поприще в форме Kotlin Native. Предложение звучало многообещающе — GC, единый бинарник, знакомый и удобный синтаксис. Но все ли так хорошо, как хотелось бы?
Читать полностью »

Делаем мессенджер*, который работает даже в лифте - 1 *на самом деле мы напишем только прототип протокола.

Возможно, вы встречались с подобной ситуацией – сидите в любимом мессенджере, переписываетесь с друзьями, заходите в лифт/тоннель/вагон, и интернет вроде ещё ловит, но отправить ничего не получается? Или иногда ваш провайдер связи неправильно конфигурирует сеть и 50% пакетов пропадает, и тоже ничего не работает. Возможно, вы думали в этот момент — ну ведь можно же наверное как-то сделать, чтобы при плохой связи всё равно можно было отправить тот маленький кусочек текста, который вы хотите? Вы не одни.

Источник картинки

В этой статье я расскажу про свою идею для реализации протокола на основе UDP, который может помочь в этой ситуации.
Читать полностью »

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

Скрытый текст

Баланс электрических мощностей — штука, безусловно, хорошая, но ведь ошибиться можно и в нем. На выручку приходит моделирование. Симуляторы электрических цепей имеют богатую историю, и собрать модель цепи постоянного тока, например, в LTspice проблем не составит. Но это если в наличии у студента есть ноутбук или достаточный парк компьютеров в учебной аудитории. А так бывает не всегда и не везде :-) Есть симуляторы с графическим интерфейсом и для смартфонов, но удобство их использования — вопрос спорный. Но даже если симулятор и доступен, есть своеобразная проблема с моделированием установившегося режима цепей синусоидального тока. Если их моделировать в "transient"-режиме, то возникает вопрос с учетом длительности переходного процесса, возникающего при включении цепи — проблема "steady state detection". Но, скажете Вы, есть же режим "AC analysis". Это, конечно, так, но удобство его использования и интерпретации его результатов при решении учебной задачи расчета цепи синусоидального тока — на большого любителя. И о реактивных и полных мощностях симулятор тоже ничего не знает, да и определение показаний ваттметра — дело далеко не тривиальное.

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

Браузер может быть любым, даже текстовым — вот, например, симуляция в Lynx:

image
Читать полностью »

Безликий код убьет программирование, и ничего мы с этим не сделаем - 1

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

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

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js