Categories
Projects

Automatic IIUM Schedule Formatter V3.1

Assalamualaikum semua! Apa khabar. So seperti yang tertulis di atas, saya dah upload versi baru AIIUMSF, versi 3.1. Ianya adalah perubahan kecil sahaja, sikit layout change sahaja.

V3.1

Ok, mungkin agak banyak perubahan jika dibandingkan dengan yang lepas, tapi kebanyakannya hanya perubahan layout untuk page pertama serta sedikit tweak di styler.

Yang lain, kebanyakannya sama sahaja. Instruction masih lagi sama seperti di post yang lepas , cuma saya nak bagitau yang saya perasan bila kita paste code tersebut di chrome, prefix ‘javascript:’ itu hilang. So, korang kena patah balik dan tulist ‘javascript:’ secara manual. Untuk firefox, penggunaan bookmark masih lagi berkesan. So, itu sahaja buat masa ni. Bye bye!

Bye the way:
   Saya tengah update lagi untuk v3.2, tapi update ni memerlukan internet, dan dalam proses debugging, internet iium-community jadi sesak dan battery laptop saya di library sudah nak habis, so mungkin sekarang ia tidak boleh dipakai. Terima kasih dan harap maaf.

Categories
Projects

Automatic IIUM Schedule Formatter V3

Assalamualaikum semua, ini arahan untuk versi yang lama. Sila pergi ke laman utama, yakni http://iiumschedule.appspot.com untuk arahan yang terbaru.

Assalamualaikum semua? Apa khabar? Ok, so mengikut apa yang ditulis di atas ini, dengan ini secara rasminya pada hari ini, Automatic IIUM Schedule Formatter sudah menjangkau versi ke 3! Walaupun korang tak pernah dengar pon tentang nye, tapi saya tetap panggilnya versi ke tiga sebab ada benda yang baru.

Ok, so tanpa melengahkan masa lagi, mari kita lihat screenshot baru Automatic IIUM Schedule Formatter:

Ok, so fist of all, You know I’m not a good designer. So memanglah tak lawa, but that’s not the point. The point is, AISF(Automatic IIUM Schedule Formatter) sekarang sudah:

  1. Mempunyai theme gallery.
  2. Boleh tukar CSS manually.
  3. Boleh tukar Template manually.
Dan tidak dilupa juga Styler yang masih lagi wujud.
Cara menggunakan AISF
Untuk browser berasaskan webkit (Chrome atau Safari):
  1. Copy SETIAP SATU HURUF code kat bawah nie:
    javascript:(function(){var e=document.createElement('script');e.src = 'http://iiumschedule.appspot.com/static/scheduleformatter.js';e.type='text/javascript';e.addEventListener('load',function(){startscheduler()} );document.getElementsByTagName('head')[0].appendChild(e);})();
  2. Bukak korang punye Course Registration Slip (CRS) kat myiium.
  3. Paste code tadi kat url bar dan PASTIKAN IA DIMULAKAN DENGAN ‘javascript:’
  4. Mungkin korang akan perasan ada “Popup blocked”. Bukak popup itu, dan jumpalah AISF.
Untuk Firefox:

  1. Right click link Automatic IIUM Schedule Formatter.
  2. Click “bookmark this link”.
  3. Bukak korang punye Couse Registration Slip(CRS) kat myiium.
  4. Click firefox punye bookmark menu dan click bookmark yang korang baru buat tadi.
  5. Sekali lagi, mungkin korang akan perasan ada “Popup blocked”. Bukak popup itu, dan jumpalah AISF.
Ok, so that’s it lah. Sepatutnya saya tulis lagi macam mana nak gunakannya, tapi caranya agak memerlukan mereka yang sedikit berpengatahuan dalam mengedit css dan EJS template. So, kalau tak reti apa-apa sangat, saya rekemen kamu tweak kat Styler atau tukar theme aje, yang mana sekarang nie ada satu theme aje iaitu “Basic” yang saya sendiri buat. Kemudan, klick link “Save” kat atas tu. Mungkin akan ada lagi “Popup blocked”, so bukaklah popup itu. Bolehlah anda save, simpan atau print.
Oh, kalau kamu dah berjaya buat satu design yang bagus, dan bila saya kat bagus, maksud saya lebih bagus dari “Basic” yang mana kemungkinan besar design kamu akan jadi lebih bagus dari “Basic”, maka janganlah malu-malu men-submit design korang. Cuma click link ‘submitting’ kat theme gallery, masukkan nama theme tersebut, nama anda, email serta selesaikan captcha, kamudian theme anda sudah ada dalam gallery. Refresh saje AISF dan anda patut nampak design anda di situ.
So thats it lah! Sebar-sebarkanlah berita ini, design-designkanlah jadual anda, sebarang comment boleh comment kat bawah nie, sebarang aduan, nak buang design yang silap, boleh email saya di asdacap@gmail.com . So bye bye dan assalamualaikum!
Categories
Projects

