воскресенье, 30 декабря 2012 г.

Итоги года уходящего

Год 2012. Начался у меня с сессии. Учиться в Университете тогда ещё было очень прикольно, потому что на парах нас было много. Из того, что вспоминается, где-то к середине января был экзамен по Квантовой механике у госпожи Шишкиной. Студенты узнают об этом экзамене, как правило, уже на первом курсе, потому что предмет, как и сама преподаватель у нас, радиофизиков, считаются легендарными.

Активности. Тут можно говорить и я, и мы - некоторые активности не существуют без команды, и это хорошо. Значительно вырос и в профессиональном плане и в личностном. Тут еще много работы над собой, но приятно замечать, что ты можешь руководить и собой и окружающими, когда это нужно. Уверенность в себе - качество, которое каждый должен воспитывать в себе сам.

О науке. На протяжении всего года с большим скрипом удавалось справляться с наукой. В начале года это был НИР на кафедре и параллельно проект по Texas Instruments. Было действительно тяжело с ними обоими. По Texas нужно было ещё и руководить группой людей, в результате я остался один. Ни один из проектов не получился законченным. Получил снова опыт и не жалею. С другой стороны приобрел и несколько формальных бонусов. Во-первых, запись в трудовой книжке о том, что был лаборантом по НИР в БГУ. Во-вторых, у меня теперь есть хоть одна научная публикация (по теме от Texas).

О работе. Удалось познакомиться с тремя компаниями - в одной поучаствовал в конкурсе, после чего у меня появился Kindle, в другой поучился и по-стажировался, получил реально классные знания по .net и посмотрел как работают большие IT компании в Беларуси, в третью устроился и надеюсь поработать продолжительное время. Новое место работы просто отличное. Условия в офисе, конечно, попроще, но зато перспективы значительные и люди приятные.

Об отдыхе. Сальса в этом году была острой! Уровень мой не вырос на столько, как хотелось, но уже лучше прорисовались направления, по которым нужно вести работу. Девчонок прикольно поздравили в марте. Там моей заслуги не много, но радует, что поучаствовал. Потом просто всё лето тусили на вечеринках. Съездили в Варшаву на сальса фестиваль - для меня это самое значительное событие уходящего года. И под конец года маленький конкурс по сальсе с двухнедельной подготовкой. Конкурс показал как важно работать над собственным стилем.

Здоровье. Укрепляю самочувствие почти регулярными тренировками. Выработал для себя набор упражнений, как силовых, так и на растяжку и стараюсь делать их через день, через два. Сейчас стал работать, и найти время поупражняться стало значительно тяжелее. В результате тело подтянулось, стал лучше себя чувствовать, иммунитет стал крепче.

Личные отношения. Сошли на нет. Сейчас на перспективу даже не могу девушку присмотреть, хотя и есть множество и красивых, и умных, и комсомолок)) 

Остальное. Постоянно подворачиваются очень интересные проекты, до которых просто не доходят руки. Хочется и gamedev позаниматься, и для студентов Университета кое-что улучшить, и замутить большую и крутую задумку на факультете.

В Новом году у всех нас новые заботы, много работы, много планов, много перспектив и, наконец, много побед. Всех с наступающим!

вторник, 27 ноября 2012 г.

Мы выбираем или нас выбирают

Подходит тот самый исторический момент, когда мне (как и моим однокурсникам) нужно определиться куда приложить свои мозги. До 30 лет ещё можно менять свою жизнь как угодно, но хочется сразу "попасть в струю".

Для меня есть несколько направлений, в которых я могу уверенно продвигаться. Сразу откину науку и Университет, как менее перспективный путь (хотя по своему интересный и я бы мог найти здесь место). Анализ данных более перспективная вещь, к нему ещё можно будет вернуться при желании. Итак, на текущий момент я выбираю:

  • C++, game dev
  • C#, ASP.NET(MVC) и куча технологий характерных веб-разработке.

понедельник, 19 ноября 2012 г.

Warsaw Salsa Festival 2012


