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

Решение проблемы сложения и вычитания чисел с плавающей точкой

Доброго времени суток. Как Говориться, краткость — сестра таланта, поэтому статья будет четкой и максимально информативной.


Введение


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



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

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

Первый взгляд на Pipelines.NET

Pipelines.NET это C# библиотека, цель которой сделать код читабельнее, проще для тестирования и следовать принципам SOLID. Любой логический процесс может быть разделён на шаги, и эта библиотека даёт пользователю инструменты для разделения логики на шаги, которые в последующем могут быть объединены.

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

Чем отличаются статические функции/переменные от функций/переменных на классе?

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

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

Радиационное загрязнение в Хибинах после ядерных взрывов


Во времена СССР в Хибинах, в недрах горы Куэльпорр, проводились мирные ядерные взрывы. Взрыв «Днепр 1» — в 1972 году и два взрыва «Днепр 2» — в 1984 году. Целью этих взрывов являлось дробления апатитовой руды для облегчения ее добычи.


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

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

Микро-мануал по Glade

Glade — это приложение, позволяющее создавать GUI на Gtk+ не кодом, самостоятельно выделяя память для того или иного виджета, инициализируя его и помещая в контейнер, а при помощи визуального конструктора.

Данная программа имеет открытый исходный код, распространяется абсолютно бесплатно.
Читать дальше →

Как отправить аудиофайл как голосовое сообщение ВКонтакте через python с примерами

В 2017 замечательный человек по имени Станислав Куделко собрал информацию о загрузке голосовых сообщений ВКонтакте, а Пётр Самохин написал об этом статью на хабре, но мне показалось, что она недостаточно понятная, поэтому сейчас я опишу весь процесс от подготовки файла к загрузке до отправки голосового сообщения в ЛС пользователю с Python.
Читать дальше →

Шаблоны проектирования в Go (Фабрика)

Привет, Хабр! Представляю вашему вниманию перевод статьи «Design Patterns: Factory Pattern» автора Shubham Zanwar.

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

Магазин домашних животных


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

Взгляд владельца


Предположим, что вы владелец магазина с собаками (для упрощения: раздаете щенков). С тех пор как вы в мире IT, каждая собака это экземпляр класса Dog. Когда приходит посетитель, вы просто создаете новый экземпляр Dog и отдаете щенка.

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

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

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

type Pet interface {
    GetName() string
    GetAge() int
    GetSound() string
}
Читать дальше →

Особенности национального (создания фреймворков)

image

Здравствуйте! Вышло так, что скоро у меня защита проекта в 10 классе (в конце декабря). А так как все мои достижения можно пересчитать по пальцам одной руки, я решил сваять свой сайт-электронный дневник, со всякими фичами и приколами, в общем то, что у меня получается максимально хорошо. Уже в процессе выбора, как собственно делать то этот проект, зародилась крутая идея запилить свой максимально легковесный php-фреймворк, о чем я и хотел вам поведать…
Читать дальше →

C# .ToString() – неявное ускорение

Приветствую!

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

Добавление поддержки USB-носителей в MS-DOS

На досуге я решил попробовать завести поддержку USB в среде MS-DOS. Мне просто стало любопытно, смогу ли я использовать обычные флэшки для обмена данными со своим ретро-ПК или нет. С Windows 9x это оказалось очень просто. DOS – это, конечно, Древняя Операционная Система, но это не повод не попытаться сделать свою жизнь чуть удобнее. Все же, USB – основное средство обмена информацией между моим современным ПК и ретро-машинами.
Читать дальше →

KeePassXC – Надежное решения для хранения паролей

KeePassXC — Надежное решения для хранения паролей


image


