Spotify shower

(Това стана дълго. Директно към свалянето)

Преди (вече доста) време в офиса ни отрязаха YouTube и Facebook. И двата сайта редиректват към jobs.bg. Колкото и да е хитро и да ме радва идеята, основният ми източник на музика от 9 до 6 дотогава беше YouTube. Докато съществуваше Grooveshark, се преживяваше, но го убиха и трябваше да търся други решения.

Основното ми изискване към плеърите, които ползвам, е да мога да следя какво съм слушал в last.fm. Често това доста ми ограничава избора.

Първо на едното OLinuXino пуснах ampache, което stream-ваше от външен диск. Като изключим всичките грозни хакове покрай подкарването му да го виждам на работа, всичко беше идеално. Ако не се бъркам, имах ReverseProxy на едно apache някъде, което водеше до единия рутер, който препращаше към OLinuXino-то. Дори да бъркам за проксито, накрая със сигурност имаше SSH с port tunneling през PuTTY и слушах музика на http://localhost:8008/ampache. Гениално, да, но малко след това ми омръзна да слушам едно и също. Защото дори краденето законното сваляне на нова музика изисква известна липса на мързел.

През цялото време бягах от Spotify, защото рекламите не ми действат добре и не ми се занимаваше да плащам такса всеки месец. След известно време с реклами накрая се прекърших и от няколко месеца използвам Spotify Premium. С малки изключения съм доволен и не мога да измисля много неща, от които да се оплача. Може би случаят, в който някой ми открадна акаунта и го напълни с немска чалга, е причина за оплакване. Намирането на контактите на support-а им се оказа трудна задача, но накрая ми оправиха проблемите приемливо бързо.

Нещо, което започна да ми пречи е, че когато слушам разни колекции с изпълнители, които не знам или пък произволни песни на нови, трябва да вдигам прозореца, за да видя кое как се казва. Linux клиентът няма този проблем (но пък за сметка на това има други в излишък), защото използва notification-ите по подразбиране и изкарва балон при всяка смяна на песен. Разбира се, че има много приложения, които показват какво свири Spotify като notification, но аз исках нещо просто и да го виждам постоянно, а и ми е по-интересно сам да си пиша нещата.

 

rage_preview
Между taskbar-а и desktop-а

Преди няколко седмици забелязах, че taskbar-ът върху десния монитор основно стои празен, защото по подразбиране прозорците са групирани и малки. Реших, че ако мога да си изпиша песента под него, ще е идеално. Оказа се, че мога и така се роди просто малка програма, която е на път да прерасне в съвсем истинско приложение.

На скрийншота горе се вижда, че спокойно мога да си виждам песента. Така е, но той е от лаптопа, върху който не ползвам Windows често. Taskbar-ът ми на работа изглежда долу-горе така през по-голямата част от времето, когато нямам осем отворени инстанции на Visual Studio:

20160422desktop
Когато “Close to tray” не се чупи, нямам и Spotify прозорец.

Първо опитах да ползвам API-то, което предлагат от Spotify, но липсата на продължаваща поддръжка и огромния overhead ме спряха. Няма смисъл да включа огромна библиотека, да се занимавам с автентициране, токени и т.н., само за да взема името на текущата песен. С 15 секунди търсене попаднах на SpotifyToaster, който взема името на песента по хитър начин. Програмата се закача за процеса на Spotify и започва да слуша за Name Change събития. При всяко такова се опитва да вземе името на песента и го показва.

settings_screen
Главният прозорец с “настройките”

В момента приложението показва песните по два начина – с “overlay” и “проста форма”. При първия се пуска отделен процес, който рисува директно върху Desktop-а, а при втория излиза недекорирана форма. Отделният процес се наложи, защото се оказа, че само със C# не мога да сляза толкова надолу (въпреки, че викам същите Win32 функции от същите DLL-и) и нещото се рисуваше върху taskbar-а вместо под него. Дори с допълнителното приложение има тъпи проблеми, които не ми се занимава да решавам, защото не ми пречат.
Ефект на рисуването по този начин е, че всяко опресняване на област, върху, която съм рисувал, затрива това, което е имало преди това. Пример:

overlay_before_screwup overlay_screwupРешавам, че това не ми пречи, защото винаги рисувам под taskbar-а, а там не бутам кой знае колко често.
Освен това имаше случаи, в които заглавието на предната песен не се зачистваше правилно и се получаваше тъпо застъпване. В момента съм си решил проблема като рефрешвам около правоъгълника, който се рисува. Ако някога реша да си доразвия приложението, ще го направя по-умно, но към момента си върши работата идеално.

