Как в Firefox настроить "Открыть новую вкладку вслед за текущей"?

В поле ввода адреса вводим: about:config, чтобы войти в расширенный режим настроек

В поиске вводим: insertAfterCurrent

Меняем значение на: true

Розмір кристалу світлодіоду в mil

Розмір кристалів світлодіодів вимірюється у mil'ах, тобто у тисячних долях дюйму.

Один mil - це 0,0254мм

Типовий розмір кристалу - 30*30mil та 45*45mil, або 0,762*0,762мм та 1,143*1,143мм

Відповідність розміру та потужності:

  • 1W — 45*45mil;
  • 1W — 30*30mil;
  • 0,75W — 24*40mil;
  • 0,5W — 24*24mil.
Параметр Китайский 2835 2835 0,2W 2835 0,5W 2835 1W
Світловий потік, лм 8 20 50 100
Потужність 0,09 вт 0,2 вт 0,5 вт 1 вт
Температура +60 +80 +80 +110
Струм, ампер 25 мА 60 мА 150 мА 300 мА
Напруга, Вольт 3,2 3,2 3,2 3,2
Габарити, мм 2,8мм на 3,5мм

Блокінг-генератор високої змінної напруги

Як перетворити постійний струм в змінний,
або як зробити найпростіший інвертор


Даний генератор можна виготовити із трансформатора від зарядки для телефону.

У трансформатора є три обмотки: дві з невеликим опором та одна – побільше. Та що більше – буде вихідною.

Важливо визначити фазування (напрямок) первинних обмоток. Як це зробити – читайте в іншій статті. Або методом "тику" - при неправильному підключенні схема просто не запрацює.

Транзистор можна взяти практично будь-який, але для деяких трансформаторів генерація не запускається з деякими транзисторами, тому якщо на виході немає напруги – спробуйте інший транзистор (іншу модель). Важливо, щоб транзистор був досить великої потужності, оскільки він дуже гріється, бажано використовувати радіатор.

На виході виходить близько 40-60В високочастотної змінної напруги, можна підключити неонову лампочку або використовувати для запалювання спалаху від фотоапарата (про це читайте в іншій статті).


Як визначити напрямок обмоток трансформатора.

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

Діапазон вимірюваної напруги вольтметра потрібно підібрати так, щоб було добре помітно рух стрілки. Починати краще з більшого діапазону.

Якщо при замиканні вимикача, стрілка вольтметра відхилилася в прямому напрямку, то за початок обмоток, що фазуються, потрібно прийняти «+» (плюс) батарейки та «+» вольтметра.

Якщо стрілка відхилилася у зворотному напрямку, обмотки підключені у протифазі відносно «+» батарейки та «+» вольтметра.

Потрібно мати на увазі, що при замиканні вимикача, стрілка вольтметра відхилятиметься в одну сторону, а при розмиканні в протилежну, через ЕРС самоіндукції, що виникла. Орієнтуватися потрібно за відхиленням стрілки саме в момент включення вимикача.

При використанні осцилографа:

  • фазування обмоток однакове, коли перший імпульс - позитивний
  • фазування протилежне, коли перший імпульс - негативний
Напрям обмоток співпадає
Напрям обмоток протилежний

Акумулятор MS614SE

Літій-іонний (Li-ion, літій-марганець-кремній (LiMnSi)) акумулятор у вигляді маленької таблетки. Можна сплутати зі звичайною батарейкою, але це все-таки акумулятор, що перезаряджається. Використовується в різній електроніці, наприклад, усередині цифрового фотоапарата для підтримки роботи годинника. З обох боків проштамповані "клеми" для паяння, тому маркування не завжди видно повністю, так, наприклад, може бути видно тільки: S614S, S614SE, MS614, MS614SE, S614SF.

Ємність: 3,4 мАч

Номінальна напруга: 3,1 В

Напруга заряджання: 3,3 В

Розміри: 1.5 x 6,8 мм.

Як застосувати "Event Pan/Crop" до всього треку (Vegas Pro)?

На жаль, прямо на трек не можна, але можна автоматизувати копіювання та вставлення на всі відеокліпи трека, для цього:

  1. Обираємо перший відеокліп.
  2. Налаштовуємо для нього "Event Pan/Crop" як потрібно.
  3. Копіюємо кліп.
  4. Клік правою кнопкою миші по ньому - обираємо "Select Events to End" - це виділить усі кліпи до кінця треку.
  5. Тиснемо ще раз праву кнопку миші і вибираємо: "Paste Event Attributes" - це, відповідно, вставить налаштування "Pan/Crop" у всі (вибрані) кліпи треку.

Scaling (zoom) and moving the object and rendering area relative to the mouse cursor.

Task

There are certain objects that need to be scaled, for example, a rectangle that should grow/shrink depending on mouse wheel rotation, while scaling should be done relative to a specified point, such as the mouse cursor position.

The complexity arises when the relative point changes: the mouse is moved - a new point.

Moving and scaling an object

  1. Move the object space in such a way that the scaling point is at the origin (0,0).
  2. Perform the actual transformation.
  3. Move the object space back - perform exactly the same transformation but in reverse, without considering the scaling factor.

Visual explanation

Zoom in relative to a point (4, 6)

Zoom in relative to a point (3, 5)

Implementation in Java

public class PointScale extends JPanel {
    