Паровозик тронулся и запыхтел: "чух-чух-чух". Но на самом деле наша большая танцующая компания загрузилась в автобус и отправилась в Варшаву.

суббота, 16 июня 2012 г.

Разрабатываем умную теплицу. Датчики температуры TMP100. Часть 2 или как Левша блоху подковывал

В прошлый раз я писал о том как подключать датчики температуры TMP100. Сейчас у меня уже есть две готовые платки с датчиками и я очень надеюсь, что устройства будут работать правильно. Сходу никак не проверить, потому как датчики работают по интерфейсу I2C, а такого готового устройства, чтобы можно было сразу подключить и понять заработало или нет, у меня нету. Для этого необходимо написать программку для микроконтроллера и грамотно к нему подключиться.

Теперь о процессе. Понасверлили с Сергеем (в этих случаях правила хорошего тона говорят поставить ссылку на какой-нибудь блог, но нету так нету ;) ) дырок...  К слову, сверло было 1.2 мм, что оказалось всё-таки многовато и было немного неудобно запаивать, но это особенности дрели. Вот что получилось после сверления и лужения (предварительно, конечно, все чистилось ацетоном от тонера, обрезалось и зашкуривалось по краям):

Залуженные платы для датчиков.
Далее самое типично занятие для радиофизика и в то же время уже редкое - что-нибудь попаять! Чтобы читатель ощутил весь драматизм паяния суровым советским паяльником датчиков TMP100, вот вам фотка для сравнения масштабов:

Пайка датчика TMP100
Такие паяльники у нас были на лабах по радиоэлектронике на втором курсе))) Да, я действительно им пользуюсь, потому что покупать что-нибудь и лень, и затратно, и кажется купишь какой-нибудь шлак. Всё довольно хорошо получилось, потому что поставил датчик пинцетом на залуженную плату (его и пальцами особо не придержишь), а дальше прижал контакты плашмя паяльником и всё приклеилось.

Третью платку не распаивал, потому что там получилось больше всего брака. Получились две вот такие платки:

Готовое изделие
Видно, что штекеры для порта торчат криво, но эти разъемы мне вообще очень тяжело дались... Потом уже приноровился, а так на них плавится пластмасса и получается то перекос, то один выше другого вылезет. И еще с джамперами не очень получилось - пока один надевал (они очень плотно одеваются) отклеилась площадка вместе с куском проводника на плате - вроде как на место более менее вошло и припаялось, но теперь тормошить его не рекомендуется.

пятница, 15 июня 2012 г.

Разрабатываем умную теплицу. Датчики температуры TMP100

Продолжаю заниматься конкурсом от Texas Instruments. На днях забрал у представителя компании Compel отладочный комплект, переданный техасом, - eZ430-RF2500. Занятная штука. Когда берешь в руки подобные железки сразу появляется желание с ними поиграться, но об этом отладочнике по-позже расскажу.

Теперь мы находимся на шаге 4 - разработка и тестирование. Все, что успел заказать, пришло - пора уже работать. Для начала я решил разобраться с подключением датчиков температуры TMP100 от Texas Instruments.

TMP100 представляет собой цифровой датчик температуры в корпусе SOT-23-6 и работает по интерфейсу I2C. В документации написано как его подключать. Для этого используются подтягивающие резисторы по 10кОм для интерфейса I2C и конденсатор 0,1мкФ - я так понял для стабилизации питания.


Датчик ооочень маленький (ещё фиг поймешь как его паять). Чтобы подключить датчик пришлось набросать для него схему а развести дорожки. Все делалось в Eagle, никогда раньше этим не занимался, поэтому больше суток чтобы разобраться в Eagle. Тут спасибо easyelectronics.ru. В следующий раз буду работать с Sprint layout в надежде, что будет меньше нюансов в распечатке.

