Project Gy: Reborn?

Well, due to the mass temptation from Quora answerers, I’m going to reconstruct Project Gy from scratch with Laravel, soon after I finish the 3 modules. Then I will post up the last edition based on CodeIgniter.

Yet, I’m not quite sure if I really have time to reconstruct it, as JC2 is expected to be quite packed, and A-level is coming.

Probably, I may leave Project Gy as is and move on to Noti+Plus (I’ll introduce it in a later post), or Codename LyricG. Meanwhile there is a “MCQportal” (A web-app that get teachers to have quick multiple choice quiz online in a special manner) pending on the list. This was thrown by my ex-CCA teacher, and I’ve done a prototype with Web2Py, suggested by my pal Freddie.

There’s really a lot of things that I’ve planed to do, really a lot.

By the way, for the latest progress on Project Gy, please visit here. Whatever is cancelled there means it’s done.

Recent plan and progress for Gy

Recently I’m working on some new features for Project Gy (very slowly). Seems it may take me some time to finish all of it, so I’m using this post to talk about my plan and progress.

Some off topic words:

In the progress of feature development , I’m using a super simplified version of Git workflow model locally, which includes a Develop branch and a Origin branch. Develop branch for features, and Origin branch is for hotfix that’s push to the server. I don’t think all the detailed branching is necessary for just an individual developer. But I would try to implement this model to Project Gy if there’s really anyone want to join me. I’m waiting for the moment, and looking forward to it. (as I’m coding alone since the very beginning…)

Okay, let’s come back. This is basically the plan so far.

  • Resource management in back-end.

    • Font management

      *   <del>Delete font</del>
      
      • Upload font

            *   <del>Upload and generate preview</del>
        
        *   <del>Migrate current font system to database based font management (Imggen)</del>
        
      • Background management

        • Delete
      • Upload and management
      • Migrate (Imggen)

      • signature customisation.

  • Imggen upgrade

    • Migrate font & bg to database.
    • Customize dynamic page.

      *   <del>Configuration saved as JSON in database `GY_usermeta.signature`</del>
      
      • Upload Bg.
      • Parameters setting page with rough preview using HTML5 Canvas & JS.

      • Inner library: parameters are delivered using array.

    • Include default image & font files in .gitignore and remove all copyright image.
    • Update main site dynamic picture design
  • Theme system?

    • /view/theme/default
    • Theme detail using manifest.json??
    • Modify all controller to fit theme system
  • Multi-language

    • urgh…
  • Social lyric media site?

    • (I hardly have any idea of it)

Just realised this is really a big project for me to do.

Before “Codename LyricG”, this would be the main project that I’m focusing on.
Maybe “LyricG” will come soon, or will it never come? Who knows?

LRC translation combiner

LRC translation combiner

LRC 用歌词翻译合并工具

为制作LRC翻译歌词的各位提供的工具。
将原文和译文分别填入左右栏,分行对齐之后点击生成即可。
生成之后的内容能够直接复制到歌词制作工具(如千千静听)里面打时间轴。

单一网页制作。(仅引用了Google web font)将网页保存到任何地方即可离线使用,支持大多数现代浏览器。目前支持中文和英文。

MIT协议发布,转载及修改请署名。

地址:http://1a23.com/lyrictool

利用虚拟机软路由负载均衡拓展带宽

前提:

  • 假定所使用的计算机能够使用虚拟机(256MB RAM 512 MB HDD 应该没有什么带不动的吧),通过固定且稳定的方式连接到局域网。
  • 虚拟机的虚拟网卡能够正常工作。
  • 假定局域网设定每IP地址限速。

原理:

将虚拟机的网卡桥接到局域网,宿主机与虚拟机通讯获取数据。虚拟机上的软路由通过负载均衡将数据包均衡分配给多个桥接网卡。由于每个桥接网卡都有其自己的局域网IP,所以每个桥接网卡能够获得到同等的带宽。宿主机把自身的流量收发交给虚拟机来分配,其理论网速将得到提升。(实际下载速度提升仅限于P2P和多线程下载,一般的单线程P2S测速网站不能够体现效果,如Speedtest.net。)

