;)
  thinkIT.ru — первый IT-портал города  
 
 
Первый IT-портал города
 
 
Почта:
Пароль:
    Забыли пароль?
  • Такие разные близнецы
  • Хроника
  • На Байкал
  • Схватка
  • На грани
  • Все любят китов
  • Одержимая
  • Кориолан
  • Боевой конь
  • Ржевский против Наполеона 3D
  • Другой мир 4. 3D
  • Бедная богатая девочка

Кино в Таганроге

 

Рубрика: soft

49
Toolbar for ThinkIT

Toolbar for ThinkIT


Хотелось бы создать некий тулбар на тему ThinkIT (некая породия на вистовый), только соответственно с начинкой для работы с данным порталом.

Автор: Zoomskij | Добавлено: 13 Февраля, 2010 | Очень много комментариев | Просмотров: 1400
Возможно я не совсем правильно подобрал название темы "Toolbar for ThinkIT", возможно ThinkIT никогда в нечто подобном и не нуждался, но лично мне было бы довольно интересно воплотить эту идею в жизнь, да ещё может быть это несколько "упростит" работу с сайтом. Хотя куда ещё проще скажите вы? Тут скорее даже не в простоте, а в навигации дело, окно в браузере с данным порталом вы открываете периодически (ИМХО), а вот тулбар может работать всегда, ИМХО больших помех он создавать не должен. Вот собственно выложу скриншот с началом разработок:


Функционал имеющийся и желаемый включить:
• Имеется (как вы уже заметили логотип) - функционала не предоставляет. Надо бы сделать, чтобы по нажатию на него попадали на сайт.
• Имеются бинарные часы (а какие же еще должны быть часы для Ай-Ти сайта?)
• Уже подготовлено поле для отлова сообщений из "мини-чата". Тут же предполагается их и добавление, и хранение. Что бы если вы чего-то пропустили, могли самостоятельно найти и прочитать упущенное. (сегодня эта проблема уже возникала). Хотя на сервере лог-сообщений должен храниться, но всё же из-за таких мелочей беспокоить администрации, было бы не логично.
• Тот же поиск можно было бы добавить.
• Последние созданные темы... вообщем всё-что угодно(темы, скины, плагины).

Технические характеристики:
Данный проект как вы уже могли заметить разрабатывается на С++ с подключением графической библиотеки OpenGL (которая кстати является кроссплатформенной) так что если проект получится в "окнах", то его можно будет запросто перекомпилировать и для того же Linux'a. Насчёт мака не знаю, не работал. Так что насчёт ccube и маколюбов не уверен, что у них заработает... И ещё раз повторюсь, не уверен, что данный проект будет востребован.
Так же по возможности использовал ассемблерные вставки, дабы уже на начальных этапах разработки хоть как-то оптимизировать код.

Проблемы останавливающие разработку данного тулбара:
• Ничтожные навыки работы с протоколом tcp/ip автора, тобишь меня.
• Так же не особые владения работы с окном в OpenGL
• Да и много еще чего :)

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

Теги: Toolbar, C++, OpenGL, кроссплатформенность, linux, tcp/ip | Оценка: (8) |

Комментарии:

hws hws | 13 Февраля 2010 22:42ссылка сюда
ух... нужно использовать кроссплатформенный .NET и не марочиться с OpenGL и не копать tcp/ip. Нужно юзать уже готовую большую библиотеку, именно для этого его и написали. А если хочется сделать что-то красивое, то WPF никто не мешает использовать.
Zoomskij Zoomskij | 13 Февраля 2010 22:56ссылка сюдаответ на
чего-то это название .NET меня всё время отпугивало, и до сих пор оно в меня внушает какой-то странный ужас) И чего-то всё никак не могу сесть прочитать пару книг по .NET и развеять его. Возможно всё же стоит по-пробовать, а не довольствоваться как довольно-таки скудными возможностями OpenGL. мб они скудные только в неумелых руках.
xeon xeon | 13 Февраля 2010 22:56ссылка сюдаответ на
Да, я тоже хотел про это написать.
it_3.0 it_3.0 | 13 Февраля 2010 23:04ссылка сюдаответ на
1. не думаю что это хорошая идея для такого простого приложения использовать дотнет.
2. Мне крайне редко попадались прилично работающие приложения на дотнете.
3. И уж точно я не собираюсь ставить этого монстра на мак.