Для хранения паролей рекомендуется использовать менеджеры паролей, об одном из таких менеджеров паролей и пойдет речь. KeePassXC является надежным способом для хранения паролей, является форком еще одного менеджера паролей KeePassX, преимущество KeePassXC заключается в его развитии, а точней в его разработке. KeePassXC Развивается довольно таки стремительно и часто обновляется, тем самым делая новые фитчи в интерфейсе самой программы и исправлении ошибок. На сегодняшний день, осмелюсь предположить, это лучший менеджер паролей, надежный и что не мало важно, с открытым исходным кодом. Поддерживает алгоритмы шифрования – AES, Twofish или ChaCha20, имеет совместимость с другими менеджерами паролей – KeePass2, KeePassX, KeeWeb. Имеет интеграцию с браузерами Google Chrome, Chromium, Mozilla Firefox.

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

«Умная» змейка на JavaScript используя QLearning

Здравствуйте, сегодня я хочу вам поведать о том как быстро написать ИИ на JavaScript.

Для начала напишем основу сайта на HTML.

Загружаем bootstrap, и фавиконку(иконку сайта):

<!DOCTYPE html> 
<head> 
    <link rel="stylesheet" href="bootstrap.css"> <!--Вот здесь импортируем bootstrap-->
    <favicon src="FAV.ico" class="ico"></favicon><!--А здесь фавиконку(иконку сайта)-->
</head>

Создаем «Контейнер» и заголовок.


<body><!--Открываем тег body -->
        <br><!-- переносим строку -->
        <div class="container"><!-- Создаем элемент контейнер -->
            <H4>Qnake - made with Qlearning</H4><!-- Создаем заголовок -->

Создаем таблицу:


 <div class="row"> <!-- Создаем элемент строк -->
                    <div class="col-sm-6" id="game"> <!-- Здесь оставляем место где будет сама змейка -->
                    </div>
                        <div class="col-sm-8">  <!-- открываем место для таблицы -->
                        <table class="table table-bordered"> <!-- Создаем таблицу -->                           
                                <thead class="thead-dark"><tr><th>Control Panel</th><th>Value</th> </tr></thead> <!-- Делаем верх таблицы -->


Заполняем таблицу:

                                    <tbody>
                                    <tr><td>Highest Score</td><td> <input type="text" id="hscore" disabled="true" value="0"></td></tr>  <!-- Делаем строку таблицы и заблокированный ввод Высшего балла змейки -->
                                    <tr><td>No. Epochs</td><td> <input type="text" id="epoch" disabled="true" value="0"></td></tr> <!-- Делаем строку таблицы и заблокированный ввод Количества эпох змейки -->
                                    <tr><td>Rules Learnt</td><td> <input type="text" id="rlearnt" disabled="true" value="0"></td></tr> <!-- Делаем строку таблицы и заблокированный ввод количества правил что выучила змейка -->
                                    <tr><td>Game Speed(ms)</td><td> <input onchange="u1();" type="text" id="gspeed" value="0"></td></tr> <!-- Делаем строку таблицы и разблокированный ввод задержки движения змейки -->
                                    <tr><td>Learning Rate</td><td> <input onchange="u2();" type="text" id="lrate" value="1"></td></tr> <!-- Делаем строку таблицы и разблокированный ввод скорости обучения  змейки -->
                                    <tr><td>Discount Factor</td><td> <input onchange="u3();" type="text" id="dfactor" value="1"></td></tr> <!-- Делаем строку таблицы и разблокированный ввод  Коэффициента скидки  змейки -->
                                    </tbody>

Закрываем теги и загружаем скрипты:

                                    </tbody>
                                </table>
                            </div>
                        </div>
                    </div>
                    <script src="jquery-2.1.0.js"></script>
                    <script src="script.Js"></script> 
                </body>
            </html>


Отлично, с самым простым разобрались…

теперь время JavaScript…

Я просто вставлю код с комментариями вы же не против?

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

Прокачиваем WiFi на пожилом MacBook 2012

Старые макбуки все еще легко справляются с выполнением повседневных задач, без труда можно найти множество статей по установке SSD и оперативной памяти, которые дают дополнительный прирост производительности, но это решает лишь часть проблем. В какой-то момент приходит осознание того, что сеть WiFi работает медленно, а желание покупать новый ноутбук все еще не появилось. Делюсь опытом “прокачки” WiFi на своем MacBook Pro 15” 2012 с позиции человека знакомого с сетевыми технологиями на потребительском уровне.


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

