LINUX.ORG.RU

Избранные сообщения ubik

Позволяет ли такой алгоритм откатить последнюю запись в файле в случае фейла питания?

Форум — Development

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

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

Решение такое:

запись
- пример: хотим добавить 76 кб данных
- добавляем в конец файла header фиксированного размера, в который пишем hash данных + размер данных (76*1024). Можно записать hash этого header прямо перед ним самим
- вызываем fsync() — это как барьер памяти, не позволяющий переупорядочить операции записи перед ним и за ним
- дописываем наши данные (76 kb payload)
- вызываем fsync()

чтение после сбоя
1. Открываем файл сначала и последовательно проверяем: если очередной header в неадеквате (файл кончился раньше размера header (он фиксир.), hash header-a не совпало) — считаем всё пространство файла начиная с header-а далее пустым. Потеряем только 1 запись, ведь в середине ничего не переписывали.
2. если header вменяем, но в файле осталось меньше данных чем сказано в header или данных хватило, но их hash не совпал с указанным в header - пункт (1) - считаем файл пустым, начиная с начала header

Данная фигня как-бэ гарантирует, что мы можем потерять только последнюю запись и надёжно её выкинуть без утечек «дисковой памяти» и можем продолжить дописывать в файл с правильного места, не создав далее ошибок для его разбора. Обсудите, так ли это?

 ,

hlamotron
()

Поясните про сдвиг в C

Форум — Development

Корректен ли такой код, если нужно склеить 2 байта:

unsigned char a = 0xAA;
unsigned char b = 0xFF;
unsigned short c = (a<<8)|b;
Получаю 0xAAFF. Так и должно быть или это UB? Почему результат (a<<8) не 0?
Стандарт:

3 The integer promotions are performed on each of the operands. The type of the result is that of the promoted left operand. If the value of the right operand is negative ori s greater than or equal to the width of the promoted left operand, the behavior is undefined.

Как я понял, перед сдвигом имеет место приведение типа обоих операндов. Соответственно, результат (a<<8) уже не однобайтовый и дает 0xAA00. Если так, к какому типу приводится? От чего это зависит?

 ,

tyro33
()

Проясните по TLS

Форум — Development

Добрый день!

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

До этого дел с шифрованием не имел, в сортах криптографии не разбираюсь.

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

Как мне все это дело обернуть в этот ваш TLS? Как это вообще выглядит в канале? TCP?

 , ,

PPP328
()

Как стянуть канал с ютуба?

Форум — Talks

Открыла для себя замечательный канал на youtube - Computer Science Center. Особенно понравились лекции по сишным шаблонам и потокам. Захотелось мне закачать на свой телефон видосиков, дабы пока еду в метро на работу их смотреть или слушать.

Есть инструменты, позволяющие скачивать не отдельные видео, а целые плейлисты, а еще лучше каналы? Или даже не только скачивать, но и докачивать новые, синхронизировать?

 

totik
()

Перевод слов в консоли

Новости — Open Source
Группа Open Source

translate — удобный консольный переводчик слов с использованием словарей dict. Настройка производится в файле конфигурации, в котором можно указать всего две опции, причём вторую по желанию. В первой опции — каталог или каталоги через запятую, где лежат словари. Вторая опция — собственно словари, если нужны какие-то конкретно, по умолчанию будут проверять все словари. Программа поддерживает цветной вывод.

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

 , , ,

u0atgKIRznY5
()

Подскажите при каких условиях gdb может не иметь доступа к отдельным участкам памяти исследуемого приложения?

Форум — Development

Вобщем есть указатель на 16-ти байтовую строку который memcpy() удачно копирует в другой буфер, но при этом gdb не может прочитать память в которой расположена строка.

Что может быть?

 

cvv
()

Нет больше слёзок — lorify

Форум — Talks

Что нового? (с момента предыдущей темы)

Теперь превьюхи пропадают по timeout'у, начиная с момента, когда пользователь уводит курсор мыши от изначальной ссылки (так что вам больше не придётся сначала наводить курсором на превьюху, чтобы убрать её)

Timeout этот, как и раньше, задаётся опцией «Задержка перед preview» в случае расширений и переменной delayAfterPreviewMillisecs в случае userscript'а

Просили много кто — например, f1u77y, StReLoK, sudopacman, Loki13, beer_and_linux и Wind

Также добавил в список поддерживаемых способов для доната данные для перевода BTC.

ВНИМАНИЕ