Схема подключения TMP100
Красота полученной схемы меня не особо волновала - главное развести дорожки. Коннекторы JP2 предназначены для подключения к микроконтроллерной плате - это четырех-жильный провод в котором две линии I2C, линия питания 3V, и земля GND. Коннекторы для с джамперами JP1 сделаны, чтобы на разных платках с датчиками можно было установить их адрес. Сначала на датчике присутствует адрес и только потом с ним можно работать по I2C. Тут может быть 4 комбинации джамперов (см. рис. Схема подключения):
  • 1-3 и 2-4
  • 1-3 и 4-6
  • 3-5 и 2-4
  • 3-5 и 4-6
Т.о. получаем 4 разных адреса для датчиков. Мне необходимо как минимум два датчика температуры одновременно, для этого и предусмотрено использование адреса.
Далее разводим дорожки:
Схема дорожек для TMP100
Чтобы далее применить широко известный метод лазерного утюга (ЛУТ) необходимо распечатать это изображение во-первых в монохроме, во-вторых без лишних элементов (все что серым цветом). Это отлично настраивается в слоях Eagle. Но при печати все же есть нюанс... Напечатать прямо из Eagle можно только один экземпляр, а при таких небольших схемах их часто нужно несколько - для того чтобы избежать случайного брака, да и в случае когда действительно необходимо несколько плат. Для этих дел изображение с помощью CAM Processor'а сохраняется в векторном формате и дальше можно с ним работать в любом векторном редакторе.

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

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

Осталось протравить, просверлить, залудить и запаять. Жду, что траблов не будет и все заработает сразу.

воскресенье, 20 мая 2012 г.

О заказах из дальнего зарубежья

Всё на тему конкурса от Texas. Конкурс длится до июля, поэтому ещё почти ничего не делается, но совесть напоминает о себе. Несколько недель назад мне пришла очередная почта. Но на этот раз всё оказалось гораздо сложнее. Я не писал о том, как мне пришли на домашнюю почту датчики температуры из сингапура - с ними всё ок, пришли без проблем. Но потом я заказал ещё одни - другие температурные датчики, уже предоставляемые по программе FREE SAMPLES. Texas изъявил желание слать их службой FeDex - курьер, который из USA доставил посылку за два дня, при этом ведя трекер-лист о местонахождении посылки. Но куда он её доставил!

А доставил он её в Национальный Аэропорт на склад временного хранения РУП Белпочта. Почти три недели у меня находились причины, по которым я никак не мог выкроить достаточно времени, чтобы в рабочее время съездить за 40 км туда и обратно.

Одна из четырех микросхем, ради которых мне пришлось около пяти часов времени.


Путь к успеху таков:
Берем паспорт, едем на Центральный или Московский автовокзал, садимся на автобус 300С,  пребываем спустя час-полтора в аэропорт. Т.к. в аэропорту я первый раз, то пришлось потупить и поспрашивать где же этот СВХ. Мне помогла спаравочная - такая кнопка с динамиком на стене, где добрый женский голос сказал, что мне надо выйти из аэропорта, повернуть направо, пройти 700 метров повернуть направо и тут будет будет КПП-1. Тут мы получаем первый пропуск и можем попасть непосредственно на СВХ. Это режимный объект, поэтому вас проверят на металличность. Далее получаем описание того, что к нам приехало, заполняем декларацию и несём её таможенникам. Тут её подправляют и забивают в компьютер. Мне пришлось заплатить 58к б.р. за почти три недели хранения. Если бы стоимость груза была более 10 евро, то ещё 30% стоимости. Теперь получаем ещё один пропуск и получаем груз.

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

суббота, 19 мая 2012 г.

iParty. Как это было?

Я активно выздоравливал, но мне всё ещё было дико лень ехать на это мероприятие. Я рад, что поехал! Так уж вышло, что по человеческим клубам я не шарюсь, и с клубами не знаком (Алькатрас с его сальсатеками не в счет, ибо специфическое мероприятие не похожее на клубные). Был в НЛО только однажды, когда с ребятами решили сходить на пробное занятие по Хастлу.

И вот мы на вечеринке! Первым делом нас встретили охранники, но потом всё пошло гораздо приятнее ;)

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


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

Фотки можно посмотреть тут и тут. Да, если кто не в теме, то на верхней фотке не я, а то ещё кто-нибудь подумает, что я и есть директор ;)

