LINUX.ORG.RU

Сообщения nerdogeek

 

Индукция по «индуктивному предположению»

Форум — Development

Увидел доказательство того, что в бинарном дереве с N узлами содержится ровно N+1 внешних узлов. В доказательстве использовалось «индуктивное предположение», т.е. доказательство через еще не доказанное. Совершенно поразило. Хочу поумничать на ЛОРе, да-да)

 

nerdogeek
()

Руководство по проектированию библиотеки на C++

Форум — Development

 

nerdogeek
()

Программисты ex-USSR старше ~35. Где они?

Форум — Talks

Опросил многих знакомых программистов из Минска по сабжу. И действительно, программистов старше 35 единицы. Некоторые из старших ушли в менеджмент или открыли свою конторку (аутсорс, как правило).

Где остальные? Утекли в далёкое забугорье?

nerdogeek
()

Вы верите в закон Парето?

Форум — Talks

Закон Парето, или принцип Парето, или принцип 20/80 — эмпирическое правило, названное в честь экономиста и социолога Вильфредо Парето, в наиболее общем виде формулируется как «20% усилий дают 80% результата, а остальные 80% усилий — лишь 20% результата». Это отсюда

Всё-таки это очень субъективный закон. К нему пытаются приписать всё, что похоже на «80/20». Такие «законы» можно хоть каждый день создавать.

1% пользователей пользуется ОС, на которую было затрачено не мало усилий всего сообщества.

nerdogeek
()

Нестрогие вычисления в императивных ЯП

Форум — Development

Evaluation strategy

Возможна ли такая оптимизация компилятором (или VM), когда вычисление передаваемых параметров происходит при необходимости? К примеру:

void Func(int a, int b) {
   if ( a > 0 ) { // 95% true
     CallA(); return;
   }
   if ( a > -1 && b > 0 ) {
     CallB();
   }
}
...
Func( GetValueFromDisk(), GetValueFromNetwork() );

Если да, то может ли императивный ЯП (c,java) иметь нестрогую модель вычислений?

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

nerdogeek
()

Жёсткое или неадекватное собеседование

Форум — Talks

Реквестирую истории связанные с сабжем

Помню ходил на собеседование в одну не очень примечательную конторку, когда был студентом. Там чувак задавал задачки и головоломки а-ля гугл/яндыкс. Только когда я уточнял задание он как-то кривился и начинал корчить рожу. Короче со стороны чувак вел себя как обычный социопат. Из технических был задан только один вопрос, типа какая апишная ф-я возвращает pid или типо того. Офигенно, правда?

Перемещено beastie из development

 

nerdogeek
()

Россия и наука

Форум — Talks

Уже смешно, правда?
А на самом деле

 , ,

nerdogeek
()

О применении теории групп

Форум — Development

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

Так ли это?
cast quasimoto, dikiy

 

nerdogeek
()

Какие ваши самые нелюбимые области в ИТ?

Форум — Talks

Сабж

мои: web front-end, сайтостроение (cms, php), embedded, enterprize (java ee, .net), DB programming (PL/SQL всякие), mobile programming, gamedev, системное ПО под шin (winapi+MFC - буэээ)

 ,

nerdogeek
()

Некоторые из 20 вопросов Кнуту (и его ответы)

Форум — Talks

 

nerdogeek
()

100 dynamic_cast'ов за 1 миллисекунду

Форум — Development
#include <iostream>
#include <typeinfo>
#include <sys/time.h>
#include <stdint.h>

using namespace std;


// Type Lists
template< typename T, T v = T() >
struct Value
{
    enum { val = v };
    typedef T value_type;
};

struct NullItem
{
    static void Print() { std::cout << std::endl; }
};

template< typename V, typename L >
struct List
{
    typedef V value_type;

    static void Print()
    {
        std::cout << value_type::val << ", ";
        L::Print();
    }
};

template< class List > struct Next;

template< class V, class L >
struct Next< List< V, L > >
{
    typedef L NextType;
};

template< unsigned n, int i = 0, int until = n + i, class G = NullItem >
class Generate
{
    typedef List< Value< int, i >, G > NewList;
public:
    typedef typename Generate< n, i + 1, until, NewList >::NextType NextType;
};

template< unsigned n, int until, class G >
class Generate<n, until, until, G>
{
public:
    typedef G NextType;
};


// Linear class hierarchy
struct IBase
{
    virtual ~IBase() {}
    virtual void Print() = 0;
};

template< class TList >
struct CRTP : CRTP< typename Next< TList >::NextType >
{
    virtual void Print()
    {
        cout << typeid( *this ).name() << " " << TList::value_type::val << endl;
    }
};

template<>
struct CRTP< NullItem > : IBase
{
    // IBase
    virtual void Print()
    {
        cout << typeid( *this ).name() << endl;
    }
};


void TestDownCast( IBase *b )
{
    static const int NUM_CASTS = 10 * 1000;

    struct timeval tvStart, tvEnd;
    gettimeofday( &tvStart, NULL );

    for( int i = 0; i < NUM_CASTS; ++i )
    {
        CRTP< NullItem > *pCRTP = dynamic_cast< CRTP< NullItem > * >( b );
        /*if ( pCRTP )
        {
            cout << "downcasted successfully" << endl;
        }*/
    }

    gettimeofday( &tvEnd, NULL );
    int64_t elapsed = (int64_t)( tvEnd.tv_sec - tvStart.tv_sec ) * 1000000 +
                               ( tvEnd.tv_usec - tvStart.tv_usec );

    cout << NUM_CASTS << " casts : elapsed " << elapsed << " us" << endl;
}


