Немного о новом блоге "Интернет, программирование и всё такое!"

Друзья, в следствие того, что IT-проекты МИЦ получили новый импульс развития и в данный момент делается много приятных штук, а задумано сделать ещё больше, было решено создать блог, в котором мы можем немного побалакать по теме информационных технологий.
Прошу вас, если у вас есть какие-нибудь предложения, вопросы или пожелания, которые относятся к данной теме, пишите их сюда. Думаю, нам всем будет интересно писать и обсуждать информационные технологии здесь. Но прошу также, чтобы посты не состояли из трёх строк (вот как это например ;) ), а то блог превратиться не пойми во что.

Вертикальный прогресс-бар (шкала загрузки)

Говорят: «Хороший программист напишет, гениальный программист найдёт». Я — хороший программист. Печально это или нет, но это так. В который раз уже встречаюсь с той ситуацией, когда приходится тратить время на реализацию какой-нибудь фигни, которая тебе пригодится один раз в жизни и её сто пудов уже кто-нибудь написал, но ты её не можешь найти.
К сожалению, в языке C# — не было реализовано вертикальной шкалы загрузки. Возможно, потому что не правилам и не по канонам создания интерфейсов программ делать шкалу загрузки вертикальной, мы все привыкли к горизонтальной (и желательно слева направо). А мне вот прямо никуда не деться, нужна эта шкала. Поискав в интернете я свыкся с мыслью, что писать придётся самому этот класс. При том написать его красиво, чтобы потом написать эту запись и пафосно выложить его.
Здравствуй, Ищущий, я помогу тебе. Вот, бери код и пользуйся им сколько хочешь. Не думай как он работает, просто пользуйся им! Он не так красив, как стандартный, зато такой же логичный. Им можно пользоваться так же, как стандартным. Достаточно посмотреть на public-члены класса. Они все закомментирован
Только учти, что при переполнении прогресс-бара будет выкидываться исключение ;) Это принципиально. То есть значение 101 ты уже не поставишь.
using System;
using System.Drawing;
using System.Windows.Forms;

namespace MICComponents {
  public class VerticalProgressBar : PictureBox {

    private int progressValue;
    private int endValue;
    private Timer timer;

    private void constructor(Point point, Size size) {
      this.Location = point;
      this.Size = size;
      this.Paint += new PaintEventHandler(pict_Paint);
      this.BorderStyle = BorderStyle.Fixed3D;
      progressValue = 0;
      endValue = 0;
      timer = new Timer();
      timer.Interval = 10;
      timer.Tick += new EventHandler(timer_Tick);
    }

    void timer_Tick(object sender, EventArgs e) {
      if (progressValue < endValue) {
        progressValue++;
        this.Invalidate();
      }
      if (progressValue > endValue) {
        progressValue--;
        this.Invalidate();
      }
      if (progressValue == endValue) {
        timer.Stop();
      }
    }

    public int Value {                              // почти асболютный аналог свойства Value в классе ProgressBar
      get {
        return endValue;
      }
      set {
        if (value == 0) {
          progressValue = value;
          endValue = value;
          this.Invalidate();
          return;
        }
        if ((value > 100) || (value < 0)) {
          throw new Exception("Неверный ввод числа!");
        }
        endValue = value;
        timer.Start();
      }
    }

    public void Increment(int value) {              // увеличение значения шкалы на определённую величину
      if (((endValue + value) > 100) || ((endValue + value) < 0)) {
        endValue = 100;
        return;
      }
      endValue += value;
      timer.Start();
    }

    private int getPercents() {
      return (int)((float)this.Height * (float)progressValue / 100);
    }

    private void pict_Paint(object sender, PaintEventArgs e) {
      Graphics g = e.Graphics;
      DrawRectangle(g, 0, this.Height - getPercents(), this.Width, getPercents());
    }

    public VerticalProgressBar() {                      // конструктор без параметров
      constructor(new Point(0, 0), new Size(50, 200));
    }

    public VerticalProgressBar(Point point) {           // конструктор с координатами
      constructor(point, new Size(50, 200));
    }

    public VerticalProgressBar(Size size) {             // конструктор с размерами
      constructor(new Point(0, 0), size);
    }

