Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Темы - valexey

Страницы: 1 2 [3] 4 5 ... 9
31
Общий раздел / OS Inferno
« : Июнь 19, 2012, 09:56:33 am »
На хабре начался цикл статей про OS Inferno. Вот первая статья про пространство имен: http://habrahabr.ru/post/146076/
По моему, довольно интересно.

32
Чтобы было понятно о чем речь, небольшое вступление:
Мы создаем некий програмно-аппаратный комплекс. Ну, как комплекс.. Сенсор + цифровой мозг (микроконтроллер, плата) + bluetooth low energy по которому эти данные передаются на какой-нибудь iPhone, или персоналку, и где они затем в реальном времени забавными численными методами обрабатываются. Решение околомедицинское (ну, то есть не для реанимации, но для фонового мониторинга пациентов, для людей вообще следящих за своим здоровьем, для тех кто занимается фитнесом в том числе, для тех кто любит полазить по горам).

У сенсора есть некий параметр, которым можно рулить как с микроконтроллера, так и с iPhone/PC. Параметр критически важный, если его выставить не правильно, то процесс измерения нарушится.

Буквально пару дней назад внезапно обнаружилось странное: выставляем одно значение этого параметра, а сенсор нам говорит, что выставлено на самом деле совсем другое. Ну, то есть скажем выставили параметр в единицу, а он говорит, что нифига, тройка там. Плюс были еще некие странности с непосредственно данными получаемыми от собственно процесса измерений. Начали разбираться. На стороне iPhone проверили - все ОК, тут ошибки нет. Пошли разбираться с микроконтроллером. Посмотрели код - все вроде бы хорошо. Пошли дебажить протокол обмена между ним и сенсором. Дебаггер там конечно никак не поможет, поэтому воткнули осцилограф, пошли битики считать на нем. Там вроде тоже все хорошо. Пародоксальная ситуация - все хорошо, а параметр выставляется не правильно!

Ладно, пошли шагать в дебагере по коду микроконтроллера, а ну как там ошибка? Ошибки в коде не обнаружилось, зато обнаружилось, что после того как байт с сенсора принят, в момент посылки сигнала STOP по I2C, принятый байт портится. Если в байте было число n, то становится 2*n+1 (ну, или  (n << 1) | 1 ). А поскольку значения-результаты измерений у нас были двух байтовые, то вместо числа 10, мы получали число 277, а вместо 1 мы конечно же получали 3 (тот параметр однобайтовый). Кода отвечающего за это поведения просто нет - ошибка на уровне камня. (а камень у нас от всем известной американской компании широко известной в том числе научными калькуляторами и микроконтроллерами). Воткнули код для обхода этой ошибки, теперь у нас все работает корректно.

При чем тут циклы? А циклы тут не при чем, как и в случае всех остальных ошибок которые я видел как минимум за последний год в нашей команде. Процентов 70-80 ошибок которые вылезают имеют характер подобный вышеописанной ошибке.

PS. И пошаговый отладчик, логгирование и осцилограф помогает отловить именно такие вот ошибки, которые другими методами отловить просто не реально (а таких ошибок, повторю, процентов 70-80). А циклы в отладчике никто не гоняет, в них ошибок просто не бывает.

33
Общий раздел / RSDN digging.
« : Июнь 05, 2012, 11:40:42 am »
Набрел на забавный пост на rsdn: http://www.rsdn.ru/forum/cpp/3361658.flat.1.aspx
Крайне порадовал первый же ответ :-)

34
http://habrahabr.ru/post/144776/

Сайт разработан Астраханским государственным техническим университетом. По моему, это позор.

35
Общий раздел / О мышлении и языке.
« : Апрель 28, 2012, 09:22:08 pm »
Листая flipboard... Наткнулся на исследование согласно которому решения принятые в результате мышления на иностранном (точнее втором) языке являются более рационально обоснованными нежели решения принятые в результате размышлений на языке родном: http://www.wired.com/wiredscience/2012/04/language-and-bias/

Оказывается когда человек мыслит на родном языке, мышление оказывается сильно завязано на эмоции (и при этом решение созревает быстрее), соответственно активизируется та доля мозга которая ответственна за эмоциональную составляющую, рационально-аналитическая же подавляется. Когда же мыслим на иностранном языке, эмоциональная составляющая практически никак не задействована, в полную мощность работает только рациональная часть, и ей ничто не мешает.

