LINUX.ORG.RU

Сообщения OxiD

 

Распределенная ФС для картинок

Привет!

Вот таким вопросом задался, что у нас есть опенсорсного для распределенного хранения картинок? S3 не предлагать, интересует именно решение которое можно самостоятельно поднять.

Задача примерно такая - есть картинки, не очень большие, можно считать до 200 Кб каждая, есть веб сервис, который живет на нескольких машинах, надо чтобы отдача картинок была отказоустойчивой, т.е чтобы они реплицировались между серверами, отдаются они не всем подряд, а только если у юзера есть права.

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

Кто что использует для подобного?

 , ,

OxiD ()

Деплой веб приложений

Привет! Расскажите, как сейчас удобно деплоить веб?

Имею в виду nginx, mariadb, python-flask, js приложение, и их зависимости и конфиги

Какие есть системы сборки и деплоя?

Идеально было бы чтобы само понимало питонячий requirements.

Без докера, на обычный vps хостинг. Идеально - простой конфиг, собрало какой-то пакет и парой команд установило.

 ,

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 ()

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