    public VerticalProgressBar(int x, int y, int widht, int height) { // хороший конструктор 
      constructor(new Point(x, y), new Size(widht, height));
    }

    public VerticalProgressBar(Point point, Size size) {        // ещё один хороший конструктор 
      constructor(point, size);
    }

    private void DrawRectangle(Graphics g, int x, int y, int widht, int height) {
      Rectangle pict = new Rectangle(0, 0, this.Width, this.Height);
      System.Drawing.Drawing2D.LinearGradientBrush empty = new System.Drawing.Drawing2D.LinearGradientBrush(pict, Color.Gray, Color.White, System.Drawing.Drawing2D.LinearGradientMode.Horizontal);
      g.FillRectangle(empty, pict);

      Rectangle rec = new Rectangle(x, y, widht, height);
      if ((widht != 0) && (height != 0)) {
        System.Drawing.Drawing2D.LinearGradientBrush gradient = new System.Drawing.Drawing2D.LinearGradientBrush(rec, Color.FromArgb(251, 188, 59), Color.White, System.Drawing.Drawing2D.LinearGradientMode.Horizontal);
        g.FillRectangle(gradient, rec);
        return;
      }
      Brush brush = new SolidBrush(Color.FromArgb(251, 188, 59));
      g.FillRectangle(brush, rec);
    }
  }
}


Если добавить экземпляр этого класса, прямо в файл Form1.Designer.cs. и скомпилировать, то Visual Studio сама добавит его в дизайнер интерфейса и им можно будет управлять, как стандартным элементом.
Вы увидите эту шкалу-загрузки во второй версии Ё-приложения, которая выйдет в конце января, а также чуть позже выпустим add-in для Visual Studio, который будет добавлять этот прогрессбар, как стандартный элемент в ToolBox. А может сможем сделать, чтобы стандартный прогресс-бар принимал вертикальные и горизонтальные позиции. Посмотрим, вообщем =)

Вроде уникальный скрипт для редиректа и переадресации сайтов

Совсем недавно Блогам активной молодёжи МИЦ понадобился переезд из-за неактуальности данного адреса сайта. В итоге передо мной встала задача, решение которой я таки не нашёл в интернете, и пришлось делать самому.
Новый адрес Блогов, на которых вы сейчас находитесь выглядит так: blog.ulmic.ru. Если не верите, посмотрите в адресную строку. Задача состояла в том, чтобы перенести весь сайт, при том сохранив ссылки в социальных сетях на этот блог, так как их за несколько существования Блогов существует уже достаточно много.

( Читать дальше )

Павел Калашников - в 2011 году

