И это всё МОЁ

Столкнулся с тем, что жутко тупит, при попытке отрендорить что-нибудь вообще виснет. При чем лагает даже открытие какой-нибудь менюшки (что странно, система не сильно нагружена в этот момент). Ноут старый, встроенная видеокарта, может поэтому. Идти покупать новый ради одной задачи - ну как-то не хотелось бы. Кто-нибудь встречался с подобной проблемой? Реально ли получить приличный ресурсы на каком-нибудь VPS и запустить там? Видос нужно небольшой состряпать на пару минут.









 








И это всё МОЁ

Есть хотелка странного - пишу руководство по софтинке, хочется его потом, помимо pdf‘ки, разместить html’кой на сайте. Структура документа крайне простая - текст, где из форматирования только отступы параграфов и два стиля (текст/заголовки), таблицы, которым в целом не критично точное сохранение ширины столбцов, и картинки, которые вставлены прям в текст без обтекания- т.е. все укладывается в пяток обычных тэгов из html1


Вопрос - есть какой-нить унифицированный подход, чтоб приготовить из, например, либры, html’ку с разбивкой не по страницам документа, а по разделам оглавления? Т.е. некий аналог javadoc но для документов?









 ,








И это всё МОЁ
И это всё МОЁ

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


Во-первых, на что можно расчитывать в плане видеопотока при использовании малинки? Сейчас у меня 4 IP камеры, которые отдают 1080р25. На регистраторе я могу урезать до 720р25. Ниже не хотелось бы. Потянет ли малинка 720р25 в 4 потока (около 2к битрейт по каждому)? Если да, какой нужен кодек? И потянет ли она еще несколько (2-4), если захочу добавить камер? Речь идет об отображении 24/7/365 и именно об отображении. Запись на диск идет на самом регистраторе.


Во-вторых, достаточно ли будет при таком использовании (rj-45+minihdmi+sd) блока питания 5В/2,5А? Или все же нужно 5В/3А? Под рукой нет блоков на 3А, а в магазинах ценник на них под малинку от 1500, когда у 2,5 от 500 деревянных.


В-третьих, как малинка и sd в частности переносят отключения питания? Бывает, пошаливают горсети. ИБП ставить не хочется под нее. Если, допустим, последовательно запитать от повербанка, который будет на постоянке подключен к розетке?


Что из дистров посоветуете на такой случай? На офсайте советуют их собственный Raspberry Pi OS на основе дебиана. Желательно без компиляний с готовыми бинарными пакетами в репах под мои задачи.


Надеюсь, тут есть опытные энтузиасты по малинке и линуксу.









 ,








И это всё МОЁ

Нужно извлечь файлы с харда сгоревшего компа, на харде таблица GPT, всего 4 раздела: EFI, swap, ext4 и ещё один ext4, только этих разделов не видно, fdisk -l показывает:

/dev/sdb1 ee GPT

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








 , , ,








И это всё МОЁ
Представлен значительный выпуск библиотеки libtorrent 2.0, предлагающей реализацию протокола BitTorrent, эффективную с точки зрения потребления памяти и нагрузки на CPU. Библиотека задействована в таких торрент-клиентах, как Deluge, qBittorrent Folx, Lince, Miro и Flush (не путать с другой библиотекой libtorrent, которая используется в rTorrent). Код libtorrent написан на языке C++ и распространяется под лицензией BSD.



И это всё МОЁ

Засадили в DEV сборки


https://bugs.chromium.org/p/chromium/issues/detail?id=1085700


Активируется опциями



-enable-features=UseOzonePlatform -ozone-platform=wayland



Естественно весьма сыро пока.









 , ,








И это всё МОЁ
Стабилизирван выпуск системы управления пакетами Portage 3.0, применяемой в дистрибутиве Gentoo Linux. Представленная ветка подвела итог длительной работы по переходу на Python 3 и прекращению поддержки Python 2.7.



И это всё МОЁ

