Трапилася непроста ситуація. Є код, написаний на С, який активно використовується через cgo в проекті, написаному на Go. У якийсь момент програма почала падати з помилками від malloc: то segfault, то memory corruption.

Логічна думка: потрібен valgrind з його memcheck, щоб перевірити, хто лізе поперек батька в пекло невалидную пам'ять. Однак, спроба згодувати валгринду бінарники, отриманий від go build, призведе тільки до розчарування — навіть на простому Hello World валгринд вибухне сотнями помилок і відправить розробника на відомі координати (спойлер: "Go fix your program!").

Це відбувається з-за того, що go runtime досить специфічний і значно відрізняється від такого в С. (Подробиці можна спокійно знайти за запитом «golang valgrind»).

Так як же нам розібратися, що відбувається?

Читати далі →

Як брати участь у проекті з відкритим исхдным кодом і отримувати гроші?

Здрастуй Хабрахабр!

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

Є кілька варіантів. Один з них-це почати свій проект і чекати коли вона злетить, при цьому витрачати час на створення коду і рекламу проекту в конкурсах, акселераторах, переговорах з інвесторами. У разі успіху треба знаходити фахівців піднімати інфраструктуру. Ряд віртуальних або реальних серверів для сайту, програмістів, бази даних клієнтів. У підсумку, багато проектів так і не злетівши потрапляють на GitHub та інші подібні ресурси.

Читати далі →

Valgrind - це добре, але недостатньо

    Не так давно ми намагалися продемонструвати користь від використання статичного аналізатора PVS-Studio однієї з компаній. Нічого ділового з цього не вийшло. Але в процесі переписки я підготував розгорнуту відповідь, що стосується методологій статичного і динамічного аналізу. Зараз я вирішив оформити цю відповідь у вигляді невеликої статті. Думаю, текст може здатися цікавим читачам, та й просто можна буде використовувати цю статтю при спілкуванні з новими потенційними клієнтами.
 
Читати далі →