IIUM Schedule Formatter v2 Now With Styler!

Ok, so let’s make this short and simple….

Assalamualaikum semua! Apa khabar! Ok, so di kesempatan yang sangat pendek ini, saya ingin memperkenalkan update terkini terhadap project mini saya iaitu Automatic IIUM Schedule Formatter v2. Sebenarnya ia lebih kepada versi 1.1 atau 1.2 dan untuk v2 saya nak letak beberapa perubahan lain lagi, namun disebabkan kesuntukan masa dan komputer, saya tidak dapat melakukan banyak perubahan.

Bagi anda yang tak tahu lagi apa itu Automatic IIUM Schedule Formatter, bolehlah baca post saya ini yang menerangkan tentang ape-ke-heh-nye dengannya. Post yang ini hanya bertujuan untuk menerangkan cara penggunaan di Firefox, yang mana tidak berfungsi dengan v1 serta menerangkan tentang fungsi Styler yang membolehkan anda untuk men-decorate jadual anda.

Ok, so sebelum ini, teknik copy and paste code berfungsi di chrome dan ie, namun, untuk firefox versi 6 ke atas, ia tidak berfungsi dan tidak melakukan apa-apa. Masalah ini terjadi disebabkan oleh satu ‘bugfix’ di firefox, yang, senang cakap tidak membenarkan anda untuk meng-copy-paste javascript code di url. ‘bugfix’ ini mungkin sekali dilakukan disebabkan ada pihak yang tidak bertanggungjawab yang menganiaya pengguna dengan menipu mereka untuk meng-copy-paste javascript yang mengandungi virus. Disebabkan itu, saya telah merangka work-around lain yang sudah diuji berfungsi dengan firefox. Teknik ini juga secara teknikalnya patut berfungsi dengan chrome sekalipun.

So, apakah caranya? Pertama sekali, right click link di bawah ini, dan click ‘bookmark this link’

.Automatic IIUM Schedule Formatter 

Kemudian bukak Course Registration Slip seperti yang ditunjukkan dalam post yang pertama. Tapi, daripada meng-copy-paste code javascript yang saya berikan, anda cuma perlu tekan link ‘Automatic IIUM Schedule Formatter’ di menu bookmark firefox. Kemudian, allow popup, dan akhirnya, jadilah jadual yang sudah di format.

Ok, perkara kedua yang saya letak ialah Styler. So, kalau kamu cuba pakai schedule formatter ini tadi, kamu akan perasan yang sekarang anda boleh ubah penampilan jadual anda mengikut citarasa anda. Ok, hampir mengikut cita rasa anda. Ok, mungkin anda belum boleh edit CSS lagi, saya akan cuba mengusahakannya.. Kode Styler itu sebenarnya datang daripada Styler dari YourAgregator, so, banyak hard work yang sudah dilakukan. Apa yang saya buat cuma ‘plug and do-some-modification and play’. Cuma bezanya upload hari ini berbandiang semalam ialah, semalam anda tak boleh save jadual anda. Sekarang boleh. Jadi bolehlah save ke pendrive dulu, baru print kat CC.

Perasan tak yang nama tu ada shadow?

Ok, so that’s it lah. Memang tak banyak perubahan pun, tapi dah tak ada masa nak buat macam mana kan? So bolehlah anda try Styler yang baru ni. Nanti akan datang saya buat Style Gallery pulak ok? So… See you soon! Bye! Assalamualaikum!

Categories
Projects

Automatic IIUM Schedule Formatter!

Hai! Assalamualaikum semua!

Harini saya nak memperkenalkan projek mini terbaru saya yang saya panggil

 Automatic IIUM Schedule Formatter!