4. Все что выше, конечно, ИМХО
xeon xeon | 13 Февраля 2010 23:14ссылка сюдаответ на
Да, кросплатформенность .net на маке сильно спорна :)
Чтобы запустить там xminder пришлось поставить X11, потом mono (100+ Мб для скачивания) и в конце-концов получить неработающий трей.
После чего написать трей на GTK+ и обломаться с отсутствием русских букв в некоторых частях приложения. А также огрести проблемы с одновременным использованием GTK+ и Winforms в одном процессе.
Так что удовольствие не для начинающих осваивать .net сделать работоспособное mac-приложение для .net.

Хотя можно попробовать на досуге Silverlight в режиме out of browser.

А прилично работающие приложения на .net есть, и их немало.
xeon xeon | 13 Февраля 2010 22:56ссылка сюда
А зачем часы? В трее или на стене не хватает?

> Имеется (как вы уже заметили логотип) - функционала не предоставляет. Надо бы сделать, чтобы по нажатию на него попадали на сайт.
Используй CreateProcess или устаревший WinExec("http://thinkit.ru")

> Уже подготовлено поле для отлова сообщений из "мини-чата". Тут же предполагается их и добавление, и хранение
Да, прикольно. Хотя конечно концептуально правильно было бы веб-сервис такой сделать, если кнопку на thinkit повесить не вариант.

>Так же по возможности использовал ассемблерные вставки, дабы уже на начальных этапах разработки хоть как-то оптимизировать код.
Выбрось эту чушь из головы. Серьезно. Ассемблерные вставки далеко не всегда эффективнее кода на C/С++, особенно с учетом особенностей работы современных компиляторов и оптимизацией под актуальные архитектуры. Простейший вариант x = x/2 нужно именно так писать. Это просто и понятно. А комплилятор сам сделает shr 1.
Даже если ты на одном участке кода выиграешь 0.0003 секунды, это не покроет тот факт, что картинка у тебя будет лежать, скажем в bmp. Тупо за счет времени обращения к винту. И вообще пользуйся профайлером. Даже для опытных программистов часто очень удивительно обнаружить, что тормозит место "x", а совсем не место "y", где хотел оптимизировать. Очень правильный подход - написать так, чтобы работало, а потом прогнать все целиком профайлером и уже действительно проблемные места оптимизировать.
И проблемы со скоростью в головах и в используемых алгоритмах и подходах на глобальном уровне. А микрооптимизации нужно искоренять.
Я занимаюсь одним проектом. И с Delphi переписал его на "тормозном" C#. Он работает в 10 раз быстрее. (от 3 до 30 раз в зависимости от подсистемы). И уже после профайлера стало явно, что в одном классе (из сотен) нужно вместо 4х свойств с get/set методами поставить ОТКРЫТОЕ ПОЛЕ. Т.е тупо public-переменную. Несмотря на то, что это плохой тон, стиль и т.п. Потому что это эти свойства дергаются настолько часто, что это дает порядка 7% роста производительности в рамках всего проекта. Еще стало ясно, что если использовать чуть больше памяти и хранить 2 списка, упорядоченных по-разному, то можно получить еще +20%. И прочие тонкости.

Дальше (из скриншота). Почему i < 17, что такое i%6, и почему x-=22, почему часы умножаются на 4096, а минуты на 64? Забудь за "волшебные" значения. Используй константы.

>Ничтожные навыки работы с протоколом tcp/ip автора, тобишь меня.
А зачем знать tcp/ip для этого тулбара. Тебе просто нужно HTML прочитать и распарсить. Зачем для этого делать свою реализацию получения текста страницы на TCP/IP?


Зачем ВООБЩЕ всё делать на OpenGL на таком низком уровне с отрисовкой пикселей?

Опять же, собственная отрисовка интерфейса нужна только если абсолютно уверен, что это нужно. Я может быть список сообщений хочу прокручивать колесом мышки, а не нажимая мышкой на кнопки. Я вообще не люблю так делать. Или просто с клавиатуры вверх/вниз. Как этого добиться здесь?
P.S. Читай Стив Макконела "Совершенный код".
Zoomskij Zoomskij | 13 Февраля 2010 23:02ссылка сюдаответ на
А зачем часы были нужны в вистовом тулбаре? i < 17, что такое i%6 = 64, чего вполне хватает для 60 минут/секунд + 5 бит на 24 часа и того 17. А зачем знать tcp/ip для этого тулбара. Тебе просто нужно HTML прочитать и распарсить. Зачем для этого делать свою реализацию получения текста страницы на TCP/IP? - Да я хотел попробовать сделать чего-то по типу сокетов, но эта идея уже отпадает, так как сервером должен быть сам сайт, а это уже не то... Зачем ВООБЩЕ всё делать на OpenGL на таком низком уровне с отрисовкой пикселей? - OpenGL всё является кросплатформенной библиотекой, вот я и подумал почему бы и не на ней это реализовать....
xeon xeon | 13 Февраля 2010 23:05ссылка сюдаответ на
if ((i % 6) == 0)
Я понимаю, что это синтаксически означает. Но не понятно, почему именно на 6 делится.
И почему цикл должен исполниться 17 раз, из которых на 7м и 13м нужно сменить координаты.

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