среда, 2 мая 2012 г.

Сальса из Одессы

На этих выходных в Минске была жара. И не только из-за погоды - в город приезжала Марта Ханна. И конечно же не с пустыми руками - с семинарами и Костей Морозковым.

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


Ребята, конечно, потрясающе двигаются. Марта так и вообще - бедрами поведет и парни прилипают взглядом))

Завершились выходные ночной вечеринкой в Даньков-клубе, куда я не поехал. А там уже собрались и представители школы Юлии Шостак и их специально приглашенный гость из Польши (тоже с семинарами). Так что там было звездно.

вторник, 1 мая 2012 г.

iTransition opener

Поучаствовали с чуваком в opener.itransition.com. Такое а-ля соревнование. Требуется решить 20 дурацких задач, в большинстве своем ориентированных на догадки - в этом их фишка, в этом и загвоздка. Конечно после решения некоторых получаешь огромное удовольствие. Первая троица решивших получают iPad'ы, а остальные идут лесом на iParty. За приглашениями уже съездили.


Это обратная сторона приглашения. Лицевая сторона вот http://iparty2012.com/
В принципе, если совесть позволяет и есть желание и смелость, то приглашения можно и нахаляву получить. В компании говорят, о том, что надо брать с собой паспорт, но никто его не требовал, и идентификация проходила по e-mail'у в их списке - мы буквально ткнули пальцем в свои адреса. 

Из описания вконтакте вытекает, что iParty это такая нерд-тусовка с приглашенными девушками, чтобы не так скучно было пить халявное пиво под адекватную музыку (обещается удобоваримая нердами музыка - т.к. технарей попсофилов, как среди нердов, так и среди сотрудников быть не должно). О девушках. Обещают разврат в виде strip и go-go шоу и девушек моделей-студенток. Вообщем-то когда компания так активно использует слово "разврат", начинает казаться, что приглашают на оргию какую-то. В любом случае хочу сходить и надеюсь вынести оттуда что-то более ценное, чем блокнотик и ручка ;) ну и положительные эмоции конечно - остается надеяться, что будет не слишком пафосно и напряжно.

суббота, 21 апреля 2012 г.

Gersis-softwer contest

Решили поучаствовать с ребятами в конкурсе от Gersis-Softwer. Пару недель назад их директор приезжал на наш факультет, чтобы нас посмотреть и себя показать. Компания время от времени проводит конкурс для студентов.


Задумка такая. Собираются команды (по 1-3 человека) в их офисе - до 30 человек. Команды получают на выбор проекты и работают в течение над ними 8-ми часов. Так уж получилось, что команд сегодня собралось мало и компания решила не тратить слишком своё время и деньги (на обеденную пиццу для всех ;) ), а решило провести конкурс удаленно.

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

вторник, 3 апреля 2012 г.

Почта

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

Сегодня обнаружил совершенно неожиданно для себя картонный конверт размером чуть побольше A4. И конечно, обрадовался, когда увидел в качестве адресата себя, а отправителя Texas Instruments.


Переводить думаю не требуется :-D Совершенно забыл, что как-то увидел на сайте TI возможность заказать бесплатную книгу - как же пройти мимо халявы ;)

Книга посвящена довольно интересному процессорному архитектурному решению - гибриду нормального процессора с DSP-процессором. Может и пригодится однажды - было бы время а реализацию нашел бы.

вторник, 20 марта 2012 г.

Динамическое и статическое подключение DLL

Постараюсь кратко рассказать про подключение библиотек DLL. Но сначала ещё немного поработаем с элементами интерфейса. О том как создать простое диалоговое приложение с помощью MFC я уже писал.

Первым делом приложение должно позволять вводить какое-то число, и нам также необходимо по нажатию кнопки как-то выцепить это число из edit box'а. Делается это так.

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


Нам необходимо две переменные. Одна будет предоставлять методы для Edit Box - такие как получение значения из этого поля. 


Вторая переменная просто будет хранить значения типа INT, полученные из Edit Box. Эту переменную можно было и вручную написать в .h файле, отвечающим за интерфейс, но мы её добавим по-ленивому.

   

