LINUX.ORG.RU

Сообщения OxiD

 

Получить указатель на стек на MIPS архитектуре

Привет!

Подскажите, мне нужно передать указатель на стек в некоторую функцию.

Если подробнее - то сначала выполняется некоторый код который может разместить на стеке ссылки на объекты, а когда он завершается, мне надо его стек просканировать.

Такой код верно будет работать? Не получится так что sp будет как-то изменен (в преамбуле например)

Все это делается в gcc

void run(void *(*code)(void *), void * arg, int stack_size) {
    unsigned int sp;
    asm volatile ("sw $sp, %0" : "=m" (sp));
    code->(arg);
    gc_collect((void*)sp, stack_size);
}

PS Да, я не могу тут выделить свой стек :(

 

OxiD ()

Автоматическая конвертация кода ;)

Привет!

Вдруг кто-то знает - есть ли инструменты для автоматической конвертации кода на python в java (именно исходников)?

Возникла задача переписать под сотню тестов на java.

Код не сложный, а точнее это тесты на pytest, и в основном, все что они делают это посылают http запросы (модулем requests), потом проверяют json ответа.

Руками это делать лень 8( Если есть какие-то недопроверенные академические проекты - буду рад ссылкам.

 , ,

OxiD ()

Посоветуйте ноут.

Хочу купить недорогой ноут для путешествий ;)

Бюджет - около 15к, по производительности нужно чтобы можно было смотреть фильмы, читать книжки, запустить в конце концов vim/idea. И аккумулятор чтобы жил часов от 4. И весил при этом как можно меньше.

Если есть с полноценной поддержкой линукса (сеть, сон, открытие крышки, управление частотой проца, и т.д. ) - вообще супер.

Заранее спасибо!

 , ,

OxiD ()

Кто что знает про компанию inSales?

Зовут туда разрабом, интересно послушать отзывы тех кто там работал (работает) ?

 ,

OxiD ()

Дополнительное образование в МГУ

А никто не в теме про эти курсы - http://ti.math.msu.su/wiki/doku.php?id=programs:ti

Может кто учился?

 , ,

OxiD ()

Java - стоит ли использовать Future/ExecutorService ?

Привет. Такой вопрос. Есть тред, в нем есть цикл в котором он разбирает BlockingQueue, берет оттуда задания и обрабатывает. Появилась необходимость в некоторых случаях получать результат обработки этих заданий.

Джава я знаю не очень хорошо, так что сильно не пинайте ;)

Из того что есть в java я нашел Future, но как я понял для них придется все несколько переделать - нужно будет делать отдельный Callable для каждого задания, отправлять этот Callable в ThreadExecutor и получать обратно объект Future, с помощью которого можно дождаться обработки задания.

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

Не возникнет ли тут лишнего оверхеда?

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

Какие есть еще хорошие практики/классы :) чтобы получать результат от тредов?

Спасибо!

 

OxiD ()

Opengl ES

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

 package ru.sedano.opengl;

import android.opengl.GLES20;
import android.util.Log;

import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;
import java.util.Random;

/**
 * Created by oxid on 03.01.16.
 */
public class Serpinsky {
    private FloatBuffer vertexBuffer;
    private int mProgram;
    final Random random = new Random();

    private final String vertexShaderCode =
            "attribute vec3 vPosition; // The position variable has attribute position 0\n" +
                    "\n" + "\n" +
                    "void main()\n" +
                    "{\n" +
                    "    gl_Position = vec4(vPosition, 1.0);\n" +
                    "} ";

    private final String fragmentShaderCode =
            "precision mediump float;\n" +
                    "void main()\n" +
                    "{\n" +
                    "gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);\n"+
                    "}\n";

    public Serpinsky() {
        int numPoints = 5000;

        ByteBuffer bb = ByteBuffer.allocateDirect(
                // (number of coordinate values * 4 bytes per float)
                numPoints * 3 * 4);

        // use the device hardware's native byte order
        bb.order(ByteOrder.nativeOrder());

        // create a floating point buffer from the ByteBuffer
        vertexBuffer = bb.asFloatBuffer();

        // A triangle in the plane z= 0

        Vector3f vertices[] = new Vector3f[] {

                new Vector3f(-1.0f, -1.0f, 0.0f),
                new Vector3f(0.0f, 1.0f, 0.0f),
                new Vector3f(1.0f, -1.0f, 0.0f)
        };

        Vector3f prev;
        // An arbitrary initial point inside the triangle
        prev = new Vector3f(0.25f, 0.5f, 0.0f);

        vertexBuffer.put(prev.x());
        vertexBuffer.put(prev.y());
        vertexBuffer.put(prev.z());

        // compute and store NumPoints-1 new points
        for (int k = 1; k < numPoints; k++) {
            int j = random.nextInt(3); // pick a vertex at random
            // Compute the point halfway between selected
            // vertex and previous point
            Vector3f current = (prev.plus(vertices[j])).divide(2.0f);

            Log.v("SERP", "x="+current.x()+" y="+current.y()+" z="+current.z());

            vertexBuffer.put(current.x());
            vertexBuffer.put(current.y());
            vertexBuffer.put(current.z());

            prev = current;
        }

        int vertexShader = MyGLRenderer.loadShader(GLES20.GL_VERTEX_SHADER,
                vertexShaderCode);

        int fragmentShader = MyGLRenderer.loadShader(GLES20.GL_FRAGMENT_SHADER,
                fragmentShaderCode);

        // create empty OpenGL ES Program
        mProgram = GLES20.glCreateProgram();

        // add the vertex shader to program
        GLES20.glAttachShader(mProgram, vertexShader);

        // add the fragment shader to program
        GLES20.glAttachShader(mProgram, fragmentShader);

        // Bind attributes
        GLES20.glBindAttribLocation(mProgram, 0, "vPosition");

        // creates OpenGL ES program executables
        GLES20.glLinkProgram(mProgram);

    }

