LINUX.ORG.RU

Сообщения RedPossum

 

Профилирование собранного бинарника без исходников

Джентльмены, доброго времени суток!

На одной машине есть два идентичных процесса. Со старта оба кушают по 6% cpu. Через сутки один из них жрет 80%, второй как был 6%, так и остается.

Нет ли в ваших светлых головах мыслей, как бы отпрофилировать прожорливого негодяя?

В чем сложность:

Данные процессы являются платформами для построения HMI, писаными на Qt. Внутри они крутят «пользовательский код», писаный на неком подобии С и вполне-себе python'е. Есть подозрение что это кривые наши (команды) ручки накосячили в «пользовательском коде». Соответственно, нужен некий способ понять не только, какой самый тормозной вызов внутри HMI, но и понять какие параметры вызова делают его самым тормозным, чтобы определить какой скрипт портит нам все малину.

Upd: OS - SLES 11

Upd2: Эмпирическим путем нашли причину. Всем спасибо!

 ,

RedPossum
()

Java 10. Внезапно

 ,

RedPossum
()

Удалить/запретить печать в pdf и ps в kde4

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

Имеется sles 11, используемый в качестве АРМ для системы автоматики.

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

Что уже пробовал: 1) Удалить. Cups-pdf. Это не cups.

2) [KDE Resourse Restriction] в kdeglobals тоже не сработали.

 

RedPossum
()

Все намертво зависает при своппинге

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

Тут у меня прямо таки 12309. Когда firefox сжирает все мои скромные 4 Гб и начинается активный своппинг - наступает конец всему. Конец выражается в тотальном, стремительно прогрессирующем, фризе всего. В 90% случаев даже не удается убежать в другой tty и убить прожорливую лису. Фриз сохраняется неопределенно долгое время.

Если кто-то знает, куда копать, чего подкрутить, буду благодарен за идеи.

Подробности:

ubuntu 16.04 x86_64 ядро местное, непатченное 4.4.0-103

своп в раздел на ssd, мемтест только что делал, все норм.

 ,

RedPossum
()

Определенные пользователем раскладки с маскированием дефолтных, есть такое?

Доброго времени суток, джентльмены.

Появилась задача: по смене пользователя на «не админа» в прикладном ПО (пользователь никак не связан с системным), лочить клавиши Alt, Crtl, etc. При этом в этом прикладном ПО должна работать кнопка смены языка, дергающая setxkbmap.

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

Решение данной проблемы есть, но оно какое-то уж очень костыльное:

Переписать файлики в /usr/share/X11/xkb/symbols/ и менять их по смене пользователя.

Поэтому вопроса 2:

1) можно ли не лезть в /usr/share/X11/xkb/symbols/ , а положить мои файлики с ru и us где-то в хомяке, замаскировав ими дефолтные?

2) есть какое-то более элегантное решение данного вопроса?

UPD: дистр - SLES 11

 

RedPossum
()

Хочу простой кроссплатформенный message passing, посоветуй

Субж, надо чтобы и по сети, и межпроцессного. И виндусь и линукс, и биндинги чтобы java, c#, c, go. В общем полный фарш, можно rpc. Смотрю в сторону zeromq. В общем, что кто пользовался, посоветуй.

 

RedPossum
()

у вас тут что-то в djagno поменялось, не могу взбодрить проект

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

try:
    from django.http.request import absolute_http_url_re
except ImportError: 
    from django.http import absolute_http_url_re

Ошибка:

cannot import name absolute_http_url_re

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

 ,

RedPossum
()

стриминг на девайс с андройдом десктопа с ffmpeg

Там, достопочтенные господа, не сочтите за грубость, но я нажрамшись, ешил застримить свой десктоп в live режиме на свой планшет. Через <video>, разумеется. И вот какое дело, хром, который на планшете, падает(планшет тот, под андройдом ходит). ЧСХ, локально под лисой все хорошо.

и вот технические данные(прошу прощения, маны не читал):

конфиг ffserver

Port 8090                      # Port to bind the server to
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 10000             # Maximum bandwidth per client
                               # set this high enough to exceed stream bitrate
CustomLog -
NoDaemon                       # Remove this if you want FFserver to daemonize after start

<Feed feed1.ffm>               # This is the input feed where FFmpeg will send
   File ./feed1.ffm            # video stream.
   FileMaxSize 50M              # Maximum file size for buffering video
   ACL allow 127.0.0.1         # Allowed IPs
</Feed>

<Stream test.webm>              # Output stream URL definition
   Feed feed1.ffm              # Feed from which to receive video
   Format webm

   # Audio settings
   AudioCodec vorbis
   AudioBitRate 64             # Audio bitrate

   # Video settings
   VideoCodec libvpx
   VideoSize 1360x768           # Video resolution
   VideoFrameRate 25           # Video FPS
   AVOptionVideo flags +global_header  # Parameters passed to encoder
                                       # (same as ffmpeg command-line parameters)
   AVOptionVideo cpu-used 03
   AVOptionVideo qmin 10
   AVOptionVideo qmax 42
   AVOptionVideo quality good
   AVOptionAudio flags +global_header
   PreRoll 15
   StartSendOnKey
   VideoBitRate 400            # Video bitrate
