LINUX.ORG.RU

Сообщения AlexVR

 

Abstract data type и Си

Форум — Development

Задача написать учебный пример по Abstract data type на примере Си.

Что получилось:

stack.h:

// ...
struct Stack_s;
typedef struct Stack_s Stack;
// Old: typedef int Item;
typedef int8_t Item;

// Old: Stack*  stack_create    ();
// Old: void    stack_destroy   (Stack **stack);
// Old: Stack*  stack_clone     (Stack *stack);
Stack*  stack_create    (void);
void    stack_destroy   (Stack *stack);
Stack*  stack_clone     (const Stack *stack);

size_t  stack_size      (const Stack *stack);
int     stack_is_empty  (const Stack *stack);

void    stack_push      (Stack *stack, Item item);
Item    stack_pop       (Stack *stack);
Item    stack_top       (const Stack *stack);
void    stack_clear     (Stack *stack);
// ...

stack.c:

#include "stack.h"

struct Stack_s {
  // Полное описание структуры стека скрыто от пользователя
  // ...
};

// Old: Stack* stack_create() {
Stack* stack_create(void) {
  // Создать стек можно только используя stack_create
  // ...
}

// ...

main.c:

#include <stdio.h>
#include <stack.h>

int main(void) {
  Stack *stack = stack_create();
  
  stack_push(stack, 1);
  stack_push(stack, 2);
  stack_push(stack, 3);
  
  while(!stack_is_empty(stack)) {
    printf("%d\n", stack_pop(stack));
  }
  
// Old: stack_destroy(&stack);
  stack_destroy(stack);
  return 0;
}

Хочется конструктивной (и не очень) критики.

Не смог найти хороших ссылок по именованию и минимальному набору функций (в том числе как удалять «объект»).

З.Ы.: Про GObject, Cello, OOC toolkit, Axel T. Schreiner, Object-Oriented Programming with ANSI-C слыхал

 ,

AlexVR
()

Цветовая палитра Google Material design для LaTeX

Галерея — Скриншоты

Нодоело в TikZ вечные blue!30, red!43. Потратил немного времени и набил пакетик с определениями цветов из первой попавшейся палитры.

Кому надо, файлик и пример тут

>>> Просмотр (1920x1045, 293 Kb)

 

AlexVR
()

multiplo

Форум — Talks

Есть такой «свободный» конструктор http://multiplo.org/.

Кто его юзал? И что есть похожего?

 

AlexVR
()

Симпатичный python веб-фреймворк

Форум — Web-development

Есть ряд мелких задач для управления сервером, которые хочется свести в простую Web-морду. Для чего готов написать немного кода. Основные требования:

  • Поддержка аутентификации в LDAP (OpenLDAP).
  • Выполнение подготовленных скриптов от имени вошедшего пользователя.
  • Готовый набор CSS-стилей.
  • Простой способ создания небольших форм.
  • Закладки или глобальное меню для основных групп заданий.

Примеры задач:

  • Управление пользователями и группами LDAP для «админов».
    • Создать пользователя и одноимённую группу.
    • Создать пачку пользователей вида user01, user02, …., user23.
    • Создать группу для проекта и поместить в неё пользователей. Для этой группы автоматом создать директорию на общем файловом ресурсе.
  • Отображение статуса квот в общей файловой системе для текущего пользователя.
  • Управление квотами для «админов».
  • Отобразить очередь заданий текущего пользователя в планировщике задач SLURM.
  • Удалить из очереди SLURM задание.
  • ...

Главное от чего хочется уйти, так это от HTML/CSS вёрстки.

 , ,

AlexVR
()

CentOS vs Scientific Linux, заход №2016.1

Форум — General

Стою перед выбором CentOS 7 или Scientific Linux 7.

Цель: обновление вычислительного кластера.

Как следствие: будут свои ядра для работы с Lustre.

Подход к сохранению версий 7.1/7.2 в SL мне больше по душе чем Rolling у CentOS.

Результат: пока склоняюсь к SL

Хочется услышать за и против от других.

 , ,

AlexVR
()

Поедим или DVCS для маленьких

Галерея — Скриншоты

Вдохновившись идеей использовать список продуктов как объект для объяснения систем управления версиями [link] накидал пару слайдов.

Осталось дело за малым: накидать остальные слайды. Так что продолжение в следующем учебном году, а пока доска и мел.

>>> Ссылка на исходник

>>> Просмотр (3200x1080, 499 Kb)

 , , ,