Как и обещал отчёт по 2011 году.
Part 1 Студент УлГТУ.
Итак, кем был Павел Калашников, как студент УлГТУ? Как-то был двояко — вроде и похвалить есть за что, а вроде и покарать карой небесной за некоторые вещи тоже не мешало бы. Так что это тема отдельная, но единственное хочу сказать, что 2011 год стал годом самых больших потрясений в моей жизни в плане учёбы, когда я уже готовился собирать вещички в армию, а через 4 месяца спокойно добивал оставшиеся лабы. В любом случае — спасибо всем тем, кто в трудную минуту помог мне остаться на плаву, а также преподавателей, которые оставили меня доучиваться в университете — поверьте, та сессия меня многому научила.
Part 2 Заместитель председателя Студенческого совета УлГТУ
Ещё на первом курсе я стал заместителем председателя Студенческого совета УлГТУ. Оно и понятно было, в те времена я делал очень много для этого Студенческого совета, я привлекал туда людей, я был организатором всех двух мероприятий, которые он провёл за первое полугодие 2010 года, а также придумал эмблему, которую ВСЕ члены Студенческого совета носят сейчас в качестве значка. Но в этом году, я начал отходить от дел Студсовета. Это обуславливалось тем, что мне реально хотелось работать ближе к специальности и там, где принимают мои бешеные идеи. Студсовет не подходил по этим параметрам, ибо по специальности мне там творить вообще было невозможно, а бешеные идеи в зависимой от университета организации не принимаются. И в течение всего первого полугодия 2011 года, я не сделал для Студсовета ничего. А так как, я как и председатель Студенческого совета УлГТУ — Евгений Кузнецов, всегда были сторонниками массового исключения из организации людей, которые не проявляют никакой деятельности, я решил не противоречит собственным принципам и уйти со столь важного поста. Так что теперь я в УлГТУ — никто! просто жалкий студентик третьего курса — так то.
Part 3 Организатор турниров по твистеру
24 февраля 2011 года в день рождения Стива Джобса к нам в город приехали прикольные пацанчики из организации «Бизнес-молодость» и провели семинар. Что-то типа сделай свой бизнес за три недели, заработай миллионы за пять секунд и так далее. После этого семинара к ним потянулся народ. Сейчас они медленно, но верно захватывают Ульяновск — ну и пусть захватывают, разговор вообще не о них. На этом семинаре, я увидел горящие глаза моей тогда плохо-знакомой, а теперь хорошо-знакомой Анны Тюриной, студентки тогда 4-ого, сейчас 5-ого курса ФИСТ, которая хотела что-нибудь сотворить такого, чтобы потом было, что внукам рассказывать. Ну и предложила идею турниров по твистеру. В итоге за первого полугодие 2011 года мы с Аней сделали четыре турнира по твистеру, на которые пришли в сумме больше 150 человек, что есть очень даже хороший результат. С началом лета что-то как-то движуха в этом направлении прекратилась, но на днях, мы с Аней случайно пересеклись и решили замутить ещё одну штуку в следующем году. Так что ждите в 2012 году очень даже клёвую движуху по теме;)
Part 4 Clan Square прошу не задавать лишних вопросов
Как обычно моя деятельность на этой почве очень скромна, хотя есть сдвиги. В турнирах по мортал комбат во втором полугодии, я начал занимать уверенное третье место, хотя раньше был четвёртым =D Весь год собирались сделать мероприятие по теме, так и не смогли. Разобрался с движком M.U.G.E.N. корректно отредактировали персонажей игры, теперь можем соревноваться в полную, не боясь несбалансированности. Игру под названием баскетбол забросил окончательно, хотя и приобрёл первую в жизни золотую медаль по этому виду спорта =) Прошу Аристарха Рыгина и Михаила Светлова пинать мою ленивую голопопицу, чтобы я-таки сделал мероприятие на уровне города. Потому что МЫ ДОЛЖНЫ ЭТО СДЕЛАТЬ =)
Part 5 Руководитель IT-проектов МИЦ
Наверное один из самых правильных шагов в этом году. Я полностью перешёл в Молодёжный инициативный центр, и теперь работаю только в этой молодёжной организации. Закончилось то время, когда я мотался по куче организаций и делал кучу вещей — везде по немногу, в итоге получалось, что ничего не делал. Теперь я работаю только в МИЦ и делаю полноценные проекты, которые можно записать себе резюме. Я полюбил МИЦ всей душой, и уходить никуда не хочу. В МИЦе есть большая почва для самоореализации, маленькие прелести, которые делают приятно на душе и дают, что какой-то профит от деятельности есть. Одна из таких вещей красуется сейчас правее оранжевым цветом. Моя моська там тоже есть — в верхнем ряду, второй справа, если там Кирпичникова, подождите три секунды — буду я =)
В 2012 году ждите появление нового проекта МИЦ — IT-проекты. Теперь у организации есть новый вид деятельности. Один из результатов этой деятельности — это Ё-приложение. Программа, о которой написали уже все информационные агентства города, вчера вышла в сеть. Вот эта та вещь, которой я реально горжусь!
Part 6 Мария Кирпичникова
Ты подарила мне самый лучший год в моей жизни. Недавно сел и прикинул, я провёл времени с тобой в этом году больше чем со всеми остальными вместе взятыми людьми. То есть больше 50% времени мы проводим вместе:* Но больше всего меня радует тот факт, что это только первый год жизни с тобой :* Все остальные будут ещё лучше :* Спасибо тебе, что есть в моей жизни:* Ты самое дорогое, что у меня есть на свете :* И ты по-любому возьмёшь мою фамилию :* И это уже не обсуждается =Р Я люблю тебя :*
P.S.
Ну вот примерно всё было так. Я вот всё думал, как закончить эту статью и придумал — титрами =)

