mynine: (japan)
Готовлюсь к очередной командировке: собираю бумаги, вещи, рабочий инструмент. Два дня убил на запуск Visual Studio 2015 на новом ноутбуке - ставлю с нуля на чистую машину и при любой попытке войти в отладчик студия падает. Интернет никаких разумных версий решения не дал. Я переставлял версии, сносил апдейты, сбрасывал настройки, отключал экстеншены, сбрасывал к начальным установкам операционку и переставлял все с нуля, пофигу: как вылетала даже на Hello,World! так и вылетает. В отчаянии я уже начал обдумывать планы как обходиться без отладчика, как вдруг, о чудо - заработало. Что именно произошло я так и не знаю. Но незадолго до того я запустил студию в safe mode и после падения разрешил ей самой себя отладить. Запустился отладчик, ничего не сделал, но сказал что программа завершена с кодом нуль. Но теперь все работает. Шаманство, ей-богу.
mynine: (japan)
На этой неделе у меня на работе произошло прямо-таки знаменательное событие: удалось запустить новую web-версию программы для нашего склада компонентов. В самой-то программе не было бы ничего особенного, но пришлось туда еще добавлять поддержку проектов разработки и производства, внешних баз и прочего добра. С перерывами я мучился с ней в одиночку года полтора, сделал несколько пробных версий пока получил хоть что-то что не вызывало отвращения у меня самого. И сейчас конечно она еще очень сырая и потребует многих недель допиливания, но главное, удалось начать уже работать с измененной идеологией нижнего уровня.

PS И все больше прихожу к убеждению что языков типа пхп надо избегать в использовании для сложных проектов. Поддерживать их одни страдания...
mynine: (japan)
В последние дни опробовал парочку новых для себя приемов в программировании совсем в разных областях: запустил coroutine в скриптах Lua внутри моего приложения и понял как использовать шаблоны C++ с переменным числом аргументов.

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

А variadic шаблоны C++ позволяют нынче делать совсем уже прежде немыслимые вещи для статически типизированного языка - создавать функции с переменным числом аргументов любых типов и получать внутри доступ ко всем этим аргументам через перебор. Крутотень! Сейчас, правда, код выглядит слегка перегруженным, потому что в современном C++ нет стандартных методов перебора элементов кортежа, но, надеюсь, они скоро будут и тогда код упростится совсем.
Пример кода функции логгера с переменным числом аргументов )
mynine: (japan)
Гугль, конечно, еще та корпорация добра. Пытаюсь собрать библиотеку для Андроида с нативным кодом. Квест этот достаточно забавный - я его проходил несколько лет назад, а тут опять пришлось взять в руки шашки. Так вот, когда лезешь за Android SDK гугль вывешивает большие баннеры с хвалебными отзывами о своей Android Studio - "переходите все на новую версию, все фичи есть, красиво быстро и удобно", а ADT для Eclipse - прежняя среда разработки, больше не поддерживается. Ага. Даже найти архивы только с SDK без студии непросто - дескать, не нужны они вам.

Следующий шаг - лезешь за свежим Android NDK, а там инструкция только как настроить Eclipse для работы с NDK! Ну не поддерживает их хваленая (кстати, реально неплохая) студия нативную сборку. Говорят, есть методы через одно место, но в Eclipse все намного проще. И зачем тогда надо было отказываться от испытанных вещей ?!

VS2015

Feb. 9th, 2016 11:14 am
mynine: (japan)
Несколько недель тестирую сабж (первый апдейт вышел в декабре). Пока все хорошо. Перехожу аж с VS2010, потому как промежуточные релизы не пошли - некоторые мои проекты ими не собирались. С этой все хорошо. Приятно что поддерживается много новшеств свежих стандартов C++ (впрочем, и в предыдущих версиях тоже было).