Upd: смысл ответа несколько изменился, но текст выше тоже поменялся.
Zoomskij Zoomskij | 13 Февраля 2010 23:10ссылка сюдаответ на
Там ведь три линии, для часов, минут, секунд, вот оно и через каждые 6 и меняется... есть некоторое число допустим: 10111010111011 мы скидываем правый бит вправо, если он включен, то включается (флаг C - переполнения), если он включен отрисовываем включенный бит, если выключен, выключенный...
xeon xeon | 13 Февраля 2010 23:19ссылка сюдаответ на
Конечно, почитав твой код минут 5, понять можно. Но хороший код - это такой код, назначение которого ясно с первого взгляда.

А твоя asm-вставка...
Ну посчитай сам. Как часто оно вызывается? Раз в секунду? А сколько микросекунд оно выполняется? По сравнению с отрисовкой пикселей. Вообще пренебрежимо мало. Зато читаемость упала просто в разы.
А можно было сделать переменные hour, minute, second, функцию, которая на вход получает переменную с циферкой и это отрисовывает в виде строки.
И для каждой переменной уже получала отдельные биты.
Zoomskij Zoomskij | 13 Февраля 2010 23:30ссылка сюдаответ на
Сначала всё именно так и было, для каждого параметра отдельная переменная, более того я их просто получал из системы, так-что это даже не переменные, а я просто обращался к памяти компьютера, так-что в оперативную память лишние 6 байт(short x 3 var) не падали :)
xeon xeon | 13 Февраля 2010 23:31ссылка сюдаответ на
Лишние 6 байт... Ну не для микроконтроллеров же пишешь. Вот скажи, сколько твое приложение сейчас в памяти занимает? В мегабайтах, пожалуйста.
Zoomskij Zoomskij | 13 Февраля 2010 23:37ссылка сюдаответ на
Да много, много... 11мб. Но это само по себе окно OpenGL весит столько, а так оно дальше практически в размерах не увеличится, убедили.
it_3.0 it_3.0 | 13 Февраля 2010 23:39ссылка сюдаответ на
из этих 11 бОльшая часть - разделяемая (shared) память
xeon xeon | 13 Февраля 2010 23:44ссылка сюдаответ на
Это понятно, но все же факт есть факт. Сейчас когда доступная для любого настольного приложения память измеряется сотнями мегабайт, экономить 6 байт и даже 6 Кб в ущерб поддерживаемости и читаемости кода это мягко говоря, несерьезно.
xeon xeon | 13 Февраля 2010 23:07ссылка сюдаответ на
Открой для себя Qt, Gtk+
it_3.0 it_3.0 | 13 Февраля 2010 23:10ссылка сюдаответ на
wxWidgets, еще можно к списку добавить.
Zoomskij Zoomskij | 13 Февраля 2010 23:11ссылка сюдаответ на
Да возможно давно уже пора было, хотел под Линуксом с Qt, но так руки и не дошли...
xeon xeon | 13 Февраля 2010 23:10ссылка сюдаответ на
Насчет часов - в slidebar висты. Не знаю, я их удаляю всегда, как и весь slidebar. Но вообще они красивые и интегрированы в slidebar. А твой bar не интегрирован с системой, поэтому уже не очень ясно, как им пользоваться.

