четверг, 1 ноября 2012 г.

требования к senior разработчику
http://www.hanselman.com/blog/NewInterviewQuestionsForSeniorSoftwareEngineers.aspx
хороший сайт по работе с фотографией, поиск автофокуса  и пр. со статьями на русском

http://www.cambridgeincolour.com/ru/learn-photography-concepts.htm

четверг, 18 октября 2012 г.

Альтернативная пресса Чапаевска
http://chapaevskpubl.narod.ru

воскресенье, 11 марта 2012 г.

Журналы, ресурсы

Жарналы и ресурсы для программиста (из незнакомого)

http://msdn.microsoft.com/en-us/architecture/bb410935 - The Architecture journal
http://www.ispras.ru/ru/proceedings/archives.php - Труды института системного программирования РАН
fprog.ru - Практика функционального программирования
procoder.info - журнал "ПРОграммист"


На недалекое будущее

Юнит тестирование на С++ - googletest
Багтреккер - Bugzilla
win32++ framework - http://sourceforge.net/projects/win32-framework/


Книги и лекции
Structure and Interpretation of Computer Programs - http://mitpress.mit.edu/sicp/full-text/book/book.html Video Lectures by Hal Abelson and Gerald Jay Sussman - http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/

http://www.slideshare.net/rawwell/iteratorsmustgo

среда, 1 февраля 2012 г.

Redis на CentOS

https://github.com/downloads/andymccurdy/redis-py/redis-py-2.2.1.tar.gz

here: https://github.com/andymccurdy/redis-py/downloads
http://degizmo.com/2010/03/22/getting-started-redis-and-python/

среда, 25 января 2012 г.

Список пользователей, учетных записей

w, who - показывает текущих пользователей;
users -  выводит список имён пользователей на данном хосте;
id - выводит инфо об указанном пользователе
groups - выводит список групп, в которых состоит пользователь.

Вывести список всех пользователей в системе:
Консоль:
$ cat /etc/passwd
Поля вывода будут иметь следующую структуру:
<пользователь>:<пароль>:<id_пользователя>:<первичный_групповой_id>:<фамилия>,<имя>,<адрес>,<рабочий_телефон>,<домашний_телефон>:<рабочая_директория>:<командная_оболочка>
Например:
Консоль:
sam:x:1000:1000:Linux,Samuel,,,:/home/sam:/bin/bash
...
Вывести список всех групп:
Консоль:
$ cat /etc/group
Поля вывода будут иметь следующую структуру:
<группа>:<пароль>:<id_группы>:<перечень_участников>*
Например:
Консоль:
cdrom:x:24:sam
...
 взято с linuxforum.ru

ссылки по CentOS

CentOS - openwiki.ru, минидокументация
www.metalcandy.ru

Лечим кракозябры в PUTTY

Случаи, когда при подключении через PuTTY по SSH из Windows в Unix (Linux, FreeBSD) начинаются танцы символов, которые начинают рисоваться неверно (со смещением, кракозябрами вместо псевдографики), а также когда утилиты, работающие с псевдографикой, рисуют ее как угодно, но только не правильно (пример Midnight Commander ниже) - нередки. При этом также неверно отображаются интернациональные (в том числе русские) символы.

140_11.png

Происходит это из-за несовпадения кодировок PuTTY и операционной системы, а точнее - ее виртуального SSH терминала.

Исправить это можно, задав кодировку в PuTTY.

Итак, открываем PuTTY, идем в секцию "Window / Translation" и видим опцию "Received data assumed to be in which character set".

По-умолчанию там стоит "KOI8-R". Меняйте это значение на то, которая находится на стороне сервера (чаще всего в таких случаях - UTF8) и спокойно подключайтесь к нужной машине.

Если хотите сохранить это значение на будущее - то после смены кодировки в PuTTY вернитесь на вкладку "Session", выберите пункт "Default Settings" и нажмите "Save".

Так же можно сохранить определенную кодировку для каждого сервера, занеся еще и IP сервера в строку "Host name (or IP address)", поменяв кодировку на нужную для этого сервера, занеся имя сохраняемых настроек в поле "Saved Sessions" и нажам на "Save".

взято с how-it.ru

пятница, 6 января 2012 г.

UI и многопоточность

Продолжаем осваивать .NET и многопоточность в C#. Очень часто возникает ситуация, когда из вторичных потоков необходимо изменить состояние пользовательского интерфейса, прогрессбары, кнопки и прочее. Для решение подобных вопросов можно использовать контекст свободных потоков SynchronizationContext. В него сохраняется поток UI. А дальше просходит вызов метода Send для выполнения переданного в качестве параметра делегата в потоке UI вот так:

uiContext.Send(d => progressBar.Value = i, null);

Вот пример кода, взято отсюда:

public partial class MainWindow : Window

{

SynchronizationContext uiContext;

Thread t;

public MainWindow()

{

InitializeComponent();

}

private void btnStart_Click(object sender, RoutedEventArgs e)

{

btnStart.IsEnabled = false;

btnStop.IsEnabled = true;

uiContext = SynchronizationContext.Current;

t = new Thread(Calc);

t.Start();

}

private void btnStop_Click(object sender, RoutedEventArgs e)

{

t.Interrupt();

}

private void Calc()

{

try

{

for (Int32 i = 0; i <= 100; i++)

{

uiContext.Send(d => progressBar.Value = i, null);

Thread.Sleep(100);

}

}

catch

{

}

finally

{

uiContext.Send(d => progressBar.Value = 0, null);

uiContext.Send(d => btnStop.IsEnabled = false, null);

uiContext.Send(d => btnStart.IsEnabled = true, null);

}

}

private void Window_Closed(object sender, EventArgs e)

{

t.Interrupt();

}

}