Настоятельно рекомендую выставить параметр «Задержка перед preview» в какое-нибудь ненулевое значение (рекомендую 800, теперь это дефолтное значение для новых пользователей). В противном случае будет довольно трудно «прыгнуть» с одного комментария на другой, если между ссылкой и новой превьюхой есть какое-либо пространство (например, с одной из нижних ссылок на превьюху чуть повыше, как показано в следующем скриншоте — http://i.imgur.com/kX8PpNi.png).

Огромное спасибо всем, кто уже поддержал проект материально и идейно!

Алсо, пишите свои ники на ЛОРе в комментариях к переводам — так удобнее благодарить, да и вообще приятно знать, кто помог проекту

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

======================

Помощь проекту

Если у вас есть желание помочь проекту материально, буду признателен за переводы любым удобным для вас способом:

Если удобного для вас способа нет в списке, напишите об этом здесь или мне на почту — b0r3d0mness [at] gmail [dot] com

======================

Стандартная шапка

======================

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

lorify — это расширение для браузеров, которое позволит вам:

  • Видеть ответы на каждое сообщение
  • Отображать превью сообщений при наведении на соответствующие ссылки
  • Автообновлять треды
  • Отображать оповещения о новых ответах на рабочем столе

======================

Firefox

Скачать новую версию (v1.7.0)

ВНИМАНИЕ

Новая версия ещё не прошла review (старые, кстати, уже получили аппрувы от Mozilla), так что для её установки требуется выполнить следующие действия:

  • Открываете новую вкладку, пишете в адресную строку «about:config» (без кавычек) и нажимаете Enter
  • В появившуюся строку поиска вводите «xpinstall.signatures.required» (без кавычек) и делаете данный параметр равным false
  • Переходите по ранее указанной ссылке и устанавливаете аддон

Исходный код можно посмотреть тут.

======================

Chrome

Скачать

Исходный код можно посмотреть тут.

======================

Userscript

Можно взять отсюда (userscripts.org лежит)

======================

Changelog

**********************

Chrome

v1.11.0

  • Добавлена опция для оповещений о новых ответах на рабочем столе (по умолчанию отключена)
  • Добавлена опция для отключения отображения ответов в тредах, кол-во страниц в которых превышает определённое значение (по умолчанию 20 стр.)
  • Добавлена поддержка голосований (www.linux.org.ru/polls/polls/)
  • У тредов с новыми ответами изменяется favicon (иконка в заголовке таба). Спасибо theNamelessOne за pull request

v1.10.1

  • Исправлен баг с дублированием строки «Показаны все комментарии. Скрыть игнорируемые» при каждом автообновлении страницы

v1.10.0

  • Timeout для убирания превьюх теперь стартует после того, как пользователь уводит курсор со ссылки, а не по наведению на превьюху
  • Параметр «Задержка перед preview» теперь имеет дефолтное значение равное 800 мс

v1.9.0

  • Для зарегистрированных пользователей теперь отображается ник ответившего
  • Строка с ответами перенесена на тот же уровень, где находится кнопка «Ответить на это сообщение»

v1.8.0

  • Опция «Задержка перед preview» теперь требует hover'а над элементом в течение указанного времени вместо просто отображения превью по истечению данного времени (теперь просто проведением курсора над комментариями при ненулевой задержке вы не наоткрываете кучу превьюх)
  • При клике на область вне превьюх все из них удаляются
  • Автообновление автоматически отключается для архивных и удалённых тредов (спасибо theNamelessOne за pull request)
  • При нажатии на все ссылки (комментарии, ответы) страница не будет загружена повторно, если соответствующий комментарий находится на ней же
  • Убрана иконка из тулбара
  • Исправил заголовок окна опций расширения

v1.7.1

  • Появление новых страниц в результате автообновления теперь сигнализируется добавлением "(!)" в заголовок страницы
  • Исправлена проблема с «утечкой памяти»

v1.7.0

  • Добавлено дерево превьюх — http://i.imgur.com/wjzWIkV.png
  • Положение превьюх теперь определяется таким же образом, как и на дваче

v1.6.0

  • Добавлено отображение ответов

v1.5.0

  • Добавлены настройки
  • Исправлен баг с непропадающими превьюхами
  • Исправлены грамматические ошибки

v1.4.2

  • Исправлен баг с отсутствием превьюх у сообщений, добавленных после автообновления страницы

v1.4.1

  • Исправлен баг с неправильным расположением autorefresh checkbox'а после автообновления страницы

v1.4.0

  • Добавлена возможность автообновления тредов

v1.3.0

  • Добавлена рамка для превьюх

v1.2.0

  • Добавлена поддержка «Галереи» и «Новостей»

v1.1.0

  • Добавлена поддержка HTTP (нешифрованного соединения)

**********************

Firefox

v1.7.0

  • Добавлена опция для оповещений о новых ответах на рабочем столе (по умолчанию отключена)
  • Добавлена опция для отключения отображения ответов в тредах, кол-во страниц в которых превышает определённое значение (по умолчанию 20 стр.)
  • Добавлена поддержка голосований (www.linux.org.ru/polls/polls/)
  • У тредов с новыми ответами изменяется favicon (иконка в заголовке таба). Спасибо theNamelessOne за pull request

v1.6.1

  • Исправлен баг с дублированием строки «Показаны все комментарии. Скрыть игнорируемые» при каждом автообновлении страницы

v1.6.0

  • Timeout для убирания превьюх теперь стартует после того, как пользователь уводит курсор со ссылки, а не по наведению на превьюху
  • Параметр «Задержка перед preview» теперь имеет дефолтное значение равное 800 мс

v1.5.0

  • Для зарегистрированных пользователей теперь отображается ник ответившего
  • Строка с ответами перенесена на тот же уровень, где находится кнопка «Ответить на это сообщение»

v1.4.0

  • Опция «Задержка перед preview» теперь требует hover'а над элементом в течение указанного времени вместо просто отображения превью по истечению данного времени (теперь просто проведением курсора над комментариями при ненулевой задержке вы не наоткрываете кучу превьюх)
  • При клике на область вне превьюх все из них удаляются
  • Автообновление автоматически отключается для архивных и удалённых тредов (спасибо theNamelessOne за pull request)
  • При нажатии на все ссылки (комментарии, ответы) страница не будет загружена повторно, если соответствующий комментарий находится на ней же
  • Убрана иконка из тулбара

v1.3.1

  • Появление новых страниц в результате автообновления теперь сигнализируется добавлением "(!)" в заголовок страницы
  • Исправлена проблема с «утечкой памяти»

v1.3.0

  • Добавлено дерево превьюх — http://i.imgur.com/wjzWIkV.png
  • Положение превьюх теперь определяется таким же образом, как и на дваче

v1.2.0

  • Добавлено отображение ответов

v1.1.0

  • Добавлены настройки
  • Исправлен баг с непропадающими превьюхами
  • Исправлены грамматические ошибки

**********************

Userscript

v1.5.0

  • Добавлена опция для оповещений о новых ответах на рабочем столе (по умолчанию отключена)

v1.4.0

  • Добавлена опция для отключения отображения ответов в тредах, кол-во страниц в которых превышает определённое значение (по умолчанию 20 стр.)
  • Добавлена поддержка голосований (www.linux.org.ru/polls/polls/)
  • У тредов с новыми ответами изменяется favicon (иконка в заголовке таба). Спасибо theNamelessOne за pull request

v1.3.2

  • Исправлен баг с дублированием строки «Показаны все комментарии. Скрыть игнорируемые» при каждом автообновлении страницы

v1.3.1

  • Исправлен баг с зависанием (спасибо Danil Pleshakov за pull request)

v1.3.0

  • Timeout для убирания превьюх теперь стартует после того, как пользователь уводит курсор со ссылки, а не по наведению на превьюху
  • Параметр «Задержка перед preview» теперь имеет дефолтное значение равное 800 мс

v1.2.0

  • Для зарегистрированных пользователей теперь отображается ник ответившего
  • Строка с ответами перенесена на тот же уровень, где находится кнопка «Ответить на это сообщение»

v1.1.0

  • Добавлена поддержка окружений, где недоступен ES6
  • Опция «Задержка перед preview» теперь требует hover'а над элементом в течение указанного времени вместо просто отображения превью по истечению данного времени (теперь просто проведением курсора над комментариями при ненулевой задержке вы не наоткрываете кучу превьюх)
  • При клике на область вне превьюх все из них удаляются
  • Автообновление автоматически отключается для архивных и удалённых тредов (спасибо theNamelessOne за pull request)
  • При нажатии на все ссылки (комментарии, ответы) страница не будет загружена повторно, если соответствующий комментарий находится на ней же

======================

Буду признателен за баг-репорты, конструктивный фидбэк и pull request'ы.

И да, подписывайтесь на тег «lorify».

 , , , ,

b0r3d0m
()

Какими расширениями для Firefox вы пользуетесь?

Форум — Talks

Title. Хочу взять для себя что-то полезное.

 , ,

ilipnitsky
()

чем вы пишите?

Форум — Talks

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

 

quest
()