Program ini sangat simple dan tujuannya sangat simple dan hasilnya juga sangat simple. Gambarajah simple dibawah ini cukup simple untuk menerangkan apa tujuan program yang simple ini dengan cara yang simple.
Ada paham? 
Ok, so mungkin tak cantik. Dari hitam putih ke hitam putih, Tapi yang pentingnya, asas kepada program ini sudah ada dan ini baru versi 1. Macam mana pulak dengan versi 2? Macam mana kalau saya masukkan Styler dari YourAgregator? Macam mana kalau saya sumbat sekali theme gallery? Macam mana kalau saya pasarkan kat group Creative Multimedia Club dan diorang submit theme diorang? Ha! nampak potensinya? 
Unfortunately, lusa saya dah balik UIA, minggu depan exam math, so tak ada banyak masa nak buat apa-apa. Tambahan lagi, saya tak ada notebook. Kalau nak bawak desktop pun, mungkin minggu ketiga. So… lama sikit lah ye.
Ok, so macam mana kamu nak gunakan time table nie?

Pertama, bukak IIUM Portal, login, pergi ke MyAcedemic, kemudian Course Registration Slip. Bukak slip yang dikehendaki, sampai macam screenshot yang pertama kat bawah nie.

Kedua nie, agak complex dan menakutkan. Copy setiap huruf code dibawah:Paste kat URL bar. Seriously, betul saya cakap nie. 
javascript: {var e=document.createElement('script');e.src = 'http://iiumschedule.appspot.com/static/scheduleformatter.js';e.type='text/javascript';e.addEventListener("load",function(){startscheduler()} );document.getElementsByTagName('head')[0].appendChild(e);}

Paste code tadi kat url bar. Nanti ada popup window, dan tada! Jumpalah time table tu. Save, print dan buatlah apa yang korang nak buat. 
Tada!

Horay! Teknik ini sudah diuji terhadap akaun CFS IIUM, saya tak taulah pulak dengan pelajar IIUM kat gombak/kuantan sana. Tapi kalau IIUM pakai sistem yang sama, patutnya boleh aje berfungsi.

Sesiapa yang terer komputer akan perasan yang saya dengan teknik ini, anda akan melakukan javascript injection terhadap page IIUM. Kenapa perlu begitu? Asalnya saya ingat nak save aje, pastu parse, tapi tak boleh. Nampaknya IIUM Portal ada sistem security yang kuat sikit, so kena ada sikit hacking.

Bagi yang tak faham bahasa komputer, senang cakap, kalau ada sapa-sapa suruh korang buat macam nie, dan sumber code itu meragukan, macam “Facebook Unlike button”, atau “Win an Ipad 2!”, JANGAN BUAT APA YANG DISURUH. Basically, ia menyuruh anda untuk menjalankan javascript dari sumber yang tak dikenali dan kemungkinan javascript tersebut mengandungi virus, dan akhirnya muncullah virus di Facebook.

Bagi sesiapa yang terer komputer dan berminat untuk mengetahui bagaimana program ini berfungsi, silalah lakukan ‘reverse engineer’ terhadap code tersebut yang mana tidak di ‘minified’ pun. Dan by the way, disebabkan pelbagai cross-doman scripting restriction, saya telah mengambil jalan mudah dengan menyimpan jadual anda di server terlebih dahulu. So, ya saya boleh tahu jadual anda kalau saya tahu nama anda dan saya berminat untuk mengetahuinya. Tapi jangan risau, nanti saya buat server tu auto delete record yang berumur lebih dari 1 jam ok?

So.. itu ajelah. Walaupun tak secantik mana, tapi ada potensi. So, selamat malam, good night, goodbye dan Assalamualaikum!
Categories
Projects

One Incompatible Upload

Assalamualaikum semua! Apa khabar. And good night to your all!

Ok, so today I have uploaded a (almost) completely incompatible version of YourAgregator. Version 1 is still there but it will never work, due to change in the Datastore. This is my last week of holiday and this sunday I will go back to CFS IIUM, for my ICT course. And because I don’t have a notebook and even more important, time, the development of YourAgregator may slow down to a halt. And yet, even thought I only have about three days left, I’ve uploaded a new version of YourAgregator that is largely incompatible with the previous one that I’ve purged the datastore, meaning, you have to reregister.

Ok, so whats the big deal about this upload? Well… actually, not much. The large incompatibility is due to the change in the name of most table and their property. And because GAE does not have ALTER TABLE, I’ve decided to just to delete the whole database and start from scratch. Not that people (other than me) use it right?