Честно говоря, это хорошо согласуется с моим опытом - скажем художественные книги на английском я читать не могу. Ну, то есть могу, но у меня не получается испытать каких-либо эмоций. Читаю как доку :-)

Это также хорошо объясняет перманентную живучесть всяких "мертвых" языков вроде латыни на протяжении многих сотен лет. Причем живучесть именно в науке.

Также это, похоже, говорит в пользу того, что не нужно пытаться "локализовать" синтаксис языков программирования. Синтаксис ЯП производный от английского языка это НАШЕ преимущество над англоговорящими программистами, ибо им приходится преодолевать эту самую эмоциональную составляющую, им сложнее концентрироваться и принимать действительно рациональные решения.

36
Общий раздел / Оберон не забывают.
« : Апрель 28, 2012, 10:53:16 am »
Листая flipboard внезапно наткнулся на свежую заметку про Оберон и основные принципы на которых он построен: http://prog21.dadgum.com/136.html

37
Общий раздел / Application Developer Days-3
« : Апрель 19, 2012, 03:23:01 pm »
В 11-12 мая в Москве состоится очередная конференция Application Developers Days. Кроме всего прочего там будет автор языка Котлин с докладом. Думаю его помучать вопросами.

Также там будет доклад по Scala и её применимости в промышленных проектах.

Будут общепрограммерские доклады, вроде доклада о обработке ошибок, думаю это всем не безинтересно (по крайней мере судя по количеству ответов в этой теме).

Будет также доклад про "гибридную" типизацию.

Будет про написание jit-компиляторов.

Ну и всякое вебное-облачное тоже будет, как всегда.

Список докладов тут: http://www.addconf.ru/list.sdf/ru/add_3/reports

В общем, я там буду, и буду задавать в меру и не в меру глупые и не скромные вопросы разным докладчикам :-)

38
Общий раздел / Обработка "ошибок".
« : Апрель 17, 2012, 11:16:24 pm »
Предположим у нас нет никаких исключений. Также у нас нет монад и вообще мы не можем использовать выражения (expressions) чтобы связать вычисения, только чистые statement'ы. И у нас есть код, последовательность вызова функций. Каждая функция возвращает код ошибки. Если код nil, значит все хорошо и нужно продолжать вычисления дальше. Если же нет, то нужно напечатать что-то в лог и прекратить вычисление.

Если делать тупо в лоб, то получается как-то так:
err = f1()
if (nil == err) {
    err = f2()
    if (nil == err) {
        err = f3()
        if (nil == err) {
        ...
        }
    } else {
        logError();
    }
} else {
    logError();
}
То есть куча вложенных if'ов на ровном месте и радостное перемешивание кода логики с кодом обработки ошибок.

Есть такой распространненный паттерн решения этой задачки:
err = f1()
if (err!=nil) {
    logError()
    return
}
err = f2()
if (err!=nil) {
    logError()
    return
}
err = f3()
if (err!=nil) {
    logError()
    return
}
Откровенно говоря, он мне тоже не нравится (хотя читается несколько лучше предыдущего) - код и логика опять смешаны. И опять туча дублирующегося кода.

Кто как справлялся с таким вот когда (и если) доводилось сталкиваться?

39
Общий раздел / Про Node.js
« : Апрель 16, 2012, 05:01:55 pm »
Коль пошла такая пьянка про веб, sql и всякие массовообслуживающие системы, поделюсь ка я ссылочкой на пост одного знакомого ерлангиста про то, почему он больше не будет троллить Node.js: http://erlang-russian.org/post/106

Как говоривает один товарисч с иного форума: "ценное свидетельство". :-)

40
Общий раздел / Про фреймворки.
« : Апрель 05, 2012, 09:37:30 pm »
На хабре появился перевод замечательной заметки про фреймворки: http://habrahabr.ru/post/141477/

Я полностью согласен с автором. Ибо видел я писаное на оных фреймворках приложения. Например Red5. Это страх и ужас. Мало того что код монструозный, и стектрейсы в случае исключений километровые, так оно еще до кучи тормозит, а код слабосвязный (связный через конфиги по сути), в результате никакая IDE не помогает разобраться что откуда и куда вызывается/загружается и так далее.

