madf: (Default)
Потрапив мені до рук посібник до вивчення дисципліни „Методологія організації наукових досліджень“. Пишуть що „Пособие предназначено для студентов специальностей «Программное обеспечение ЭВМ», «Прикладная математика», «Информатика», «Системный анализ» ДНУ.“.

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


Read more... )
madf: (Default)
Нарешті руки дійшли до подарунку. Дві з половиною години, дві зламані зубочистки, двічі перебраний маятник — і готово:
timer
Окся, Рейст — дякую!

Пучки пальців болять тепер. Видно що давно в руки гітару не брав :)
madf: (Default)
У OpenSSL багато критиків, і уже багато форків. Раніше мені якось не доводилось стикатися з цією бібліотекою, але останній рік я працюю з нею майже щоденно, точніше з криптографічною її частиною. Тож є кілька думок з цього приводу.
1. У OpenSSL офігенна архітектура у тому що стосується криптографії (EVP_-stuff, BIO_-stuff).
2. У OpenSSL гівняна документація. Точніше у них дофіга документації на функції, але майже немає прикладів їх використання. Доводиться багато гуглити і шукати по stackoverflow про те як саме користуватись їх функціями.
3. У роботі з OpenSSL варто мати версію зібрану зі зневаджувальною інформацією і не треба боятися лізти у джерельні коди — там усе більш-менш доступно.
4. Варто розуміти як саме працює RSA і алгоритми на еліптичних кривих. Так, наприклад, я тільки вчора узнав що цифровий підпис зроблений за допомогою ECDSA кожного разу різний для одно і того ж набору даних. Причина у тому що у процесі підпису один із параметрів обирається випадково і саме його випадковість захищає від підбору приватного ключа за підписом. Існує RFC 6979 який описує алгоритм обирання цього параметру для детермінованого підпису, але він наразі не імплементований у OpenSSL. Це суттєво зменшує можливості до тестування коду що працює з ECDSA.
5. Варто знати що таке ASN.1 і як з ним працювати. Наприклад, я тільки сьогодні узнав що DER вимагає мінімально можливого кодування цілих чисел, і тому підпис може мати різний розмір — у мене він коливався від 69 до 72 байт для SHA256 digest і кривої prime256v1. При чому EVP_DigestVerifyFinal повертав коректну довжину підпису тільки після фактичного підпису.
6. У OpenSSL погано з повідомленнями про помилки. Фактично, жодне з тих що я отримав мені не допомогло.
madf: (Default)
Спасав сьогодні чувака з Муни (перша висадка, не вистачило delta-V для виходу на орбіту навіть) і випадково зібрав для цього Firefly!
firefly
madf: (Default)
Проапгрейдився з 8 Gb RAM до 32 Gb RAM. Давно пора було.
madf: (Default)
Давно не писав сюди, осьо вам цікавинок (знизу вгору):
eBox-2300SX (Vortex86 300 MHz, 128MB RAM, CompactFlash)
eBox-3350EX (Vortex86 400 MHz, 512MB RAM, MicroSD)
NanoPI M1 (ARM Cortex-A7 1200 MHz, 1024MB RAM, SDHC)
Ну і пара кардридерів.
microcomp
madf: (Default)
Сестричка правильно пише.