But there are some notable change in this release. The first major change is the use of Jinja2 template instead of Django. There are not much different between them except for faster rendering and more expressive language. And also because of that, some page may not render perfectly. If you found any of that, please email me at admin@youragregator.com

Another change is, i’ve added rss page, and member page to the agregator and some modification on the feed page (now the Post page). To view the rss page, on the feedroll, on any post, there should be a link of the title of the rss. Click the “>” next to it.      Ok, so it’s not so obvious, but hei! I’m not a designer. And it get the job done… in a way. Ok, so you click it and the magical AJAX sistem will change your current page to the rss page. What shown in the rss page depend on the data given from the blog. It should show the description (if give), the author, the title(the domain if not given), the submitter, and 10 list of recently posted post. Click one of the post to go to the post page (not the post blog) and click on the submitter name to go to the member page.

If you go to the member page, you will find a very hideously incomplete-looking page. The reason it is incomplete-looking, is because it is incomplete. The reason it is hideous, is because of me. This page will show you a large smile picture, a description and a link to show post submitted by that man. The large smile picture is suppose to be a profile picture. You can edit it by going to youragregator.com instead of it’s agregator and click on your username on the top right of the screen (next to the ‘logout’ button).

Now, the post page (previously the feed page). There are various changes in the post page. Notably, the ability to clone the blog post! But that’s not really what it does. In the feedroll, the blog description has a 500 character limit and only allow inline text element such as anchor, strike or bold. Previously, the post page use the same data as the feedroll. Now, the post page use different data with limit of 3000 characters and allow more element. So, the post page look much like the real post but without some formatting. The link to the real post is given at the bottom of the page. Plus, the agregator now allow tags in the post. On the post that contain tags, list of tags is shown at the bottom of the post page.

The feedroll also has several change. Firstly, the search function has been re-enabled. And because YourAgregator is running on free quota, and indexing takes a lot of database operation, the site can only handle about 6 to 8 blog submission per day. So, lets hope I can find a credit card somewhere, then we could turn on billing. Also, now the feedroll has the ability to filter by submitter, feed and tags. That allow me to put the tags link on the post page, and ‘view post’ hyperlink on the rss page. And also because of that, the index for the post table has increased and thus, increase the write operation required to add a feed and thus again, reducing the amount of feed submission available per day.

Another incompatible change in YourAgregator is the niceness system. Previously, a new post’s niceness is defaulted to the submitter’s niceness, and the submitter cannot nice his/her own post. Now, the post’s initial niceness is not defaulted to the member’s niceness, but to it’s rss feed’s niceness if it has one. Otherwise, the default niceness is the submitter’s niceness. This means a rss feed itself now has a niceness and it is defaulted to the submitter’s niceness. You can rate the rss feed at the rss page. The submitter can also rate his own post and rss submission. I’ve made the decision to allow it to allow the member to specify which post has more priority over another post. Previously a submitter cannot say which of his post has higher priority that another post.
Last but not least on the modest list of changes is the support for the PubSub protocol. The PubSub protocol, created by Google for Blogger has the ability to push new blog post to subscriber. In this case, the subscriber is YourAgregator and the new blog post is new blogger blog. In another word, when an rss is updated, the update is sent to YourAgregator immediately. Previously, YourAgregator need to periodically check for changes in the rss to know about new post, if any. Now, on certain RSS or Atom feed, notably blogs on Blogger, any new post will be sent to YourAgregator almost immediately after the blog owner publish it. This reduce YourAgregator’s need to check the blog and reduce the time need for the post to be indexed in YourAgregator.

And…. that pretty much concludes this update. And this will probably be the last update before my semester. Hopefully I may have some time to do some bugfix, but most probably nothing will change for the next 4 month. And hopefully, I can manage a visa card, and register for Amazon AWS, and all those index problem  will be increased but the capacity will surely increase. So that’s it, happy new year, goodbye and Assalamualaikum.

Categories
Projects

YourAgregator 2nd TODO list.

YourAgregator 2nd TODO list.

  • Build a layout system
  • Add a blog (main blog not agregator blog)
  • Heavy design work on the main page.
  • Terms and Policy
  • Add a system where moderator can ask question to new member.
  • Feedback to moderator.
  • Documentation.
  • Ability to rearrange page order in menu.
  • Manage interface redesign.
  • Moderator can host media file.
  • Category
  • Add error status when cannot get rss.
  • Redesign top menu
  • Different color for post with different rating.
  • Ability to make agregator, public/private.
