LINUX.ORG.RU

Сообщения Graduate

 

Хочу стать программистом C/Linux в 32 года — часть 2

Это продолжение моего первого поста.

Перед Новым годом отправил резюме в компанию в своём городе Владивостоке. К сожалению, это единственная компания в нашем регионе, которая нанимает C/C++ программистов. (Если вы не знали, на всём Дальнем востоке есть только две крупные IT-компании: это Farpost и Ронда. Farpost занимается веб-порталами, а Ронда это небольшой Luxoft, которая делает как свои проекты, так и серьёзный софт на заказ для американцев и японцев.)

HR говорит: «Давайте вы сначала напишите наш тест на знание языка C. В отдел встроенных систем они берут только тех, кто хорошо сдал тест на 30-40 баллов.» Я спрашиваю: «А какой максимальный балл?» Ответ: «100 баллов.» Оказывается, у них там какой-то сложный тест, за неправильные ответы снимают баллы, и вообще можно в минус уйти.

Я написал тест на 98 баллов. Они ответили, что это отличный результат и они «очень заинтересованы» в моей кандидатуре и хотят меня нанять, открытие новых вакансий ожидают в начале февраля. Февраль прошёл, а я ещё не нанят. Это не значит, что они лгали, у меня есть причины так полагать. Наверное, хотят «сбросить жир» и не нанимают новых разработчиков на место уволившихся.

Вообщем, я решил также развиваться в C++. Очевидно, что для плюсовиков в разы больше вакансий, чем для сишников. Но продолжаю полировать свой C и изучать устройство Linux. Концепции операционных систем применимы во всех областях, даже в веб.

 , , , ,

Graduate
()

Хочу стать программистом C/Linux в 32 года

Мне почти 32 года. До этого немного программировал как хобби. Хочу профессионально устроиться разработчиком в области C/Linux или встроенные системы.

Последние несколько месяцев изучал алгоритмы, язык C и низкоуровневое программирование. Сейчас начал читать книгу Керриска по Linux.

Какие мои шансы получить свою первую работу джуниором (в любом городе), скажем, через 4 месяца? К этому времени изучу 2/3 Керриска. Вообще приветствуются любые советы.

Перемещено tailgunner из job

 , , ,

Graduate
()

Вопрос по наследованию приватных переменных в PHP

class A {
    private $id = 'A';
    private function foo() {
        echo "func A";
    }
    public function test() {	
	echo $this->id . "\n"; // Берёт значение из A, не из B
        $this->foo(); // То же самое
    }
}

class B extends A {
	private $id = 'B';
	public function foo() {
	     echo "func B";
	}
}


$b = new B();
$b->test(); // "A, func A"

Я хочу, чтобы выводил «B, func B»

 

Graduate
()

Ссылки на элементы массива в PHP

Это очень интересный прикол с массивами в PHP, если о нём не знать заранее, можно сломать голову на поиск ошибки, если с ним столкнуться.

$arr = array(
    'a' => 1,
    'b' => 1,
);
$ref= &$arr['b']; // $ref ссылается на те же данные, что и $arr['b']
$copy = $arr; // $copy должен содержать независимую копию массива $arr
$copy['b'] = 'X'; // $arr не должен быть изменён
print_r($arr); // $arr( 'a' => 1, 'b' = 'X' ) $arr изменён, ёлки-палки

unset($ref); // Удаляем постороннюю ссылку
$copy = $arr;
$copy['b'] = 'Y'; // Измениться ли $arr?
print_r($arr); // $arr( 'a' => 1, 'b' = 'X' ) - Нет

Как я понял, если существует хотя бы одна переменная, которая ссылается на те же данные, что и некоторый элемент массива, то этот элемент массива всегда будет копироваться «по ссылке», когда копируется сам массив. Если же удалить эту постороннюю переменну-ссылку (в примере выше это $ref), то элемент массива начинает копироваться как должен.

Graduate
()

Наследие в PHP

Есть дерево наследования классов A -> B -> C -> D -> ... Я хочу, чтобы каждый класс имел свою собственную статическую переменную $c. Но я не хочу в каждом классе объявлять её отдельно (static protected $x;). Есть ли способ автоматизировать этот процесс? Можно ли что-нибудь написать в самом старшем классе A, чтобы все его наследники обладали собственной переменной?

Я в начале подумал, что можно в каждом классе задавать trait Foo; - но это не работает, потому что с помощью traits можно присваивать только функции, но не переменные.

Интересует именно собственная переменная, а не одна, наследуемая всеми детьми от своего родителя.

 

Graduate
()

Цикл над буквами

    for ($i='a'; $i<='z'; $i++) {
        echo "$i ";
    }

Выводит где-то 200 сущностей с 'x' по 'yz'. Но from 'a' to 'y' работает правильно.

 

Graduate
()

Вложенные тернарные операторы


$a = 1;
echo  $a == 1 ? 'one' : $a == 2 ? 'two' : 'other'; // shows 2

Можете пошагово объяснить обработку этого выражения интерпретатором?

 

