Про хеш-функції

Квітень 8th, 2012

Це переклад, кроспост з “розробки”

Хеші — це щось типу відбитків пальців для даних

Кожний хеш точно відповідає певному файлу, або певній послідовності даних. Хоча б теоретично. На тому малюнку зверху — 128-бітний MD5 хеш, він дає 2^128 унікальних значень, це 340 трилліонів трилліонів трилліонів. Реально простір значень дещо менший — коллізії почнуть з’являтися, якщо використати половину значень. Втім, половина неймовірно великого числа все ще залишається неймовірно великим числом. (ще…)

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

Прискіпливість

Жовтень 1st, 2011

Кроспост на розробці

Думаю, усі читали розповідь про іконку для програм Google у iPhone. Однак, виявляється, Стів Джобс завжди надавав великого значення найменшим деталям своєї системи. Ось історія, що сталась під час роботи над першими Макінтошами (оригінал):

Кріс Еспіноза (Chris Espinosa) був одним з найперших і наймолодших працівників — він приєднався до компанії коли йому було 14. У 1978 році він лишив Apple, поступивши до коледжу у Берклі, однак продовжував виконувати певні завдання у якості позаштатного робітника. Так, наприклад, він написав довідникові матеріали до Apple II.

Влітку 1981 року Стів Джобс умовив Кріса кинути коледж та повернутися до роботи над Маками у повну силу. Основним аргументом було те, що навчання ще можна буде продовжити коли-небудь потім, а Макінтош треба завершити зараз. Кріс кинув коледж та з серпня 1981 став головним технічним письменником (manager of documentation for the Macintosh).
(ще…)

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

Чому компіляція програм на C++ займає так багато часу?

Липень 18th, 2011

Переклад статті “C++ Compilation Speed“. Кроспост на розробці

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

Повільна компіляція навіть стала однією з причин появи мови Go. Я уже досить давно займаюсь розробкою компіляторів і ця проблема не давала мені спокою. Чому все так довго? Розробники компіляторів C++ — професіонали своєї справи, тому, скоріше за все, причину слід шукати у самій мові програмування. Швидкість роботи різних компіляторів дуже відрізняється, але програми, написані на інших мовах програмування, компілюються однозначно швидше.

Я займаюсь розробкою компіляторів для C++ з 1987. Комп’ютери у ті часи були значно повільніші, ніж зараз, і проблема швидкості компіляції стояла дуже гостро. Чимало часу було витрачено на профілювання на дослідження причин повільної
роботи.
(ще…)

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

Порядок завантаження динамічних бібліотек у Linux

Березень 19th, 2011

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

Уявіть, наприклад, що ви тестер і маєте перевірити роботу програми з усіма можливими версіями Qt від 4.4.3 аж до 4.7 . Або вам просто хочеться у новенькій убунті вести розробку під якусь стародавню систему, у якій нічого більшого ніж 4.4.3 немає. У цьому пості я спробую зібрати докупи усю інформацію, яка знадобиться для вирішення таких ситуацій.

Коли бінарному файлу потрібно буде завантажити динамічну бібліотеку, то її шукатимуть у наступних місцях:

1) За значенням RPATH бібліотеки, у якій було знайдено залежність (якщо ця залежність у бібліотеці)
2) За значенням RPATH виконуваного файлу
3) у директоріях, перелічених у змінній оточення LD_LIBRARY_PATH
4) За значенням RUNPATH виконуваного файлу.
5) /etc/ld.so.cache — кеш бібліотек, сформований ldconfig
6) у стандартних директоріях, призначених для зберігання бібліотек (/lib та /usr/lib)

(ще…)

Категорії: linux | Кометарів немає

Створення інонки для Symbian-програм

Листопад 18th, 2010

Резервний кроспост з розробки

Доброго вечора, любі хлопчатка і дівчатка, зара я вам розкажу, як задавати іконки для ваших програм під Symbian.

На перший погляд, усе дуже просто. Треба лише додати у pro-файл рядок типу такого:
ICON = images/my_icon.svg
Але не варто розслаблятися, фінські хлопці приготували кілька неприємних сюрпризів.
(ще…)

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

Оновлення flash

Жовтень 1st, 2010

Скріншот:

Image and video hosting by TinyPic

Кнопки намальовані з глюками, слова перенесені чортзна як — з цим все ще можна примиритися.

Але якого біса там на одній формі кнопка “Нагадати пізніше” та чекбокс “Не нагадувати зовсім”? I що буде, коли відмітити чекбокс, а потім вийти з діалогу, натиснувши цю кнопку?

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

Правило 90:9:1

Серпень 20th, 2010

Резервний кроспост з розробки

Правило одного проценту, також відоме, як “принцип 90-9-1“, стверджує, що всі користувачі інтернету діляться на три групи:

  • 90% — споживачі контенту
  • 9% — люди, що коментують та редагують контент
  • і лише 1% — люди, які ствоюють новий контент

Важливий практичний висновок з правила полягає в тому, що для формування в інтернеті іміджу для того чи іншого бренду досить заплатити баблазацікавити невелику групу активних людей. Саме так, наприклад, зробив Samsung, запропонувавши британським блогерам поміняти айфони на смартфони Galaxy S.
(ще…)

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

Курс лекцій по Qt

Серпень 17th, 2010


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

  • Основні поняття Qt, демонстрація роботи з бібліотекою
  • Об’єктна модель Qt, поняття сигналів та слотів
  • Віджети та лейаути
  • Типи даних та файлів

До кожної теми підготовано набір слайдів, приблизний текст лекції та приклади. І ще є щось типу завдання на лабораторну роботу.

Все англійською мовою, звісно.

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

Безкоштовні малюнки

Травень 27th, 2010

Я раніше думав, що Іконза — найкраще джерело іконок для програм. Аж поки нещодавно не потрапив сюди: http://icons.mysitemyway.com/ . Там величезні набори безкоштовних іконок. Буквально по кілька сотень штук — знайдеться усе, чого душа побажає. І до того ж самі набори стандартні. Приклад: раз і два

Ще один сайт з іконками , не такий багатий, але там є пошук. І ще один, для любителів svg: http://www.openclipart.org/

І ще пара сайтів с текстурами:
тут просто якісні малюнки
– а тут надзвичайно багато малюнків, які можна викладати плиткою

На завершення — невеличкий приклад, щоб порівняти зручність та багатство різних ресурсів. Треба було мені тут знайти зображення пісочного годинника (hourglass). Порівняйте результати:
– хвалений deviantart видає купу всякого непотребу
iconspedia трохи краще
– найкращий результат у openclipart.org

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

Типу гумор

Квітень 22nd, 2010

Це Київ, метро “Майдан Незалежності”.

Хоча, варто зазначити, що у себе на сайті вони слово embedded пишуть правильно

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