LINUX.ORG.RU

Сообщения Goganchic

 

Типы параметров лямбды в Scala

Форум — Development

Смотрю тут курс Scala на coursera и вот на что наткнулся:

вот такая штука - работает:

import collection.mutable.HashMap
List('a', 'a', 'b', 'c', 'c', 'c').foldLeft(scala.collection.mutable.HashMap[Char, Int]().withDefaultValue(0))(
  (r: scala.collection.mutable.Map[Char, Int], v: Char) => { r.put(v, r(v) + 1); r }
)

а вот такая - нет:

import collection.mutable.HashMap
List('a', 'a', 'b', 'c', 'c', 'c').foldLeft(HashMap[Char, Int]().withDefaultValue(0))(
  (r: HashMap[Char, Int], v: Char) => { r.put(v, r(v) + 1); r }
)

говорит про лябмду следующее:

[error]  found   : (scala.collection.mutable.HashMap[Char,Int], Char) => scala.collection.mutable.HashMap[Char,Int]
[error]  required: (scala.collection.mutable.Map[Char,Int], Char) => scala.collection.mutable.Map[Char,Int]
[error]       (r: scala.collection.mutable.HashMap[Char, Int], v: Char) => { r.put(v, r(v) + 1); r }

почему так?

 

Goganchic
()

Матан

Форум — Talks

Замечаю все чаще, что при разборе той или иной около-алгоритмической проблемы - не хватает матана. В универе на каком-то уровне учил, но этого явно недостаточно. Начал читать учебники Зорича и Фихтенгольца и вот какое дело: читаю до какого-то момента - все понятно, потом раз и застрял и дальше никак, смотрю в википедиях и прочих интернетах - там везде либо «отсюда очевидно следует» (а с моим математических критинизмом - это совсем не очевидно), либо же очень много подробностей, в которые закапываюсь и через 4 - 5 часов я уже не помню какой был начальный вопрос, а в голове каша.

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

 

Goganchic
()

kicad печатать инвертированно

Форум — Desktop

Решил на днях сделать плату негативным фоторезистом. Сделал разводку в KiCad, но с удивлением обнаружил что нет возможности сразу распечатать плату инвертируя цвета, чтобы шаблон для засветки. Да, можно начертить инвертированно и экспортировать в svg или ps, открыть результат в каком-нибудь gimp и распечатать, но как-то слишком много шагов (масштаб может еще не совпасть и придется что-то настраивать). Подскажите, может есть способ напечатать плату сразу инвертированно?

KiCad собирал недавно из bazaar, то есть версия достаточно свежая.

 

Goganchic
()

Посоветуйте платформер типа Trine

Форум — Games

Хочется платформер типа Trine и Trine 2, чтобы был мультиплеер. Может кто знает?

Goganchic
()

Не получаю правильного ответа на команду Programming Enable ATmega8A

Форум — Development

Пару месяцев назад собрал AVR программатор на ft232rl по схеме http://we.easyelectronics.ru/AVR/usb-programmator-dlya-mikrokontrollerov-avr-... В Windows на старой версии avrdude из статьи все работало, но мне очень хочется чтобы тоже самое работало и на Linux/MacOS. Для этого я решил для начала написать простую программу на libftdi 1.1, которая включала бы микросхему и пыталась послать команду Program Enable на ATmega8A https://gist.github.com/goganchic/b88c85b0ea652e66a320.

Какие проблемы наблюдаются:

  • перед отправкой команд я полностью очищаю буфер микросхемы. Потом в режиме SYNCBB я записываю и считываю одно и то же количество байт, но при этом чаще всего после выполнения всех команд остается 1 байт в буфере на чтение. Может быть я неправильно понимаю принцип работы синхронного bitbang режима у микросхем ft232rl?
  • ATmega8A неверно отвечает на команду Programming Enable, то есть такое ощущение что я то ли неправильно записываю эту команду, то ли неправильно вычитываю.