	@Override
	public void paint(Graphics g) {
		super.paint(g);
		final Graphics2D g2d = (Graphics2D) g;
        
		final AffineTransform transform = new AffineTransform();
        
		// Perform a shift of a point (0, 0)
		transform.translate(point.x, point.y);
        
		// Perform a zoom
		transform.scale(zoom, zoom);
        
		// Restore the position to its original state (0, 0) -> point
		transform.translate(-point.x, -point.y);
        
		// Apply all transformations
		g2d.setTransform(transform);
	}
}

Moving and scaling the rendering area

To perform a relative transformation, it's necessary to first execute the initial one, and then on top of it, the new one.

Since in this task we are changing the sizes and positions not of specific objects, but of the entire field, it's necessary to transform the field each time it's redrawn, as it resets to its original state every time.

Find the difference between the shift of the coordinate system of the previous state and the position of the cursor relative to the scaled coordinate system of the previous state.

prevX - newX / prevScale = prevXScaled / prevScale - newX / prevScale = (prevXScaled - newX) / prevScale

Add the new offset in the newly scaled coordinate system:

deltaTranslate + newTranslate = deltaTranslate + newX / newScale = (prevXScaled - newX) / prevScale + newX / newScale

Visual explanation

The principle of calculating transformations:

Original image:

Scaling:

Moving:

Calculation example:

X - Coordinates in the original system
X' - Coordinates in the scaled system

Implementation in Java

private AffineTransform prevTransform = new AffineTransform();

private void applyTransformation(Graphics2D g2d) {
	final Point mousePosition = getMousePosition(); // method of Component class
	if (null != mousePosition) {
		final int x = mousePosition.x, y = mousePosition.y;
		g2d.scale(zoom, zoom);
        // Translate the current coordinates back to the previous coordinate system and perform the previous shift.
		g2d.translate(
        	// translateX(Y) - это уже масштабированное значение X(Y): translateX = prevX * prevScaleX
			(prevTransform.getTranslateX() - x) / prevTransform.getScaleX() + x / zoom,
			(prevTransform.getTranslateY() - y) / prevTransform.getScaleY() + y / zoom);
		if (isDragging) g2d.translate(dragX / zoom, dragY / zoom); // dragX - это dX, delta X, изменение координаты при перетаскивании
		dragX = 0;
		dragY = 0;
	} else {
		g2d.setTransform(prevTransform);
	}
	prevTransform = g2d.getTransform();
}

Sources could be downloaded from Github: https://github.com/asilichenko/mouse-move-scale

Як зменшити яскравість, температуру нагріву та потужність світлодіодної лампочки.

Варіант драйвера світлодіодів (стабілізатора струму) на мікросхемі PT4515

 

Струм стабілізації заданий резистором R1 відповідно до формули:

 


How to output formated JSON from a JSONObject

JSONObject jo = new JSONObject();
.....
ObjectMapper mapper = new ObjectMapper();
Object json = mapper.readValue(jo.toString(), Object.class);
System.out.println("var data = " + mapper.writerWithDefaultPrettyPrinter().writeValueAsString(json) + ";");

How to determine the number of spaces on the beginning of a String

String s = "     London is a capital of Great Britain  ";
int beginningSpaces = s.indexOf(s.trim());

How to output (print) a tree to the console (in text form)

Пример:

x
├── c
│   ├── a
│   └── b
├── d
├── e
│   └── asdf
└── f

Код:

public class TreeNode {

    final String name;
    final List<TreeNode> children;

    public TreeNode(String name, List<TreeNode> children) {
        this.name = name;
        this.children = children;
    }

    public String toString() {
        StringBuilder buffer = new StringBuilder(50);
        print(buffer, "", "");
        return buffer.toString();
    }

    private void print(StringBuilder buffer, String prefix, String childrenPrefix) {
        buffer.append(prefix);
        buffer.append(name);
        buffer.append('\n');
        for (Iterator<TreeNode> it = children.iterator(); it.hasNext();) {
            TreeNode next = it.next();
            if (it.hasNext()) {
                next.print(buffer, childrenPrefix + "├── ", childrenPrefix + "│   ");
            } else {
                next.print(buffer, childrenPrefix + "└── ", childrenPrefix + "    ");
            }
        }
    }
}

Sorce and other implementations: stackoverflow

Windows 7 BSOD MEMORY_MANAGEMENT 1A 403

Что делать если вылетел синий экран смерти на Windows 7, с ошибкой MEMORY_MANAGEMENT и кодом 0x0000001A (0x0000000000000403, .....)


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

  • CL11-11-11-28
  • CL9-9-9-24

Для того, чтобы такая память могла стабильно совместно работать - тайминги должны быть приведены к одному значению. А для того, чтобы уравнять тайминги - нужно изменить частоту работы памяти. В данном случае тайминги должны быть выставлены на меньшее значение, но для этого необходимо понизить также и частоту - до 1333МГц. Если частоту оставить прежней - 1600МГц, то будет вылетать BSOD.

[фото биоса будет позже]

BSOD:

  • 1600 МГц CL9-9-9-24

OK:

  • 1333 МГц CL9-9-9-24

Вывод

Синий экран смерти  MEMORY_MANAGEMENT 1A 403 вылетает в том случае, когда в биосе выставлена неправильная настройка оперативной памяти.