P.S. Конечно, можно окно прямо на рабочий стол цеплять, но это решение не работает одинаково хорошо под XP и Vista/7 одновременно.
Zoomskij Zoomskij | 13 Февраля 2010 23:14ссылка сюдаответ на
Вот эта с этой проблеммой-то и я столкнулся, искал решение как её решить функциями OpenGL - не нашёл. Создавал окно функциями C++, но оно не было ОпэнДжиЭльным и не хотело вообще ничего работать. А так да, сейчас оно идёт тупо как отдельная программа, что должно быть устранено.
it_3.0 it_3.0 | 13 Февраля 2010 23:04ссылка сюда
для работы с TCP/IP, а конкретно с HTTP, рекомендую использовать libcurl, кажется она кроссплатформенная, и кажется, называется именно так. Разбираться с нуля с TCP/IP и реализовывать поверх руками HTTP, пожалуй, нецелесообразно. Если, конечно, нет цели именно разобраться с работой с сетью.
GL, как я понял, для кроссплатформенности, но все равно не получится скорее всего полностью избавиться от необходимости задействовать системозависимое API, без него, думаю, не получится сделать нормальной интеграции с ОС.
Если нужно будет сделать интерфейс со стороны сервера (например, чтобы при поиске выдавались только результаты поиска, без обрамляющего HTML) то пишите - это обсуждаемо.
А в целом - идея мне кажется интересной.
iNik iNik | 13 Февраля 2010 23:12ссылка сюдаответ на
Идея по-моему супер клевая! Мне так очень нравится.
Я с удовольствием бы читал сообщения "прямого эфира" у себя на компьютере!
zOOm, если б можно было бы поставить 100500 за статью я бы поставил 2001000 :)
xeon xeon | 13 Февраля 2010 23:22ссылка сюдаответ на
Ну это сделать вообще несложно. На сервер поставить jabber-бота, который будет подписавшимся эти сообщения рассылать.

У меня на своем сервере раньше жил jabber-бот, который ставил удаленно задания на закачку, выдавал температуру проца и винтов. Сделать такое - раз плюнуть. C# + mono + agsxmpp. Постоянно работающий сервак уже есть. Час-два свободного времени - и всё :)
Zoomskij Zoomskij | 13 Февраля 2010 23:33ссылка сюдаответ на
Да может оно и так, только с интернет протоколами дела очень мало имел. Хотя на xmpp готовых ботов вроде полно написанно, можно было бы одного за основу взять, да настроить под личные нужды...
Zoomskij Zoomskij | 13 Февраля 2010 23:22ссылка сюдаответ на
Да там были использованы некоторые WinAPI-функции, например получение размеров экрана: glutGet (чтобы располагать в правом верхнем углу). Но всё же я думаю это сильных проблем не вызвало бы при переписывании проекта на другую платформу.
Dan Dan | 14 Февраля 2010 10:23ссылка сюда
Хорошее начинание. И еще лучше, что с первых шагов принимают участие все thinkit'овчане))
PS Надеюсь, что автор получит кучу полезных советов и наберет экспириенса для левелапа))
iNik iNik | 14 Февраля 2010 10:41ссылка сюдаответ на
+10 к карме автор уже точно набрал! :)
Zoomskij Zoomskij | 15 Февраля 2010 01:32ссылка сюда
Ну вот, сижу качаю .NET Frаmеwork, чуток почитал про него и понимаю, как же я отстал от цивилизации... Уж кажется и не наверстать упущенногою
николай николай | 15 Февраля 2010 08:26ссылка сюдаответ на
в ИТ всегда так. А когда поймешь .NET, то осознаешь, что за это время появились уже другие технологии, еще более продвинутые и непостижимые.
Есть ли вообще смысл во всей этой гонке? Как сделать, чтобы не ты догонял, а тебя догоняли?
Наверное это главный философский вопрос :-)
xeon xeon | 15 Февраля 2010 08:53ссылка сюдаответ на
Ну .net уже 10 лет развивается и пока что это единственный mainstream от Microsoft. Другое дело, что менялись версии 1.0 - 1.1 - 2.0 - 3.5 - 4.0. И технологии внутри версий. Например, для пользовательских интерфейсов WinForms -> WPF.
николай николай | 15 Февраля 2010 09:30ссылка сюдаответ на
MFC тоже долго развивался, и где он? Посоветуете ли Вы начинать изучение MFC?
Анонимность Серая Анонимность Серая | 15 Февраля 2010 10:27ссылка сюдаответ на
Нет, MFC сейчас не рекомендуется ни Microsoft, ни кем бы то ни было. Это уже умерло (хотя формально c новыми студиями даже какие-то обновления в MFC приезжают)
xeon xeon | 15 Февраля 2010 08:52ссылка сюдаответ на
Если нет жестких требований извне по версии frаmеwork, начинай с 3.5 (ну или самый hi-end в лице 4.0).
Если хочется кросплатформенности - бери 2.0. Причем 2.0 стоит уже почти на 90% компьютеров.
Книжка очень правильная - Рихтер, CLR via C# 2.0