Есть deb пакет с неустраивающим меня postinst
Можно конечно пересобрать, конечно, со своим, но делать это с каждой новой версией задалбывает - пробовал.

Возможен ли вариант проще чем

apt-get download <package>
sudo dpkg --unpack <package>*.deb
sudo rm /var/lib/dpkg/info/<package>.postinst -f
sudo dpkg --configure <package>
sudo apt-get install -yf #To fix dependencies







 








И это всё МОЁ

Приветствую!


Отредактировал профиль для беспроводной сети /etc/NetworkManager/system-connections/'NAME.nmconnection' изменив только имя сети т.к только она и менялась. В результате соединение сбрасывается, но права на профиль не были изменены и ошибок в профиле нет. В NM-SETTINGS(5) нашел это:


A universally unique identifier for the connection, for example generated with libuuid. It should be assigned when the connection is created, and never changed as long as the connection still applies to the same network. For example, it should not be changed when the "id" property or NMSettingIP4Config changes, but might need to be re-created when the Wi-Fi SSID, mobile broadband network provider, or "type" property changes. The UUID must be in the format "2815492f-7e56-435e-b2e9-246bd7cdc664" (ie, contains only hexadecimal characters and "-";).


Вопрос в том, как получить этот uuid при моем способе управления профилем, ведь никаких libuuid в системе нет?









 








И это всё МОЁ

Переписываю проект потихоньку рантайм ошибки не пойму
Cars.java

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package cars;

/**
*
* @author Евгений
*/

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import java.awt.DisplayMode;
import java.io.IOException;

/*
import javax.media.opengl.GL2;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCapabilities;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.GLProfile;
import javax.media.opengl.awt.GLCanvas;
import javax.media.opengl.glu.GLU;
*/

import com.jogamp.opengl.*;
import com.jogamp.opengl.awt.GLCanvas;
import com.jogamp.opengl.glu.*;


import javax.swing.JFrame;

import com.jogamp.opengl.util.FPSAnimator;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;





public class Cars implements GLEventListener {

public static DisplayMode dm, dm_old;
private GLU glu = new GLU();
private float xrot,yrot,zrot;
private int texture;
static Scene1 scene;
static Vector<String> drum;
@Override
public void display(GLAutoDrawable drawable) {
final GL2 gl = drawable.getGL().getGL2();
gl.glClear(GL2.GL_COLOR_BUFFER_BIT | GL2.GL_DEPTH_BUFFER_BIT);
gl.glLoadIdentity(); // Reset The View
gl.glTranslatef(0f, 0f, -5.0f);

scene.ShowDrum(5, 6, drum, gl);

gl.glFlush();
}

@Override
public void dispose(GLAutoDrawable drawable) {
// method body
}

@Override
public void init(GLAutoDrawable drawable) {

final GL2 gl = drawable.getGL().getGL2();

gl.glShadeModel(GL2.GL_SMOOTH);
gl.glClearColor(0f, 0f, 0f, 0f);
gl.glClearDepth(1.0f);
gl.glEnable(GL2.GL_DEPTH_TEST);
gl.glDepthFunc(GL2.GL_LEQUAL);
gl.glHint(GL2.GL_PERSPECTIVE_CORRECTION_HINT, GL2.GL_NICEST);

gl.glEnable(GL2.GL_TEXTURE_2D);

try {
scene.LoadDrum(gl);
} catch (IOException ex) {
Logger.getLogger(Cars.class.getName()).log(Level.SEVERE, null, ex);
}
}

@Override
public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) {

// TODO Auto-generated method stub
final GL2 gl = drawable.getGL().getGL2();
if(height <= 0)
height = 1;

final float h = (float) width / (float) height;
gl.glViewport(0, 0, width, height);
gl.glMatrixMode(GL2.GL_PROJECTION);
gl.glLoadIdentity();

glu.gluPerspective(45.0f, h, 1.0, 20.0);
gl.glMatrixMode(GL2.GL_MODELVIEW);
gl.glLoadIdentity();
}