AlexVR
()

Определение системы управления версиями

Форум — General

Решил тут подготовить пару слайдов по DVCS для студентов и понял, что не могу выбрать внятное определение «системы управления версиями» и список функций, что бы влезало на слайд обычным текстом в beamer. Кто что может посоветовать?

UPDATE:

Исходный код презентации: https://bitbucket.org/AlexVRud/presarhpc/src/default/Mercurial_intro.tex?file...

 , , , ,

AlexVR
()

Выход файловой системы Lustre 2.8

Новости — Кластеры
Группа Кластеры

Объявлено о выходе новой версии распределённой файловой системы Lustre 2.8.

Основные изменения:

  • Официальная поддержка RHEL 7 для MDT и OST серверов (ядро Linux 3.10).
  • DNE: Асинхронное применение обновлений между MDT серверами. Реализован функционал для удалённого переименования и работы с жёсткими ссылками.
  • LFSCK: Повышение производительности при online проверке целостности файловой системы.
  • Поддержка SELinux на стороне клиента.
  • Поддержка множественных изменений метаданных в RPC-запросе со стороны клиента.

Файловая система Lustre предназначена для построения высокопроизводительного масштабируемого хранилища (на нескольких серверах) для большого числа клиентов (есть инсталляции для тысяч клиентов). Основная сфера применения: вычислительные кластерные системы. За счёт распределения файлов по серверам, активного использования оперативной памяти для кэша и поддержки InfiniBand может достигаться суммарная пропускная способность в сотни ГБ/с.

Changelog

Скачать

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

 , , ,

AlexVR
()

static const double в функции

Форум — Development

Как избавиться от варнинга в ситуации:

typedef struct Solver_s {
    ...
} Solver;

double Solver_compute_X(Solver * self) {
    static const double alpha = sqrt(M_PI)/27.0; // <--- Warning
    static const double beta  = cos(3.0/17.0);   // <--- Warning
    ...
    return ... alpha ... beta ...;
}

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

 

AlexVR
()

Делать вложенные классы или нет?

Форум — Development

Пусть есть некая модель: http://medical.nema.org/dicom/2013/output/chtml/part17/sect_C.5.html

Patient
Study
Series
Waveform
Waveform\MultiplexGroup
Waveform\Chanel
Waveform\Sample
Которую надо представить в виде классов в библиотеке на C++.

Так же планируется задействовать SWIG для предоставления доступа к библиотеке из Python.

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

1:

namespace dicom {
class Patient;
class Study;
class Series;
class Waveform;
class WaveformMultiplexGroup;
class WaveformChannel;
class WaveformSample;
}

2:

namespace dicom {
class Patient;
class Study;
class Series;
class Waveform {
  class MultiplexGroup;
  class Channel;
  class Sample;
  ...
};
}

3:

namespace dicom {
class Patient;
class Study;
class Series;
class Waveform
namespace wf {
  class MultiplexGroup;
  class Channel;
  class Sample;
}
}

 ,

AlexVR
()

Наследование

Форум — Development

Лето, температура за бортом +10, что уже радует.

Решили порешать задачки, ни у одну подкидываю.

Есть код:

#include <iostream>

class Foo {
public:
    Foo() : a_(0) {};
    Foo(int a) : a_(a) {};
    inline int getA() { return a_; };
    virtual void print() { std::cout << "{a: " << getA() << "}\n"; };
private:
    int a_;
};

class Bar : public Foo {
public:
    Bar() : Foo(), b_(0) {};
    Bar(int a, int b) : Foo(a), b_(b) {};
    inline int getB() { return b_; };
    virtual void print() override { std::cout << "{a: " << getA() << ", b: " << getB() << "}\n"; };
private:
    int b_;
};

int main() {
    Foo t1 = Bar(10,10);
    Bar t2 = Bar(20,20);
    Foo *t3 = new Bar(30,30);
    t1.print();
    t2.print();
    t3->print();
    delete t3;
    return 0;
}

Выхлоп ожидаемый:

...$ g++ -std=c++11 task.cpp && ./a.out
{a: 10}
{a: 20, b: 20}
{a: 30, b: 30}

И тут вопрос: «А как сделать вывод в первой строке такой же как в других? А чем это будет плохо?»

 

AlexVR
()

stdarg и float

Форум — Development

При компиляции на 32-битной платформе:

float x = 0.0f;
printf("%f", x);
будет происходить нечто подобное:
float x = 0.0f;
printf("%f", (double)x);
Т.е. дополнительные параметры типа float будут преобразованы в тип double, перед вызовом функции с переменным числом аргументов.

Вопрос: в каком документе это описано?

AlexVR
()

Перезагрузка из-за переполнения ОЗУ

Форум — Admin

Ситуация: вычислительный кластер, на узлах запускается приложение в 20 потоков потребляющее много памяти. В один момент ОЗУ заканчивается и узлы тут же уходят в перезагрузку. Что бы пользовательское приложение уводило систему в перезагрузку мне кажется мало вероятным, более вероятным кажется, что систему выводит из строя либо какая-то служба (например, ganglia), либо драйвер Infiniband. Если что ОС Redhat 6, ОЗУ 64Гб, своп 2 Гб. Что можно сделать?

AlexVR
()

Удалённый графический терминал

Форум — General

Понимаю, что задача достаточно стандартная, но башка уже не варит.

Есть сервер (RedHat). На нём в основном народ будет работать через ssh. Но в некоторых случаях нужен запуск графических приложений. Проброс X-ов ведёт себя, мягко говоря, притормаживающи. Каналы связи клиентов могут быть крайне медленными (1Мб/с, а то и уже). Основная ОС клиентов: Оффтоп. В далёкие времена я для таких целей использовал FreeNX. Но что сейчас выбрать?

AlexVR
()

Тем кто пользуется CentOS

Форум — Desktop

Стою перед задачей поднять несколько машиин с CentOS для разработки ПО под кластер. Честно говоря от такого закоренелого Ынтерпрайза я в шоке. Тихо мирно первый ноут привожу к удобоворимому виду. Но вот хочется услышать, кто как использует сабж (какие репозитории используете, откуда таскаете spec-файлы, чем автоматизируете сборку пакетов, зачем вам вообще это надо, ...)

 

AlexVR
()

Глюк с [url=...

Форум — Linux-org-ru

Пример А пытался сослаться на http://xn--90afdbaav0bd1afy6eub5d.xn--p1ai/bsr/case/13446

AlexVR
()

Tizen 2.2.1

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

Вышел корректирующий релиз операционной системы Tizen 2.2.1.

Изменения:

  • Общие
    • Добавлены системные настройки конфиденциальности.
    • Возможность установки приложений на флеш-карту.
    • Поддержка «USB.org framework test tool» и «Mac OS X».
  • Web Framework
    • Плавная всплывающая анимация при повороте экрана.
    • Перемещение фокуса с использованием клавиатуры.
    • Исправление ошибок.
  • Native Framework
    • Незначительно изменены списки исключений, прав доступа и системных ключей.
    • Большой упор сделан на исправление ошибок.

Tizen предлагает два основных подхода к написанию приложений HTML5 и «Нативные». С другой стороны, через утилиту «Smart Development Bridge» можно получить доступ к консоли устройства и воспользоваться утилитой zypper для доступа к репозиториям на http://download.tizen.org/releases/ .

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

 

AlexVR
()

http://www.doxygen.org в реестре?

Форум — Talks

Что-то у меня http://www.doxygen.org/ выдаёт сообщение «Мы приносим свои извинения, но доступ к запрашиваемому ресурсу ограничен.»

З.Ы.: Хотя http://doxygen.org/ - редиректится на http://www.stack.nl/~dimitri/doxygen/ и всё ок.

AlexVR
()

Страница регистрации

Форум — Linux-org-ru

Сейчас зашёл через другой браузер и пришлось логинится. Но я промахнулся и попал на страницу регистрации, после чего повторно залогинился и тут увидел форму регистрации в своей любимой black-теме.

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

AlexVR
()

NVIDIA представила Nsight Eclipse Edition

Новости — Проприетарное ПО
Группа Проприетарное ПО

NVIDIA выпускает интегрированную среду разработки Nsight для Linux и MacOS на базе Eclipse. В неё входят:

  • Nsight Source Code Editor — шаблоны проектов, подсветка синтаксиса, автодополнение для CUDA;
  • Nsight Debugger — отладка и симуляция выполнения кода на CPU и GPU;
  • Nsight Profiler — анализ производительности выполнения кода на CPU и GPU.

На данный момент Nsight Eclipse Edition доступна как часть CUDA 5 Preview Toolkit для зарегистрированных GPU-разработчиков.

Страница Nsight Eclipse Edition на NVIDIA

Видеообзор

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

 ,

AlexVR
()

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