Железный сетап 100% безпроблемный, сужу об этом по следующим фактам:

  • если воткнуть этот же программатор в windows машину - то avr-ка прошивается как положено
  • на linux и mac os включал последовательно каждый вывод и проверял тестером
    • при записи 1 на выход (MOSI, SCK, RESET) - напряжение 5в, при записи 0 - напряжение 0в
    • при записи 0 в буфер - все выходы активны, при записи 1 в буфер - все выходы отключены
    • при подключении 0 к MISO - считывается 0, при подключении 5В - считывается 1

Подскажите пожалуйста в чем может быть баг? Такое ощущение что я делаю не так что-то очевидное, но из-за отсутствия опыта - дико туплю.

Заранее спасибо за ответы!

 ,

Goganchic
()

не могу посмотреть fuses на atmega8a-pu

Форум — Linux-hardware

Делал свой программатор на FT232 по схеме из http://we.easyelectronics.ru/AVR/usb-programmator-dlya-mikrokontrollerov-avr-... Подключил все выходы как положено (ATmega8A-PU: 7, 21 - +5V, 8, 22 - GND, 19 - SCK, 18 - MISO, 17 - MOSI). Пытаюсь прочитать fuses: с помощью SinaProg - результат никакой, т.е. лампочки на программаторе мигают, осциллограф показывает что какие-то импульсы на выводах есть - но в итоге fuse-ы прочитать не могу. ATmega пустая, раньше не прошивавшаяся. Попробовал тоже самое с помощью ArduinoISP и avrdude:

avrdude -c avrisp -P /dev/tty.usbmodemfd121 -p m8 -b 19200 -U lfuse:r:-:h -U hfuse:r:-:h -U efuse:r:-:h -U lock:r:-:h

Результат аналогичный - все плохо

avrdude: Device signature = 0xffffff
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.

опять же - лампочки мигают а результата никакого. Помогите начинающему avr-щику понять где он мог накосячить, заранее спасибо за ответы!

P.s. пробовал менять ATmega на другую такую же микросхему - ничего не изменилось.

 

Goganchic
()

Raspberry PI подвисает на загрузке USB устройств

Форум — Linux-hardware

Долгое время мой RPi работал нормально, но сегодня я что-то нахимичил с ним (подключил через GPIO АЦП и видать что-то замкнул) и теперь он останавливается на загрузке USB устройств. Если никаких внешних USB устройство не подключено - RPi подвисает при загрузке Ethernet-а (который по сути тоже USB). Причем самое интересное, что подвисает все это судя по всему не намертво: если когда все подвисло - выдернуть WiFi dongle - то на экране появится надпись, что WiFi dongle выдернулся.

Визуальный осмотр не выявил никаких горелых деталей или дорожек. Может быть какие-то предохранители перегрелись и нужно подождать? Может кто-то сталкивался с подобной проблемой? Подскажите, как быть? Вообще складывается такое впечатление, что RPi-ю просто не хватает тока чтобы запитать USB.

P.s. с блоком питания все в порядке, т.к. перетыкание флешки в запасной RPi привело к его (запасного RPi-я) успешной загрузке.

 

Goganchic
()

Микроконтроллер для PWM + GPIO и с I2C интерфейсом

Форум — Development

Господа, доброго времени суток.

Посоветуйте плз микроконтроллер PIC/AVR на базе которого можно было бы построить поделку для управления 4 портами PWM и 4 портами GPIO (5V). Все это дело будет взаимодействовать с Raspberry Pi по I2C.

 

Goganchic
()

sql для подсчета кармы

Форум — Development

Недавно появилась такая задачка: есть таблица с изменениями кармы пользователя. В таблицу добавляются записи вида: (id, user_id, , direction), где id - идентификатор записи, user_id - идентификатор пользователя, direction - направление изменения кармы может быть up или down. Нужно посчитать текущую карму для некоторого заданного пользователя.

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