public static void main(String[] args) {

scene = new Scene1();
scene.Scene();
drum = new Vector<String>();
for(int i=0;i<30;i++)
drum.add("auto1";);
// TODO Auto-generated method stub
final GLProfile profile = GLProfile.get(GLProfile.GL2);
GLCapabilities capabilities = new GLCapabilities(profile);

// The canvas
final GLCanvas glcanvas = new GLCanvas(capabilities);
Cars r = new Cars();

glcanvas.addGLEventListener(r);

glcanvas.setSize(400, 400);

final JFrame frame = new JFrame (" Textured Cube";);

frame.getContentPane().add(glcanvas);
frame.setSize(frame.getContentPane().getPreferredSize());
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
glcanvas.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
System.out.println(e.getX() + " " + e.getY());
}
});
final FPSAnimator animator = new FPSAnimator(glcanvas, 300, true);
animator.start();

}

}


Scene1.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package cars;

import com.jogamp.opengl.GL2;
import com.jogamp.opengl.GLAutoDrawable;
import com.jogamp.opengl.util.texture.Texture;
import com.jogamp.opengl.util.texture.TextureIO;
import java.io.File;
import java.io.IOException;
import java.util.Vector;

/**
*
* @author Евгений
*/
public class Scene1 {
class Image
{
int IndexTexture;
String Name;
int number;
}
static final int CountDrum = 5;
static final int CountTextureOnDrum = 6;
static final int CountTexture = 1;
public Vector<String> vectordrum;
int CountIndexTexture;
Image[] image;
File im;
Texture t;
float xl, xr, yd, yu;
int Scene()
{
image = new Image[CountTexture];
CountIndexTexture = 0;
vectordrum = new Vector<String>();
return 0;
}
int LoadDrum(final GL2 gl) throws IOException
{
//if (iter == 0)
{
vectordrum.add("auto1";);//1
CountIndexTexture++;
im = new File("content\\drum\\auto1.png";);
t = TextureIO.newTexture(im, true);
image[CountIndexTexture - 1].IndexTexture = t.getTextureObject(gl);
image[CountIndexTexture - 1].Name = "auto1";
image[CountIndexTexture - 1].number = CountIndexTexture - 1;
}
/*
//if (iter == 1)
{
vectordrum.add("auto2";);//2
im = new File("content\\drum\\auto2.png";);
t = TextureIO.newTexture(im, true);
image[CountIndexTexture - 1].IndexTexture = t.getTextureObject(gl);
image[CountIndexTexture - 1].Name = "auto2";
image[CountIndexTexture - 1].number = CountIndexTexture - 1;
}
//if (iter == 2)
{

vectordrum.add("auto3";);//3
im = new File("content\\drum\\auto3.png";);
t = TextureIO.newTexture(im, true);
image[CountIndexTexture - 1].IndexTexture = t.getTextureObject(gl);
image[CountIndexTexture - 1].Name = "auto3";
image[CountIndexTexture - 1].number = CountIndexTexture - 1;
}
//if (iter == 3)
{
vectordrum.add("auto4";);//4
im = new File("content\\drum\\auto4.png";);
t = TextureIO.newTexture(im, true);
image[CountIndexTexture - 1].IndexTexture = t.getTextureObject(gl);
image[CountIndexTexture - 1].Name = "auto4";
image[CountIndexTexture - 1].number = CountIndexTexture - 1;
}
//if (iter == 4)
{
vectordrum.add("auto5";);//5
im = new File("content\\drum\\auto5.png";);
t = TextureIO.newTexture(im, true);
image[CountIndexTexture - 1].IndexTexture = t.getTextureObject(gl);
image[CountIndexTexture - 1].Name = "auto5";
image[CountIndexTexture - 1].number = CountIndexTexture - 1;
}
//if (iter == 15)
{
vectordrum.add("bonus";);//16
im = new File("content\\drum\\bonus.png";);
t = TextureIO.newTexture(im, true);
image[CountIndexTexture - 1].IndexTexture = t.getTextureObject(gl);
image[CountIndexTexture - 1].Name = "bonus";
image[CountIndexTexture - 1].number = CountIndexTexture - 1;
}
//if (iter == 16)
{
vectordrum.add("wild";);//17
im = new File("content\\drum\\wild.jpg";);
t = TextureIO.newTexture(im, true);
image[CountIndexTexture - 1].IndexTexture = t.getTextureObject(gl);
image[CountIndexTexture - 1].Name = "wild";
image[CountIndexTexture - 1].number = CountIndexTexture - 1;
}
*/
//if (iter > 15)
return 0;
//else
// return 1;
}
int FindTexture(String name)
{
int result = -1;
for (int i = 0; i<CountTexture; i++)
{
if (image[i].Name.equals(name))
{
result = image[i].number;
break;
}
}
return result;
}
void ShowDrum(int countdrums, int counttextureondrums,Vector<String> drum,final GL2 gl)
{
int k = -1;
for (int i = 0; i<countdrums; i++)
{
gl.glPushMatrix();
//glRotatef(rotate[i], 1, 0, 0);
for (int j = 0; j < counttextureondrums; j++)
{
gl.glBindTexture(GL2.GL_TEXTURE_2D, image[FindTexture(drum.get(++k))].IndexTexture);
EnableTexture(i, j,gl);
}
gl.glPopMatrix();
}
}
void EnableTexture(int n, int m,final GL2 gl)
{
if(n == 0)
{
if(m == 0){
xl = -0.78f;//08
xr = -0.48f;
yd = 0.3f;
yu = 0.68f;//09
EnablePolygonFrontUp(xl, xr, yd, yu,gl);
}
if (m == 1) {
xl = -0.78f;
xr = -0.48f;
yd = -0.3f;
yu = 0.3f;
EnablePolygonFrontMiddle(xl, xr, yd, yu,gl);
}
if (m == 2) {
xl = -0.78f;
xr = -0.48f;
yd = -0.68f;
yu = -0.3f;
EnablePolygonFrontDown(xl, xr, yd, yu,gl);
}
if (m == 3) {
xl = -0.78f;
xr = -0.48f;
yd = 0.3f;
yu = 0.68f;
EnablePolygonBackUp(xl, xr, yd, yu,gl);
}
if (m == 4) {
xl = -0.78f;
xr = -0.48f;
yd = -0.3f;
yu = 0.3f;
EnablePolygonBackMiddle(xl, xr, yd, yu,gl);
}
if (m == 5) {
xl = -0.78f;
xr = -0.48f;
yd = -0.68f;
yu = -0.3f;
EnablePolygonBackDown(xl, xr, yd, yu,gl);
}
}
//front up
//front middle
if(n == 1)
{
if (m == 0) {
xl = -0.48f;
xr = -0.16f;
yd = 0.3f;
yu = 0.68f;
EnablePolygonFrontUp(xl, xr, yd, yu,gl);
}
if(m == 1){
xl = -0.48f;
xr = -0.16f;
yd = -0.3f;
yu = 0.3f;
EnablePolygonFrontMiddle(xl, xr, yd, yu,gl);
}
if (m == 2) {
xl = -0.48f;
xr = -0.16f;
yd = -0.68f;
yu = -0.3f;
EnablePolygonFrontDown(xl, xr, yd, yu,gl);
}
if (m == 3) {
xl = -0.48f;
xr = -0.16f;
yd = 0.3f;
yu = 0.68f;
EnablePolygonBackUp(xl, xr, yd, yu,gl);
}
if (m == 4) {
xl = -0.48f;
xr = -0.16f;
yd = -0.3f;
yu = 0.3f;
EnablePolygonBackMiddle(xl, xr, yd, yu,gl);
}
if (m == 5) {
xl = -0.48f;
xr = -0.16f;
yd = -0.68f;
yu = -0.3f;
EnablePolygonBackDown(xl, xr, yd, yu,gl);
}
}
//front middle
//front down
if(n == 2)
{
if (m == 0) {
xl = -0.16f;
xr = 0.16f;
yd = 0.3f;
yu = 0.68f;
EnablePolygonFrontUp(xl, xr, yd, yu,gl);
}
if (m == 1) {
xl = -0.16f;
xr = 0.16f;
yd = -0.3f;
yu = 0.3f;
EnablePolygonFrontMiddle(xl, xr, yd, yu,gl);
}
if(m == 2){
xl = -0.16f;
xr = 0.16f;
yd = -0.68f;
yu = -0.3f;
EnablePolygonFrontDown(xl, xr, yd, yu,gl);
}
if (m == 3) {
xl = -0.16f;
xr = 0.16f;
yd = 0.3f;
yu = 0.68f;
EnablePolygonBackUp(xl, xr, yd, yu,gl);
}
if (m == 4) {
xl = -0.16f;
xr = 0.16f;
yd = -0.3f;
yu = 0.3f;
EnablePolygonBackMiddle(xl, xr, yd, yu,gl);
}
if (m == 5) {
xl = -0.16f;
xr = 0.16f;
yd = -0.68f;
yu = -0.3f;
EnablePolygonBackDown(xl, xr, yd, yu,gl);
}
}
//front down
//back up
if(n == 3)
{
if (m == 0) {
xl = 0.16f;
xr = 0.48f;
yd = 0.3f;
yu = 0.68f;
EnablePolygonFrontUp(xl, xr, yd, yu,gl);
}
if (m == 1) {
xl = 0.16f;
xr = 0.48f;
yd = -0.3f;
yu = 0.3f;
EnablePolygonFrontMiddle(xl, xr, yd, yu,gl);
}
if (m == 2) {
xl = 0.16f;
xr = 0.48f;
yd = -0.68f;
yu = -0.3f;
EnablePolygonFrontDown(xl, xr, yd, yu,gl);
}
if(m == 3){
xl = 0.16f;
xr = 0.48f;
yd = 0.3f;
yu = 0.68f;
EnablePolygonBackUp(xl, xr, yd, yu,gl);
}
if (m == 4) {
xl = 0.16f;
xr = 0.48f;
yd = -0.3f;
yu = 0.3f;
EnablePolygonBackMiddle(xl, xr, yd, yu,gl);
}
if (m == 5) {
xl = 0.16f;
xr = 0.48f;
yd = -0.68f;
yu = -0.3f;
EnablePolygonBackDown(xl, xr, yd, yu,gl);
}
}
//back up
//back middle
if(n == 4)
{
if (m == 0) {
xl = 0.48f;
xr = 0.78f;
yd = 0.3f;
yu = 0.68f;
EnablePolygonFrontUp(xl, xr, yd, yu,gl);
}
if (m == 1) {
xl = 0.48f;
xr = 0.78f;
yd = -0.3f;
yu = 0.3f;
EnablePolygonFrontMiddle(xl, xr, yd, yu,gl);
}
if (m == 2) {
xl = 0.48f;
xr = 0.78f;
yd = -0.68f;
yu = -0.3f;
EnablePolygonFrontDown(xl, xr, yd, yu,gl);
}
if (m == 3) {
xl = 0.48f;
xr = 0.78f;
yd = 0.3f;
yu = 0.68f;
EnablePolygonBackUp(xl, xr, yd, yu,gl);
}
if(m == 4){
xl = 0.48f;
xr = 0.78f;
yd = -0.3f;
yu = 0.3f;
EnablePolygonBackMiddle(xl, xr, yd, yu,gl);
}
if (m == 5) {

xl = 0.48f;
xr = 0.78f;
yd = -0.68f;
yu = -0.3f;
EnablePolygonBackDown(xl, xr, yd, yu,gl);
}
}
//back middle
}
void EnablePolygonFrontUp(float xleft, float xright, float ydown, float yup,final GL2 gl)
{
gl.glBegin(GL2.GL_POLYGON);
gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex3f(xleft, yup, 0.0f);
gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3f(xleft, ydown, .6f);
gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3f(xright, ydown, .6f);
gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex3f(xright, yup, 0.0f);
gl.glEnd();

}
void EnablePolygonFrontMiddle(float xleft, float xright, float ydown, float yup,final GL2 gl)
{
gl.glBegin(GL2.GL_POLYGON);

gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex3f(xleft, yup, .6f);

gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3f(xleft, ydown, .6f);

gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3f(xright, ydown, .6f);

gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex3f(xright, yup, .6f);

gl.glEnd();
}
void EnablePolygonFrontDown(float xleft, float xright, float ydown, float yup,final GL2 gl)
{
gl.glBegin(GL2.GL_POLYGON);

gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex3f(xleft, yup, .6f);

gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3f(xleft, ydown, 0.0f);

gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3f(xright, ydown, 0.0f);

gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex3f(xright, yup, .6f);

gl.glEnd();
}
void EnablePolygonBackUp(float xleft, float xright, float ydown, float yup,final GL2 gl)
{
gl.glBegin(GL2.GL_POLYGON);

gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex3f(xleft, ydown, -.6f);

gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3f(xleft, yup, 0.0f);

gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3f(xright, yup, 0.0f);

gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex3f(xright, ydown, -.6f);

gl.glEnd();
}
void EnablePolygonBackMiddle(float xleft, float xright, float ydown, float yup,final GL2 gl)
{
gl.glBegin(GL2.GL_POLYGON);

gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex3f(xleft, ydown, -.6f);

gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3f(xleft, yup, -.6f);

gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3f(xright, yup, -.6f);

gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex3f(xright, ydown, -.6f);

gl.glEnd();
}
void EnablePolygonBackDown(float xleft, float xright, float ydown, float yup,final GL2 gl)
{
gl.glBegin(GL2.GL_POLYGON);

gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex3f(xleft, ydown, 0.0f);

gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3f(xleft, yup, -.6f);

gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3f(xright, yup, -.6f);

gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex3f(xright, ydown, 0.0f);

gl.glEnd();
}
}








 ,