Originally posted by [livejournal.com profile] oxymona at Люди, дети...
Мне по роду деятельности приходится общаться со многими людьми разных слоев населения, хотя все чаще, не с самыми счастливыми из них.
Я все удивлялась, как это возможно, что в нашей старне так туго с эленемтарными правилами приличия и поведения.
Тот вопрос, что поднимался уже ранее [livejournal.com profile] madf"ом и его друганами о том, почему у на спринято харькать себе под ноги, тоже относится к этой теме. Откуда это берется?
Далеко ходить не надо: дочь моей сотрудницы вышла замуж за какое-то подобие люмпена и родила от него сына. Нужно заметить, что при всей своей недалекости, моя сотрудница все-таки обладает всеми необходимыми знаниями о приличиях в обществе и вообще является человеком адекватным, хоть и страдает в некоторой мере от недообразованности. И дочь свою тоже растила и воспитывала как положено. Но дочь вышла за люмпена, а тот харкает под ноги, матерится на чем свет стоит и перебивается от одного случайного заработка к другому. В итоге, семья влезла в такие долги, что им отключили свет, воду, газ... И им по барабану. А у них ребенку 5 лет и это никого не беспокоит. Они ходят за водой в ближайшее общежитие и справлять нужну - тоже туда. Дитя ошивается в каких-то обносках с папой в гараже СТО, где тот подрабатывает незнамо чем и вечно все в мазуте, грязи, обожженное и травмирвоанное. Его отмывают только бабушка и прабабушка, на выходные забирая ребенка к себе. И лечат тоже они. И дите, как и его дражайший папа, матерится, харкает и во всем подражает своему предку. Так откуда взяться адекватам, если неадекваты нас окружают со всех сторон?
Идиократию помните? На одного "выплеканого" Человека приходится сотня идиотов.

В пятницу я вела сына на развивалку. По дороге мы фантазировали и всячески забавляли себя разговорами (я не скажу, что пользуясь случаем, проводила среди него очередную разьяснительную работу о том, что хорошо, а что плохо, но нам было весело). Просто мы торопились, а тащить за собой упирающегося пребывающего не в духе ребенка было бы тяжело, поэтому я подняла ему настроение шутками и разговорами о розетках - это его любимая тема. И шли мы в припрыжку.
Из соседнего садика вполне себе прилично одетая мама вывела прилично одетого сына. Она явно куда-то спешила и тащила его за собой. Ребенок, не выдержав темпа мамы, запнулся и коленями рухнул в грязь. О, чего мы наслушались от этой мамочки, проходя мимо! Последней каплей для меня стало с ненавистью брошенное мамашей презрительное "Придурок!"
Я не из тех кто делает замечания, я этого наелась по макушку на мамских форумах, где каждая мама считает, что она умнее всех и лучше всех понимает своего ребенка. Понимает так хорошо, что допускает таки случаи: в том, что он упал - виновата мама, но обругала почему-то она не себя, а его. А ему всего года четыре. Он еще apriori хороший. Он добрый, он светлый малыш. Он хныкал, пока мама лупила его по колнекам, но не сопротивлялся. Это ведь мама. Если мама бьет и ругает, она права... У него еще личность не развита, мозг не развит и разум тоже, он не может анализировтаь объективно. А соль в том, что вот тогда-то все и закладывается.
Это не в крови, это в примере матери и отца. Это безнадега в нас из поколения в поколение от матери к сыну, от матери к сыну - замкнутый круг, цепь, которая не прервется, пока не вмешается что-то свыше. Строгий воспитатель, ментор на время становления личности. И может, тогда процент люмпенов изменится, уменьшится.

Это банальные слова, их сейчас многие говорят. Сейчас время такое, мода такая - говорить о том, что правильно, и делать замечания всем, кто не такой. Вот только все равно, какими бы острыми или правильными порой ни были слова, они ничего не изменят. А мои мысли - это мои мысли. Хотелось бы верить, что мысль материальна, а материя иллюзорна, да только когда жизнь бьет очередной проблемой по голове, в ее (проблемы) иллюзорность верится с трудом.
madf: (Default)
Цього року весна раненько прийшла:

2016-04-15:
spring

Read more... )
madf: (Default)
Я досить часто зустрічаю думку що для написання безпечного з точки зору memory management коду на C++ треба його „обмазати“ std::shared_ptr. Мене ця точка зору дико бісить, бо насправді std::shared_ptr означає що у програміста просто не залишилось іншого виходу. std::shared_ptr дуже складна і доволі небезпечна штука, тому я вважаю що для використання саме цього smart pointer треба чітко розуміти його природу, призначення і вміти відповідати на наступні запитання:


Junior level:

  • Що таке std::smart_ptr?

  • Для чого він потрібен?

  • Які відносини між std::shared_ptr і std::weak_ptr?

  • Навіщо потрібен std::weak_ptr?

  • Чи можна вважати std::weak_ptr smart pointer?

  • Чи можна вважати std::weak_ptr вказівником?

  • Що ж тоді таке std::weak_ptr?



Middle level:

  • Що таке std::enable_shared_from_this?

  • Для чого він потрібен?

  • Як std::enable_shared_from_this взаємодіє з наслідуванням?



Senior/Lead/Architect level:
  • PIMPL і std::enable_shared_from_this — як їх помирити?


Насправді, у 80% випадків достатньо value/reference/std::unique_ptr. До речі, raw pointer, про який кажуть шо його ніколи-ніколи, навіть під дулом автомату не можна використовувати насправді можна використовувати для імітації maybe-семантики (коли std::/boost::optional з якихось причин не підходить). Нічого страшного у ньому немає. Треба просто запам'ятати кілька правил:


  1. Ссилка і вказівник не передають володіння (за винятком new, але від нього треба відмовлятись на користь std::make_shared/std::make_unique). Нам не треба хвилюватись про знищення ресурсу.

  2. Значення робить копію або передає володіння (якщо повертаємо локальний об'єкт із функції). Нам не треба хвилюватись про знищення ресурсу.

  3. std::unique_ptr передає володіння. Знищення ресурсу на нашій совісті (але std::unique_ptr потурбується про це).



Я стверджую що слідування цим правилам ніколи не призводить до проблем з пам'яттю і покриває 80% випадків, коли треба обирати вид smart pointer. Для 20% що залишились все ж доводиться використовувати std::shared_ptr. Один із таких випадків — Boost.ASIO. std::shared_ptr у цьому випадку не потрібен тоді і тільки тоді коли ваші об'єкти гарантовано живуть довше за boost::asio::io_service.
madf: (Default)
А на роботу так не хочеться!
Чи не ознака це того що пора її міняти?
madf: (Default)
Підкинули тут один допис: http://blognot.co/12724. Він привернув мою увагу тим що там висловлюється дуже популярна, але, з моєї точки зору, абсолютно не коректна аналогія між „миттям унітазів у Європі“ і аутсорсінгом в IT.

Read more... )
madf: (Default)
Посварився з дівчиною. Третій день як підвішений.
Зламався PulseAudio. Після Sleep хвилин 30 мовчить. Допомагає kill.
На мишці зламався скролл.
На вінді дико глючить скайп. Контакти постійно відпадають, половина повідомлень не доходить, інша може дійти у випадковому порядку.
На роботі прилетіло 2 show stopper'а.
madf: (Default)
Після чергового перезавантаження пропали всі вкладки. І групи вкладок. Їх було близько 200.
16 відновив по пам'яті...
madf: (Default)
1. Win10
- на рідних дровах не бачить блютузину Azio BTD-V401.
+/- на фірмових дровах бачить, але лише на одному USB-порту. На інших (штук 5 перепробував) не бачить.
+ вмикання/вимикання навушників відпрацьовує правильно.
+ конфігуратор навушників відпрацював коректно, оновив прошивку.
+ звук без нарікань.
0 дзвінки не перевіряв.
2. Win7
- на фірмових дровах не бачить навушники (хоча бачить блютузину).
+/- на рідних дровах працює, але звук так собі (на верхніх частотах трохи хрипить і тріщить).
+/- прийом дзвінків відпрацьовує коректно, але при цьому звук із телефона хрипить (переривається).
- після установки конфігуратор зламав блютуз повністю.
3. Linux
+ бачить блютуз, бачить навушники.
+/- GUI працює через раз. Або через два. Або через три.
+ консольний bluetoothctl заслуговує на повагу — є completion, кольори, коректно відпрацьовує pair/unpair, connect, scan. Надзвичайно зручна утиліта.
+ звук без нарікань (цікаво, як так виходить, адже aptX — пропрієтарна технологія).
+ вмикання/вимикання навушників відпрацьовує коректно.
0 дзвінки не перевіряв.
4. Android.
+ просто працює.
+ звук без нарікань.
+ вмикання/вимикання навушників відпрацьовує коректно.
+ дзвінки відпрацьовує коректно.
5. MacOS X.
0 TBD