</Stream>

<Stream status.html>            # Server status URL
   Format status
   # Only allow local people to get the status
   ACL allow localhost
   ACL allow 192.168.0.0 192.168.255.255
</Stream>

<Redirect index.html>    # Just an URL redirect for index
   # Redirect index.html to the appropriate site
   URL http://www.ffmpeg.org/
</Redirect>

команда ffmpeg

ffmpeg -f x11grab -r 60 -s 1366x768 -i :0.0 -f alsa   -i pulse http://localhost:8090/feed1.ffm

что в тэге video

<video controls  preload autoplay src="http://192.168.0.84:8090/test.webm">
          </video>
то что autoplay в ведре не работает, я в курсе

Так вот, я прозреваю что проблема в файле и верстке, потому как, на пьяный взгляд, эта зараза сначала качает весь файл, потом его ускоренно проигрывает, потом колом встает и падает(прям как я с ромом). Буду рад любым советам. С новым годом =*

 , ,

RedPossum
()

bluetooth'а нету на thinkpad x220 в ubuntu 14.04

Мил ЛОРовец, чего-то нету у меня bluetooth'а на thinkpad x220 в ubuntu 14.04.

Когда пропал - не знаю: не нужен он мне был долгое время, года 2, а тут понадобился, а нету. А ведь точно помню - был.

  • В /proc/acpi/ibm/ никаких bluetooth'ов у меня нету.
  • В /sys/devices/platform/thinkpad_acpi/ тоже пусто.
  • rfkill unblock bluetooth не помогает
  • bluez вместо gnome-bluetooth тоже никак

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

 , ,

RedPossum
()

Макском, пора бросать лор, я тебе работу нашёл.

https://jobs.apple.com/us/search?#&ss=scala&t=1&so=&lo=0*USA&...

4 Ъ: яббл хочет в штат 500 scala-разработчиков. Вот это история успеха, господа.

 , , ,

RedPossum
()

Статьи всех научных журналистов похожи на их первого учёного.

http://lenta.ru/news/2014/10/01/telegony/

В общем на тленте про телегонию в авторитетных журналах загоняют. Мол, у них там, в Австралии, мухи передают _приобретенные_ признаки половым путём.

И правда все так плохо чтоли, кто тут биолог?

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

 

RedPossum
()

порнхаб статистику выложил.

И про линукс там есть. Но он у меня не открывается, поэтому вот вам картинка с джоя http://img0.joyreactor.cc/pics/post/американцы-исследования-статистика-график...

 

RedPossum
()

Как у нас в вики с премодерацией?

Увидел тут в трекере вот такую статью из нашей вики www.linux.org.ru/wiki/en/Установка_Excelsior_JIT_на_примере_minecraft и сабж созрел.

Вот отсюда парень это гадкое введение притащил https://ru.wikipedia.org/wiki/AOT-компиляция

Ну ведь так совсем нельзя, тут же серьезный ресурс.

 , , ,

RedPossum
()

хочу фильтрацию сообщений в akka

Доброго. Хочу странного, может быть, но:

Есть у меня некоторое количество акторов такого вида

class Device(x:Double, y:Double, r:Double)

Могу ли я сделать на уровне самой akka так, чтобы device1 отправлял device2 ! msg только в том случае, если выполняется некоторое условие cond(device1, device2):Bool

Сейчас:

trait DeviceMsg{
  val sender:ActorRef
  val x:Double
  val y:Double
}

//и в акторе самом

def filteredMsg(msg:DeviceMsg) =
    Some(msg)
    .filter(m=>inArea(m.x,m.y))

но это ерунда какая-то.

 ,

RedPossum
()

sudo ... -> требуется setuid пользователя root

Я дурак и все сломал. Сделал chmod -R 777 для owncloud из репозитория, а там симлинки какие-то были, наверное или типа того. Потому что идиот. Вы уж меня простите.

Костыльное временное решение есть какое-нибудь этой проблемы, дабы до вечера досидеть, а то даже unity не стартует?

Дистр ubuntu 12.04

 ,

RedPossum
()

iCalendar в python

Доброго. Не подскажете приладу для парсинга icalendar(нужен только VEVENT) в python.

Требуемая фича:

Получение списка событий по диапазону дат, и чтобы все RRULE, RDATE, EXDATE и EXRULE корректно отрабатывали. В общем, надо чтобы как в ddate дотнетовском или ical4j отрабатывало.

То есть, примерно так:

icalendar.parse(calendar_str).from_to(date1, date2)

>> {date1:[event1,event2], date2:[event1, event3]}

upd: icalendar + dateutils видел, знаю, но хочется готового

 icalendar,

RedPossum
()