id  user_id  direction
1   1        up
2   1        up
3   1        down

для пользователя с user_id=1 карма будет равна 1, но для записей

id  user_id  direction
1   1        down
2   1        up
3   1        down

для пользователя с user_id=1 карма будет равна нулю, так как первая запись не считается.

То есть если описать алгоритм подсчета кармы - он будет примерно следующий

  • инициализируем переменную карма=0
  • идем по каждой записи:
    • если direction == up - прибавляем к текущему значению кармы единицу
    • если direction == down
      • если текущее значение кармы > 0 - вычитаем из него единицу
      • если текущее значение кармы == 0 - ничего не делаем

никак не пойму, можно ли и если можно то как оформить данный алгоритм в виде sql запроса (база postgresql 9.2, если это имеет значение)

 

Goganchic
()

C++ парсинг HTML

Форум — Development

Решил написать небольшой парсер для некоторых HTML-страничек на старом добром C++. До этого в основном писал на Ruby/JS и привык к тому, что если надо распарсить HTML, то я просто делаю DOM-объект и выбираю нужные элементы с помощью css-селектора, примерно так:

  doc = SuperHtmlLib.parseHtml(html_string)
  doc.css('table#super-table td').each do |el|
    #do something
  end

Хочется чего-то похожего в C++. Смотрел Xerces - как я понял, эта библиотека может только XPath, а хочется именно css-селекторы. Неужели я первый кто хочет такого?

Уважаемые специалисты по плюсам, посоветуйте пожалуйста библиотеку для разбора HTML и работы с полученным DOM-деревом.

 , ,

Goganchic
()

туплю с простым sql запросом на группировку

Форум — Development

есть таблица bugs с полями id (primary key), project_id (foreign key -> project.id) и created_at (date). Нужно вытащить последний баг в каждом проекте, т.е. получить на выходе что-то вроде:

project_id: 10, id: 15, date: 2012-10-10

project_id: 11, id: 25, date: 2012-10-12

как реализовать такой запрос?

 

Goganchic
()

ruby vs python vs perl

Форум — Development

по работе мне приходится достаточно много времени программировать на Ruby, редко пишу скрипты на Python и вот недавно открыл для себя Perl. До этого писал только небольшие однострочники на этом прекрасном языке, а сейчас посмотрел его более подробно и честно пока не увидел каких-то принципиальных отличий от Ruby, но если мне не изменяет память, perl существовал еще до динозавров, что наводит на вполне резонный вопрос: а зачем придумали все эти модные ruby и python-ы, раз уже есть прекрасный perl? Ну да, у него немного другой синтаксис, ну некоторые вещи делаются чуточку иначе, но принципиально-то он ничем не отличается на мой взгляд. Очень хотелось бы услышать мнение более опытных коллег по данному вопросу.

P.s. понятно что тема несколько флеймовая, но мне на самом деле просто хочется разобраться и более осознанно сформулировать точку зрения по данному вопросу.

Перемещено maxcom из linux-org-ru

 , ,

Goganchic
()

Задача поиска ближайшего соседа для гео-данных

Форум — Development

Решаю такую задачку на Си: есть набор город России (~ 2.5k) представленных двумя координатами его центра, соответственно широтой и долготой. На вход подаются точки опять же с широтой и долготой и нужно каждую точку отнести к некоторому городу по простому правилу - точку относим к тому городу, расстояние до центра которого минимально. То есть по сути, решается задача поиска ближайшего соседа. Данные о городах статичны, входных точек может быть порядка нескольких миллионов. Необходимо чтобы программа отрабатывала достаточно быстро. Возникает вопрос: какие алгоритмы (и может быть библиотеки) здесь использовать?

