Ще один глючний банкомат

Лютий 22nd, 2010

БрокБізнесБанк:
ATM error
У цього банкомата ще була прикольна особливість. Коли він ще працював, у нього клавіші залипали.
І при цьому пін-код перевірявся одразу після того, як була натиснута четверта кнопка. Типу вводиш другу-третю цифру, клавіша западає… і оп, невірний пін-код введено… Добре хоч карточки назад віддавав

Категорії: Життя | Теґи:, | Кометарів немає

Symbian: S60, S^n та інші страшні слова

Лютий 13th, 2010


Виникло якось у мене таке дурне бажання купити собі новий телефон. І не простий, а такий, щоб для нього програми писати можна було. Єдине, що я знаю – це C++, тому вирішив дивитися в сторону Symbian. А там виявилося, що розібратися у характеристиках смартфонів не так вже й просто. Десь написано Symbian 5th edition, десь S60, десь ще якось. Втім, кінець кінцем таки вдалося все більш-менш впорядкувати. (ще…)

Категорії: програмування | Теґи:, | Кометарів немає

iPad vs. Kindle vs. HP slate

Січень 28th, 2010

Вчорашній анонс iPad дав старт розмовам про неминучу загибель електронних читалок типу Kindle та ще не випущених девайсів типу HP slate. Втім, не все так просто, порівняння може у дечому бути не на користь Apple. Ми спробували ретельніше оглянути новий пристрій від Apple та його найімовірніших конкурентів.
(ще…)

Категорії: Новини | Теґи:, , , | Коментарів: 1

Аудіоспам

Січень 13th, 2010

В останньому звіті Dr. Web було

У грудні відмічено кілька типів спаму в вигляді електронних листів з доданими аудіофайлами. Як правило, це були mp3 з низьким бітрейтом (16 Kbit/s).
Повідомлення рекламували електронні магазини та ліки – адресу сайту повідомляли у файлі. Також були запрошення до участі у мережевому маркетингу. Такі файли були більше шести мегабайт, вони містили лекцію на кілька хвилин.

Не розумію. Ну добре, відкриваєш файл “остання ніким не чувана пісня Майкла Джексона”, а воно тобі швиденько свій слоган впарює. Але шість хвилин слухати якусь лобуду?

Категорії: Життя, Новини | Теґи:, | Кометарів немає

… where’s Houston?

Листопад 10th, 2009

- Диспетчер, це борт 253!.. У нас аварія, двигуни не
працюють, висоту втрачаємо!..
- Ну, добре, чого кричиш… Борт 253 – викреслюю.

Знайшов такий комент у фактично бойовому коді:

  1.      
  2.   // load the configuration data
  3.   const bool loadSuccess = configMgr.LoadConfiguration( configFile );
  4.   if( loadSuccess )
  5.   {
  6.      SetupSubscriptions();
  7.   }
  8.   else
  9.   {
  10.       // where’s Houston? We have a problem…
  11.   }

Правда, до релізу ще кілька тижнів. Може, Х’юстон відгукнеться :)

Категорії: C/C++, гумор | Теґи:, | Кометарів немає

Нестача ресурсів

Жовтень 15th, 2009

Насправді, нічого особливого. Очевидно, на банкоматі стоїть вінда (скоріш за все 98), і, не менш очевидно, їй не вистачає віртуальної пам’яті. Шо поробиш, криза, усім зараз чогось не вистачає. Мені, наприклад, не вистачає часу й натхнення, щоб написати який-небудь пристойний пост ;)

Цікаво лише те, що цю картину я спостерігаю мало не кожного дня вже протягом двох місяців. Не знаю, як таке може бути. Чи то в Укрсиббанку всю техпідтримку звільнили, чи просто банкомат нікому не потрібен.

Категорії: програмування | Теґи:, | Кометарів немає

All Programming is Web Programming

Серпень 20th, 2009

Переклад статті з Coding Horror. Взагалі-то стаття непогано себе почуває на розробці, але, про всяк випадок, нехай ще й тут лежить.

(ще…)

Категорії: програмування | Теґи:, , | Кометарів немає

Кольоровий grep

Липень 6th, 2009

Майже випадково дізнався, що grep вміє розмальовувати текст, що виводиться. Для цього потрібно лише додати опцію командного рядка --color. Крім того, у користувача є можливість самому задавати кольори тексту, що виводиться.
(ще…)

Категорії: bash, linux | Теґи:, | Кометарів немає

Тест на знання C++

Квітень 28th, 2009

Життя підкинуло цікаву ідею для перевірки практичних навичок C++ програміста. Таке собі тестове завдання.

Нижче наведено клас — зв’язаний список, призначений для зберігання всяких різних об’єктів. Клас поганий, нормальний С++ програміст такого собі дозволяти не повинен. Як ви гадаєте, що саме недобре у цьому класі?

  1. class Linked_Lists
  2. {
  3.     public:
  4.         Linked_Lists();
  5.         ~Linked_Lists();
  6.         bool add(void *data);
  7.         bool remove_head();
  8.         bool first();
  9.         bool last();
  10.         bool next();
  11.         bool prev();
  12.         void* get_data();
  13.         bool is_empty();
  14.         int get_count();
  15.  
  16.     protected:
  17.         struct Node
  18.         {
  19.             void *data;
  20.             Node *prev_node;
  21.             Node *next_node;
  22.         };
  23.         Node *head;
  24.         Node *tail;
  25.         Node *current;
  26.         int count;
  27. };