    private int mPositionHandle;

    public void draw() {
        // Add program to OpenGL ES environment
        GLES20.glUseProgram(mProgram);

        MyGLRenderer.checkGlError("glUseProgram");
        // get handle to vertex shader's vPosition member
        mPositionHandle = GLES20.glGetAttribLocation(mProgram, "vPosition");
        MyGLRenderer.checkGlError("glgetAttribLocation");

        // Enable a handle to the triangle vertices
        GLES20.glEnableVertexAttribArray(mPositionHandle);

        // Prepare the triangle coordinate data
        GLES20.glVertexAttribPointer(mPositionHandle, 3,
                GLES20.GL_FLOAT, false,
                0, vertexBuffer);

        // Draw the gasket
        GLES20.glDrawArrays(GLES20.GL_POINTS, 0, 5000);

        try {
            Thread.sleep(25);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

}

 , , ,

OxiD ()

Книгочиталка

Привет! Посоветуйте девайс на андроиде, с электронными чернилами (хотя если остальные пункты будут, то можно и обычный экран), достаточно большим экраном чтобы можно было техническую литературу читать, и переводчиком, чтобы по нажатию на слово показывал перевод. С поддержкой pdf, djvu.

Ещё интересует, можно ли такое из планшета сделать. Я какие приложения не смотрел, где то, чего то не хватает :(

Спасибо!

 , , , ,

OxiD ()

Выручайте!

У меня есть 3 месяца чтобы освоить работу с 3д графикой. Объем предсказать сложно, но примерно после этого срока нужно будет суметь разрабатывать ПО для симуляции работы манипулятора в пространстве.

Накидайте пожалуйста литературы про основы. Интересует opengl, openscenegraph, opendynamic engine, основы всего этого. Посоветуйте книги для введения в курс.

Спасибо!

 , , ,

OxiD ()

индексирование десктопа

Привет! Я за некоторое время накопил столько документации и прочего, что стало проще скачать книжку заново, чем найти на харде.

Посоветуйте, какие есть хорошие программы для индексирования pdf, djvu, fb2, картинок с гео метками и других форматов.

Чтобы был хороший поиск и по содержимому и по названиям. Использую gnome3

Спасибо!

 , ,

OxiD ()

показать мобильный сайт на десктопе.

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

OxiD ()

Одноплатный(?) сервер видео трансляции

Есть такая задача - осуществлять запись с 3-5 видео камер на диск (не обязательно в hd качестве, но чем больше, тем лучше ;)

По запросу стримить картинку с одной из камер через интернет.

Хочется чтобы все это было максимально экономично. Сейчас смотрю на разные одноплатные компьютеры. Посоветуйте, соит и с ними связываться? Например cubieboard2 - подкупает наличие sata порта и двух ядер. Но хватит ли производительности?

Может проще будет купить какой-то нетбук? Если да, то какой посоветуете?

OxiD ()

Opencv и консоль

Всем привет! Кто-нибудь зает как заставить opencv работать из консоли, без исков?

Сейчас у меня любая программа вываливается с этим (image1:3165): Gtk-WARNING **: cannot open display:

Даже если никаких интерфейсных (highgui) функций не используется.

 

OxiD ()

Гугл не открывается

Только у меня?

ping google.com ping: unknown host google.com

А так же гмейл, ютуб 8(

OxiD ()

чертов pulseaudio

Имею видеокарту nvidia с проприетарным драйвером и два монитора. Точнее монитор и телевизор, оба подключены через hdmi. Периодически, когда на телеке включен фильм, вместо звука и в телевизоре и мониторе начинается треск, если прибить пульс, то пропадает. Повторный запуск пульса ничего не дает, в смысле звука вообще нет. Использую linux mint/debian gnome3

Чего это такое?

PS написал скриптик который переключает звук приложения на тот монитор, на котором находится окно. Если кому надо, могу выложить

OxiD ()

Распределенный семафор

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

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

Кто здесь чем пользуется для подобных вещей, делитесь опытом! ;)

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

OxiD ()

регулярное выражение в vim

Пытаюсь сделать такую замену

:%s/@{\s*$form->{\s*\(\w\+\)\s*}\s*\(\s*||\s*[]\s*}\)*}/$form->get_all('\1')

Но вмесито щзамены редактор говорит

Шаблон не найден: %s/@{\s*$form->{\s*\(\w\+\)\s*}\s*\(\s*||\s*[]\s*}\)*}/$form->get_all('\1')

Просто поиск по этой регулярке работает. Никто ен знает что это может быть?

OxiD ()

Дешевый графический планшет.

Посоветуйте сабж. Бюджет до 2тр, нужен чтобы писать, особо высой точности не требуется.

Главное чтобы с линуксом работал.

OxiD ()

асимптотики

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

OxiD ()

Код как лапша.

Я работаю в большой компании над старым и большим проектом.

Код - миллионы строк. Почти весь код который я вижу - макароны ;)

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

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

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

Решения выбираются в основном по кретирию максимальной понятности разработчикам, но так как большинство разработчиков не знакомы (мало знакомы) с bash, системными вызовами unix, основами многопоточного программирования (методами синхронизации), то...

Некоторые «системные» вещи которые десятилетиями делаются в unix проверенным способом велосипедятся не лучшим образом.

И это не все проблемы кода на самом деле.

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

Но тем не менее, все работает и работает быстро, проект можно назвать high load, здесь используются разные сложные мат. алгоритмы (это я к тому что уровень разработчиков очень даже хороший, с точки зрения математики.. ).

Неужели все проекты со временем становятся такими?

OxiD ()

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