И это всё МОЁ
Представлен выпуск приложения Hotspot 1.3.0, предоставляющего графический интерфейс для наглядного изучения отчётов в процессе профилирования и анализа производительности с использованием подсистемы ядра perf. Код программы написан на языке C++ с использованием библиотек Qt и KDE Frameworks 5, и распространяется под лицензией GPL v2+.



И это всё МОЁ

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


https://standa-note.blogspot.com/2020/03/introduction-and-design-considerations.html


Собственно результат его изысканий:


https://github.com/tandasat/MiniVisorPkg


Может кому пригодится.









 , ,








И это всё МОЁ

Нужна самая дешевая видеокарта, которая долго будет без проблем работать в линуксе (т. е. не nvidia с nouveau), поддерживающая работу с 3 мониторами одновременно.

Задачи все простые (мощное 3D-ускорение мне не нужно), поэтому зачем мне за 5000 рублей брать новую видеокарту?

Может есть Intel какой-нибудь или даже AMD? Ну, на крайняк можно с рук БУ взять.








 








И это всё МОЁ

Мне надо архивировать несколько директорий с помощью команды zip. Пусть этими директориями будут /home/user/dir1 и /home/user/dir2. В команду я вставляю полные пути (это важно, т.к. команду я хочу вставить в скрипт). После архивации я открываю архив и вижу там директорию home, в ней директорию user и лишь в ней нужные мне dir1 и dir2. Как сделать чтобы лишние директории не сохранялись и при открытии сразу были dir1 и dir2, прямо в корне архива? Я понимаю, что можно в скрипте сохранить текущую директорию, перейти туда где лежит архивируемая директория и архивировать от туда, но неужели у zip нет подходящего аргумента, чтобы не усложнять скрипт?









 ,








