Вступ
З віком моя працездатність не стає вище. Тепер я не можу сидіти
за 6 годин, не встаючи: спина, шия, очі — все це починає рано чи
пізно хворіти.
Зараз ця проблема особливо актуальна, тому що наша гра вже запущена в
ранньому доступі, і треба стрімголов мчати до релізу.
Читати далі →

Маніфест Річард Столман: How I do my computing

image

Я використовую комп'ютер Thinkpad X60, в якому FSF ( Free Software Foundation) інсталювали вільну инициализирующую програму (initialization program, libreboot) і вільну операційну систему (Trisquel GNU/Linux). Це перша комп'ютерна модель з вільної ініціалізуючої програмою і вільною операційною системою, яка коли-небудь надходила в продаж. Тому це перший комп'ютерний продукт, який схвалили FSF (проте не був проданий Lenovo).

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

До цього я використовував OLPC (One Laptop Per Child) декілька тижнів. Я перестав, тому що проект OLPC вирішив підтримувати Windows, а я не хотів цього. OLPC використовують особливу прошивку для WiFi, тому я не міг використовувати внутрішній WiFi пристрій. Не біда, я використовував зовнішнє.

Результати мене турбують. Я очікував побачити мільйони дітей, що використовують Windows з OLPC. Замість цього я бачу, як мільйони дітей використовують Windows з Intel Classmate.

Раніше я користувався пристроями повністю на вільних GNU/Linux системах, але там були невільні BIOS. Протягом восьми років я намагався знайти спосіб обійти цю проблему.

Читати далі →

Маніфест Річард Столман: How I do my computing

image

Я використовую комп'ютер Thinkpad X60, в якому FSF ( Free Software Foundation) інсталювали вільну инициализирующую програму (initialization program, libreboot) і вільну операційну систему (Trisquel GNU/Linux). Це перша комп'ютерна модель з вільної настановної програмою і вільною операційною системою, яка коли-небудь надходила в продаж. Тому це перший комп'ютерний продукт, який схвалили FSF (проте не був проданий Lenovo).

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

До цього я використовував OLPC (One Laptop Per Child) декілька тижнів. Я перестав, тому що проект OLPC вирішив підтримувати Windows, а я не хотів цього. OLPC використовують особливу прошивку для WiFi, тому я не міг використовувати внутрішній WiFi пристрій. Не біда, я використовував зовнішнє.

Результати мене турбують. Я очікував побачити мільйони дітей, що використовують Windows з OLPC. Замість цього я бачу, як мільйони дітей використовують Windows з Intel Classmate.

Раніше я користувався пристроями повністю на вільних GNU/Linux системах, але там були невільні BIOS. Протягом восьми років я намагався знайти спосіб обійти цю проблему.

Читати далі →

Готуємо багатопоточність з core.async

image
Усе більше набирає популярність патерн використання каналів при створенні
багатопоточних додатків. Ідея не нова, її дизайн закладено ще в далекому 1978 році
у вигляді CSP.Найбільш відома реалізація зараз повсюдно використовується в Golang.
Ми ж у статті розглянемо реалізацію CSP в core.async для Clojure, якщо цікаво, ласкаво просимо під кат.

Читати далі →

Гейзенбаг, або як Місяць псує код

Місяць убуває, таке буває… ©Земфіра
Гейзенбагом називають ту різновид програмних глюків, яка виникає не зрозумій звідки, не піддається налагодження і виявлення. Словом, веде себе як той Невловимий Джо або кроковский кіт з недавнього поста. Мені по роботі доводилося стикатися з такими і про себе я називав це ефектом квантової механіки до тих пір, поки не дізнався, що близьке за змістом назва вже давно придумали. Буває, надсилає замовнику налагоджувальний бінарники, який всього лише записує в журнал більше подій навколо передбачуваного джерела проблеми і проблема зникає!
heisenbug /hi:'zen-buhg/ n.
A bug that disappears or alters its behavior when one attempts to probe or isolate it.


Пропоную вашій увазі свою невелику пізнавальну колекцію квантових ефектів в програмуванні.
Епізод I, OpenOffice не друкує у вівторок
Історію цього чудового багрепорта можна почитати на Ubuntu Launchpad, а я коротко викладу суть для тих, кому не сподручно читати по посиланню. У системної утиліті
file
був баг з-за якого, файли містять в 4-му байті
Tue
визначалися як Erlang JAM. Дефект присутній у версіях
file
4.21 і 4.24 і був викликаний помилкою
magic
файлі.
Читати далі →

