聚會時間公告: 因應COSCUP 2011, Kalug 8月份休會一次

九月 19, 2010

Yuren's Info Area
yurinfore
is about »

tag cloud

» 吃了蘑菇的 gnome-shell




會變大~

上面這個影片主要是 demo 目前 gnome-shell 的 extension 可以控制 gnome-shell 裡面的任意元件,所以才可以做出讓 calendar 放大的外掛。有興趣可以看一下源碼

這是在 ICOS 的講題 Javascript in Linux Desktop,雖然跟 COSCUP 講的題目一樣,不過經過了一個月當然是要升級一下啦。

這次不一樣的地方還有加入了 seedkit 的部份。不過瞄準的是略有開發經驗的聽眾,所以技術細節其實並沒有提很多。這次 seedkit 的範例用了 seedkit 原本就內附的 dbus, libnotify 範例外,也加了使用 wnck, 用 javascript 控制視窗的範例。

下面這個影片依據 demo 用 dbus 控制 Ubuntu music player - rhythmbox 的上下首變更、libnotify 跳出通知訊息、以及用 wnck 取得視窗標題以及最後的操作所有視窗最小化。



而操作這些動作的全部都是使用 html 與 javascript, 範例源碼如下:
HTML 部份

<html>
    <head>
    <link rel="stylesheet" href="./ui.css" type="text/css" media="all" />
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script src="./ui.js"></script>

    </head>
    <body>
    <div class="demo">
        <img id="cover-art"></img>
        <div id="prev-button" class="button">Prev</div>
        <div id="next-button" class="button">Next</div>
        <div id="notify-button" class="button">notify</div>
        <div id="wins-button" class="button">get wins</div>
        <div id="min-button" class="button">minimize</div>
        <div id="file-uri"></div>
    </div>
    <ul id="windows-list"></ul>
</body>
</html>

Javascript 部份:
Seed.include("./dbus-rhythmbox.js");

function sendNotification(summary, body, timeOut) {
 var notification = new Notify.Notification({summary:summary, body:body});
 notification.set_timeout(timeOut);
 notification.show();
}

function getWindows () {
        Wnck = imports.gi.Wnck;
        Gtk = imports.gi.Gtk
        Gtk.init(Seed.argv);

        var screen = Wnck.Screen.get_default();
        while (Gtk.events_pending())
            Gtk.main_iteration();
        return screen.get_windows();
}

$(document).ready(function(){
 var shell = new RhythmboxShell();
 var player = new RhythmboxPlayer();

 Notify = imports.gi.Notify;

 $("#wins-button").click( function() {
        var wins = getWindows();
        Seed.print (wins.length);
        for (var i = 0; i < wins.length; i++) {
            Seed.print (wins[i].get_name());
            $("#windows-list").append("<li>" + wins[i].get_name() + "</li>");
        }
    });

 $("#min-button").click( function() {
        var wins = getWindows();
        for (var i = 0; i < wins.length; i++) {
            wins[i].minimize();
        }
    });
 
    Notify.init("Webview");
 $("#notify-button").click( function() {
  sendNotification("Raised from a WebView","Raised from a WebView", 500); 
  Seed.print("clicked");
 });

 //playeplayer.getVolumeRemote(function (volume) {print("oi")});
 $("#next-button").click(function(){
  player.nextRemote();
 });

 $("#prev-button").click(function(){
  player.previousRemote();
 });

 player.connect("playingUriChanged", 
         function(emitter, uri){
   //var song = shell.getSongPropertiesRemoteSync(uri);
   //print(song); 
         });

 player.connect("playingSongPropertyChanged", 
         function(emitter, title, property_name, old_value, new_value){
   if (property_name == "rb:coverArt-uri")
    $("#cover-art").attr('src', new_value);
 });
});

dbus 的操作一樣的是比較複雜,你可以參考上一篇。不過相對起來 wnck, libnotify 就簡單許多。而這整個操作,全部都可以使用 jquery 的方式操作,撰寫起桌面應用程式就跟網頁一樣。


最後是 slide。謝謝昨天大家的聆聽

九月 18, 2010

小惡魔AppleBOY
AppleBOY
is about »

tag cloud

» ICOS 2010 Introduction to CodeIgniter PHP MVC Framework

今年 ICOS 2010 我有講一場『Introduction to CodeIgniter PHP MVC Framework』的介紹,本來想藉此機會來宣導 CodeIgniter 這套比較少人知道的 Framework,可惜天公不作美,來了一場颱風,以至於2010年9月19號的議程全部取消,不過還是希望自己可以分享跟推廣這套 Framework,將來有機會也想在台北開一場台北的教學課程,就跟去年在高雄跟 OSSF 合作的『Open Source PHP Web Framework 系列講座』類似,底下是原本預計在19號(星期日)的簡報,希望大家會喜歡 ...詳全文(共326字)

十一月 5, 2007

Yuren's Info Area
yurinfore
is about »

tag cloud

» COSCUP 結束

COSCUP 結束了。這幾天的會後會我都剛好有些私事沒辦法參加,有些事情想說一下。第一件事是我想許多人對 SLAT 很感冒也很不喜歡。這幾天 COSCUP 的議程大多數的工作人員都是由 KaLUG 的朋友擔任,小弟不巧是負責拿講師費給講師的工作人員,我想很多上台的人應該都有見到我。不過有些講師態度真的不是很好。

我想…一定是我被誤認為是 SLAT 的人了吧…。我要鄭重聲明,

那個拿講師費給你的人不是 SLAT 的阿 XDDDD

雖然我們穿著 ICOS 的衣服,不過我們是 ICOS 皮,KaLUG 心阿!

第二件事情是這次真的有很多地方沒有橋好,包括講師費的事情之類的,這樣讓夾在中間的角色實在尷尬,兩邊不是人。不過我想以後就算不跟 SLAT 合辦,我想這些情況以後在這些社群大家一起舉辦的活動還是會遇到。希望以後可以有更多的時間來討論這些工作的流程,避免這種眾說紛云的狀況發生。

至於明年的 COSCUP (聽說網域名稱是 icos.tw),就讓我們來個快快樂樂的 COSCUP 吧。

support:

biggo.com.tw

biggo.sg

A Django site.