И это всё МОЁ

Есть роутер и модем.


Интернет есть.


Не удаётся пробросить порт.


Вроде все делаю - не работает. Поделитесь рецептом пожалуйста.









 , , ,








И это всё МОЁ
tshark -e ip.len


не подскажите, это размер всего пакета или только IP-заголовка? в чем измеряется? байты?








 








И это всё МОЁ

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


Сейчас я прописал <div class:«…»>









 








И это всё МОЁ

При установке последней версии Fedora на macbook 2016 операционная система работает с проблемами. Все попавшиеся туториалы в интернете не помогли их устранить. Пожалуйста, помогите, я новичок в использовании Линукс, поэтому возникают трудности с использованием. А операционная система стоит затраченных усилий!
Проблемы, замеченные мной:





    1. Не работает звук.





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





    1. Иногда вылетают программы, их становится невозможно открыть.





    1. Лагает, происходят подвисания.





    1. Некоторые команды в терминале не выполняются.











 , , ,








И это всё МОЁ

Привет


Есть машина, на которой поднята пара соединений с OVPN серверами.


При направлении трафика в одно из них всё работает хорошо.


default via vpn-gateway-1-ip \ default via vpn-gateway-2-ip


Если же я добавляю в схему маршрутизации второе, через nexthop, – возникают проблемы.