Максимальное и минимальное значения нам, в принципе, тут не нужны, но если бы мы использовали метод UpdateData, то можно было таким образом ограничить вводимые данные.

Теперь опять выбираем вкладку с каркасом приложения, клацаем два раза на первую кнопку и среда сразу открывает нам метод по обработке нажатия клавиш. Теперь запилим туда вот такой код:

void CMFC22Dlg::OnBnClickedButton1()

{
// TODO: Add your control notification handler code here
CString s;
m_CEdit1.GetWindowTextA(s);
m_INTedit1 = atoi(s);
AfxMessageBox(s);
}

Результат посмотрите сами.

Наконец о подключении библиотек!

Статическое подключение. Используется понятие "раннее связывание". Это значит, что DLL "прикрепляется" на этапе компиляции - compile-time. Это самый простой способ подключения, но для него необходимы следующие файлы: сама .DLL, хидер с описанием функций .h, и библиотечный файл .lib - все они создаются при компиляции библиотеки и закидываются в проект, требующий подключения библиотек.

Для подключения требуется вписать вот такой код:
// статическое подключение DLL

#include "myStatLib.h"
#pragma comment(lib, "myStatLib.lib")

Теперь можно напрямую вызвать необходимые функции из dll.

Динамическое подключение. Использует "позднее связывание" или run-time. Подгрузка библиотеки происходит только при вызове функции. Разумеется придется самим контролировать процесс выгрузки библиотеки. Следующий код прописан в .h файле - тут определяется сначала тип указатель на функцию, а потом переменная callFDLL, являющаяся указателем на функцию. hlib - какая-то winapi структура, которая будет содержать описание подсоединенной DLL'ки. Готовую dll необходимо скопировать в проект.
protected:// типы для динамической загрузки DLL

typedef void (WINAPI *MYPROC)();
MYPROC callFDLL;
HMODULE hlib;

В обработчик второй кнопки должны добавить следующее:
void CMFC1Dlg::OnBnClickedButton2()

{
CString s;
EditControl2.GetWindowTextA(s);
m_edit2Value = atoi(s);

hlib = LoadLibrary("dllG.dll");
callFDLL = (MYPROC) GetProcAddress(hlib,"CLDyn");

FreeLibrary(hlib);
}

CLDyn - имя функции, которую мы вызываем из dll.

Создать DLL. Не буду описывать опять процесс создания проекта в MSVS - там методом научного тыка всё можно создать. Но код простейшей dll стоит выложить.

Файл dllG.h
extern __declspec(dllexport) void CLDyn(const int NN);

Файл dllG.cpp
#include <windows.h>


extern __declspec(dllexport) void CLDyn()
{
MessageBoxA(GetActiveWindow(),(LPCSTR)("Hello from Dynamic Loaded Library!"),(LPCSTR)("Hi"),MB_OK | MB_APPLMODAL);
}

Файл dllG.def - для динамического подключения этот файл необходим, т.к. позволяет определить нормальные названия функций.
LIBRARY "dllG"

EXPORTS
CLDyn @1



среда, 14 марта 2012 г.

На перспективу

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


Так вот, наша Беларусь, как и большинство других стран, проводит обязательную сертификацию средств защиты информации. И если у продукта такого сертификата нет, то и использоваться в серьезных местах он не может. Так например, Windows XP и Windows 7 сертификации не имеют и потому на предприятиях с ценной информацией использоваться не могут, хотя защита у этих систем имеет класс C2 (ц2 очень серьёзный класс). Однако никто не гарантируют, что товарищ Билл не сделал там никаких закладок (а такие слухи действительно есть). Такая же тема с некоторыми криптографическими преобразованиями.

Есть у нас такое заумное НИИ ТЗИ, которое занимается разработкой средств для использования в нашей стране. Я сначала удивился - неужели свою систему будут писать вместо использования "Окон"? Ну не то чтобы писать... Ребята берут исходники ядра линукса, настраивают на нем своё ядро безопасности - и готова система абсолютно защищенная.

