?

Log in

No account? Create an account
жовтень 2016   01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Про науку

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

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


Читати більшеCollapse )

Timer from UGears

Posted on 2016.09.18 at 21:23
Tags: ,
Нарешті руки дійшли до подарунку. Дві з половиною години, дві зламані зубочистки, двічі перебраний маятник — і готово:
timer
Окся, Рейст — дякую!

Пучки пальців болять тепер. Видно що давно в руки гітару не брав :)

У 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 погано з повідомленнями про помилки. Фактично, жодне з тих що я отримав мені не допомогло.

Firefly in KSP!

Posted on 2016.06.26 at 20:07
Tags: , , , , ,
Спасав сьогодні чувака з Муни (перша висадка, не вистачило delta-V для виходу на орбіту навіть) і випадково зібрав для цього Firefly!
firefly

Іще комп'ютерне

Posted on 2016.06.22 at 19:13
Tags: ,
Проапгрейдився з 8 Gb RAM до 32 Gb RAM. Давно пора було.


Давно не писав сюди, осьо вам цікавинок (знизу вгору):
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

Люди, дети...

Posted on 2016.04.24 at 12:29
Tags:
Сестричка правильно пише.

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

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

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

Щорічне весняне

Posted on 2016.04.15 at 09:05
Tags: ,
Цього року весна раненько прийшла:

2016-04-15:
spring

Читати більшеCollapse )

18+Collapse )

Я досить часто зустрічаю думку що для написання безпечного з точки зору 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.


Попередні 10