Неделю назад вышла 3я версия книги Рихтера. Естественно, пока только на английском.
Zoomskij Zoomskij | 15 Февраля 2010 09:12ссылка сюдаответ на
Ну вот, и зачем я вчера ночью четверть гектара выкачивал с версией 3.5 и закладку на патч до четвертой создавал, а вот насчёт книг спасибо, 3-е издание одной и той же, или же 3-я часть которая дополняет предыдущие две?
Анонимность Серая Анонимность Серая | 15 Февраля 2010 10:25ссылка сюдаответ на
3я часть, которая включает всё самое свежее в том числе и фишки 4.0
Четверть гектара выкачивал зря.
Так как:
1) Visual studio 2008 уже ставит 3.5 frаmеwork
2) Если бы воспользовался веб-инсталлятором, то скачалось бы только необходимое, а не всё подряд для всех платформ. В самом запущенном случае (Win XP без SP2) - около 70 Мб.
Zoomskij Zoomskij | 15 Февраля 2010 13:35ссылка сюдаответ на
Угу, пробовал этот веб инсталятор, но почему-то около 10 мб выкачивается, и загрузка начинается заново, несколько раз произвел данную процедуру... потом решил не делать мозг ни себе ни компьютеру и скачал готовый инсталятор, благо ночью скорость позволяла...
Zoomskij Zoomskij | 15 Февраля 2010 09:21ссылка сюда
И еще хотел спросить для .NET приложений вижуал студия нужна? и если да, то видать 2008 или 2010? потому как в шестой я у себя не наблюдаю нечто подобного, правда возможно после патчинга появится вкладка.
Анонимность Серая Анонимность Серая | 15 Февраля 2010 10:26ссылка сюдаответ на
Компилировать можно консольным csc из .net frаmеwork SDK. Но конечно лучше студией.
2003 - поддерживает 1.1
2005я - 2.0
2008я - 3.5
2010 - 4.0

Я на 2008 сижу, хотя 2010 RC1 очень и очень неплоха :)
Анонимность Серая Анонимность Серая | 17 Февраля 2010 00:44ссылка сюда
как я понял это ррс читалка... вопос зачем она нужно если до нее было написанно уже 100000000+1 читалка... в свою очередь могу сказать молодец возми с полки пиражок можно с мясом_)
it_3.0 it_3.0 | 17 Февраля 2010 08:51ссылка сюдаответ на
не, как я понял, это не РСС читалка
Zoomskij Zoomskij | 17 Февраля 2010 09:46ссылка сюдаответ на
Нет, функционала там планировалось создать несколько больше, чем просто просматривать новости.
iNik iNik | 26 Февраля 2010 17:52ссылка сюда
Ну что там с тулбаром-то? Продвигается или заглохло?
Zoomskij Zoomskij | 27 Февраля 2010 16:11ссылка сюдаответ на
Ааа как это ни прискорбно, но я опять отложил сей проджект... Меня напугали новыми технологиями и я ушёл в унисон.
З.Ы. одни меня гонят в будущее, другие же наоборот пытаются затолкать в каменный век...
iNik iNik | 27 Февраля 2010 16:21ссылка сюдаответ на
;) так не слушайтесь никого и все получится!
iNik iNik | 21 Августа 2010 15:49ссылка сюда
Ради эксперимента собрал турбар: http://thinkitru.rubar.ru
Dan Dan | 21 Августа 2010 22:51ссылка сюдаответ на
У меня ссыль не работает(
iNik iNik | 22 Августа 2010 01:30ссылка сюдаответ на
проверил – работает...
Dan Dan | 22 Августа 2010 09:04ссылка сюдаответ на
Сегодня и у меня работает%) Нафига там прогноз погоды и курсы валют? Или это таганрожско-айтишная погода и валюта?
Vinky Vinky | 22 Августа 2010 09:30ссылка сюдаответ на
таганрожский курс - это почем нынче семачки у бабы клавы))) другой таганрогской валюты не знаю)
Авторизуйтесь чтобы не быть Серой Анонимностью!

 

Играть в тетрис бесплатно он-лайн, без регистраций и смс =)






Время играть в тетрис!

Играть в тетрис проще простого. Жмем на иконку и вперед.


Найди нас везде!

Теперь ты можешь найти нас во всех популярных социальных сетях. Читай thinkit.ru где тебе удобно!


Банкоматы Таганрога

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

 

 
  CreativeCUBE - разработка и поддержка сайтовПроизводство и поддержка сайтов
cCube.ru
  При воровстве с этого сайта ссылка обязательна.
Copyright © 2008-2012 thinkit.ru
Связаться с нами