А сами по себе системы довольно уязвимы. Чтобы получить информацию с компьютера с защищенным паролем линуксом, не надо даже взламывать этот пароль. Берется Live CD с линуксом, загружаемся с него, заходим под root и получаем господство над информацией. С виндой почти тоже самое - вставить свой веник, загрузиться с него и получаешь неограниченный доступ к уже имеющемуся в компе венику.

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

понедельник, 12 марта 2012 г.

Старый добрый MFC

Есть у меня такой предмет "Технологии программирования". Ведет клёвая тётя - какой-то крутой программер в Минской компании. Она задала нам сделать лабу по работе с dll. Задание таково:

"Необходимо написать программу, имеющую графический интерфейс (GUI), на С++. Программа должна иметь два поля Edit и две кнопки. Первая группа Edit+Button для работы со статической библиотекой, вторая - для подключенной динамическим образом. В поле Edit ввести число и по нажатию кнопки выскакивает приветственное сообщение столько раз, сколько было введено."

В качестве GUI разумно использовать MFC, с которым мне особо не приходилось сталкиваться, но теперь пришлось довольно быстро разобраться. И этот пост фактически гайд как быстро написать простое приложение на C++ с использованием MFC.

Итак! Грузим Microsoft Visual Studio 8 -> File -> New -> Project. Выбираем Visual C++ - MFC и выбираем приложение которое хотим создать - MFC Application.

По нажатию "Ok" среда предлагает нам настроить внешний вид нашего приложения. Здесь важный для нас шаг выбрать "Типа приложения". Для нас должно быть "Диалоговое приложение"(Dialog based). Именно этот вариант предполагает наличие всяких кнопочек и полей и избавит от ненужных мытарств с документами. Окно выглядит так:

Так же обязательно выбираем "Use MFC in a static library". Настройки в других вкладках по вкусу.

В результате среда создала много различных файлов и начальный каркас приложения.

Нас интересуют только выделенные файлы - это два .cpp файла с кодом, два их хидера .h и .rc файл ресурсов, с помощью которого и вызывается это диалоговое окно приложения ( .rc -> Dialog -> IDD_MFCPROJECT_DIALOG).

Справа обращаем внимание на вкладку Toolbox (вызывается сочетанием клавиш Ctrl+Alt+X). Отсюда мы натягаем нужные нам элементы и получим что-то похожее на моё приложение.


Очень удобно в проекте клацнуть два раза на кнопку, нажатие которой хотим обработать, и сразу попадаем в её функцию-обработчик. А клацаем правой кнопкой по кнопке -> Properties  - можем настроить элемент (Например поменять все надписи). Можно запускать приложение Ctrl+F5.

Вот такая простая магия и никакого кода.

среда, 7 марта 2012 г.

Конкурс от Texas Instruments

На моей кафедре работает довольно активный преподаватель, который, наверное, больше других любит давать студентам творческую работу. Он всегда старается найти студентов для участия в том или ином конкурсе и даже параллельно с лабами предлагает поучаствовать в студенческих проектах. В прошлом семестре мы с двумя ребятами участвовали в IEEExtreme Programming Competition по его предлогу. К слову, он возглавляет университетский IEEE союз, хотя сейчас он скорее мертв, чем жив. Мне вообще-то нравится любая подобная активность, но времени на неё не находится...

На этот раз мы с ребятами решили поучаствовать с конкурсе от Texas Instruments. Конкурс называется Analog Device Contest. Самая приятная его фишка это возможность заказать любые комплектующие этой компании на сумму до $100.


Итак, времени было мало, я тупил и товарищ преподаватель сам придумал тему и сам нашел двух ребят с моей кафедры, а я привел ещё одного чувака.

Проект называется Intelligent Greenhouse. Ну а дальше вы поняли короче. Сегодня я написал ребятам письмо что кому делать, потому что если не начнешь командовать, то никто ничего так и не начнет, да и самому как-то себя организовать хочется.


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

четверг, 1 марта 2012 г.

О программировании

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

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