Когда выбирал на чем писать веб, посмотрел на java-примеры GAE, и понял что не хочу этого. В результате выбрал Go - он еще не успел обрасти таким кошмаром (хотя, потенциально и может - в языке, как и в связке КП+ББ например, для этого все есть).

Вообще, я люблю яву как язык и виртуальную машину, и j2se люблю. Но вот j2ee - это ужас-ужас.

41
Общий раздел / Вышел Rust 0.2
« : Апрель 05, 2012, 12:31:34 pm »
http://www.opennet.ru/opennews/art.shtml?num=33534

Цитировать
Увидел свет релиз экспериментального языка программирования Rust 0.2, развиваемого проектом Mozilla. Rust является языком со строгой типизацией, сфокусированным на безопасной работе с памятью и обеспечении высокого параллелизма выполнения заданий. Об особенностях Rust можно прочитать в анонсе первой версии проекта. Во втором выпуске расширено число поддерживаемых целевых платформ, кроме Linux (x86 и x86_64), Mac OS X (x86 и x86_64) и Windows (x86), добавлена поддержка FreeBSD (x86_64). Всего с момента выхода версии 0.1 внесено около 1500 изменений.

Из улучшений можно отметить: поддержка callback-вызовов из программ на языке Си, увеличение производительности передачи сообщений между нитями, поддержка в языке перегрузки операторов, классов и указателей на регионы, реализация новых конструкций 'loop { ... }', 'crust fn ...', 'export foo::*;', новые модули core::{future, iter} и std::arena.

42
Автор вот этой темы (Romiras): http://oberspace.dyndns.org/index.php/topic,204.0.html
предлагает отделить в отдельную тему обсуждение статические vs динамические страницы  в отдульную тему. То есть начиная с вот этого сообщения: http://oberspace.dyndns.org/index.php/topic,204.msg4314.html#msg4314

Конкретно просьба:
Цитировать
Отдели пожал-а сообщения от #24 и выше в другую тему.

Поскольку правила мне как бы запрещают перемещать/удалять/изменять сообщения, поэтому требуется всеобщий консенсус. В общем, если в течение трех дней (как показывает статистика все активные пользователи хотя бы раз в три дня заглядывают на форум) никто не выскажется против, но кто-то выскажется за (кроме автора предложившего это), то отделю сообщения с #24 по #39 включительно в отдельную тему. Кстати, название темы за вами, так что без названия темы разделять не буду :-) (да, я ленивый).

43
Общий раздел / Google App Engine
« : Март 20, 2012, 06:09:35 pm »
Продолжаем про веб: кто-нибудь пробовал Google App Engine? Как оно вообще?
Вроде как там выбор ЯП для реализации относительно вменяемый: Java, Go, Python (особенно если последний вычеркнуть).

44
Вопрос по примерам семантической модели - не ко мне. Для меня они являются сферическими конями на сей момент. Я просто "подхватил" идею.
Ну вот. Опять сферконь… В общем, хотелось бы примеров от кого-нибудь, чтобы конь был не очень сфер.

Статический контент - это простой, безусловный HTML. Он не подвержен влиянию никаких внешних параметров при запросе серверу и времени.
Гм. Тогда я не могу придумать примеров статического контента. Ну, например вот это же явно не подпадает под определение статического контента: http://subtroj.info/oberon@conference.jabber.ru/2012/03

by valexey: тема была отделена отсюда по просьбе автора изначального топика и по всеобщему консенсусу участников

45
Общий раздел / Oberon, Modula-3, паттерны.
« : Март 11, 2012, 01:55:02 pm »
Я очень внимательно смотрел Модулу-3 пару лет назад. Язык действительно вызвал очень положительные ощущения.
Не жирный, в сравнении с Обероном смотрится примерно как КП... Чуть приятнее в плане эстетики, по моему мнению.

Для меня крест на нём поставил один промах: там объекты только динамические. А полиморфизм - только для объектов.
А у меня лично огромное число паттернов основано на полиморфных RECORD-ах через VAR-параметры.
Без этого режим "срача в памяти" у языка получается примерно такой же, как у Явы и Шарпа... А хочется ближе к С++. :)
А можно пример такого паттерна (причем чтобы это было именно что критично к срачу в памяти). Посмотрим/покрутим, вдруг найдем красивое решение для третьей модулы?

Страницы: 1 2 [3] 4 5 ... 9