Вторият вариант за показване на песните използва проста форма без декорация, която пак навирам под taskbar-а, за да я виждам постоянно. Не мога да избера кой вариант ми харесва повече. Ако стигна до release, най-вероятно ще оставя само формата, защото пускането на отделен файл като дъщерен процес може да направи проблеми при определени тъпи настройки и permission-и (или поне както го пусках в началото). И без това с два изпълними файла ми се струва прекалено претрупано.


Още не съм решил как да си кръстя приложението. В момента се казва SpotifyShower, но не като душ, а като “показвател”. Не знам и дали иконките, които му избрах, са достатъчно различни от оригиналната. Важното е, че ми върши работата, която искам.

Последната версия може да се свали от тук (zip, ~178KB).
Трябва инсталиран .NET 4+. Ползвал съм го само на Windows 8.1 и не гарантирам, че ще тръгне навсякъде.

Когато се пусне, излизат настройките, от които се избира къде да се показва песента и начинът на показване. При “Save” или минимизиране се скрива в notification area-та, за да не ми пречи. Когато се освободя, ще му сложа възможност за локализация, защото само с хардкоднати текстове не става.

Все още има някои проблеми, които трябва да реша, за да съм напълно доволен. Например, от време на време закачането към евента гръмва и приложението крашва или пък заглавия на песни, които имат специални символи в името си, излизат наполовина. Според скромните ми наблюдения останалите подобни приложения имат същите проблеми, така че не смятам да си давам много зор с това. Поне не за момента.

Време ми е да събера всичките приложения, които съм пускал тук в отделна страница с по-малко излишен текст около тях.

Докато пишех това, видях, че в новия WordPress paste-ването на URL при отбелязан текст прави линк автоматично. Ще ме накарат да мисля повече неща за писане.

InvisibleForm

Реших да пробвам Bing maps, след като гледах тазиTED презентация, която, между другото, е доста добра. Картите изгкеждат интересни – шарено, 3-D, а това с лайв видеото беше яко. Какво беше казал Гейтс? “Никога няма да ни трябват повече от 46K рам.”?:)
Както и да е. Излиза, че за да тръгнат триизмерните образи, трябва да се инсталира някакъв пакет. При инсталацията му ми излезе тази невидима форма.:)

screwed up: the thrilling conclusion

Докараха ми компютъра! Щастие! След цял ден в сервиза и няколко разговора с компютърните хора новините бяха добри. След едно “Харда ти е добре” ми олекна big time. Цялата работа била от един микроконтролер около слотовете за рам.  Отървах се само с него. Новата машина ще чака. Отивам да слагам Debian.

screwed up

Компютърът ми си замина.

След като около месец карах със Windows™®© 7™®©, дойде и моментът, в който всичко трябва да се прецака… Както писах преди всичките глупости, трябваше да си качвам тук всичките картинки, снимки и общо взето всико извън блогските файлове.

Та почвам си аз да подреждам вече споменатите файлове и не щеш ли – Blue Screen of Death от никъде и машината се рестартира. След като се включи, зареди си всичко и тъкмо да му дам “Ок” на съобщението за грешка и пак – син екран. И така няколко пъти, докато не се реших да го преинсталирам. Слагам инсталационния диск и рестартирам, следвам си инструкциите и точно в точката “Expanding Files” – син екран.

След 2-3 секунди усърдно мислене и търсене сложих live cd на Ubuntu 8.10, 10 sec. later – Kernel Panic! И така от live cd на live cd -все  Kernel Panic, а cd-то на XP дори не се зареждаше до инсталацията…

След 2 часа дискове, проби, мислене и т.н. се предадох и сложих dvd-то със седмицата – рестарт, *beep* и замириса на бакелит – едната плочка рам пушеше. Явно дъното ми е изгоряло. Сега като се опитам да го включа с каквато и да е рам, завъртат вентилатрите инищо повече. Нямам идея какво да го правя. Отдолу няма видими следи от нагорели писти. При първа възможност го водя на доктор.

Не съм свирил от повече от седмица…

Crysis

Отдавна не съм сядал да поцъкам някоя игрица, но днес реших да видя новата игра Crysis, която би трябвало да е “тежка”, както и да е.След кратка инсталация и крак я пуснах, менюто ми вървеше с 150-300 кадъра в секуна…чудно…намалих всички настройки на видеото на low и я пуснах.Много интересна история има, действието се развива добре.Чудно ми е, че върви доста добре (15-25fps. :D), а след като клокнах видеото намали на 12 🙂 странна машина…Утре ще продължа да си играя, сега отивам да уча…

boxart