Признак молодости

Интересно, закончится ли время, когда каждый год жизни меняет её кардинально?

В конце года сделаю запись-отчёт по прошедшему году в моей жизни. И очень советую всем сделать так же.

Самая сложная регистрация в моей жизни

Настоящие программисты постоянно читают книжки по программированию, написанные метрами программирования. Находят в этих книжках методы, которые потом применяют в своих программах. Я не настоящий программист. Мною не было прочитано ни одной книжки по программированию. Всё, что я знаю — это набитые шишки в процессе (умные учатся на чужих, дураки на своих =) ) и прочитанные на всяких форумах по программированию материалы написанные простыми смертными как я.
Так как таких форумов очень много и становится всё больше. По каждой теме по программированию можно найти три-четыре форума. Например, форумов по программированию для Андроид-систем вы найдёте больше одной совершенно не напрягаясь. Лишь вбив, в строчке гугла, программирование под андроид. У меня лично есть регистрация на многих из этих форумах. Регистраций 20 точно уже есть, пришлось даже придумать собственную систему для запоминания паролей, чтобы пароли не повторять, но и не забывать =)

Одним из таких форумов оказалася Boolean.name. Но регистрация, которая включает в себя ввод логина и пароля не встретила меня. Вместо неё пришёл тест на знание элементарных вещей. Всего вопросов было шесть, я никак не мог пройти регистрацию, потому что ровно два вопроса меня вгоняли в заблуждение:
1. Сколько будет, если сложить грушу и яблоко?
1) Сложить невозможно
2) Ничего не будет
2. На сколько вопросов надо ответить правильно, чтобы пройти регистрацию?
1) Пять
2) Восемь
3) Хотя бы один
4) Все

В первом вопросе я пробовал отвечать, что сложить невозможно, а во втором, что надо ответить на все. Регистрацию не разрешали. Я никак не мог понять почему?
Потом решил поставить во втором вопросе ответ: «Хотя бы один». И регистрацию прошёл. Я не стал проверять, действительно ли мой ответ на этот вопрос зависит от моей судьбы в принятии на этот форум. Но всё-таки мне кажется, если эти ребята клёвые, то они сделали именно такую систему =)

P.S. Это, кстати, 300 пост на корпоративных блогах МИЦ!!! Это очень хорошо!!! Значит медленно двигаемся всё-таки =)

Хороший стоматолог, плохой стоматолог!

Что такое зубы? Я если честно, точно не знаю, но, кажется, что это голые кости с нашем рте (или рту), в наших ртах, вообщем. А какое ещё может быть объяснение тому факту, что когда они болят, жить просто невозможно!
На протяжении последних двух недель, 24 часа в сутки я доказывал сам себе, что это действительно так. Один зуб в моём рте (или рту) очень сильно болел. Как оказалось – это 6 зуб справа, с самыми длинными корнями в десне.

Учитывая тот факт, что я типа очень занятой человек сходить в стоматологию мне удалось только лишь вчера. До этого времени у меня никогда не было серьёзных проблем с зубами, и стоматолога я не посещал уже более 3 лет. Захожу я в кабинет, меня встречает молодой человек, который сразу вызвал у меня доверие. Он посмотрел мой зуб, отправил на рентген. Посмотрел снимок, который я принёс буквально через пять минут после рентгена и сказал, что этот самый шестой справа прогнил больше чем наполовину и показал больное место на снимке – я ужаснулся, реально ползуба нет. «И что меня теперь ждёт», — спросил его я. Он сказал, что сперва он высверлит ещё часть зуба, далее удалит нервы, сделает канальчикии запломбирует всё это дело. Я испугался, но доброжелательное лицо стоматолога сказало мне, что всё хорошо. Ну как сказать, поллица сказало мне, что всё будет хорошо, потому что остальную часть лица закрыла маска. Он отправил на обезболивающий укол в другой кабинет. Захожу я в этот кабинет, там никого нет. Ну, я зашёл, сел на кушеточку и стал его ждать. И откуда не возьмись появляется человек со шприцом, оказывается, он всё это время был в кабинете и что-то делал со шприцом в углу, который был вне моего в момент входа. По выражению лица этого человека я понял, что меня ждёт не самый интересный поход в мир лёгкого наркоза. Он с таким удовольствием дырявил мне десну, что мне оставалось только радоваться за него – ему точно нравиться его работа.

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

