Новый вид лаборатории или знакомство с LabView

В настоящее время использование компьютеров в научных исследованиях не ограничивается имитационным моделированием на основе математических моделей. Мы давно привыкли к тому, что компьютер применяется для приема, обработки и анализа сигналов от реальных физических объектов и управления ими. При этом возникает потребность в электрических датчиках, преобразователях сигналов и специальном программном обеспечении. Все эти элементы занимают большое пространство и требуют вторичных преобразований и обработки сигналов. Кроме этого, требуются дополнительные расчеты и вычисления, например, для определения погрешности приборов при поверке, пересчете физических параметров сред и т.п.

Упростить рутинные операции при поверке приборов и при съеме данных с различных датчиков могут аппаратно-программные комплексы (АПК), в мои руки попало чудо венгерского гения на базе среды LabView, опытом работы с которым и хотел бы поделиться. Выглядит это так:

Читать дальше →

Замена стандартного текста в «Wordpress»

День добрый.

Наткнулся на вопрос о смене стандартных фраз в файлах Wordpress`a. Не могу ответить на него комментарием по причине отсутствия аккаунта на хабре, поэтому немного напишу здесь.
Читать дальше →

Typo3 и разработка социально-ориентированных сайтов

imageБыло уже довольно много споров и обсуждений по поводу того можно ли строить на Typo3 социальные сайты.

В большинстве случаев лидирует мнение, что эта система предназначена в основном для создания сайтов-визиток и сайтов компаний, но никак ни для сайтов ориентированных на создаваемый пользователями контент.

Попробуем разобраться в этом вопросе и в последующих очерках рассматривать возможности этой системы, ее плагинов и их настройку.

Читать дальше →

Заметка о первых шагах в линуксе

Возможно, кого то это заинтересует, возможно, кого то привлечет. Есть такая операционная система Linux. Многие, завидев ее у меня спрашивают: «А что это за винда такая у тебя?», дак вот, это не винда, далеко не она. И когда говоришь это друзьям и знакомым, они возникают, типа какая разница… А разница на самом деле огромная, даже принципиальная. Линукс — это совершенно другая операционка, работающая по другой архитектуре (в сравнении с виндой). Говорить об этом не буду, ибо все написано на великой и могучей википедии ().
Читать дальше →

.Net Проблемы миграции х86 проектов на х64 OS и способы их решения

Проблема 1: «Microsoft Silverlight cannot be used in browser running in 64bit mode»

С данной проблемой чаще всего можно столкнуться в WinForms приложении, содержащем в себе WebBrowser Control. При попытке отобразить в этом контроле Silverlight страницу, в Windows 7 x64 пользователь вместо страницы увидит указанную ошибку, в то время как в любой x86 операционной системе это же приложение будет работать идеально.

В чем причина? А причина элементарна — Microsoft Silverlight не поддерживает работу в x64bit процессе. Если ваше приложение скомпилировано под AnyCPU target platform, оно будет запушено как x64 приложение на х64 OS и Silverlight, способный работать только в 32-bit процессе, просто не будет работать.

Решение: Как Вы вероятно уже догадались, единственный вариант решение этой проблемы на текущий момент – это компилировать приложение по x86 платформу принудительно.

Проблема 2: В x64 OS при изменении размера окна приложения не перерисовываются и/или не меняют свой размер некоторые вложенный контролы, хотя под x86 OS такой проблемы не наблюдалось.

Источник этой проблемы детально описан у Микрософт в этой статье:
Deeply nested controls do not resize properly when their parents are resized

В двух словах суть проблемы с следующем: при изменении размера формы, она вызывает SetWindowPos чтобы изменить размер своим дочерним контролов. Каждый дочерний контрол получает сообщение WM_WINDOWPOSCHANGED, в результате которого вызывает SetWindowPos уже для своих дочерних контролов следующего уровня. Каждый вызов SetWindowPos выполняется в режиме ядра, что в конечном счете приводит к переполнению стека ядра (kernel stack overflow) которое перехватывается и молча гасится дабы не показывать в результате «синий экран смерти». А как итог, размеры глубоко вложенных контролов остаются не измененными и сами контролы – не перерисованными.

На самом деле это проблема присуща не только x64 OS, но и x86 при достаточном количестве уровней вложенности. Но почему же тогда приложение отлично работает в 32bit OS и отказывается так же исправно работать в 64bit OS? Да все дело в том, что при переходе на 64-bit архитектуру размер указателя вырос с 4 байт до 8 байт. А что стало с размером стека ядра? Догадались? Правильно – он остался точно таким же. Вот и получается, что если для x64 максимальное поддерживаемое число уровней вложенности составляет примерно 20-25, то для x86 архитектуры это число будет в 2 раза выше 40-50.

Решение: Если не считать банального изменения дизайна так, чтобы уменьшить число уровней вложенности, наиболее безболезненное и простое решение будет разорвать в ключевых местах рекурсию вызова OnSizeChanged заменив ее на множественные kernel-to-user mode callbacks:

protected override void OnSizeChanged(EventArgs e) {
 if (Handle != null) { BeginInvoke(new Action(base.OnSizeChanged), e); } 
 }

Знакомьтесь — Linux From Scratch

Вместо вступления
Tux Construction.С самого раннего детства я интересовался компьютерами. Интерес этот произрастал из игр под MS-DOS в детсадовском возрасте, заканчивая всевозможными олимпиадами по программированию к окончанию школы. Не удивительно, что после школы пошел учиться в технический институт на программиста. Самое странное, что все эти годы я был абсолютно далек от такой замечательной операционной системы, как GNU/Linux. Но полтора года назад, в самом начале первого семестра, я познакомился с парнем (он был незначительно старше меня и поступил в институт уже после техникума — имея опыт работы), который во время одного из разговоров сказал:
«Хочешь начать изучать GNU/Linux? Начни с Linux From Scratch!»


Единственный бумажный дистрибутив
LFS (здесь и далее аббревиатура от Linux From Scratch) – книга, написанная Герардом Бикмансом, описывающая процесс сборки минимального рабочего варианта GNU/Linux из исходных кодов. Почему бумажный? В свое время книгу можно было купить в твердом переплете, что делает «дистрибутив» несколько необычным, не правда-ли? Помимо самой книги, для сборки конечно-же понадобится интернет (или заранее загруженные исходные коды), свободный раздел на жестком диске, и любая операционная система на базе ядра Linux, имеющая компилятор. Лично я всегда использую либо уже собранный дистрибутив LFS, либо полную установку Slackware – в нем есть все необходимое, чего не скажешь про (например) Ubuntu. Конечно, всегда можно загрузить нехватающие пакеты, но ведь мы хотим только-только научиться линуксу? А Slackware даже в своей базовой установке и без конфигурирования предоставляет требуемый инструментарий.

Следует сказать сразу — дистрибутив собранный по книге LFS не умеет толком ничего. Вернее, ничего такого, что потребуется неискушенному пользователю. Он умеет включаться, выключаться, перезагружаться, использовать Ethernet подключение, но что самое главное — компилировать. Так существуют других книги, теперь уже поддерживаемые сообществом — Beyond LFS позволяет собрать те самые, интересные пользователю, программы. От браузера и графической среды, до систем управления базами данных и DHCP сервера. Книга имеет свойство отставать в версии от базовой книги, но полученный от LFS опыт обычно достаточен, для самостоятельного разрешения конфликтов версий. Три другие книги — Automated LFS, Cross LFS и Hardened LFS полностью соответствуют названиям и выходят за пределы этой статьи. Впрочем, всегда можно почитать в интернете, правда?

Читать дальше →

Полезный DHT

Кто бы лет эдак пятнадцать назад (всего ничего!) сказал, что не успеют вырасти наши дети, а мы уже не сможем нормально жить без интернета, который в те времена был всего лишь бедным и неоригинальным набором текстовых страничек. Ему если и поверили бы, то только очень большие умники или фантазеры. Ведь в то время канал в 33кбит был мечтой, да и нужен ли он был больше, если все содержимое интернета могло бы занять только несколько десятков гигабайт? Но речь не об этом.
Читать дальше →

Вконтакт по приглашениям, но зачем?

Сегодня мы возвращаемся к истокам – системе приглашений. С этого дня зарегистрироваться ВКонтакте без приглашения нельзя. Небольшое количество пользователей уже получили право приглашать новых участников; другие получат ограниченное количество приглашений с течением времени. 

Заявил сегодня вечером тов. Дуров.

Для большинства из нас это сопоставимо разве что с введением обязательных аккаунтов на Википедии. Или даже нет, Вики зацепила нас куда сильнее, ибо большинство или имеет там аккаунт, или не нуждается в данной социальной сети.

Но если разобраться, что может стоять за таким поступком?
Читать дальше →

Хронология исправления не типичного сбоя dhcp, проблемы поиска решения

Не давние события в сети которую я администрирую натолкнули меня на проблему поиска решения в условиях ограниченной информации. Сначала опишу произошедшее в сети.

Читать дальше →