Uploaded change

  • Add max/min value to the Styler.
  • Add an about page.
  • Theme gallery
  • Refactor the media file.
  • Make use of Jinja2
  • New niceness system
  • Make use of hubsub protokol
  • Make a feed page.
  • Agregator page’s url modification. Help in googlebot scraping.]

Far Fetched Idea
  • Forum
  • Agregator’s blog
  • Plugin
  • Admin’s email
  • Analytic
  • Add custom domain support.
Categories
Projects

The Plan for YourAgregator

Hai! Assalamualaikum semua! Ok, so today, I’m going to try to write in english. That’s because currently, YourAgregator has been indexed in Google, and at the same time, this blog seems the most referenced blog about YourAgregator. Because YourAgregator does not have an About page (yet), and anything about YourAgregator will be referenced to this blog, I’ll be talking in english from now on, on anything that involve YourAgregator, because YourAgregator is (currently) written in english.

It must be because of the domain. I should’ve also buy domain for numerologyprobability.

Ok, so the purpose of this post is to help me to visualize the future of YourAgregator and also to help me stay on track on YourAgregator. So, you can say that this is the second TODO list for YourAgregator. Ok, so let’s get started, so first let’s see what we currently have in YourAgregator, and at the same time, review what is YourAgregator actually is.

Intro!
The logo….. I’m not good at designing so don’t say a word.
For the first timer in this blog and for those of you who does not understand Malay, YourAgregator is a platform for making something like meta blog, blog agregator, news page or you can describe it as a news based community site. The name YourAgregator came from the word agregator, simply because what the site does is that it agregate rss from various user submitted source and show it in a web page.
Agregator test is an agregator that is used for testing YourAgregator.
So, basically, a user can create an agregator hosted in YourAgregator much like a person can create a blog hosted at Blogger. An Agregator also has members much like a blog has followers. Even so, an Agregator is not meant to be a personal site like a blog. It is meant to be used by a community of certain interest, in which the person who create the agregator act like a moderator.
The concept is, when a community, like, for example, the student of IIUM (Intenational Islamic University Malaysia) need a place where they could find recent news about IIUM or maybe about their member, they could create an Agregator called “iium-news”. Using this agregator, IIUM student can join in this agregator, and submit their blog to be indexed in YourAgregator. When the IIUM student update their blog, the blog update will be shown in “iium-news”. Beside blogs, member can also submit RSS link, let say, for example the RSS of IIUM official website. That way, when the IIUM post news on their website, member of “iium-news” will get notified.
The moderator (and some other member if granted permission by the moderator), carry the role of making sure the rss submitted and member request is relevent to the Agregator’s interest. By default, the moderator need to approve a person before the person become an official member and able to submit rss. And by default, an RSS submission need to be approved by the moderator before it is indexed by YourAgregator. This make sure that no totally irrelevent post get indexed by YourAgregator.
Besides that, YourAgregator has a special ranking system which I call ‘niceness’. The goal is that, member who contribute more to the agregator has more ‘niceness’ and therefore has more power to rank post. Basically in this ranking system, when a member click ‘nice’ on a post, the post ranking increase according to the member’s ‘niceness’ and at the same time the member’s ‘niceness’ increase. This means that member who often rank post will have higher ‘niceness’ and therefore has more credibility to rank a post. For convenience, a post initial niceness is equal to the niceness of the member who submitted it. And of course, you cannot ‘nice’ your own post.
The nice button
 The rate of increase of a member’s niceness will become lower, the more the person rate. Infinitely, a member’s niceness will never exceed 100. This prevent a member from becoming over-powered. 
