Країна недопрограмістів

Червень 3, 2011

Чому про нинішніх українських програмістів не написали жодної художньої книжки (написали?) Це ж класична утопія. Покоління, яке кричить, що Україна може стати ледве не другою Кремнієвою (ні, не силіконовою, йолопи!) долиною, і при тому за рівнем свого розвитку максимум можуть конкурувати з середньостатистичним американським студентом, який вивчає комп’ютерні науки.

Не варто в якості прикладу наводити нашу майже “до не можу” деградовану систему освіти, бо вона є наслідком того, що ми мали і ким були. Погляньмо на те, кого ми маємо зараз, щоб зрозуміти кого і що ми матимемо у майбутньому. А маємо ми покоління людей схиблених на своїх заробітних платах та сприйнятті роботодавців за засоби для власного самоствердження. За статистичними даними далеко ходити не потрібно — подивімось на найбільшу українську ІТ-спільноту developers.org.ua — сайт, тематикою якого є, як сказано тут, “індустрія аутсорсингу та розробки програмного забезпечення в Україні”, який, однак являє собою нічого іншого, як базу заробітних плат.

Сайт, на форумі якого практично відсутні технічні дискусії, а ті, що час від часу там таки виникають дуже швидко перетворюються у дуже звичне нам запльовування їх авторів та міряння пісюнами.

Його власники це чудово розуміють, і навіть побудували на людській жадібності успішну бізнес модель, яка полягає в отриманні з компаній чималих грошей за те, аби зробити їх більш помітними для потенційних працівників, яких ці компанії так потребують.

Погляньмо на інший приклад, rozrobka.com, яка являє собою нічого іншого, як систему колективних блоґів, на кшталт slashdot.org, і, яка, на жаль, попри повну відсутність реклами та наявності досить дружнього кістяка за два роки свого існування так і не отримала великої популярності.

Може ви гадаєте, що наявність великою цивілізованої спільноти, котра природно розростається різними інструментами для навчання та обміну досвідом, на кшталт, веб-сайтів, конференцій, груп користувачів технологій, тощо не є індикатором рівня розвитку цих людей? Що, серйозно, гадаєте, що зможете стати хороших інженером будучи при цьому самозакоханим егоїстом? Успіхів.

Українські програмісти не обговорюють між собою книжки, не діляться своїм досвідом, не беруть активної участі у розвитку ринку, і навіть своїх компаній, які платять їм по 3 000$ лише за те, щоб ті працювали саме на них, а не на їхніх конкурентів. Усе, що їх цікавить — чому мені платять 3 000, а не 3 500, і, як попри усі ці умови для роботи на високі заробітні плати, звали до біса в ЄС або Штати.

Я б сказав інакше: “Україна — це країна ІТ-спільноти, що лише формується”.


Embedded Linux Primer: A Practical Real-World Approach

Березень 23, 2011


Embedded Linux Primer: A Practical Real-World Approach

Автори: Christopher Hallinan
Видавництво: Prentice Hall
Рік видання: 2010
Кількість сторінок: 656

 

 