脑内开坑: 歌语计划屏保。

Keng: Gy Screensaver.

1, fetch information from Gy server

File format:
possibly XML, or JSON?
Consist of all of posts

Separated API port for update date.
Program checks the update date compare to the local one. If the later one is newer, then update the local list.
Use local list for poor our unavailable internet connection.

2, the main body.

pick lyric from random if picked(a)=false.
label picked(a)=true,
lyric shown count +=1
if lyric shown = size(lyric array) then {lyric shown =0, fill picked(all)=0}
Draw lyric text in a time interval (#setting)

Randomize text size, color, position
Range of text size (#setting)
Range of color: complete hue,
Saturation and brightness are decided such that the text it’s visible on dark/black/starry background.
Text align to center,
[Detect pixel length/height of longest line,
Make a 10-20 px margin,
Draw text, and start timer.
last time of line(a) = length(line(a)) * time factor (speed, #setting)
enter animation: typewriter,
exit animation: fade out, .5s
transition: exit,exit end,enter
after object finish, destroy object

3, otherwise, on web?

directly fetch items number and single item from server by ajax. other applies.

HΨ=世界創造=EΨ PV一部暗号解釈

ニコ大百科の>>1、>>3に感謝。
動画:http://www.nicovideo.jp/watch/sm20855427

Φ=せかい
黒猫一つ=僕
黒猫2つ=僕たち
白猫=他
∵=だから

あᕒ○

いᕒϘ

うᕒⅢ

えᕒ●

おᕒV

かᕒ∮

き○ᕒ

く○○

け○Ϙ

こ○Ⅲ

さ○●

し○Λ

す○∮

せϘᕒ

そϘ○

たዕϘ

ちϘⅢ

つϘ●

てϘΛ

とϘ∮

なⅢᕒ

にⅢ○

ぬⅢϘ

ねⅢⅢ

のⅢ●

はⅢΛ

ひⅢ∮

ふ●ᕒ

へ●○

ほ●Ϙ

ま●Ⅲ

み●●

む●Λ

め●∮

もVᕒ

やV○

ゆVⅢ

よVΛ

らV∮

り∮ᕒ

る∮○

れ∮Ϙ

ろ∮Ⅲ

わ∮●

を∮V

んᘖ:

ーᕬ

゛ᕒ

0ᕒ

1○

3Ⅲ

4●

5V

6∮

7○~

8∞

9∞-

10
○●
●●

10○●

 

在其他启动器中使用小米系统的拨号和短信

a. 什么是小米系统

小米系统是MIUI团队开发的一个独立APK应用。集成了小米桌面+锁屏+短信+联系人+拨号功能。现在正在处于封测阶段,每个激活码只能使用一次,且仅通过QQ群发放给内测用户。

b. 适用范围

希望使用其他启动器的小米系统内测人员。

c. 方法

我们使用的工具是 Activity Launcher (Play 市场链接)。这款应用可以在桌面添加Android各种应用的Activity的快捷方式。(什么是Activity?)小米系统里面联系人、短信、拨号的Activity都可以在里面找到。
(由于我刚刚把小米系统卸载掉了,所以在此就不上截图了)

  1. 进入 Activity Launcher,在上面的菜单选All Activities。
  2. 读取完毕后从下面的应用里表里展开小米系统
  3. 找到拨号、短信、联系人的Activity。(由于Activity较多,需要多试几个)
  4. 长按,并选择Create Shortcut。
  5. Voila。启动器上面就显示创建好的快捷方式了。
     

PC和Android实现一键登录WLAN Web Auth的方法

好长时间没有发文了。明天还要大早起,现在正好趁着刻盘的时间把这个发出来吧,但是也不能睡太晚了。(顺便吐个槽,windows 光盘映像刻录机 速度真的很慢啊)

这次主要是说明一下快速登录部分WLAN的网页登陆(Web Auth)的方法。由于位置关系,就用最近的宿舍网的登陆举例啦。

适用范围:(原理上)用单网页进行POST提交表单的网页登陆。

举例:Anderson Junior College Hostel, Singapore.
首先,介绍一下这个例子的工作方法吧。

当新用户通过80端口获取任何网页时,服务器会自动拦截,并跳转到服务器的认证页面。(10.10.24.1/auth)用户输入完用户名和密码之后服务器会进行认证。当认证通过后,服务器会自动跳转回之前的页面。每次登陆后服务器会有一个会话ID。当该会话ID对应的IP/MAC地址超时后,会再次自动跳转并要求用户登录。

我们所要做的就是简化输入用户名和密码的这一流程,实现一键登录甚至自动登录的状态。

经过Chrome的开发者工具的提示发现,这个验证过程还是很简单的。整个过程其实只是向 10.10.24.1/auth/plain.html 发送了一个POST请求,其中包含了必要的登录信息。这样,我们只需要对这个POST指令下手了。

说到这个,最著名的功率应该就是cURL了吧。命令行模式,简洁轻快,兼容性丰富,而且只要不到1MB的空间。下载地址在此: http://curl.haxx.se/download.html (有源代码和各个系统的编译版本,如果有哪位想要自己编译我也不拦着)

接下来就是用cURL执行POST请求了。我用的指令是这样的:

curl -d “meth=plain&action=login&time=60&uid=用户名&pswd=密码 -k https://10.10.24.1/auth/plain.html
这里解释一下:

  1. -d “……” 是表示用 POST 模式发送的请求内容。这个字段可以在Chrome的开发者工具中找到。
    附方法:
    在Chrome中按下F12然后进行登陆,在提交完用户名密码后到底栏的Network标签,打开第一个文件,点击Query String Parameters右面的view source。下面出现的一行代码就是POST请求的原文了。
  2. -k 由于例子中的请求是通过HTTPS传输的,而且认证系统使用的是自制证书。去所以用 -k 开关去除SSL检查。没有SSL的可以省略。
  3. 最后的网址是请求发送的地址。
    用命令行执行过后会返回网页内容。如果内容提示登录成功,就说明我们的登陆有效了。

接下来就是一键登录的部分了。根据各自的喜好,可以把这个命令行用各种方式运行。在这里介绍几种:

Windows [1]: 桌面快捷键。
在桌面上新建一个快捷方式,把上述指令输入到路径栏。在创建好的快捷方式的属性里设置快捷键。这样,在任何时候都可以通过快捷键登入网络了。

Windows [2]: 计划任务
进入系统控制面板的计划任务区,将此指令设置为计划任务,即可使电脑每隔一段时间自动登录一次。

Android: 桌面快捷方式
GScript Lite脚本管理器中新建脚本,并在内容中输入以上指令。然后在启动器里面新建快捷方式,选择GScript Lite 然后选择你的脚本。即可在桌面上一键登录网络。

[on Github!] 歌语计划 PHP化。

更新!歌语计划登陆Github!欢迎围观!
https://github.com/blueset/project-gy

以后更新日志就放在那上面了。
这里停止更新。

====================2013.5.19====================

从一个最初的想法开始,经过各种构思与创意,经过一年多的时间,歌语计划终于决定PHP化了。

歌语计划是一个以歌词为主网络日志程序,用户将歌词片段以及各种相关信息输入后即可生成对应条目,并展示在首页。通过歌语计划,用户可以使用歌词来表达自己的感受,然后分享给全世界。

本程序是由蓝色之风工作室与iBe共同制作。

使用框架:

  • CodeIgnite
  • Twitter Bootstrap
  • jQuery
    UI设计:蓝色之风
    程序:蓝色之风

预计通过MIT协议开源发布。

已完成:

  • 条目显示
  • 条目添加
  • 条目值有效判断
  • 注册与登录模块
  • 条目编辑模块
  • 用户权限管理
    待完成:

  • 主体UI设计(80)

  • 条目后台管理
  • 单独页面显示
  • 分类检索与关键词检索
  • Ajax 支持
  • 主题支持
    截图:

 

gyb1-1 gyb1-2

gyb1-1 gyb1-2