Проверять все 2.5к городов брутфорсом - не вариант, нужно построить какой-нибудь индекс типа k-D дерева или R-дерева. Какой индекс в моей задаче будет работать лучше? Как лучше работать с исходными данными: считать расстояние между точками на сферойде и соотвественно строить дерево с расчетом на то, что пространство не евклидово или же перевести координаты в какую-то проекцию? Города расположены по всей России, не будет ли перевод в какую-то проекцию давать настолько большие погрешности, что точку можно будет отнести не к тому городу?

Какие библиотеки на Си (не С++, именно С) посоветуете для работы с гео-данными в рамках указанной задачи (основной вопрос - работа именно с гео-данными, представленными широтой и долготой, найти нужно именно один ближайший город, может ли это упростить задачу?)

 ,

Goganchic
()

непонятки с asm

Форум — Development

Дизассемблировал простейший hello world и обнаружил такое тело для функции main:

080483d4 <main>:
  push   %ebp
  mov    %esp,%ebp
  and    $0xfffffff0,%esp
  sub    $0x10,%esp
  movl   $0x80484c0,(%esp)
  call   80482f0 <puts@plt>
  mov    $0x0,%eax
  leave  
  ret    

все достаточно понято, сохраняем старое значение %ebp на стеке, а указатель на стек - в %ebp, помещаем строку с hello world-ом на стек и вызываем puts, все хорошо, но зачем делается инструкция

  and    $0xfffffff0,%esp

зачем зануляются последние биты у указателя на стек?

 ,

Goganchic
()

Книга по микроконтроллерам

Форум — Talks

Отец - энергетик с 40 летним стажем, но с микроконтроллерами работал достаточно поверностно. У него скоро день рождения, хочу подарить ему книжку по микроконтроллерам. Цель - научиться делать всякие полезные умные устройства для дома на базе PIC/AVR/ATMega и т.п. Посоветуйте пожалуйста хорошую книжку и марку/модель микроконтроллеров для, скажем так, начального уровня (всякие Arduino не предлагать). Книжку надо обязательно на русском.

P.s. сам в этой теме не очень разбираюсь, поэтому буду очень раз полезным аргументированным ответам. Заранее спасибо!

Goganchic
()

автодополнение html в kate

Форум — Web-development

подскажите пожалуйста, как заставить kate автодополнять html, css и автозакрывать теги? Интересует автодополнение не только имеющихся в текущем документе слов, а всех существующих тегов + еще бы желательно проверять синтаксис на валидность.

Заранее спасибо за ответы!

Перемещено tazhate из development

 , , ,

Goganchic
()

ubuntu и японские супергерои

Форум — Talks

а как сделать чтобы видео в Ubuntu открывалось так же круто так здесь? http://www.youtube.com/watch?feature=player_embedded&v=X64rQqqsGPM#!

 , ,

Goganchic
()

Ubuntu 12.04 загружается ощутимо дольше чем 11.10

Форум — Desktop

После обновления Ubuntu до 12.04 на десктопе и двух ноутбука заметил, что время загрузки системы существенно возрасло. Может быть кто-нибудь сталкивался с подобным? Может быть появились какие-то сервисы или модули ядра которые все портят?

В общем, подскажите пожалуйста куда копать

Goganchic
()

command-not-found в fedora

Форум — General

Кто-нибудь знает аналог убунтовского пакета command-not-found, который предлагает установить ту или иную программу если ее нет (например mc или там curl), но только для Fedora?

Goganchic
()

ruby 1.9.3 в ubuntu 10.04

Форум — Admin

Работаю с проектом, который решили перевести с ruby EE 1.8.7 на ruby 1.9.3, думаю как лучше установить ruby в систему (Ubuntu 10.04), можно поставить через RVM, а можно через нормальный пакетный менеджер dpkg. С одной стороны через deb пакет как-то более дебиан-вей, а с другой - все ставят через RVM. Сейчас ruby ee поставлен как deb-пакет.

Подскажите как лучше поставить?

Goganchic
()

RSS подписка на новые темы