Підсумую:
Android - 1.
Linux - 0.75.
Win10 - 0.58.
Win7 - 0.25.

PS: на роботі контакт дотягує до середини коридору протилежного крила. Це десь метрів 20, мабуть. Але якщо зайти за стіну, до кавоварки, починає перериватись раніше. До туалету дотягує без проблем :)
madf: (Default)
Значить звітую. Під лінуксом звучара офігенчик і ваще бомба! Але налаштування пульси в кедах... М'яко кажучи, не працюють. Я без pavucontrol гномівського не зміг заставити програми гнати звук у навушники.

Але проблема з перемиканням телефон/комп, звісно, нікуди не зникла.

У сухому залишку маємо: абсолютно непродуманий UX для Bluetooth помножений на (тип) суму говновінди і лінускові заморочки.
madf: (Default)
Тобто, головні телефони :)

phones

Оці: http://www.amazon.com/Plantronics-BackBeat-Wireless-Canceling-Headphones/dp/B00MBWIL0G/ref=pd_bxgy_147_img_2?ie=UTF8&refRID=0RN12HM6AEDZ9YR4RF1E

Під віндою (десяточка) довелось два дні тягти 800-мегабайтний zip-архів із говнодрайвером до блютузіни, бо рідний віндовий через неї взагалі нічого не бачить. Але злетіло. З телефоном злетіли одразу. Одночасно телефон і комп не можуть, перемикатись між ними теж не можуть. Звук через блютуз як наче старі пластмасові скрипучі Swen за 15 грн (блютузіна у мене aptX вміє). З телефону наче трохи краще. Контроли на телефоні всі працюють (прийом дзвінків не перевіряв, правда). Мікрофон працює. Є якийсь а-ля „proximity sensor“ — коли знімаю з голови плеєр стає на паузу, і навпаки. Через шнурочок звук набагато кращий. На порядок.

У навушниках живе дух англомовної жіночки (жива б там не вмістилась) який солоденьким голосом повідомляє про вмикання/вимикання, рівень заряду і рівень гучності :)

По однокімнатній квартирі можна ходити спокійно, телефон клав у найдальший куток у шафу — добивало без проблем. Можна сидіти у туалеті і приймати дзвінки :) Обіцяють 24 години музики з одної зарядки. Зарядка через USB.

Виглядають солідно — нічого не люфтить, не скрипить. Металева основа дужки, надійна фіксація, поворотні телефони. На голові сидять ідеально — я стрибав і нічого нікуди не звалилось :)

А тепер саме цікаве. Шумодав. Самі по собі, у пасивному режимі, вони добре облягають вуха й ізолюють десь 2/3 шуму. З активним шумодавом ріжуть десь 4/5, але в основному середні частоти. Клікання по клавіатурі ледь чутно. Шум пекельної витяжки на кухні теж ледь-ледь. Завтра тестуватиму у офісі, на офісному шумі.

Під лінуксом... Все сумно. Треба ставити богомерзьку пульсу. Ставлю. Друг каже все одно без длубання у говноконфігах не злетить. Мо' ну його в біса і позапускати ракетки у KSP? :)
madf: (Default)
Не знаю чому, але бісять оці всі купання в ополонках у формі хрестів. Просто у ополонці — будь ласка, хоч сто разів. А тут випендрьож якийсь. Що скажете?

Profile

madf: (Default)
madf

April 2017

S M T W T F S
      1
2345678
9101112131415
1617 1819202122
23242526272829
30      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 23rd, 2017 08:34 pm
Powered by Dreamwidth Studios