Скоро ICFPC 2016

19 серія культового змагання розпочнеться в п'ятницю, 5 серпня, о 0:00 UTC.

ICFP Programming Contest — міжнародне змагання з програмування, що проводиться щорічно влітку з 1998 року. Результати змагання оголошуються на Міжнародній конференції з функціонального програмування. (з) Вікіпедія

Читати далі →

Алан Кей, творець ООП, про розробку, Лисп і ООП

image

Якщо ви ніколи не чули про Алана Кея, то, як мінімум, чув його знамениті цитати. Наприклад, це висловлювання 1971 року:
The best way to predict the future is to invent it.
Найкращий спосіб передбачити майбутнє-це створити його.


У Алана дуже яскрава кар'єра в інформатиці. Він отримав Премію Кіото, Премію Тюрінга за роботу над парадигмою об'єктно-орієнтованого програмування. Він був одним з піонерів в області персональних комп'ютерів і графічного інтерфейсу, він розробив Smalltalk — один з перших найвпливовіших мов програмування всіх часів.

У нас в Хекслете, особливо в чаті, постійно піднімається питання «що таке ООП» і «що мав на увазі Алан Кей насправді». У цій замітці зібрані цікаві цитати Алана про стан сучасної розробки, ООП і мовою Лисп.
Читати далі →

Введення в продовження і макроси на Scheme

Якщо ви не чули про call/cc, то вам дійсно варто познайомитися з цим потужним інструментом! Поговоримо про продовження (call/cc), простий, але важко розуміється конструкції, що володіє величезною силою в правильних руках. Реалізуємо з їх допомогою механізм yield/next/for… in, аналогічний такому в Python. Обернем нутрощі з допомогою макросу — ще одного цікавого механізму Scheme.

Стаття орієнтована на початківців програмістів. Лисперы навряд чи почерпнуть щось нове, але я буду вдячний за знайдені помилки.

image

Читати далі →

Пол Грем: Глава 2. Хакери і художники (Habr edition)

image

Зараз Пол Грем вчить уряду та університети як створювати стартап-хаби, а от раніше… він провів чудову аналогію між висококваліфікованими програмістами і художниками.

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

Переклад Анастасії Грызуновой, Яни Щекотовой. Приведення тексту в порядок — CaptainCrocus. Допомогу в публікації — компанія Edison.

Оригінал — Hackers and Painters (May 2003)


Закінчивши аспірантуру за computer science, я пішов на художній факультет вивчати живопис. Багато здивувалися, що комп'ютерник раптом зацікавився живописом. Ці люди, мабуть, вважали, що хакерство і мистецтво — дуже різні заняття: хакерство — холодне, точний і методичний, а мистецтво — лютий вираз якогось первісного пориву.

Обидва уявлення неправильні. У хакерства і мистецтва маса загального. З безлічі різних типів людей хакери і художники — чи не найбільш схожі.

Спільне у них ось у чому — і ті, і інші творці. І ті, й інші намагаються робити щось якісне. Як композитори, архітектори і письменники. І ті, і інші проводять дослідження не заради досліджень (хоча якщо в процесі створення чогось якісного відкриваються нові методи — тим краще).

Мені ніколи не подобався термін «computer science». Головним чином тому, що такої науки не буває. «Computer science» — мішок лахмітника, куди історія капризно звалила купу слабо пов'язаних галузей науки — вийшла якась Югославія. На одному полюсі математики, які звуть свою роботу computer science, щоб отримувати гранти DARPA. На екваторі — яке-небудь комп'ютерним природознавство: скажімо, поведінка алгоритмів при передачі даних по мережах. А на іншому полюсі — хакери; вони пишуть цікаве, і комп'ютери для них — тільки середа самовираження, як бетон для архітектора або фарба для художника. Все одно що математиків, фізиків і архітекторів зігнати на один факультет.

Іноді роботу хакерів називають «програмною інженерією» (software engineering). Цей термін теж збиває з пантелику. З тим же успіхом можна назвати інженером архітектора. Між архітектурою і інженерією нечітка межа, однак вона є. Проходить вона між «що» і «як»: архітектор вирішує, що робити, інженер обчислює, яким чином.
Читати далі →