Graduate
()

PHP: операторы сравнения и назначения

Операторы сравнения в PHP (==, !=, === etc.) имеют больший приоритет, чем оператор назначения (=).

$a = 2;
$b = 5;
$a = $b == $a; // $a = false; все правильно
$a == $b = $a; // должно быть false = $a, затем ошибка, но все получается будто $a == ($b = $a);

В чем проблема?

 

Graduate
()

Подключение wi-fi роутера (проблема с кабелями)

У меня протянут круглый телевизионный кабель, который подключен к спец. модему, из этого модема идет Ethernet-кабель прямо в компьютер. Я захотел создать в доме беспроводной интернет: купил wi-fi роутер ASUS DSL-N10, но он хочет получать интернет по телефонному кабелю, а у меня есть интернет по Ethernet-кабелю. Что мне делать? Купить и использовать переходник Ethe-Tel, это сработает?

Graduate
()

Окно выбора пользователя (смена)

Ubuntu 10.04, Gnome.
Как поменять окно выбора пользователя. Я хочу чтобы список пользователей исчез, осталась только строка для ввода имени пользователя вручную.

Graduate
()

Сеть через прокси

Как установить прокси для сети в Linux Ubuntu, чтобы все запросы в сеть проходили через другой IP (прокси). Прокси с логином / паролем.

Graduate
()

Настройка Postfix как сервера отправки с аунтетификацией

Установлен на сервере Postfix. Он настроен на получение почты, плюс отправляет почту только на домены, указанные в строке «relay_domains = apple.com, gmail.com» файла main.cf, и при этом не запрашивает логин / пароль, то есть отправлять может кто угодно.

Нужно, чтобы Postfix отправлял письма на любые домены и запрашивал логин пароль для авторизации.

Каким самым простым способом это осуществить?

Graduate
()

Монтировать устройство с правами для всех пользователей

Как в Ubuntu 10.04 смонтировать устройство чтобы для все пользователи имели возможность читать и писать. У меня получается только с правами для root (drwx------). Опция 'user' в fstab не работает.

Вот моя запись в fstab:
device /mnt/device vboxsf rw 0 0

Graduate
()

На виртуальной машине Virtual Box сделать доступным раздел диска

Может кто-нибудь простецкий способ объяснить как в Linux в виртуальной машине Virtual Box (Linux) сделать доступным раздел физического диска?

Graduate
()

Linux может идентифицировать себя в Web как другая ОС

Можно заставить Linux (у меня Ubuntu) идентифицировать себя в Веб не как OS Linux, а как любая другая OS, к примеру, Windows. Я имею ввиду, когда сайт определяет твою ОС, я хотел бы чтобы Linux сообщал ему будто он Windows.

Graduate
()

как UTF-8 кодирует так много языков

Это, наверное, глупый вопрос, но он меня интересует давно - Если кодировка UTF-8 использует только 8 бит для кодирования символа, то как с помощью этой кодировки может быть представлено так много языков, в ней уж явно больше 256 символов :)

Graduate
()

ulimit -n — не могу изменить

Как я понимаю, для nginx важен параметр ulimit -n (дефолтно 1024). Я не могу его увеличить так, чтобы он оставался таким же после перезагрузки!

1) Добавляю в скрипт /etc/init.d/nginx строку «ulimit -n 10000» — Не работает, все равно 1024

2) Изменяю файл /etc/security/limits.conf — Не работает, по каманде «ulimit -n» выдает 1024

Как изменить ulimit на постоянной основе и желательно только для одного конкретного юзера??

Graduate
()

Nginx - только что поставил

На сервере чисто для статики заменил Apache на nginx. Страницы со множеством картинок стали грузиться заметно быстрее.

Но вот вопрос. Сервер в некоторые дни испытавает нагрузку в N * 100,000 посетителей в день, и все они что-то грузят. Необходимо настроить конфиг nginx чтобы он не «загнулся».
Как я понял, основные параметры это: worker_processes (1) и worker_connections (1024). На одном сайте прочитал, что worker_processes * worker_connections = макс. число соединений.
Так ли это? Какие числа для этих параметров посоветуете? Что еще можно подправить?

Graduate
()

vsftpd на несколько IP

Не могу настроить vsftpd на прослушивание двух IP.

Пишу так:
listen=YES
listen_address=109.68.51.84
listen_address=109.68.51.85
(Работает только второй IP)

Если пишу так:
listen=YES
listen_address=109.109.9.84 109.109.9.85
(Работает только первый IP)

IP через запятую - прграмма не запускается

Graduate
()

Postfix: Настроил smtp, перестал получать письма

В конце файла main.cf (Postfix) добавил настройки для smtp:

smtpd_sasl_auth_enable = yes
smtpd_security_options = noanonymous
smtpd_client_restrictions =
permit_sasl_authenticated,
reject_plaintext_session
smtpd_sender_restrictions =
permit_sasl_authenticated,
reject_plaintext_session

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

Graduate
()

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