int main()
{
    static const int NUM_ITEMS = 500;
    typedef Generate< NUM_ITEMS >::NextType GenList;
    //GenList::Print();

    CRTP< GenList > r;
    //r.Print();

    TestDownCast( &r );

    return 0;
}
g++ dc.cpp -o dc
./dc
10000 casts : elapsed 97958 us

Не «ШОК!ФОТО!» ли это?

 ,

nerdogeek
()

Чего это Xorg жрёт столько процессорного времени?

Форум — General

Компилим и запускаем этот код на одном терминале:

#include <stdio.h>
int main()
{
    while(1) printf("123456789012345678901234567890123456789012345678901234567890\n");
    return 0;
}
gcc test.c -o t && ./t
Смотрим результат на другом:
user@house:~/tmp$ top

top - 12:08:59 up 1 day,  2:01,  6 users,  load average: 0,35, 0,77, 1,67
Tasks: 154 total,   2 running, 152 sleeping,   0 stopped,   0 zombie
%Cpu(s): 32,9 us, 17,1 sy,  0,0 ni, 49,8 id,  0,2 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem:   1026636 total,   675240 used,   351396 free,    12456 buffers
KiB Swap:  1046524 total,   257288 used,   789236 free,   272288 cached

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND                                                                                                           
  966 root      20   0  182m  69m 6720 R  77,4  7,0  82:00.44 Xorg                                                                                                              
24118 user    20   0  119m 4872 3008 S  12,6  0,5   0:44.14 xfce4-terminal                                                                                                    
 1748 user    20   0  122m 9640 5016 S   2,7  0,9   2:17.45 xfce4-panel                                                                                                       
 4484 user    20   0  768m 207m 7652 S   2,7 20,7  26:43.86 firefox                                                                                                           
 1746 user    20   0  112m 4036 2684 S   1,7  0,4   2:50.48 xfwm4

 

nerdogeek
()

Асинхронный и синхронный i/o и планировщик ядра

Форум — Development

Асинхронная или синхронная операция ввода/вывода приводит к вызову syscall, что всегда приводит к вызову планировщика задач ядра. Правильно? Если так, то на загруженной системе вызов что асинхронной, что синхронной операции приведёт к тому, что квант времени с большой вероятностью будет передан другому, более приоритетному процессу. Тогда в чём профит от асинхронных операций в данном случае?

UPD: Всякий ли системный вызов может привести к вытеснению планировщиком ядра текущего таска?

nerdogeek
()

Ёжик в тумане

Форум — Talks

 

nerdogeek
()

Если бы iq хомо сапиенсов в среднем был в 2 раза выше

Форум — Talks

Или, другими словами, если бы все были в два раза умнее,эрудированее,интеллектуальнее. Как изменился бы мир?

Будущее за победой разума или животных инстинктов и порядков? Или за супервулканом?)

nerdogeek
()

Build Your Own Lisp

Форум — Development

Learn C and build your own programming language in under 1000 lines of code!

Добрый автор поведает вам, как написать Lisp своей мечты на языке C.

 , ,

nerdogeek
()

Hardware transactional memory и x86

Форум — Development

А это правда что hardware transactional memory не могут запилить нормально, потому что x86 - допотопное костыльное УГ?
Вроде как есть какие-то потуги в этом направлении в архитектуре Intel Haswell, но всё там какое-то с дичайшими ограничениями

 ,

nerdogeek
()

Actor model не взлетела. Причины

Форум — Development

Why has the actor model not succeeded?

Уже не одно десятилетие прошло с момента появления модели акторов. Такая стройная теоретическая модель должна была вытеснить мютексы, условные переменные и прочие примитивы для синхронизации shared state.

Вкратце, причины неуспеха модели акторов из статьи:
1) Акторы не имеют прямой связи с моделью ООП.
2) Поведение динамическое, зачастую трудно предсказуемое и проблемы появляются в run-time. Что еще усугубляется возможностью актора создавать других акторов.
4) Требования по памяти обычно не могут быть определены до запуска.
5) Идея асинхронного обмена сообщениями затрудняет реализацию некоторых алгоритмов.
6) Сложность в реализации протокола последовательного взаимодействия между акторами.

 ,

nerdogeek
()

Рецепт для ощущения чувства времени

Форум — Talks

Хотите почувстовать ход времени? Внимательно следить за каждой протекающей секундой.
Правильно. Вам помогут вещества. Только свои собственные.
Сделайте глубокий вдох и неспеша выдохните, при этом запустив секундомер. Задержите дыхание и когда станет уже трудно без воздуха, посмотрите на секундомер. Но не вдыхайте! Постарайтесь еще хотя бы 10 секунд потерперть (или насладиться, кому как) этими секундами. Обещаю, вы станете замечать длительность миллисекунд.

Как-то так

nerdogeek
()

Haskell и корпоративные приложения

Форум — Development

Есть ли книги по части построения архитектуры и проектирования корпоративных приложений на функциональных языках, в частности Haskell? Что-нибудь подобное Роберту Мартину или М. Фаулеру.

 

nerdogeek
()

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