That’s It
That pretty much explain the concept of YourAgregator. Up to now, YourAgregator also has some other service such as a chatbox. In terms of configurability, YourAgregator’s moderator can edit the css of their Agregator. But some of the css will be overridden to prevent abusive use. The moderator can also edit the header, the sidebar, the footer and create custom ‘page’, if they need it.
For now, what’s lacking in YourAgregator is mostly good design. In fact, YourAgregator has no theming system, allthough it does have a Styler that help a little in modifying the css. The theeming system can easily be done, albeit most probably buggy. Talk about bugs, YourAgregator probably has lots of bug. But due to the lack of tester, we may never know most of them. Anyway, YourAgregator do have a feedback button. Another thing that is missing in YourAgregator is a forum. It’s a community site without a forum, lol!. But by putting too much feature in it, I’m afraid YourAgregator may be exceed what it suppose to be, an Agregator.
Anyone into designing?
Inspite all that, the biggest problem is that YourAgregator is hosted on Google App Engine, with all it’s mighty restriction. To make it worst, paypal cannot convert MYR to USD, and to make a foreign currency in the local bank, the minimum deposit is RM1000. I’m a poor kid! Local hosting provider in another hand, do provide RM 35 to RM100 a year for a shared hosting. But that’s with a maximum processor speed of 50Mhz to 100Mhz. That’s 26X slower than my computer! I can’t imagine it ran django with mongo db. That will need at least 256MB ram to run. So, the plan was to use Amazon Ec2 free trial. Unfortunately, I do not have a credit card to verify, so currently I’m stuck with Google App Engine. 
The red bar is the result of 7 blog submission. 
GAE or not, YourAgregator is still online, and I intend to keep it that way. And the plan is to make it mature enough, make some money with it and pay hosting with that money! And to do that, we need to make sure It is user friendly, from the frontpage!
Obviously, this will need a lot of work. A little notice ‘Hi! It’s seems that you are not logged in. (More message will be written)’ shows a lot. This frontpage should show “Welcome to YourAgregator!, a site for news based community. Login or Signup to create or join agregators!” or semething like that with ton’s of graphics. Ok, so the user logged-in….
The login page is probably the most beautiful page in YourAgregator. Probably because of the login providers logo. Other than that, there is the confusing, request password reset and register a new account.
Categories
Projects

Another Update.

Hai! Assalamualaikum semua! Dalam post ini saya akan membentangkan tentang update youragregator yang terbaru. Sebenarnya dari pagi tadi lagi dah siap segala upload, tapi pasal ada program harini, jadi pengumuman ini dihasilkan pada hari ini.

So, apa yang terbaru dalam YourAgregator? Yang pertama sekali ialah perubahan domain, yakni:

http://youragregator.appspot.com
sudah menjadi
http://www.youragregator.com
so, AgregatorTest boleh di akses dengan domain
http://agregatortest.youragregator.com

Itu sahaja. Disebabkan perubahan ini, sesetengah authentication (Facebook) sudah misconfigured, menyebabkan korang takleh login menggunakan service provider tersebut. Tapi takpe, masalah ini masalah kecil, dan mungkin sudah diselesaikan pun.

Yang kedua, kemunculan chat support dalam YourAgregator:

Yes, chat support sudah wujud. Ia tidak menggunakan shoutbox atau segalanya, just plain python, datastore and google channel api. Dan disebabkan itu, dan juga kerana youragregator di-hostkan atas free quota, hanya ada 100 orang boleh daftar chat sehari. Kalau kamu refresh, kamu dikira mendaftar semula. So, kalau kamu refresh 100 kali, orang lain takleh chat.

Selaindaripada itu, ada banyak caching yang dilakukan dibelakang tabir. Dan juga, search sudah dimatikan. Kenapa? Kerana:

Yang merah to.

Apabila search di-onkan, youragregator hanya boleh terima dalam 7 blog submission, pastu quota habis. Jadi disebabkan itu, search dimatikan.

So of course saya rasa ada benda yang pelik, memandangkan sampai 50,000 database ops hilang begitu aje. Ok, mungkin pasal ada 2 additional write untuk setiap additional indexed property, tapi kalau satu blog pakai 50 write sekalipun, patut boleh submit 1000 blog. Apapun, setelah search dimatikan, sekarang dia boleh terima 75 blog submission. Kira ok-lah kan? So, buat masa nie, just terima seadanya ok?

So… that’s it-lah. Tak ada apa-apa yang lain pun, Twitter authentication dah boleh pakai, dan caching patut melajukan keadaan (agaknya). So, bye-bye lah. Assalamualaikum.

Categories
Projects

An (almost) Emergency Bugfix

Ok, so harini saya akan mengupdate tentang upload terbaru YourAgregator. Pada upload yang kali ini, kebanyakannya adalah bugfix dan feature yang dianggap baru pun, yang baru dibuat sejam lepas adalah Feedback form.

So, apakah yang menyebabkan saya mengupload YourAgregator yang ini? Cerita nye begini…..