Радует полноценность бесплатной версии Community (скачивается прямо с сайта MS, бесплатно для небольших групп разработчиков), прежние Express были сильно покоцаны в сравнении с платными версиями - не было библиотек и весьма полезных фишек среды. Добавили анализаторы кода и времени исполнения, компилятор 64 битных приложений и компилятор (!) для Windows ХР - теперь для нее нужны отдельные бинарники. Рефакторинг кода вроде бы сделали, но пока очень убогий в сравнении со средами для Java. Спасибо и на том. Перестал глючить поиск в коде деклараций и определений: в десятке при подключенных тяжелых библиотеках типа Boost клик на Go to Definition приводил к зависанию среды минут этак на 5-10. Изменений хороших много - все перечислять времени не хватит.

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

PS Забавный факт - по умолчанию при установке студии компилятор и библиотеки языка C++ не ставятся - надо отмечать галочки в инсталляторе.
mynine: (japan)
На волне ностальгии по домашнему рукоделию купил себе плату Arduino.
Это семейство процессорных и периферийных плат для любительских самоделок на микроконтроллерах фирмы AVR. Есть самые разные варианты процессорных плат по размеру, числу контактов входов/выходов, интерфейсов и размеров. Есть, например, комплект для сборки роботов на колесиках с датчиками, лампочками, пищалками и тд. Если что-то интересует, смотрите на сайте http://arduino.cc.

Ну, внешние навески я и сам с удовольствием спаяю, было бы к чему подключить. Поразмышлял и решился на процессорную плату Arduino Mega с увеличенным число входов/выходов и бoльшим объёмом памяти. В Петербурге это добро продается у многих компаний и частных лиц. Я выбрал мне наиболее удобное географически место и в десяти минутах пешком от дома заплатил 1200 руб за запечатанную в пакетик платку вместе с коротким USB-кабелем.

IMG_7197
Read more... )
mynine: (japan)
Хороший пример программистского минимализма - программа в 500 строк на СИ которая компилирует и исполняет программы на СИ!

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

>c4 c4.c c4.c c4.c hello.c
hello, world
exit(0) cycle = 9
exit(0) cycle = 22609
exit(0) cycle = 9212725
exit(0) cycle = 926770891


подглядел у spamsink'a
mynine: (japan)
Потратил сегодня часа три на поиски ошибки у себя в коде, проявляющейся в периодическом пропадании звука. Перед праздниками все работало без запинки. Крутил так и этак, восстановил часть кода, все подозрительные места обвешал трассировками, даже прошелся для верности под отладчиком. Ни-че-го. Что за фантастика?.
И в конце-концов случайно обнаружил )

Къют

Nov. 1st, 2013 12:47 pm
mynine: (anna japan)
Возню с ремонтом пришлось пока притормозить, потому что во-первых, кролик издох ждём пока поставят новые окна (сейчас пик заказов), а во-вторых, обещание дать мне до конца года отдых от сверхурочного софтописания было благополучно забыто и взволнованный заказчик прибежал с криком "Бросай всё, от меня требуют новые продукты, а твой ремонт я частично беру на себя!" Мн-да, а так все хорошо начиналось...

Пришлось засесть за изучение ситуации - поскольку требуется написать частично пересекающиеся программы под разные платформы, то решил поэкспериментировать с широко известной библиотекой Qt для C++.
Read more... )
mynine: (anna japan)
До сих пор считал boost (набор C++ библиотек) вполне вменяемым проектом. С качественными разработками и хорошей поддержкой (правда, уровень вхождения высоковат). Пользуюсь давно, много полезных вещей оттуда взял. Но сегодня моя уверенность слегка припала.
оно вам надо? )
mynine: (anna japan)
Любопытную арифметическую головоломку тут вычитал. Формулировка понравилась:

Были выбраны два натуральных числа больше 1 и меньше 100. Сумму этих чисел сказали одному человеку (математику, видать:), а произведение другому. Назовем первого А, второго Б. Какое число дали другому они понятия не имеют. И вот через некоторое время Б звонит по телефону А и говорит:
- Я не могу вычислить эти числа.
- А я знаю что и не смогли бы никогда.
- Раз так, то я знаю эти числа!
- Ну тогда и я знаю их!