Внешне такие компании, как EPAM или iTransition, кажутся довольно попсовыми - у простых студентов популярных ВУЗов давно уже выработалось соответствующее отношение к ним, которое передается от старших курсов младшим. Обе компании, кстати имеют очень крепкое ядро из грамотных специалистов. Так, Itransition, начинали молодые ребята с очень грамотным подходом во главе с Сергеем Гвардейцевым, ибо руководствовались серьезной литературой, а не только энтузиазмом.

IT компаний в Минске уже довольно много, и, если раньше были войны за лучших специалистов, то теперь профессионализм вырос и ребята стараются вкладывать деньги в перспективных ребят. И те с лихвой окупаются спустя пару лет.

Не так уж туда и трудно попасть, как многим кажется, но действительно надо хотеть этого и работать над своими знаниями. Я пробовал поступить на курсы iTransition по разработке ПО после окончания второго курса. Сейчас понимаю, что был тогда слишком юн для этого и знания были никакие вообще. Зато получил огромный опыт для себя. Ходите на собеседования время от времени - это позволяет понять цену себя на рынке, потренироваться в продаже себя и получить мотивацию для добывания новых знаний.

Минимальное достаточное условие, чтобы втереться в доверие. Критерий Коши? ;)

1. Инвестируем год в изучение литературы по нужному направлению, тренируем и разбираем каждый пример из книг.
2. Изучаем хотя бы 4 основных метода сортировки так, чтобы смогли написать код на листике бумаги. Сюда же относим ещё несколько самых известных алгоритмов а-ля вычисления НОД, числа Фибоначчи и т.д.
3. Мы должны уметь как минимум понимать англоязычные мануалы по проге. Разговорный английский важен. Тут можно готовить темы "Моё хобби", "Мои дальнейшие цели в жизни"...
4. К этому времени уже стоит понимать основные отличия ООП от структурных методов.
5. Послать резюме.

Не стоить понимать курсы, проводимые компаниями как школу, куда можно прийти нулём, а в тебя вольют кувшин знаний. Курсы будут полезны только тем, кто готов делать всё сам - тривиальных вопросов не задают.

среда, 4 января 2012 г.

Мммм... такой тёплый ламповый звук!

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

Но теперь я постараюсь доступно объяснить это.

Гармониками синусоидального сигнала частоты f называются сигналы с частотой кратной f, где номеру гармоники соответствует коэффициент, на который умножена основная частота. Это значит, что первая гармоника и есть основная частота, вторая гармоника находится на частоте 2f, третья - 3f и т.д.

Октава (в музыкальном смысле) - это интервал между двумя нотами, равный 6 тонов. Например, октава это созвучие "До" первой октавы и "До" второй октавы. Звучание октавы приятно для уха. В физическом смысле частота между нотами октавы отличается в два раза:

"До" первой октавы - 261.63 Гц
"До" второй октавы - 523.25 Гц

Временное представление сигналов (амплитуда сигнала зависит от времени).

Спектр сигналов.

Спектр - частотное представление сигнала. Матлаб моделирует вместе с ошибками вычисления, вызванными конечной разрядностью компьютера и аппроксимацией при дискретизации. В идеальном случае на спетре частоте каждого сигнала соответствует пик. Т.е. подразумевается, что у нас должно быть два пика на частоте 261 Гц и 523 Гц.

Так вот, для "до" первой октавы второй гармоникой является "до" второй октавы. Третья гармоника находится на частоте 261*3 = 783 Гц, что соответствует ноте "Соль" второй октавы. Четвертая гармоника - 1044 Гц - нота "до" третьей октавы. Казалось бы всё хорошо - все гармоники приятно звучат вместе (третья гармоника = октава + квинта к основной частоте), однако, в произведении непредвиденная композитором нота соль второй октавы может диссонировать с другими звуками. Все нечетные гармоники вносят диссонанс.

Наконец подобрались к транзисторам и лампам!

Транзисторы характеризуются ярковыраженными нечетными гармониками.

Лампы же имеют малое количество гармоник (доминируют вторая, третья и четвертая). Поэтому звук ламп и кажется приятнее.