Как стать автором
Обновить
560.7
Рейтинг

Программирование *

Искусство создания компьютерных программ

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Преобразуем строки в числа в разных системах счисления

Программирование*Java*
Tutorial

Одной из частых рутин на работе является преобразование и извлечение чисел из строк текста. Самый наивный и простой подход в языке Java при преобразовании строки в число, это использовать Double.parseDouble(String num). Проблема этого метода в том, что он имеет баги в различных SDK, например в Android. Кроме того, данному методу не передаётся информация об основании системы счисления. Можно, конечно, использовать классы оболочки, передавая им в конструктор основание системы, но хотелось бы извлекать данную информацию из самой строки автоматически.

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

Перейти к тексту
Всего голосов 5: ↑1 и ↓4-3
Просмотры722
Комментарии 3

Новости

Показать еще

Физика на вашей футболке: векторные поля и генеративное искусство

Блог компании SkillFactoryРазработка веб-сайтов*Программирование*TypeScript*Физика
Перевод

Frontend-разработка и разработка вообще — это не только код и экран, но и предметы генеративного искусства, которые можно сделать принтом или перенести на настоящие холсты, повесить на стену вашей комнаты и, переводя взгляд с монитора, наслаждаться приятной глазу абстракцией.

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

Читать далее
Всего голосов 8: ↑6 и ↓2+4
Просмотры1.7K
Комментарии 1

Прагматичные Unit тесты на Golang

Тестирование IT-систем*Программирование*Go*Тестирование веб-сервисов*
Из песочницы

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

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

Читать далее
Всего голосов 13: ↑10 и ↓3+7
Просмотры1.5K
Комментарии 2

Google Sheets API + Python. Чтение и запись с Сервисным Аккаунтом Google Cloud

Python*Программирование*Google API*
Tutorial

Google Sheet и Sheets API - классный (простой, бесплатный и универсальный) способ организовать хранение и анализ данных получаемых от своего сервиса. При условии что этих данных не то чтобы очень много и поступают они не то чтобы очень часто.

У меня таких задач хватает и решаю я их либо на Python, либо на PHP. Сегодня возьму в руки Python и покажу как начать читать таблицы Google Sheets на Python и писать в них данные из кода с помощью Google Sheets API.

Невероятно интересно, продолжай...
Всего голосов 2: ↑1 и ↓10
Просмотры1.8K
Комментарии 2

Эволюция Docker. Часть 2.3

Программирование*Виртуализация*Go*DevOps*История IT

Данная статья является четвертой в цикле (1, 2, 3), посвященном изучению исходного кода Docker и прямым продолжением предыдущей статьи, которую мне пришлось преждевременно завершить в виду зависания редактора хабра. В этой статье мы закончим изучать код первого публичного релиза Docker v0.1.0. Будут рассмотрены оставшиеся команды по управлению контейнерами, сетевой стек, а также создание образа и запуск контейнера.

Читать далее
Всего голосов 3: ↑1 и ↓2-1
Просмотры1.2K
Комментарии 2

Эволюция Docker. Часть 2.2

Программирование*Виртуализация*Go*DevOps*История IT

Данная статья является третьей в цикле (1,2), посвященном изучению исходного кода Docker и прямым продолжением предыдущей статьи, в которой мы начали разбирать код первого публичного релиза Docker v0.1.0. В этой части будет рассмотрена реализация практически всех команд, а в конце, мы создадим образ и запустим докер контейнер на его основе. Для удобства я постарался разбить список команд на условные группы: работа с образами, работа с контейнерами, сетевой стек и т.д. 

А теперь, как говорится, “without further ado”, приступим к изучению кода из файла commands.go начиная с команд для управления образами (images).

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Просмотры1.5K
Комментарии 0

Как достичь максимального счастья в обществе? (теория игр)

Python*Программирование*Алгоритмы*Математика*

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

Возникает логичный вопрос: а можно ли с помощью концепций теории игр смоделировать поведение индивидов в обществе?

Ознакомиться
Всего голосов 2: ↑2 и ↓0+2
Просмотры2.7K
Комментарии 7

Загадки Enum'ов