Ну и вопрос - что же это были за числа? Да, ответ, конечно, можно нагуглить, но я сам честно её решал. Признаюсь, что до конца не смог досчитать (хотя в основном я был прав), пришлось воспользоваться подсказками. В Сети есть длинное рассуждение как строго решить задачу без помощи компьютера, но если написать несложную программу, то все проще. Главное тут сообразить какую именно информацию дает этот разговор. А дальше дело техники.
Вот я предлагаю вам просто подумать - как следует решать эту задачу?

PS:Если кто-то напишет программу для решения, можем обсудить и мой вариант тоже :)
mynine: (Default)
35 = 53
Почему? И сколько таких пар имеется, скажем, среди чисел до миллиарда?

Read more... )

Upd: судя по всему, таких пар вообще всего четыре.
mynine: (Default)
Вчера некий программер-новичок попросил срочной помощи на форуме: "Kindly solve my below problem ASAP!" (ASAP - as soon as possible). Далее описание проблемы (неправильно выводятся слова на хинди, ага) и еще несколько умоляющих предложений, начинающихся с kindly.
Я предложил ему свое решение через полчаса, еще несколько человек отписалось, раз такая срочность. Ну и чо? Сутки прошли - ни ответа, ни привета. Вот тебе и ASAP.
Внимание вопрос: большое ли будет желание помогать такому перцу решать его проблемы в будущем?
mynine: (Default)
Пробую тут пересобрать один из своих виндовских проектов на C++ под linux. Ага. Конечно, он изначально так писался, чтобы теоретически быть кроссплатформенным, с минимумом прямых вызовов WINAPI. Но вот настал тот час , когда я здесь и вижу вас и сразу вылезла тьма разных системных определений и куча прочих ошибок компиляции.

Объём работы вдохновляет, но в данный момент более всего раздражающим оказался следующий момент: регистрозависимость имен файлов в *nix системах. Под Windows файлы SomeFile.txt и somefile.TXT обозначают одно и то же имя, поэтому многие и не задумываются как именно писать. Я тоже. А в юниксовых системах это различные файлы. При компиляции под Windows проект собирался прекрасно, но под Linux повалили ошибки с неизвестными файлами - расширения у исходных файлов и указанных имен в исходниках оказались в разных регистрах. И я ведь даже не могу вспомнить почему, например, часть файлов создалась с расширением "h", а часть "H".

Самый правильный способ - исправить все файлы, привести к одному регистру. Но это нетривиальная задача, как оказалось. Можете ради интереса попробовать переименовать в Проводнике файл так, чтобы у него часть символов сменила регистр - с заглавных на строчные или наоборот. Фиг вам. Файловые менеджеры справляются с этой задачей, но фишка в том что исходники у меня как положено лежат в репозитарии системы контроля версий. И при проверке обновлений или выкладывании имя файла меняется на прежнее. Переименовывать файлы в репозитарии со сменой регистра сабвершн тоже не хочет. Единственный найденный путь: удалять файлы из репозитария, фиксировать изменения, потом переименовывать в файловом менеджере файлы, и затем снова вносить в репозитарий с фиксацией. Такое вот развлечение.

Мораль - думать надо.
mynine: (Default)
Домучал сегодня книгу Брюса Эккеля "Thinking in Java", четвертое издание. Как пишут в интернетах знаменитый автор, супер-пупер книга и тд и тп.

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

Может виноват перевод (вообще, я думал что скачал английский оригинал), а может действительно Брюс без особого энтузиазма пишет о Java. Вначале он вообще признается что лучшим языком считает Python. Несколько раз по тексту встречаются оговорки типа - "я не знаю почему авторы языка сделали именно такой выбор, когда гораздо лучшим было бы сделать по-другому". Встречаются и признания что некоторые библиотеки сделаны так, что для их использования программисту обязательно придется написать много вспомогательного кода. В общем, мне показалась некоторая отстраненность писателя от темы, что конечно сказалось на ощущении от книги и пока нового для меня языка программирования.

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

Profile

mynine: (Default)
ИБО

March 2017

S M T W T F S
   1 234
5678910 11
12131415161718
19202122232425
262728293031 

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 24th, 2017 11:08 pm
Powered by Dreamwidth Studios