Слід сказати, тут дещо специфічний дизайн, так уже сталося. Елементи додаються та видаляються зі списку за принципом FIFO. Водночас, доступний вказівник, який можна туди-сюди пересувати по списку, щоб отримати доступ до будь-яких даних. Втім, це не суттєво. Припустимо, так було потрібно для чогось.

Справжній недолік цього класу в іншому. У якості підказки варто глянемо на реалізацію деструктора:

  1. Linked_Lists::~Linked_Lists()
  2. {
  3.     Node *node;
  4.  
  5.     if (head == 0) return;
  6.  
  7.     first();
  8.     do
  9.     {
  10.         node = current;
  11.         next();
  12.         delete node->data;
  13.         delete node;
  14.     } while (current != 0);
  15. }

Що ж саме у ньому не так? (ще…)

Категорії: C/C++ | Теґи:, | Кометарів немає

Чи не переоцінено значення відкритого ПЗ?

Квітень 24th, 2009

У блозі Coding Horror був цікавий пост “Is Open Source Experience Overrated?” переклад якого я і пропоную вашій увазі.

===============================================================

На мою думку, що програмуванню слід навчатися на полі бою. А найбільше, наймасштабніше поле битви — це область програмного забезпечення з відкритим вихідним кодом.

Зробіть вклад у якийсь відкритий проект. Їх тисячі, тож можна буде вибрати, який вам більше до вподоби. Але виберіть лише один, і глибоко вивчіть його, станьне активним розробником. Нема нічого більш практичного, більш реального, ніж сумісна робота з багатьма програмістами різних рівнів досвіду з усіх куточків земної кулі.

Якщо вам хочеться покращити свої навички програмування, що може бути краще, ніж робота у справжньому проекті з відкритим кодом? Їх тисячі, а можливо, і сотні тисяч. І деякі навіть змогли значно змінити світ.

На жаль, це не допомогло одному звичайному розробнику, анонімний лист якого я нещодавно отримав. От що він пише:

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

У одній компанії мною зацікавились. У них була політика: пропонувати кожному кандидату виконати пробне завдання. Я виконав це завдання, застосувавши перше ж рішення, яке спало мені на думку. Згодом під час телефонної розмови, їх хлопець витратив п’ять хвилин свого часу, розказавши, наскільки неефективним був мій розв’язок. Моя робота справила не дуже гарне враження. Тоді я запитав, чи дивився він на ті проекти, які я згадував. Він сказав, що не дивився. Схоже, негативне враження щодо мене вже сформувалося після проваленого тесту. Важко сказати, які критерії використовувались для оцінки результатів тесту, але, схоже, результат завалив усе інтерв’ю.

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

Ще одному рекрутеру я сказав, що якийсь час працював у сфері комерційного ПЗ, поки знову не повернувся до школи. Пропрієтарний характер розробки не дозволяє мені багато про неї розказувати. Але факт, що робота була комерційною, аж ніяк не впливає на рівень моїх знань чи на мій вклад у створений проект. Чому я навчився у ті часи, так це заповнювати плани та оцінювати тривалість роботи. Втім, тепер ці навички знаються рекрутерам застарілими.

Жахливе протиріччя з усіма ідеями щодо відкритого ПЗ, які я так захищав. Він продовжує:

Я спробував зрозуміти хід їхніх думок. Сила-силенна проектів з відкритим кодом написані дуже погано. Їх створювали, щоб реалізувати якусь ідею, а не для того, щоб задовольнити потреби користувачів. У академічному середовищі опублікування роботи є важливішим, ніж збільшення кількості користувачів. У людей, що займаються комерційною розробкою, складається враження (інколи вірне, а інколи ні), що розробники відкритого академічного ПЗ не володіють певними практичними навичками. Я не кажу, що мій відкритий код найкращий, але він працює, він добре документований, і доступний для аналілу. Одна з причин, чому я багато часу витратив на роботу у вільних проектах — бажання зробити пошук роботи легшим. Я думав, великі зразки публічно доступного робочого коду скажуть роботодавцям більше про мене, ніж результати одного нещасного тесту чи рядок у резюме “проведено років”. Тепер я знаю більше про всю шумиху навколо відкритого коду. Я багато чув, багато робив, багато чого опробував на собі. Час від часу слід повертатися до реальності і задавати питання — а чи не переоцінено значення відкритого коду?

Погано, що знаходяться службовці, які не беруть до уваги досвід, отриманий у open source проектах. Це така сама частина вашого портфоліо, як і будь-яка інша, а тому будь-яка компанія, яку це не цікавить, є підозрілою. Це мінус роботодавцям. Я не впевнений, що хотів би працювати там, де більшу частину програмістського доробку вважатимуть не вартою уваги.

З іншого боку, вибір проекту має таке ж велике значення, як і власне програмування. Скільки існує проектів, що дарма витрачають зусилля, вирішуючи нікому не потрібні проблеми, або завдання, наскільки вузькоспеціалізовані, що ніхто, крім авторів, у них не розбирається? Як комерційна програма не може існувати без клієнтів, так і проект з відкритим кодом не можна уявити без певної критичної маси користувачів. Пам’ятайте, не достатньо просто випустити програму. Відкрили ви свій код чи ні, якщо ви пишете програми, які навряд чи хтось буде використовувати, якщо вам не вдалося зацікавити роботою у проекті ще хоча б кількох програмістів –

Тоді, що ви в біса робите?

Категорії: програмування | Теґи:, , , | Коментарів: 1