Программирование*Java*

Перечисления появились в пятой версии Java и с тех пор крепко обосновались в наших приложениях. Работа с перечислениями почти не отличается от работы с любыми другими классами в Java. Но есть несколько особенностей, которые вызывают удивление. Каждый раз сталкиваясь с ними, хочется спросить: "Почему так?".


Давайте попробуем разобраться.

Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Просмотры7.6K
Комментарии 13

Пол Грэм: Странные языки программирования

Ненормальное программирование*Программирование*Учебный процесс в IT
Перевод
В процессе обучения тому, как говорить то, что вы раньше не могли сказать, вы, вероятно, научитесь думать то, о чем раньше не могли думать.


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

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

Но остальные 0,5% программирования непропорционально интересны. Если вы хотите узнать, из чего он состоит, странность странных языков — хороший ключ к разгадке.

Странные языки странны не по воле случая. По крайней мере, не самые хорошие. Странность хороших обычно подразумевает существование некоторой формы программирования, а не просто обычное соединение библиотечных вызовов.

Конкретный пример: макросы Lisp. Макросы на Lisp кажутся странными даже многим программистам на Lisp.
Читать дальше →
Всего голосов 40: ↑16 и ↓24-8
Просмотры9.2K
Комментарии 13

Взять и собрать DAW — помогут эти инструменты

Блог компании АудиоманияЗанимательные задачкиПрограммирование*Звук

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

Читать далее
Всего голосов 9: ↑7 и ↓2+5
Просмотры1.6K
Комментарии 0

Как найти и купить дом, если вы Data Scientist

Блог компании SkillFactoryPython*Программирование*Геоинформационные сервисы*Машинное обучение*
Перевод
Tutorial

Атма Мани, переводом статьи которого мы делимся к старту флагманского курса по Data Science, — ведущий инженер по продуктам ArcGIS API для Python в компании Esri. В этом материале он рассказывает, как при помощи ArcGIS и Python создать модель, выводящую короткий список домов в соответствии с потребностями и желаниями покупателя. Ссылку на репозиторий GitHub вы найдёте в конце статьи.

Читать далее
Всего голосов 10: ↑8 и ↓2+6
Просмотры6.4K
Комментарии 7

«Мир Hi-Fi»: обсуждаем муз. программирование, звуки ОС, аудиосоцсети, стриминг и редкие композиции

Блог компании АудиоманияПрограммирование*СофтЗвук

Мы делимся не только обзорами аудиотехники, но и тематическими научпоп материалами о звуке и музыке в различных проявлениях и сочетаниях с технологическими решениями. Сегодня публикуем очередную подборку таких заметок из нашего «Мира Hi-Fi» — собственного журнала «Аудиомании».

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Просмотры2.2K
Комментарии 2

Библиотека СleanAPI: cоздаем микросервис на Python за 30 секунд

Python*Программирование*API*Микросервисы*
Из песочницы

Использование микросервисной архитектуры для построения корпоративных приложений взамен традиционной монолитной — популярный тренд в веб-разработке.

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

Мой выбор — Tornado. Поработав с Tornado в паре коммерческих проектов, я в целом остался доволен результатами. Однако, как бы ни было хорошо, всегда хочется чего-то большего.

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

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Просмотры8.5K
Комментарии 11

Языки Data Mining и AI переживают бум

Блог компании SkillFactoryPython*Программирование*Исследования и прогнозы в ITКарьера в IT-индустрии
Перевод

Смартфоны много лет назад стали хитом, а за ними последовали языки программирования мобильных приложений. Достигший пика на третьей позиции Objective-C использовался только для iPhone. Сегодня ту же картину мы видим в Data Mining и искусственном интеллекте: языки программирования в этих областях переживают бум.

Ярчайший пример — Python, отвоевавший вторую позицию у Java. Благодаря этому возродился Fortran, но не только он. Подробности, которыми делимся к старту флагманского курса по Data Science, читайте под катом.

Читать далее
Всего голосов 17: ↑9 и ↓8+1
Просмотры5.3K
Комментарии 2

JavaScript: 2 интересных примера практического использования Intersection Observer API