Эксперемент с классификацией текста с использованием Tensor Flow

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


Я придумал себе следующую задачу: используя базу данных AMAZON_FASHION_5.json (скачать можно тут), научиться по написанному комментарию пользователя к товару предсказывать оценку пользователя. Запись базы данных имеет следующий вид:
{"overall": 5.0, "verified": true, "reviewTime": "06 28, 2018", "reviewerID": "A2IBS6PIPAGAB5", "asin": "B0014F7B98", "style": {"Size:": " 5 B(M) US", "Color:": " Wolf Grey/Black-pink Blast/White"}, "reviewerName": "J. Avila", "reviewText": "My favorite cross trainers!", "summary": "Comfortable", "unixReviewTime": 1530144000}

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

Приближаем переворот в теоретической физике

О событии


Летом этого года в издательство НПК ПРАВДА поступила долгожданная рукопись книги автора Ворошилова В. В., завершающей серию рукописей «Основы единой физической теории».
Нас, организаторов издательства, однокурсников, выпускников радиотехнического факультета Ленинградского института авиационного приборостроения 1985 года, со студенческой скамьи, удивляла и раздражала неполнота и противоречивость теоретической физики, особенно квантовая механика, лишенная физического смысла, по признанию самих ее создателей.

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

Простейший Parallax на базе библиотеки RevolveR

Дело было вечером и делать было нечего. Потягивая кофеёк и смакуя сигареткой, я решил слегка проагрейдить интерфейс моего framework какими ни будь parallax эффектами. Написав плагин к системе я подумал: «А почему бы не сделать упрощенную версию для врезки в web-страницы».

RevolveR simple Parallax
Читать дальше →

Как подключить MySQL к бесплатной версии Intellij IDEA (community)



Привет, сегодня покажу как подключить Ваше приложение к базе данных (БД) в бесплатной версии Intellij IDEA (community).В статье будет: много картинок, мало букв, будет интересно и полезно.

Статья ориентирована на людей уже знакомых с Java Core и MySQL.
Читать дальше →

Стартап с новым подходом к извлечению информации со сканов. А надо ли?

Доброго времени суток.

Меня зовут Алексей, я программист 1С и у меня есть идея, которая может быть полезной, а следовательно приносить прибыль, более того есть работающий прототип, но, прежде всего, нужна обратная связь от людей, а надо ли это вообще? Данным постом я прежде всего хочу отметить для себя, надо ли мне тратить уйму часов своей жизни для развития данного продукта, если он никому не нужен? Начну по порядку.
Читать дальше →

Установка и настройка сервера кассовой программы UaMenu на платформе СУБД ORACLE

Перечень действий для установки и настройки кассовой программы


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

Предварительные условия


1. Необходимо наличие бухгалтерской схемы — отдельной схемы БД.

2. На кассовых серверах очень желательно наличие возможности одновременной удалённой работы нескольких пользователей (или возможность подключения при помощи RAdmin, VNC и т. п.).

3. На одном из кассовых серверов необходимо наличие дистрибутивов используемого ПО.
(Oracle Client, CoreFiles, Good/UAMnenu, QLoad, uniaccFileCopy, программа для разблокировки к.а.), а также документации для используемого оборудования (кассовый аппарат, сканеры, весы).

4. Требуемая кодировка БД – CL8MSWIN1251
(select value from nls_database_parameters where parameter = 'NLS_CHARACTERSET').

Изменение кодировки для Oracle XE – см. примечание 5*.

5. Параметр global_names на всех БД должен быть установлен в true.

6. Имена БД на кассовых серверах (select global_name from global_name) должны быть уникальными.

В случае необходимости можно изменить:
alter database rename global_name to name.domain.
7. Стабильная связь между бухгалтерской и кассовой схемой. (В случае проблем с VPN-соединениями см. примечание 1*).

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

Содержимое файла с названием магазина для весов DIGI (F52) можно сформировать при помощи функции make_f52_shop_name из пакета Unirest_Util.
Читать дальше →