Pada suatu hari…di pagi yang indah… seorang geek sedang membuka chrome, untuk melihat status google app engine. Kemudian, dia melihat di section log, untuk mengenal pasti sebarang server error yang wujud. Alangkah terkejutnya budak tersebut apabila terdapat masalah apabila seseorang telah cuba untuk melogin menggunakan account twitter tetapi gagal! Setelah mencuba mendebug-debug masalah tersebut, budak tadi masih lagi tidak berjaya menyelesaikan masalah tersebut ;-( sob…sob…sob…

 Sedih kan cerita tadi? Dan disebalik itu, ada masalah-masalah lain yang antaranya yang paling kritikal ialah masalah dalam javascript untuk kita punya AJAX pages yang menyebabkan pengguna takleh join….dan login…..Saya tau, itu masalah yang sangat besar. Begitu juga dengan masalah lain seperti form untuk create agregator tak berfungsi…Masalah besar lagi. So, disebabkan serangga-serangga itu, saya mengupload YourAgregator dengan fix-fix berkenaan. So sekarang kalau korang login (dah boleh dah), korang akan jumpa login page yang lebih cantik seperti ini:

Yang pasal masalah twitter tu, saya masih lagi sedang mencuba, mungkin dah boleh dah (CeTry sekarang). Kemungkinan besar, masalah tu timbul sebab domain kepada login page tu tak diubah, yakni :

Takleh gini bang.

So twitter tak kasi sebab token yang diregister kat twitter berdaftar kat domain youragregator.appspot.com, bukan subdomain-nye. Tapi sampai sekarang takleh jugak. Kenape? Ntah. Masih lagi menjadi misteri. So buat masa ni, korang kena login pakai Facebook atau Google atau Yahoo lah. Nak buat macam mana….

Dan juga, disebabkan segala masalah ni, saya telah buat satu page khas untuk report masalah, kalau korang tengok kat agregatortest, bahagian atas kiri, ada link untuk ‘Feedback’. Kat situ bolehlah korang berleter panjang-panjang.
Banyak ruang tu! Boleh komen banyak-banyak!
Korang tak perlu login pun untuk buat feedback. Disebabkan itu saya perlulah letak recaptcha kat situ. Hanya nama dan report yang wajib diletakkan. email tu optional, so bolehlah korang luahkan perasaan kat situ. 
Satu lagi, korang perasan tak kat atas kanan gambar nie, kat perkataan AsdacapCap dah jadi link. Link nie, kalau korang tekan, korang akan jumpa satu page yang…macam tak siap. Itu pasal, ia memang tak siap pon. Asalnya saya nak siapkan perkara tersebut dulu, tapi memandangkan serangga-serangga kali ini agak kritikal, So saya upload versi yang tak siap dengan bugfix dulu.
Oklah, itu adalah update kali ini, bugfix. Lain kali, mungkin kita akan ada chat support atau messaging system, atau domain yang baru, tapi yang pasti. lama lagi nak siap. I’m just a person who is lazy and often play battlefield. So, cau dulu ya! Bye Bye! Assalamualaikum! 
Categories
Projects

Tambahan 1600++ baris code.

Assalamualaikum semua! Alhamdulillah, setelah bertungkus lumus selama 3-4 hari, saya telah (separuh) berjaya mengupload versi baru YourAgregator. Ya benar! post ini berkaitan dengan YourAgregator, kalau anda tak mau tau langsung tentang YourAgregator, bolehlah balik semula ke Facebook, atau jika anda tak tau apa itu YourAgregator, bolehlah melawat AgregatorTest iaitu agregator percubaan rasmi untuk projek ini.

Baiklah, mari kita mulakan dengan status update. Seperti yang ditulis dalam tajuk pada kali ini, update ini telah menambah lebih kurang 1600 baris kod (termasuk baris kosong), kedalam kod keseluruhan YourAgregator. Ya walaupun 1600 itu tidak sebanyak mana tetapi kepala saya agak stress mendesign kod tersebut, so kita highlightkan nombornye sikit. Walaubagaimanapun, 1600 kod tersebut merangkumi hanya dua file, yang bermakna, 1600 itu untuk satu update sahaja. Ya benar, untuk versi yang kali ini hanya ada satu ‘feature’ yang ditambah, yang lain hanyalah tweak dan bugfix. Apakah yang feature yang dilihat besar ini? Sabar… let’s save the best for the last. Dan mari kita mulakan dengan update yang kecil dahulu dengan satu snapshot frontpage YourAgregator.

Jadi, apa yang berubah? Kalau anda tak tahu apa yang berubah, tandanya anda baru pertama kali melawat frontpage YourAgregator, kerana frontpage ini dilengkapi dengan design yang baru. Walaupun tidak selawa mana, ataupun mungkin lebih tepat, tak lawa langsung, tetapi sekurang-kurangnya ada perubahan jugak. Penggunaan gradient itu mungkin keterlaluan, tetapi sekurang-kurangnya frontpage ini tidaklah terlalu plain.

Seterusnya, kita lihat pula pada salah satu page dalam manager interface iaitu page untuk edit ‘page’. Kalau anda tak tau apa itu ‘page’ tandanya anda ketinggalan post tentang update yang lepas, kerana dalam update yang lepas, benda baru yang saya letak di update yang lepas adalah ‘pages’ iaitu muka surat yang admin boleh buat untuk ditonjolkan di frontpage menu. Dan dalam update ini, kita dapat lihat, form untuk edit ‘pages’ sudah dilengkapi dengan rich text editor dan rich text editor tersebut di ‘theme’ dengan theme yang lebih seragam. Saya tau, perkara ini terlalu kecil sehinggakan tidak perlu untuk diletakkan di blog post, tetapi secara terus terang saya katakan, dalam update ini saya hanya ingat tiga perkara sahaja iaitu, design frontpage, form yang ini dan 1600++ baris code tesebut. Rasanya hanya tiga perkara itu yang saya buat untuk update ini.

Ok, tanpa kita membuang masa, mari kita melihat apa yang dimaksudkan dengan 1600++ code tesebut. Kita mulakan dengan screenshot AgregatorTest .

Ok, kalau anda tak pernah melawat AgregatorTest, mari saya terangkan apa yang berbeza, designnya. Designnya telah berubah. Itu gunanya 1600 kod tersebut? BUKAN! Fikir realistik sikit! 1600 baris tu! penat saya buat, dan akhirnya keluar begini aje? 1600 kod yang terlibat tersebut adalah sejenis css editor untuk agregator. Yakni, yang ni:

Ya bahagian yang kat atas tu. Saya bagi editor ini nama “Styler”. Ia berfungsi seperti blogger punye theme editor tetapi ia boleh digunakan terhadap mana-mana css selector. Of course, kamu takleh tekan apa yang kamu nak edit pastu boleh terus tukar background, css yang asal perlu diedit terlebih dahulu untuk meng-set selector mana yang boleh dan patut diedit dengan editor ini. Kalau anda tak faham, bukak agregator anda, tekan manage, pastu style, pastu  tekan edit css (bukan edit style using Styler), pastu tekan butang reset. Css anda akan di-reset dengan css yang default yang dilengkapi dengan comment khas diatas yang digunakan untuk menentukan element mana yang boleh diedit menggunakan Styler. Setelah di-reset, baru tekan ‘edit style using Styler”.

Kenapa saya tak bagi tekan terus element yang nak diedit? Sebab, css ini agak sensitive. Buat aje, display:inline, nantu jadi macam-macam, so bahagian menentukan element mana yang boleh diubah saya serahkan kepada designer yang berkemahiran, yakni yang faham css, dan css mereka, mereka boleh jadikan sesetengah element boleh diedit dengan Styler, so pengguna-pengguna novice bolehlah edit pakai Styler tanpa merosakkan layout.

Dengan menggunakan styler anda boleh mengedit lebih kurang 30 css property. Tapi, of course sebenarnya tak banyak mana, sebab sesetengah property ada dia punye ‘shorthand’ contohnya margin jadi margin-left, top, bottom, dan right so, ia dikira empat css property bukan satu. Antara css property yang saya suka adalah border-radius, box-shadow, text-shadow dan font-family. Of course, sesetengah browser yang lama (IE 8 kebawah), tak support css property tertentu, so pandai-pandailah korang.

 So, itulah feature baru untuk YourAgregator. Masih ada lagi banyak ‘rough edge’ dalam Styler. Tapi memandangkan sesuatu agregator itu bukannya selalu di-design, untuk update yang akan datang, saya akan lebih menekan tentang interaksi antara member, dengan buat satu page, untuk member edit description, letak gambar, message orang lain, dan mungkin ‘chat’. Anyway, jawatan designer sukarelawan masih lagi terbuka dengan luas, so, sesiapa nak tolong den, bolehlah comment atau email di asdacap@gmail.com. So, apapun, cau dulu ya! Assalamualaikum! bye bye!