Блог компании TimewebРазработка веб-сайтов*JavaScript*Программирование*


Привет, друзья!


На днях мне посчастливилось заниматься решением 2 несложных, но довольно интересных задач на чистом JavaScript (из-за React чуть не забыл, как это делается). В процессе решения этих задач никто не пострадал, напротив, все остались довольны. Поэтому я решил поделиться результатами с сообществом.


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


Введение


Итак, задачи были следующими:


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




  • Реализовать "ленивую" (отложенную, lazy) загрузку медиаресурсов (изображений, аудио и видео), поскольку те же изображения даже после сжатия с помощью gulp-imagemin весили (и весят, потому что они никуда не делись) неприличные 50 Мб и загружались при запуске приложения (больше они себя так не ведут).
Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Просмотры4.5K
Комментарии 17

Таблица актуальности фактических данных как архитектурное решение

Python*Программирование*Машинное обучение*

Таблица актуальности фактических данных как архитектурное решение

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

Суть задачи.

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

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

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Просмотры816
Комментарии 0

Go: стоит ли использовать указатели вместо копий структуры?

Блог компании OTUSПрограммирование*Go*
Перевод

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

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

Читать далее
Всего голосов 10: ↑4 и ↓6-2
Просмотры2.9K
Комментарии 10

Кратко об указателях в Си: присваивание, разыменование и перемещение по массивам

Программирование*Системное программирование*C*
Tutorial

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

Читать полностью
Всего голосов 17: ↑4 и ↓13-9
Просмотры4.2K
Комментарии 10

Эволюция Docker. Часть 2.1

Программирование*Виртуализация*Go*DevOps*История IT

Данная статья является второй, в цикле по истории развития и изучению исходного кода Docker. В ней мы разберем, что представлял собой первый публичный релиз от 23 марта 2013 года. 

Изначально я планировал уложить весь материал, посвященный этой версии, в одной статье, но в процессе стало ясно, что она получается слишком большой, поэтому я решил разделить ее на две. В текущей части (2.1) будет рассмотрена лишь общая структура и начальный код, а последующая часть (2.2) будет посвящена принципу работы и коду конкретных команд.

Некоторые части кода уже были разобраны в первой статье, так что для полноты восприятия, рекомендую начать с нее, а также пятиминутной презентации The Future of Linux Containers, на которой и была представлена первая версия Docker.

Читать далее
Всего голосов 7: ↑5 и ↓2+3
Просмотры3.2K
Комментарии 0

Сервис просмотра и редактирования библиотек геометок

Программирование*Maps API*Геоинформационные сервисы*Тестирование веб-сервисов*VueJS*

В 2018 решил освоить Vue.js, так, для общего развития, а как известно, лучший способ освоить язык/фреймворк/etc — начать писать. В голову пришла довольно простая идея, которая со временем выросла в довольно большой проект — онлайн сервис «Места», позволяющий создавать свои коллекции мест на карте, геометок, с подробной информацией о них. Собирать их в альбомы, сортировать в дереве папок, просматривать, редактировать, обмениваться с другими, открывать для просмотра другим пользователям сервиса. Привязывать к местам фотоальбомы, экспортировать свои библиотеки в файлы JSON и GPX (для навигаторов, например), импортировать в свои библиотеки места других людей.

Идея была проста. Есть множество средств создания фотоальбомов, музыкальных плейлистов — с описаниями, возможностью сортировки, ссылками, преферансом и барышнями. А похожей полноценной картографической реализации толком нет. По крайней мере, я не нашёл.

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

Проект свободный (https://github.com/assador/places, сам действующий сервис пока здесь: http://places.scrofa-tridens.ru). Сейчас в планах помимо API Яндекс.Карт, которые отвечают, собственно, за карту, подключить и другие — OSM, 2ГИС и пр. Хочу добавить возможность добавлять к местам не только фото-, но и видео-, и аудиоальбомы. Развивать структуру прав и ролей пользователей, их связь друг с другом на сервисе, расшаривать библиотеки в соцсети и пр. Короче, для меня штука интересная.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Просмотры624
Комментарии 6

Вклад авторов