Завжди було цікаво дізнатися, що і як думають кодери за океаном? Логічно припустити, що технічне мислення і основні процеси повинні бути схожими з російськими розробниками. Під катом можливість порівняти наші походи з «тамтешніми». Якщо у вас все добре з англійською, оригінал публікації і самого автора можна знайти на за адресою
Читати далі →

Вразливість Viber, що дозволяє прослуховувати чужу розмову

image
На можливість прослуховування чужих розмов у Viber я натрапив випадково ще на початку жовтня 2016 року. Уразливість мені здалася не дуже приємною, тому я зв'язався зі службою підтримки, описав алгоритм для відтворення нестандартного поведінки месенджера.

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

Поки написав статтю, виправили проблему оновлення прийшов вчора на телефон, але вона все ще актуальна для оновлених

Читати далі →

Змагання Underhanded Rust 2016

Команда зв'язків з спільнотою Rust рада повідомити про першому щорічному змаганні Underhanded Rust. Це змагання має перевірити наше припущення про готовність мови Rust його екосистеми до написання легко читається і надійного коду. Надихнувшись прикладами Underhanded C і Underhanded Crypto, ми хочемо, щоб ви змусили Rust працювати неправильно, використовуючи легкий для читання код, до якого складно причепитися. Нам потрібна ваша допомога у пошуку проломів в мові і способів їх виправлення. Чи зможете ви написати стовідсотково безпечний код, що приховує логічну помилку, або так заховати експлойт unsafe коді, щоб він пройшов аудит? Спробуйте це зробити!
Читати далі →

Отже, менеджер попросив пофіксити баг...



Ви були тут раніше.

Ваша програма елегантна.

Ви використовували точно необхідну кількість абстракцій.

Ваші модулі бездоганно модульні.

Ваша система має справу з зовнішнім світом через продумані інтерфейси і не має ніякої прямої залежності від зовнішніх систем.

Ваші тести пройдені бездоганно. Ваш звіт про покриття тестами коду вимагає цілу хвилину для завантаження. 97% це значить…

Життя прекрасне.

А потім відбувається щось.

Читати далі →

Про розподіл праці та його наслідки

Кілька років тому довелося нам взяти участь у розробці лічильника газу. На момент початку робіт із замовником, у нього вже були деякі напрацювання. І ці напрацювання здалися нам дуже цікавим прикладом для демонстрації наслідків невдалого поділу праці за компетенціями. Під катом опишемо, чому поділ було невдалим, і як ми вирішували проблеми, що виникли в результаті.

Читати далі →

найдорожчі і доленосні помилки в ІТ-індустрії



Прикрі помилки в програмному забезпеченні можуть коштувати компаніям дуже дорого і навіть ставлять під загрозу існування їх бізнесу. Однак помилки, які допускає сам «бізнес», впливають на долю ІТ-індустрії та долі цілих поколінь.

Перший баг був зафіксований 9 вересня 1945 року: обчислювальну машину Mark II Aiken Relay Calculator, знайшли метелика, що застряг між контактами електромеханічного реле, що призводило до помилок. Вилучене комаху було вклеєно в технічний щоденник з супровідним написом: «First actual case of bug being found». Цей кумедний факт і поклав початок використанню слова «баг» у сучасному значенні.
Читати далі →

Кого хвилюють баги продукту, якщо він успішно продається


Изображение сайту media.licdn.com

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

даними CB Insights, тільки 5% стартапів прогорають з причини слабкої технічної реалізації. Більшість провалів трапляється в результаті неправильного позиціонування продукту, відсутність грамотної маркетингової стратегії, поганих фахівців з продажу, невірної бізнес-моделі. Наявність або відсутність висококваліфікованих інженерів практично не грає ніякої ролі, роблять висновок дослідники.

Якщо звернутися до прикладу найуспішніших технологічних стартапів світу (Uber, Airbnb, Snapchat, Pinterest та інші), ми не побачимо складних програмних рішень. Зате очевидним перевагою цих компаній є вдала бізнес-модель. В купе з активним просуванням, ці сервіси змогли стати одними з найбільш популярних і дорогих стартапів світу. Але навряд чи вони наймали десятки інженерів, щоб розробити сервіс та підготувати його до запуску, сумнівається Половетс.
Читати далі →

World of Warcraft: один рядок коду, щоб втратити все



Уявіть собі ситуацію: у грі персонаж, який представився членом однієї з популярних і відомих гільдій, підходить до Вас і обіцяє рідкісні круті елементи, рідкісних тварин (на яких Ви можете подорожувати) зброю і т. п. Швидше за все такий перс не має ні рідкісних елементів, ні спеціальних кодів для них. У результаті жертва не отримує правильний код або який-небудь рідкісний предмет. Зловмисник зміг переконати нічого не підозрює гравця ввести всього одну команду в діалоговому вікні.
Читати далі →

Хороші інстинкти кодувальника в кінцевому підсумку «вдарять вас по зубах»

image

Я написав свої перші кілька рядків коду майже 32 роки тому, коли мені було 6. Я розвинув дуже сильні інстинкти програмування і міг дивитися на будь-яку проблему, відразу знаючи, як її вирішити — просто інтуїтивно.

До того часу, коли я став писати програми, щоб заробляти собі на життя, я відчував себе рок-зіркою. Я знаходив і виправляв помилки швидше, ніж будь-хто з моїх колег. Моя команда віддавала мені самі непомітні і заплутані баги. Вони навіть стали називати мене майстром.

Але інтуїції недостатньо. Я зіткнувся зі стіною. І ніякої інстинкт кодувальника не допомагав мені крізь неї пробитися. Далі Bill Sourour поділиться з нами інформацією про те, як не зупинятися на досягнутому. Кому-то ці міркування, безумовно, здадуться очевидними. Ну, а комусь знадобляться.

Читати далі →

Уразливість в електронному щоденнику або як вкрасти персональні дані 2-х мільйонів користувачів

попередній статті я розповів про особливість генерації логінів і паролів електронному щоденнику, розробленому ДИТ'ом. Використовуючи її, хто завгодно міг отримати доступ до чужого акаунту і після переглянути оцінки учня, змінити оцінки учнів від імені вчителя, отримати персональні дані власника аккаунта або вчинити будь-які інші дії від імені користувачів. Всім вчителям змінили паролі, але залишилися учні та батьки зі старими паролями.

У цій статті піде мова про баги/уразливість в тому ж проекті.
Читати далі →