Гугл полностью переходит на облачную слежку

Член Молодёжного инициативного центра Андрей Сверчков сегодня рассказал мне, что после переустановки системы на компьютере и Google Chrome не смотря ни на что гугл хром восстановил всем вкладки, закладки, все аккаунты и даже тему поставил ту же. Приятно! Не спорю. НО! Не означает ли это то, что за нами постоянно медленно но верно, устанавливают тотальный контроль?

У компании Google есть очень много интересных интернет приложений, которые относятся к числу так называемых «облачных». То есть, эти приложения не находятся на компьютере клиента интернета (т.е. пользователя), а находятся на серверах Google. Почти полгода назад открылась социальная сеть Google+, которая просто напросто объединила все облачные сервисы в одно место. Теперь Google стал знать ещё и нашу переписку. Недавно, адвокатом Google пришлось очень хорошо пообщаться с представителями антимонопольной службы Соединённых Штатов Америки на предмет открытия Google+ и, в следствие этого, полный захват рынка интернет приложений. С одной стороны, есть ведь facebook, но Google+ рос так быстро, что я понимаю представителей антимонопольной службы США. Проблем Google избежал.

Если у вас есть аккаунт в Google+ и вы постоянно пользуетесь поиском Google, то вы заметили строчку под некоторыми найденными объектами: «Вы здесь были такого-то числа». Что?! Они теперь запоминают, куда я хожу!!! Теперь придётся ограничить себя в посещении разного рода «некачественных» сайтов. Печаль. Google Maps, ага и это тоже.

Вообщем, перечислять это можно сто лет. Но друзья, Эквилибриум не за горами ;)

Рекорд из Тольятти

Вчера прошёл фестиваль команд симбирской лиги КВН. В нём принимали участие 15 команда из Ульяновска из городов Приволжья… о чём это я?

Три дня назад мне написала во ВКонтакте член Молодёжного инициативного центра, моя хорошая подруга Анна Хусаинова. Аня спросила у меня, не против ли на три дня пожить вместе с 7 молодыми людьми из города Тольятти, где она сейчас учится. После ответа, что у этих ребят больше нет никаких контактов в городе, я согласился. И ждал приезда совершенно неизвестных мне людей, чтобы они пожили у меня. О чём это я?..

Целых две ночи прожила у меня команда КВН «Рекорд» из города Тольятти. Они приехали в Ульяновск, чтобы поучаствовать в фестивале КВН и пройти в высшую лигу Ульяновского КВНа. В итоге целых две ночи моей жизни я не забуду никогда, потому что когда у тебя дома работает «фабрика позитива», забыть эти ночи невозможно.

Я надеюсь, что от Ульяновская у ребят остались только самые лучшие впечатления и я поздравляю их с проходом в высшую лигу Ульяновского КВНа!!! Жду через месяц!!!

Уникальный виджет для Живого Журнала

Хорошие новости для всех любителей Живого Журнала!
Сегодня была запущена beta-версия виджета для Живого Журнала. На просторах рунета нет идеальной версии виджета для Живого Журнала, поэтому я решил написать этот виджет сам. Как он работает можно проверить внизу каждой записи сайта. Там появилась маленькая эмблемка Живого Журнала в виде синенького карандаша. Нажимая на него, откроется маленькое окошко, в котором будет весь исходный текст записи, в которой вы нажали эту кнопочку. Не пугайтесь, что весь текст в формате HTML, это гарантирует то, что в ваш Живой Журнал отправится именно та запись и именно в таком виде, в котором она находится на нашем сайте.

Напоминаю, что это лишь beta-версия и она требует доработки!!! Если во время её использования возникли проблемы, просьба писать об этих проблемах на почту admin@ulmic.ru.

P.S. При кросспостинге больших записей, отображение записи в редакторе ЖЖ может затянуться на несколько минут. Это не наша вина, а их. Я уже отправил письмо в администрацию LiveJournal с негодованием по этому поводу =)