scope global default
nexthop via vpn-gateway-1-ip weight 1
nexthop via vpn-gateway-2-ip weight 1


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


$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=271 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=119 time=271 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=119 time=271 ms
64 bytes from 8.8.8.8: icmp_seq=8 ttl=119 time=271 ms
64 bytes from 8.8.8.8: icmp_seq=10 ttl=119 time=271 ms
^C
--- 8.8.8.8 ping statistics ---
11 packets transmitted, 5 received, 54,5455% packet loss, time 10079ms
rtt min/avg/max/mdev = 270.648/270.672/270.691/0.016 ms


либо же они вообще могут не вернуться


$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=270 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=119 time=270 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=119 time=271 ms
64 bytes from 8.8.8.8: icmp_seq=8 ttl=119 time=279 ms
^C
--- 8.8.8.8 ping statistics ---
8 packets transmitted, 4 received, 50% packet loss, time 7067ms
rtt min/avg/max/mdev = 270.264/272.631/279.198/3.793 ms
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=271 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=119 time=270 ms
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 2 received, 50% packet loss, time 3026ms
rtt min/avg/max/mdev = 270.292/270.453/270.615/0.161 ms
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=271 ms
^C
--- 8.8.8.8 ping statistics ---
29 packets transmitted, 1 received, 96,5517% packet loss, time 28627ms
rtt min/avg/max/mdev = 270.649/270.649/270.649/0.000 ms


Ресурсы по http(-s) открываются по своему усмотрению.


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


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


Нашёл информацию о том, что линь умеет то что мне нужно из коробки с версии ядра >= 4.4 линк


IPv4: Hash-based multipath routing. When the routing cache was removed in 3.6, the IPv4 multipath algorithm changed from more or less being destination-based into being quasi-random per-packet scheduling. This increased the risk of out-of-order packets and made it impossible to use multipath together with anycast services. In this release, the multipath routing implementation is replaced with a flow-based load balancing based on a hash over the source and destination addresses merge commit


Однако в одном из ответов к вопросу на https://unix.stackexchange.com/ человек написал, что этот способ балансировки подойдёт лишь в том случае, если выходной адрес балансируемых интерфейсов будет одинаков. Например, два канала под одним и тем же айпишником.


Ищу помощь. Подскажите куда посмотреть, где копнуть. Может кто-нибудь уже решал подобную проблему? Подходит ли для решения вопроса nexthop?









 , , , ,