Розповідаючи про цю книжку своїм колегам, я кажу: “хочеш займатись embedded Linux`ом — негайно прочитай цю книжку”.

Я дуже шкодую, що ця книжка не потрапила до моїх рук місяців 7 тому, коли я лиш почав професійно займатись embedded Linux’ом. Тоді б мені дуже знадобилися знання, якими ділиться її автор.

Ось, що автор успішно зумів впихнути до книжки:

  • Tour the typical embedded system and development environment and understand its concepts and components.
  • Understand the Linux kernel and userspace initialization processes.
  • Preview bootloaders, with specific emphasis on U-Boot.
  • Configure the Memory Technology Devices (MTD) subsystem to interface with flash (and other) memory devices.
  • Make the most of BusyBox and latest open source development tools.
  • Learn from expanded and updated coverage of kernel debugging.
  • Build and analyze real-time systems with Linux.
  • Learn to configure device files and driver loading with UDEV.
  • Walk through detailed coverage of the USB subsystem.
  • Introduces the latest open source embedded Linux build systems.
  • Reference appendices include U-Boot and BusyBox commands.

Запевняю, це 90% того, що потрібно для розуміння архітектури embedded Linux систем інженерам junior та middle рівня.


“Менше книжок, більше телебачення” (с) Доктор Хаус

Березень 23, 2011

Мене анітрохи не дивує те, що люди не читають книжок, адже у світі стільки у рази цікавіших та важливіших речей: телесеріали, пиво, дівчата в міні спідницях (привіт, Весно!). Читати — це так напряжно: тре нехтувати розвагами, напружувати мозок, а потім ще й обдувати прочитане… Як сказав би Едуард Воловіц, “БОтани”.

Кожне повнолітнє пацаня розуміє, що у нього більше шансів у житті, якщо він читатиме більше бодай спеціалізованої літератури. Кожен має у своєму оточенні людей, які постійно навчаються читаючи книжки, відвідуючи різноманітні тренінги, беручи участь в open source проектах, і кожен бачить на скільки позитивно це впливає на авторитет і становище цих людей у суспільстві, і, звісно ж, на їхню кар’єру. Але майже ніхто не робить того ж. Чому? А яка різниця, це їхня проблема. Я лиш дуже швидко поясню, що ви втрачаєте:

  • світ рухається шаленими темпами, і ваші знанні дуже швидко втрачають свою актуальність; якщо ви бодай не підтягуватимете свій рівень до середнячкового, то дуже швидко опинитись на узбіччі дороги “Життя”;
  • Брайн Трейсі (Brian Tracy) стверджує: якщо ви читатимете по одній спеціалізованій книжці в тиждень, то через якийсь 7 років станете експертом світового класу у даній галузі. Ого-го, чи не так?
  • постійне читання насправді робить ваше життя менш нудним, оскільки звичка читати може допомогти вбити час, відволікти від поганого настрою, тощо; а ще це змушує ваш мозок постійно працювати, обдумуючи прочитане;
  • це дуже різко виділяє вас з когорти середнячкових спеціалістів, якими переповнений ринок праці;
  • читаючи багато книжок, ви починаєте краще розуміти світ та людей навколо;
  • підвищуючи свій рівень, ви притягуєте до себе кращих та цікавіших людей — це закон всесвіту.

Чули історію про викладача, який під час екзамену усім бажаючим ставив у заліковки хороші оцінки “екстерном”? Один зі студентів не витримав, і запитав: “Ви були до нас такі жорстокі під час усього семестру, а тепер просто даруєте нам цей екзамен. Чому?”, і почув у відповідь одну з найбільш повчальних фраз, які мені траплялися: “Що менше ви знаєте і вмієте, то більш цінний я, як спеціаліст”.

А тепер кульмінація у вигляді розкриття нереально крутої таємниці, яка одразу ж винесе вам мозок: для того, щоб мати змогу більше читати, придбайте собі електронну читалку. Носячи її постійно з собою, ви матимете змогу і навіть бажання читати в метро, тролейбусі, навіть ескалаторі, що, запевняю, складає велику частину вашого життя. Думки штибу “знову цілу годину пертися у клятому метро на роботу” перетворяться на щось, типу “швидше б у метро, почати читати”. Для мене це стало найбільшим відкриттям цього року, а Amazon Kindle найвдалішою покупкою за останній час.

Успіхів!


Оберіть країну проживання

Жовтень 4, 2010

Форма реєстрації на американському сайті:




І на українському:

Коли на подібну річ не звертають уваги у якихось популярних двигунцях (форумів, блоґів, тощо) — це можна проігнорувати, але коли пишуть “кастомний” двигунець для власних потреб, для українських користувачів, і для сайту, який буде доступний лише українською мовою — це фейл!

До речі, ви й справді вважаєте, що там має бути Уґанда, Параґвай та Сомалі? Ну гаразд, це вже спірно…


Як додати системний виклик до ядра Linux

Серпень 1, 2010

Системний виклик — це інтерфейс між адресним простором користувача (user-space) і сервісами, які надаються ядром Linux. Оскільки даний сервіс надається ядром, виконати функцію ядра напряму не є можливим; тому слід використовувати спеціальний інтерфейс між простором ядра та користувача. Таким інтерфейсом є системний виклик (system call).

Ядро використовує системні виклики для надання програмам, які працюють у просторі користувача спосіб для запиту на отримання певних сервісів від неї, які у звичайних умовах не дозволяються. До таких сервісів належать постійна пам’ять, оперативна пам’ять, мережа, управління процесами, тощо.. Наприклад, якщо процес у просторі користувача захоче прочитати файл — йому доведеться виконати системні виклики ‘open’ та ‘read’.

Системні виклики не викликаються процесами безпосередньо. Зазвичай, у стандартній бібліотеці мови С присутні функції-обгортки, які надають зручні інтерфейси до усіх системних викликів.

У цій статті я коротенько опишу Linux system calls interface, і покажу, як додати до ядра новий системний виклик. Я використовував ядро версії 2.6.32.

Read the rest of this entry »