Кто где, а я у линуксоида на свадьбе.

Сабж. А ещё я его и не знал, просто его теперь жена и моя девушка подруги. При первой встрече (~мес. назад) разговорились, выяснили что виртуально знакомы по ЛУГу. Такие дела, а вы говорите 1%.

 ,

RedPossum
()

rxjava-scala, внезапные события и PublishSubject

Есть такой кусочек, который отслеживает события каталога:

Observable( observer => {
      scheduler.scheduleRec( self=>{
        Try(watcher.take()) match {
          case Success(key) => {
            for(event <- key.pollEvents.asScala) {
              observer.onNext(event.asInstanceOf[WatchEvent[Path]])
            }
            key.reset
            self
          }
          case Failure(error) => observer.onError(error); observer.onCompleted()
        }
      })
    })

если на него подписаться:

  val obs = ObservablePathWatchEx
.fromPathEvents(path).observeOn(rx.lang.scala.concurrency.Schedulers.threadPoolForIO)

  import context.dispatcher
  context.system.scheduler.scheduleOnce(30 seconds)(
  obs
    .subscribe(
      event => { sendToSubscribers(event) },
      error => { log.error(error.toString); context.stop(self) }
    )
  )

То поведение его такое: либо подписчик ожидает первого элемента в Observable, обрабатывает его и все; либо если значения в Observable были до подписки, то они обрабатываются и тоже все. //вариантов с несколькими подписчиками не рассматриваем

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

Внезапно вопросы: 1) я правильно понимаю проблему? 2) Ну и как мне чертов PublishSubject использовать? Документация по rxJava скудная, а по адаптеру для scala так вообще не очень, может кто подскажет

Перемещено maxcom из talks

 , ,

RedPossum
()

nio и событие ENTRY_MODIFY для директории

Собственно, вопрос скорее теоретического свойства.

Подписываюсь я на события в директории (nio2, практически по примеру http://docs.oracle.com/javase/tutorial/essential/io/notification.html), и вот такая беда: ни одного события ENTRY_MODIFY. Изменения файла приводит к выбрасыванию ENTRY_CREATE. Это нормальное поведение, или я что-то накосячил?

фс - ext4

подписываюсь:

try {
    path.register(watcher,
      ENTRY_CREATE,
      ENTRY_DELETE,
      ENTRY_MODIFY
    )
  } catch {
    case e:IOException =>
      log.debug("all fails with {}",e)
      context.stop(self)
  }

обработка акторами, но потерять не мог. кому интересно - код тут https://github.com/LastPossum/SAWS/blob/master/src/main/scala/PathWatcher.scala

 , ,

RedPossum
()

scala Parallel Collections и таинственный метод ForkJoinPool.scan, который жрёт процессорное время

Прогнали пару тестов шуточных и несерьезных методов par scala и asParallel в c#. Результаты получились предсказуемые, но не о них сейчас. Вот код:

trait Calculation[T,R]{
  def before():Unit
  def calculation(v:T):R
  def after():Unit

  def start(t:T){
    before()
    val t1s = System.currentTimeMillis()
    calculation(t)
    val t2s = System.currentTimeMillis()
    println(t2s-t1s)
    System.gc
    after()
  }
}

object Calculation{
  def apply[T,R]( _before: =>Unit,
                 _calculation: (T)=>R,
                 _after: =>Unit
                ):Calculation[T,R]=
  new Calculation[T,R] {
    def calculation(v: T): R = _calculation(v)

    def after(): Unit = _after

    def before(): Unit = _before
  }
}

object Test extends App {

  def cpuTimeEater(num:Int)=Math.pow(num,num)

  val slt = (0 to 5000000).toArray

  val singleClaculation = Calculation(
      {println("Single:")},
      (x:Array[Int])=>{x map cpuTimeEater},
      {println("------------------")}
      )

  val multiCalculation = Calculation(
      {println("Parrallel:")},
      (x:Array[Int])=>{x.par map cpuTimeEater},
      {println("+++++++++++++++++")}
      )

  for(i<-(0 to 10)){
    singleClaculation.start(slt)
    multiCalculation.start(slt)
  }
}

Масшабируется на отлично, но можно и лучше, наверное. Смотрим профилировщиком VisualVM(добавить scala.* в непрофилируемые совершенно забыли), а там:

[Method]scala.concurrent.forkjoin.ForkJoinPool.scan(scala.concurrent.forkjoin.ForkJoinPool.WorkQueue)
[SelfTime %]46.511116	
[SelfTime ]53 450 ms (46,5%)	
[Invocations]122

Гугление выдало вот это с stackoverflow http://stackoverflow.com/questions/19147077/akka-during-load-testing-forkjoin...

Ну и собственно тут подробный коментарий, что оно таки делает. https://github.com/scala/scala/blob/master/src/forkjoin/scala/concurrent/fork...

Но что он так много отжирает то и можно ли на это как-то повлиять?

 forkjoin,

RedPossum
()

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