Look, someone's on that tree
(Recent Entries)
(Archive)
(Friends)
(User Info)
Navigate: (Previous 50 Entries)
(Exterface)
(Блогът на Кристофър-Робин)
(Спете голи(информативен сайт))
(Хауърд Рофман)
(Моите споделени новини)
(Науката в глупави стъпки (еволюцията))
Apr. 29th, 2011
I am sick and tired of you LiveJournal. You want me to pay for subscription in the same time as you are filling my inbox here and in my email with spam. You keep loosing the order of my posts, you keep 'archiving' them making the backup sync impossible for me and you keep sending me stupid update emails about how often you change your header. I hate you. And I am leaving you.
Goodbye!
PS. My original blog with blogger is still active and very well, I am already using it actively and intend to keep doing it while you die in loneliness. It is true, they marked it as NSFW but who cares, people either read it or not.
Apr. 10th, 2011
Very nice poem by Tim Minchin. I advise anyone who understands English to hear it. I bet most of you know at least one 'Storm'.
Apr. 5th, 2011

Oh, and by the way LiveJournal is so spammy these days, it is ridiculous! I am not the gatekeeper of my f**king blog! If I wanned to do spam filtering myself I would have set up my own blogging platform. So screw you livejournal! And screw all Russian spammers! I am getting out of here!
Mar. 20th, 2011
Very nice story this week on Escapepod!
Well narrated this one also!
Много яки кози обувчици, малко като на дявол крачетата, но повече като на козичка:
Via: BoingBoingMar. 13th, 2011
Let's say you have a very nice form on your page and you dislike people who write user script. Scripts that mess up with your form for example.
Typical form submission with user script would be:
document.forms['targetform'].submit();
Very well, lets prevent this! Each form has a submit button, lets add one that has type submit, but in addition has the name 'submit' too (you should know to ignore its value on your server side logic):
<button type='submit' value='whatever' name='submit'>My button</button>
Now we have harder to spot intuitive way to submit the form with javascript, $('myform').submit() will give TypeError as the 'submit' property of the HTMLFormElement is no longer a function, instead it is an HTMLButtonElement.
This little trick of course is easy to catch and overcome, however it is very easy to implement and will stop the less educated scriptwriters from messing up with your manual form submission requirement.
Yes, I know, nodejs on port 80 is not a good idea, however if the project completely disregards the proven http servers and completely relies on node for all http traffic we need to make compromises. Or not.
Here is how I run node as main http server:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8000
And of course we close all other ports, as usual for web servers facing the world.
Disclaimer: I found this on Internet, the original 'thanks' go to:
@rckenned, @jrconlin, and @spullara ... see also http://iptables.rlworkman.net/chunkyhtml for a pretty definitive-looking iptables tutorial from @frozentuxCurrent Music: Mylene Farmer - California
Mar. 5th, 2011
Вместо да четете Дийпак Чопра и неговите измишльотини за неподвластното на времето тяло, горещо ви препоръчвам да слушате китове ето тук
Особено яко е keening/loaning.
Да предупредя, по-добре пеят от Карл Сегън (той нали се опитваше да ги имитира в един епизод на Космос, не особено успешно според мен).
Може и да не знаете кой е Дийпак Чопра, но е факт, че е продал доста книги, повечето от така наречените 'спиритуални'.
Аз самият за известен период от време бях очарован от този измислен свят на набивалици, чудеса, изцеления, срещи с предишни животи и така нататък. Лесно е да започнеш да си вярваш и да вярваш на тези, които с ткаъв авторитетен тон твърдят измислиците си. Но не това е темата сега, а видеото отдолу. Насладете се:)
Линк към видеото в YouTube
Mar. 3rd, 2011
YouTube has changed the way they provide the video URL, so Free YouTube script is not working any more.
However the change is trivial, here are the updated bits:
- var fmt_url_map = unescape(document.body.innerHTML.match(/fmt_url_map=([^&]+)/)[1]).split(/,/);
+ var fmt_url_map = document.body.innerHTML.match(/fmt_url_map": "([^"]+)/)[1].split(/,/);
- videourl = val[1]
+ videourl = unescape(val[1]).replace(/\\/g,'');
It is working again. I am so used to watching the videos in separate tab with mplayer, i cannot even recognize the page with embedded video any more.
Feb. 21st, 2011
Node is actually perfect for testing JavaScript snippets in console environment when my computer is overloaded with 100 other things and I should not start another browser to just test 5 lines of code.
Feb. 17th, 2011
Introduction:
Javascript provides means to postpone execution of a function with 'setTimeout' and 'setInterval'. How is this handled exactly and what does it mean for embedded devices/ set top box type of devices using gecko/webkit is used for its interface.
Example:
A basic function of each STB is to display a clock somewhere in the user interface. Bellow is a very simple class that does exactly that.
var Clock = function(el) {
var clock = {}, timer, refresh = 60*1000;
clock.dom = el || document.getElementById( 'clock' );
clock.format = clock.dom.getAttribute( 'timeFormat' ) || STATIC_DATA.clockTimeFormat;
var setTime = function( ) {
Tools.setHtml( clock.dom, Date.getFormatedTime( clock.format ) );
};
var start = function( ) {
setTime();
clearInterval( timer );
timer = setInterval( setTime, refresh);
};
var stop = function( ) {
timer = clearInterval( timer );
};
clock.start = start;
clock.stop = stop;
return clock;
};
This is all good and it works, basically updates the inner html of the dom element designated to display the time every 60 seconds (i.e. once a minute and we should probably show only date, hour and minute, no seconds. However what will happen if the system time is changed.
By definition setInterval does the following:
Calls a function repeatedly, with a fixed time delay between each call to that function.
(from MDN)So regardless of all external factors one would expect that the once the function is called it will be called again in 60 seconds. As the timers in JS are not precise one would actually expect the function to be called in about 60 seconds.
Real world:The example above works well until someone decides to change the system time. So let's say we start our clock in 15:00. Then we expect the timers to work every ~60 seconds and the displayed time to change. at 15:01 the function will work and so on.
What happens however if someone sets the system time to 14:00 and our application is still running? One would expect the function to work again in 60 seconds, so we expect once the time of 60 seconds elapses the function to work, the time will be taken again and the clock in our user interface will show 14:00. This however is not how it happens.
It seems periodical and delayed functions are bound to an exact time variable rather than period. So when at 15:02 you say 'delay my function
with 60 seconds' you are actually saying 'delay my function
to 15:03'. And now if we go and change system time to 14:00 the function will be executed again, only in 1 hour and 2 minutes
and 60 seconds. What will happen if the time is changed to 16:00? You can guess it okay - it will never be executed.
What should we do with it:I don't know all the answers, probably one should change how timers in JavaScript are recorded, but for now one should reset all timers once the time on system is changed. So in the above example we need two things - a simple way to reset the timer and a mechanism to notify the execution environment for the time change. The last however cannot be done without external function. One should be able make calls to JS objects from outside and actually call the 'restart' method of the clock.
clock.restart = function( ) { stop(); start(); };
Conclusion: In dynamic systems where we expect long runtime for our application we cannot rely on periodical execution too much.
Feb. 11th, 2011
Today on New Scientist was an entry about a research from the University of Minnesota in Minneapolis computer specialists that states:
The attack requires a large botnet – a network of computers infected with software that allows them to be externally controlled: Schuchard reckons 250,000 such machines would be enough to take down the internet.
Okay, question: what the fuck? So you mean there actually are 250,000 computers being out there and running bots unsuspecting? This seem to me like science fiction. How come those computers are not attended? How come an operating system/software that allows such thing to happen is still used? Talking about
Windows? I don't know, but this really really stupid to me!
I run Linux from 1998 on all my machines. Servers, laptops, home computer, home media centre, my parents computers. Never have allowed any access to anyone. I know it is possible for someone to compromise a server or even several servers but 250,000 computers... this is mind lowing for me. And they (windows folks) still talk about security? And ease of use? Do they mean
insecurity and ease of
misuse? I don't know. I was 'this' close to by myself a windows 7 laptop (to be able to experiment with the hardware acceleration in CSS3 animations and transitions as well as webGL). Well. I would not be doing it. Sorry windows. I will stick with Linux for now, even thou openGL ES support is crappy and works only on Nvidia cards. It is still better than having a zombie machine.
Feb. 5th, 2011
На адрес 1023.org.uk можете да научите какво ще се състои този уикенд.
А долу можете да видите Джеймс Ранди, който отправя предизвикателството си отново към хомеопатите:
Връзка към видеото в YouTube
Защо поствам това? Защото, като доста поболедувал човек смятам, че е важно да се пазим активно от измамници, ако ще измамата да е за милиарди, пак си остава измама. Дори когато я рекламират по телевизията постоянно. Дори когато някой ваш познат се кълне, че му е помогнало такъв вид лечение. Това все още си остава измама. Дори когато 'експерти' обясняват по 'научен' канал на кабелната как всъщност работи този вид лечение и какви дълбоки научни тайни се крият в него - пак си е просто схема за измама, почиваща на недоказани теории, на догадки и често на обикновени, макар и добре скроени лъжи!
За това, прочетете и научете повече. Важно е да знаете кога някой се опитва да ви измами. По новините често говорят за измамници, които взимат парите на хората по все нови и нови схеми. Но защо ли не говорят за този вид измама, с която взимат парите на хората от десетилетия.
Jan. 30th, 2011
We shouldn't blame browsers while we are professional front-end developers.
Асене: Може би не, но определено не е необходимо и да им се радваме или да спестяваме коментарите от рода на "IE e боклук'. Защото е истина. Особено когато клиента иска свърхмодерното му, 3d SVG CSS3 transition driven приложение да работи и в ИЕ6. Извинете. Цитат и от професионални програмисти (такива, които не пишат на джаваскрипт, а на С и се занимават с енджините за които пишем ние ):
"Говорех за браузъри. Инернет експлорър не е браузър, това е машина за визуализация на статични страници"
Jan. 29th, 2011
He became a YouTube sensation a few months ago, he is really cute and funny and now he is on TV! The last night episode of "$#!* my dad says" featured him as Abercrombie sales person. He is really nice looking and great facial expression for comedy too. Bellow is a capture:
I wish him good luck with his career.
За пример ще вземем 'най-популярния български сайт за запознанства' - gepime.com
Че е популярен - популярен е. Но не защото е добре направен, а защото е пълен с порнография 'на една ръка разстояние'. Това е друга тема и в случая не е от значение.
Това, което ще коментирам е, защо един сайт изглежда така сякаш е събран 'от вол и кон'.
Забележките:
- съобщението, че имаш ново писмо се появява ту отдолу, ту отгоре (тоест или в така наречената лента на състоянието, която като цяло е голяма идиотщина или горе, в иконите, които са доста големи). Понякога се появява и на двете места, понякога никъде не се появява, докато не обновиш страницата. Това, че се появява ту тук ту там, при това ако се появи на двете места не става по едно и също време според мен е голяма тъпотия, ако искаш за едно и също събитие да имаш реакция на две места не ходиш да проверяваш събитието два пъти а връзваш към него множество 'слушатели'. Явно тази концепция още не е стигнала до списващите софтуера на Гепи.
- всички снимки са на флаш - по-голяма идиотщина от това не знам. Ако предположим че го правят зарази възможността за анотации - пак е тъпо, защото същата възможност я има от години и само с html/js. Ако искат да предпазват снимките от злоупотреба (което не го вярвам), какво ми пречи да си направя копие на снимките? Уеб видео - да, ясно е че някои браузъри няма да се справят и там е до някъде оправдано, ама снимки?
- чести и множество правописни грешки в елементи, които не са генерирани от потребителите а от авторите на сайта
- информационни съобщение не се извеждат по един и същи начин: понякога получаваме тъпия надпис, че искат да си платим като диалогов прозорец, но друг път страницата сама се превърта до мястото където е въпросния надпис. А най-мразим когато страницата върши сама неща, които се предполага, че потребителя трябва да може само той да прави. Самата липса на консистенция също ме дразни
- на началната страница няма почти нищо, което да можеш да ползваш, ако не си си платил. Едно е да има подкана да си купиш някаква екстра и да ти се зареждат безплатните неща, друго е да влезеш в сайт, който те посреща все едно няма какво да предложи ако не си си цакал. Аз за това и толкова го ползвам, пускам го само за да показвам калпав дизайн с още по-калпаво изпълнение.
- не само началната страница, но и все повече и повече места просто изчезват и се заменят с надпис : Само за VIP. Защо не пише 'само за платили си'? Някак си по-реално е. И когато почнеш да орязваш едно по едно нещата, които правят сайта полезен какво точно очакваш да се случи, освен че малкото нормални и разумни хора спират да го ползват....
Аз нямам нищо против payed premium service. Но за разлика от нашенския ултра подход - да спрем всичко (очаквам скоро да не ми даде и да се логна докато не си платя) нормалните сайтове за запознанства предлагат ЕКСТРИ когато плащаш и не спират нормалната функционалност, която преди е била безплатна. Е, това е ако можеш да измислиш какво да предложиш в повече. Ако не можеш (както е с Гепи) явно просто спираш вече безплатното и чакаш да кихат хората....
Jan. 26th, 2011
It was announced today - cloud9 now accepts user registration, which means one can apply and if approved can start developing applications on their servers.
Unfortunately, as mentioned earlier in this blog, my opinion is that the technology, while somewhat mature and really interesting, is not fast enough to compete with regular editor, like gEdit, which has its quirks also, but at least is not choking my laptops to death when loading several thousand lines of code. Not that I think this kind of code is manageable in one file, but still some libraries come that way and I need to be able to look in the code. If the editor cannot do it, then its no use at all.
What I really want to see added (apart from better performance, which I don't think will happen, maybe one day when I have a gazillion cores laptop and the browser can use them all...):
- code completion with suggestions (because I tend to do lot of typos, it is really annoying to go over fixing typos)
- bracketing selection (because I often forget about them, not only brackets but all kind of coupled things, it would be nice to be able to make a selection and ten just type the leading coupled sign (like '(' or '"') and the editor fix those for you
- automatic indentation - this is not working very well for now, it indents okay most of the time, but does not un-indent correctly. gEdit for that matters does not do it correctly too. Vim does it correctly.
- properties and methods listing: I do not know of an editor that can make sense of javascript's objects, but if anyone knows, please, please, please let me know. I want to be able to see all private functions, all public methods, all privileged methods, all public properties and if possible all private properties as per the function definition so the following example would be searchable:
var object_generator = function(options){
var that = {};
var private_variable = false;
var private_function = function(param){
if (!private_variable && typeof that.whatever === 'undefined') {
that.whatever = true;
}
//....
};
that.privileged_method = function(param){
private_function();
//....
};
that.property2 = 'string';
return that;
};
var myObject = object_generator();
myObject.privileged_method();
This should give me information that I have Object Generator named object_generator with 1 private variable, 1 private function, 1 privileged method and 1 object property for the returned object. It should also tell me that it has one object instantiated and list the public methods and properties of that object. Well this second part actually requires execution so it would not be easy to be made for an IDE, but I believe the first part is quite doable. However, for know I do not know of an editor/IDE that can do it.
On the other hand we have the fact that one can set breakpoints and change variable values during runtime while executing node programs. This is really handy. But still, the editor need to be faster, really!
I hope they will succeed, it might change lots, for example JavaScript developers might no longer be required to go to the office everyday (dream a little dream of me).
Jan. 22nd, 2011
I have continued to play around with LiveJournal's update page.
I feel I need more space for the entry, so I shrank the metainfo related stuff in expandable (but not expanded by default) div and increased the height of the post entry frame.
The code is available at pastebin.
I have also worked a bit on the editor capabilities, now the image editing with pins on top and shadows is available as button in the toolbar and the code for the other stuff I wrote before is cleaned up.
As with many other things in life, once you get deeper into it, it becomes easy and clear.
So as of now I accept proposals for other functions to be added to the editor.
The script is also available on Usersciprts.org if you want to try it out. I have tested it only in Firefox 3.6. It might or might not work on other user script enabled browsers, depending on their implementation.
And because I love posting pictures of gorgeous guys here is one:
Oh and by the way - he also signs very well.
Jan. 17th, 2011
I have encountered a small issue (GreaseMonkey being 'bad' and wrapping the HTMLElement, thus wrapped elements are never equal, even if they are in the DOM) and I had to use the unwrapped version (wrappedElement.wrappedJSObject).
This makes the script not that ideal, but it still works. The following two paragraphs are for testing of both warning messages and code snippets:
This is a test warning!
var a = 'Hello GreaseMonkey!';
alert(a);
Hopefully it will be useful. There are places for improvements, but I don't have the time to do it right now. The code was re-worked and shortened, also some edge cases were taken care of. It is not tested very well, still, it can be used as entry level script to develop more robust extensions. Once my hosting provider restores my account I will upload the complete userscript and link it here. A screen shot follows demoing the new buttons:

Jan. 15th, 2011
I have been developing advanced custom interfaces with JavaScript for some time now and while I still do not think that whole IDEs written in that language are ready for prime time, I do believe we should be able to extend the already present functionality for our fave web sites.
One easy way to do this is using 'user scripts'.
I use some custom classes in my blog in LiveJournal and there is no easy way to add divs with class names in the HTML editor. However it is fairly easy to add more buttons to the toolbar (I honestly do believe the empty space on the second row is left for users like me, who like to add more buttons!!!).
There are however some limitations when working with multiple iframes.
First of all nodes should either be created in the context of the iframe to which they will be added or created in outer context and imported. Other than that there is nothing special.
Sample code follows (assuming it is executed from 'top' context, however the function should actually be created in the context of the draft iframe to attach the event to the load event of the frame we are targeting, so have this in mind if you take the example code and intend to use it for your own custom buttons):
var button_action = function(){
var cDocument = document.getElementById('draft___Frame')
.contentDocument.getElementById('xEditingArea')
.childNodes[0].contentDocument;
var cWindow = document.getElementById('draft___Frame')
.contentDocument.getElementById('xEditingArea')
.childNodes[0].contentWindow;
var oSeclection = cWindow.getSelection();
if (oSeclection.anchorNode !== oSeclection.focusNode ){
var i, i1, i2, tmp;
if (oSeclection.anchorNode === cDocument.body )
i1 = oSeclection.anchorOffset;
else {
for (i=0; i< cDocument.body.childNodes.length; i++){
if (cDocument.body.childNodes[i] ===
oSeclection.anchorNode){
i1 = i;
break;
}
}
}
if (oSeclection.focusNode === cDocument.body)
i2 = oSeclection.focusOffset;
else {
for (i=0; i< cDocument.body.childNodes.length; i++){
if (cDocument.body.childNodes[i] ===
oSeclection.focusNode){
i2 = i;
break;
}
}
}
if (i1 > i2) {
i = i1;
i1 = i2;
i2 = i;
}
var docFragment = cDocument.createElement('div');
docFragment.setAttribute('class','cod');
for (i = i1; i <= i2; i++){
docFragment.appendChild(cDocument.body.childNodes[i]
.cloneNode(true));
}
for (i = i2; i >= i1; i--){
cDocument.body.removeChild(cDocument.body.childNodes[i]);
}
i = cDocument.body.insertBefore(docFragment, cDocument.body
.childNodes[i1]);
}
else {
var i;
for (i=0; i< cDocument.body.childNodes.length; i++){
if (cDocument.body.childNodes[i] === oSeclection.anchorNode){
break;
}
}
var docFragment = cDocument.createElement('div');
docFragment.setAttribute('class','cod');
docFragment
.appendChild(cDocument.body.childNodes[i].cloneNode(true));
cDocument.body.removeChild(cDocument.body.childNodes[i]);
i = cDocument.body
.insertBefore(docFragment, cDocument.body.childNodes[i]);
}
};Notice that I do not want to separate textNodes but copy them as they are (because this is my use case). Probably the code can be shortened by applying better logic, however this is a late night quick and dirty approach and it works.
Now just add it to the new buttons you add to the draft frame and voilà!
Jan. 9th, 2011
I know i am getting boring with all posts about Harel Skaat, but hey, this is my blog, so I will post whatever I want.
First - Words (Milim) in English with Karina Pasian. The performance is stunning!
Video link
End for a final accent - Od yair alay sung live in the studio:
Video link
Jan. 8th, 2011
I have been looking into using Cloud9 for JavaScript development. The project has just announced new release.
Installation on Linux (Fedora 13) went smooth, first one will need the latest stable Node from NodeJS project. Download and compile as usual, I have installed it with root, however it can be installed as regular user. Once this is installed I used npm (node package manager) and install cloud9. Start i with
Unfortunately even the 'world fastest browser' (a.k.a. Chrom) could not keep up with editing. Loading a huge file (let's say mootools.js) is too slow, scrolling in it is too slow, switching between files was way way too slow and what is worse, debug stopped working at some point and I cannot figure out why, so we are back at the console.log() debugging, which is not that great, but at least you can see the log in the same time as you see the code, which is better than constantly switching contexts, however the breakpoint type of debugging is not working. Let's hoe this would be fixed in next release.
Oh, and by the way you can still run your script with
node /path/to/your/script.js
It is kind of cool, I will have to find time to play some more with this.
Jan. 1st, 2011
As many of us know, the holidays can be quite lonely time. If you are also ill it makes the time passes even slower. So sooth my pain and soul I decided to give a few movies a shot. It was about time, since my 300GB hard drive is having only 20 gigs free now, everything else is pending my review.
So here we go. First - Letters to Juliet. A romantic ... something. I don't know, it is very slow paced, very cliche inclined and pretty much we all know what happens at the end. The beautiful scenery simply does not cut it, especially compared to the previous hit of the young lady in the leading role - Mamma mia. And by the way he really good view is coming too late (in the face of Christofer Egan).

Next - David's birthday (original title Il compleanno). Very Italian movie, no doubt. Lands it right in the middle of all other Italian movies about straight guys going south. Nothing interesting really, the only interesting character being the souse killer/brother/uncle. The young Thyago Alves is nice to look at though, however I don't really understand all the Italian/French movie makers - why does the young, hot, awesome good looking guys have to always fornicate with someone twice their age. It looks they do it just so that something dramatic can happen, like being outed or kill someone. I don't get it, why not do it with someone their own age? The scene where Davit is masturbating is really awesome, you can see him sweating in the dim light, its really good. Much better than, say, 'Broke straight boys'.
I would love to add one more, but all of theme would be just waste of your time as it was of mine. Just to protect you from doing the deed:
- You again - really really awful, first it was okay, the rage and vindictiveness in the protagonost were awesome and then she went all fluffy and forgiving - BAD movie!
- Transilmania - American Pie - again, this time even stupider. I bet they did it just to see if a movie can me made even more stupid.
- Unresolved suburbia - total lack of cinematographic skills and actors - just some ugly teens kissing with everything that moves. And that's it.
Enough with the bad for now.
Oh and as a bonus - you should watch the 'Steam room series' in YouTube, its like a promo series for the 'Is it just me' movie, which is really poorly made one, but the series is cool.
Dec. 23rd, 2010
My ninja name is: Nokuchikashi!
Dec. 18th, 2010
Dear Mr. Mandla,
I am happy to report that my adventurous love affair with your blog is now over.
I find it mostly waste of time for the following reasons:
- while all your arguments and howtos are viable and practical, you tend to proclaim the fallacy that:
using console interface is the path to the true computing, which is (scientifically and measurably) untrue
Using keyboard only to navigate between several contexts might look to you like you are more effective, but it is actually not, it just seems that way for you. Adequately measuring the performance from a remote stand point will reveal that this is not the truth, it just is apprehended that way by the operator/user because the brain is actively involved in doing the switching between the contexts, while when using the X (or any other window environment) this is mostly 'brainless' operation, your hand moves the mouse to the point where your eyes see the task/context, you proceed to the task as you see it, you don't have to know where it is, it is simple mechanical exercise.
- your statement discards the true nature of the www
while it is true that some web authors tens to overuse the styling capabilities of the modern browser environment, it is also entirely true that the user have complete absolute control over the presentation of the information in the browser
css can be disabled completely, image loading can be disabled, javascript can be disabled, advertising can be disabled, plugins can be disabled. More over, the learning curve for text only browser compared to one time configuration of a modern browser to display the information as text only browser is significantly more acceptable. One can share its browser configuration and while text only browser configuration can also be shared between users still the high learning curve for navigation and adequate advanced uses remains, while regular browser learning curve is pretty much one step - learn to use the mouse to point to an object and click. More over - it requires expertise way beyond the one of the average user to configure video/picture display (content that IS important, unless one is only interested in technical documentation, because all other documentation can benefit from diagrams and other image representation of the data) which is point 3 in your fallacy statements
- all image/video/graphics/sounds embedded in a web page are useless and distract the user from the actual content
while this can be true in some cases, most viable sources of information at least try to use the tools of modern day web environment for the benefit of the user and not for distraction
Again, the user have complete control over the user experience received from the web (which is NOT the case for regular application, will get there in a minute). Lots and lots of web applications simply would not exists without the modern capabilities of the browser environment. Applications that ARE useful, like web calendars (I will not go into the cloud vs personal data here, you can run your calendar application on your server as well as on google/yahoo and still make it available on your phone!), banking applications, data mining and visualization, real time data presentation and so on. Using audio directly in the browser is very scarcely used anyway, while using video to present the outlines of a big chunk of information or demoing a large project is very popular and NOT because people are lazy to read the full article, it is just more easily apprehended because it involves presenting more dense bits in shorter time. It is as simple as that, sorry but it is truth. Also images ARE important, how fast can one describe the snow on his street in words and in picture? Even you have to admit it. And it is also true, today 99% of the pictures are exchanged via http. Take for example the density of information you can get from a photo blog using elinks and firefox/webkit - load the blog and go... I bet I will be finished with the blog before you can even load the first 10 pictures. Talking about effective use of our time, not "right way to use computers"
- console applications are more useful: i don't even have to comment on this one, but I will
while there are some very capable console application, (for example newsbeuter is extremely powerful in its filtering!), the learning curve for them and the usability are much lower, which makes the statement that computing is not for grandpas true, which thank god is not anymore!
First of all pointing and clicking on well known icon / signs (like the play sign which is UNIVERSAL and well known and easy to remember and recognize) is much much more easy to learn and easy to use than remember how the same action is performed in each and every application (as console applications tend to NOT follow some sort of standard on how things are done, there are almost no music/video players to make the same thing the same way in console world). Second - contest switching from point one is valid here too - one does not really have to switch context first before perform action in another context, while 2 or more contexts can be observed and acted upon if desired.
Lets say I have browser and torrent client. In console I have to first switch from browsing to torrent context, then perform the desired action. In regular GUI i just perform the action should both context are observable (which (if they are) I can decide and not rely on specific predefined configuration like I have to in console (using screen or similar utility)).
And then we have again density of information: representing actions as buttons with well known signs / icons is very powerful, as the sign is the same while the action can be relevant: example: in torrent client play sign will start the file while in music player the same will play the song, in IDE it will run make, in service configuration tool it will start the service. The user can guess the action from the context of it, while in console application while some provide "help" menu somewhere the user mostly HAVE to know how to perform an action. eventually most user will learn, but it is pointless and wasting time. The performance in account of the user interaction will never reach the one of GUI app.
Here we face also the language barrier: most applications are written in English, should the user NOT know the language - we are done. Some console apps can be translated easily, some might not at all, but using icons and buttons IS universal. So stating that using console applications is more powerful is complete fallacy, how powerful an application is depends on the developer not the medium. The same applies to its resource demands: while it is true that pretty much all GUI apps require more resources to run, it is also true that this depends entirely on the developer: I for one have developed WEB interface for an application and the GUI for it is run on the browser, while the application work is headless. The application of its own requires as low resources as one written for the console and still provides more useful interface to its functionality. The fact that most applications rely on GTK/QT/KDElibs is true, but it is related to laziness and speed of development, the original Xlib was a small hell and very very hard to use. This is why GUI libs are predominant, they open the computing world to more developers. Same with Web apps - making useful things with javascript is so easy, pretty much anyone can start using it!
Web app can be very easily translated and can be upgraded and updated as much as the author wants, edge cases (where for example no JS is avalable) can also be handled, more over the application can be easily modified on the user side (using client scripting for example - something that is mostly impossible for you for example, as you do not know C and cannot modify the applications you use, you rely entirely on the developer).
I am not sure if anyone here will agree on any of this, but now I am completely sure you and your followers apprehend yourselves as some cast that knows the right path to the computing and everyone else for you is lost in the non-sense of modern computing. I was trying to follow your path of thinking and made this experiment, I have lived without normal computing environment for over a month. It slowed me down, It made me spend more time in front of the computer and it made me lag on performing very simple tasks (for example copying text from one application to another is pain in the console when the application has its own windowing, like finch of irsii or elinks!!!).
This said - now I believe you are on the wrong path, for users like you I believe the right path would be - run web applications (your own!), write them to be fast and efficient and have only web interface, very simple one, but web, and use whatever you feel like as browser to access all of them! browser environment can be effective even without images, sounds and plugins! one can also configure handlers for flash video in a regular browser ( so the video can be played by mplayer or just downloaded and so on), all images can be saved at once and on and on possibilities, that you delude users into forgetting and hang themselves in an era not 10 =12 years ago but 30! because text terminals were used 30 years ago! Just watch Crockford's first hour presentation on history of computing and you'll see what I am referring!
Dec. 15th, 2010
Those were the days my friend..
Original lyrics (Russian):
Ехали на тройке с бубенцами,
А вдали мелькали огоньки…
Эх, когда бы мне теперь за вами,
Душу бы развеять от тоски!
Дорогой длинною
И ночью лунною,
Да с песней той,
Что вдаль летит звеня,
И с той старинною,
Да с семиструнною,
Что по ночам
Так мучила меня.
Помню наши встречи и разлуки,
Навсегда ушедшие года,
И твои серебряные руки
В тройке, улетевшей навсегда.
Дорогой длинною…
Пусть проходит молодость лихая,
Как сквозь пальцы талая вода.
Только наша тройка удалая
Будет с нами мчаться сквозь года.
Bulgarian translation:
Возехме се в тройка със звънчета,
а далеч блестяха светлинки...
Ех, да можех пак след вас да тръгна,
да избавя от скръбта душата си!
По дългия път,
през лунната нощ,
със песента, която
далеч със звън лети,
и със старинната,
със седемструнната,
която нощем
ме мъчеше така.
Помня всички срещи и разлъки,
и годините отминали далеч,
и ръцете сребърни, които
отлетяха с тройката навек.
Нека да минава луда младост
като чезнеща през пръстите вода.
Вихрената тройка само наша
ще препуска през годините със нас.
The song wat translated in English in 1968 and became a huge hit:
Once upon a time there was a tavern
Where we used to raise a glass or two
Remember how we laughed away the hours
And dreamed of all the great things we would do
Those were the days my friend
We thought they'd never end
We'd sing and dance forever and a day
We'd live the life we choose
We'd fight and never lose
For we were young and sure to have our way.
La la la la...
Those were the days, oh yes those were the days
Then the busy years went rushing by us
We lost our starry notions on the way
If by chance I'd see you in the tavern
We'd smile at one another and we'd say
Those were the days my friend...
Just tonight I stood before the tavern
Nothing seemed the way it used to be
In the glass I saw a strange reflection
Was that lonely woman really me
Those were the days my friend...
Through the door there came familiar laughter
I saw your face and heard you call my name
Oh my friend we're older but no wiser
For in our hearts the dreams are still the same
Those were the days my friend...
In all languages the meaning is the same - sadness on the lost youth.
At last - an interpretation of Placido Domingo from 1994, as part of the 3 Tenors concerts. Those were the years...
Current Music: Not playing
Dec. 14th, 2010
Like it is not enough that we have to deal with browser differences in styles implementation (like opacity normalization for example), with lack of DOM retrieval differences (mostly between IE and the rest) - now I have to deal with native objects method differences.
Being a fully fledged JavaScript developer for some time now I have to admit - I hate it when there are differences between execution environments. IE6 is completely out of the picture - if someone uses IE6 - screw him, he/she can browse the Internet with text browser as well! I don't care! But facing issues like difference in the implementation of String methods was something I was not prepared for:
"my.string.test".replace(".","-dot-","g");
I expected this to work across browsers, after all this is a native method on native object. However the result in Firefox is:
but in Chrome it is:
What the f...???
Okay, fine, I know, I can use regular expression and it will work (probably?) across browsers, but
WHY do they have to be different??? Isn't it the case, when you write a C program on POSIX system you can run it on all POSIX systems. Why they cannot do it for javascript. Please! Save our souls!
Oh, and by the way the way to go with the above example would be:
"my.string.test".replace(/\./g,'-dot-');
And I am reading the book whose cover you see at the top of this entry. Definitely not for novice! Definitely! Regardless of what the author states at the beginning!
Dec. 12th, 2010
I have been watching The A-list: NY and it was really disappointing, I mean who wants to watch bunch of gay guys fighting and bitching all the time, like if it was their profession or worse, their true self.
Anyway, it seems there is a better show - In between men. It is a web series format (meaning the episodes are really short, 10 minutes each) but it is also full of gorgeous men and yet - they, while scripted, seem to act more appropriate and more in sync with the real world! I suggest you take a look, it will, I bet you'll find them more pleasing than the asshats on the A-list.
Here is the link to the site where you can watch the series.
Dec. 4th, 2010
Wow! Just wow!
In the video bellow you can see everyone, I mean EVERYONE you happen to see on TV/MTV and had forgotten! Like 'Bud' from "Married, with children", Rene from "Allo, Allo", Stephen Gately from Boyzone (RIP), Kate Turner and many, many more, including Bud Spenser (my GOD he looks 100 y.o.)! I have seen so many people I recognize in this clip, it is almost impossible, like my brain has hard times remembering them all right now, but just watch it, okay?
Video Link to cover of Let It Be
В този пост ще се постарая да опиша как се конфигурират неща, като "кирилица, превключване между кирилица и латиница, специални символи, мултимедийни клавиши, яркост на монитора, време на заспиване на монитора, настройки на шрифтовете, настройки на темите" и разни други подробности, заради които много хора, макар да не ползват Гном среда, а нещо по-леко и по-бързо в крайна сметка по някакъв начин след стартиране на сесията изпълняват:
/usr/libexe/gnome-session-daemon
gnome-power-manager
Целта с горните две команди обикновено е:
- да си оправим темата на малкото стартирани гтк приложения
- да си настроим приспиването на монитора
Понякога това включва и "да си оправим грозните шрифтове".
Демона за настройки на Гном обаче пуска множество други неща, като монитори за закачане на преносима медия и прочее, неща, които много бързо хората се научават да правят с
gvfs-mount и да достъпват в Midnight Comander. Следните стъпки е необходимо да бъдат предприети за да получим всичко онова, изброено по-горе, без да е нужно да имаме Гном.
Първо: намираме как се добавят команди към стартирания window manager.
В моя случай това е
i3. Добавянето на команди, които да бъдат изпълнени при стартирането му става много лесно с включването на exec клаузи в края на конфигурационния му файл.
Втора стъпка: определяне на подходящите за нас настройки.
Тъй като тук предполагаме, че идваме от Гном среда, подходящите за нас настройки за шрифтове, теми за приложенията, осветеност на монитора, клавишни подредни и прочее са ясни. Ето как се взимат настройките на клавишите:
Върнатия резултат е нещо такова (варира според вашите настройки в Гном):
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+inet(evdev)" };
xkb_geometry { include "pc(pc104)" };
};
От така взетите настройки се прави командата:
setxkbmap -compat "complete+ledscroll(group_lock)" -keycodes "evdev+aliases(qwerty)" -types "complete" -symbols "pc+us+bg(phonetic):2+inet(evdev)+group(lwin_toggle)+level3(menu_switch)+compose(caps)+eurosign(5)" -geometry "pc(pc104)"
Както се вижда лесно просто съм копирал настройките от горния изход и съм ги приложил към съответната опция на командата. За удобство съм изнесъл цялата команда във файл за bash интерпретатора, но това не е задължително.
Следва настройката на шрифтовете. Отваряте gnome-appearance-properties и в секцията с шрифтове разглеждате настройките. Трябват ви следните данни: дали се заглаждат шрифтовете (почти сигурно - да), дали се ползва hinting, какъв тип се ползва. Резултата записваме в ~/.Xdefaults:
Xft.antialias: 1
Xft.hinting: 1
Xft.hintstyle: hintfull
Xft.rgba: vrgb
Следват темата и шрифта за Гном/ГТК приложенията: тях всички вярвам добре знаят как да намерят в графичната среда, тъй като са от най-често променяните. След като ги намерим ги записваме във файла ~/.gtkrc-2.0:
gtk-theme-name = "Beos-r5"
gtk-font-name = "Liberation Sans 11"
Тези са моите.
Следва настройката на яркостта на монитора: необходим ви е xbacklight.
Останаха само настройката на изгасяне на монитора и мултимедийните клавиши. За клавишите ще се наложи да ползвате xev. При пускането му натиснете всички клавиши и клавишни комбинации за мултимедия, които виждате на клавиатурата си, след това го спрете. Онова, което ви трябва от цялата изписана боса са редовете с KeyPress event. В тях намираме нужните ни кодове (keycode) - обикновено 2 или 3 цифри.
Накрая е необходимо да съберем настройките и да ги добавим към командите на мениджъра на прозорци, част от тях като изпълними такива, други, като извиквани чрез клавиши (по-специално - мултимедийните клавиши).
Ето как изглеждат моите клавишни извиквания в i3:
bind 121 exec amixer set Master toggle -q
bind 122 exec amixer set Master 10%- -q
bind 123 exec amixer set Master 10%+ -q
bind 232 exec xbacklight -dec 10
bind 233 exec xbacklight -inc 10
Моят лаптоп има само клавиши за усилване, намаляване на звука и спиране/пускане на звука, плюс два клавиша за яркостта на LCD панела. Ползвам amixer за да командвам alsa, тъй като pulseaudio хаби твърде много CPU когато работи. Как да спрем pulseaudio и да накараме приложенията ни да работят с Алса е тема на друг пост.
Ето и автоматично изпълняваните команди от i3 (изпълняват се всеки път когато се стартира):
exec xsetroot -solid "#000"
exec xrdb -merge ~/.Xdefaults
exec xbacklight -set 30
exec ~/Documents/System/Applications/Bin/setkbd.sh
exec xset dpms 0 0 300
setkbd се ползва за настройка на клавиатурата, както беше описано по-горе.
Един проблем, който още не мога да разреша е как да направя подредбата да бъде запомняна за всеки прозорец, така че да не се налага да сменям постоянно подредбите, това е опция в Гном, не не намирам в Интернет как се прави без Гном. Ако някой знаеш, моля да помогне.
Nov. 28th, 2010
Преди време споделих за малкия подарък от Clinique. Сториха ми се много добри, но това за съжаления трая по-малко от седмица. Много бързо кожата ми реагира негативно, зашеметяващо бързо всъщност, появи се цялостно зачервяване, сякаш съм стоял над вряща тенджера с боб. Въпреки високата си цена, продуктите не се оказаха нито по-подходящи за мен, нито по-добри. Напротив, оказаха се много по-лоши. За да съм сигурен за какво говоря направих експеримент, като всеки добър скептик, спря ги за две седмици и после пак пробвах - нада! Същото се получи, една седмица мека гладка кожа и след това - зачервявания.
Едно трябва да кажа тук, да е напълно ясно - който иска да си купи, нека си купи, не са много скъпи и са добър 'entry level' по пътя към прахосване на пари. Но не очаквайте чудеса. Тези митични истории с това как микро липидни капсули доставяли безценни вещества в дълбочината на кожата да ги разправят на баба ми! Истината е съвършено проста, я достигне нещо до подходящите места, я не, но дори и да достигне я се метаболизира правилно, я не, а дори и да се метаболизира правилно, я е достатъчно, я не. Нека изпитва тялото и кръвта ви недостиг на нещо си, па чакайте кожата да се захранва чрез кремове.
В този ред на мисли, ефективността на помадите на Clinique е почти същата като да се полеете с газирана вода.
И понеже някой някъде беше споменал и за "почистването на кожата с естествени масла" - ойдете се гръмнете, преди да се намажете с смес от зехтин и рициново масло и да се наведете над тенджерата с врящия боб. И между другото крайния ефект е същия - зачервяване на кожата, ставате като домат. Един вид - узрявате.
Та следващия, който реши да ми купи/подари/предложи крем за 100 лева на бурканче ще го изяде. Немит.
The dancing stars at the entrance of the Sea garden in Varna, November 20th, 2010
Nov. 27th, 2010
It is a bit misleading, the tag of this post I mean.
Now that I am no longer running any Gnome applications, the tag should probably be changed, but I will leave that for another time.
Recent years I have been having an affair with the console on Linux. There have been some good and some bad moments. However my wrist pain got worse, so regardless of the 'regular user' pros and cons, I have switched to console again.
Not that I don't run X. Unlike Mr. Mandla, I still want to see some web pages with their images (mostly blog entries with 20 and more images in them, viewing those one by one in links is tedious).
In this case one can use Vimperator, which is an add-on for Firefox, that makes it behave much like Vim. This is all good, but unfortunately firefox starts very slow, it is very noisy (too much output for my taste when started from the console). It is only once process, yes, started once it can be used. Yeah, but I want to view just one or two pages a day, waiting for 15 seconds just to start is not gonna cut it.
Enter 'surf'. The most minimalistic browser EVER. It uses webkit and 10 shortcuts. And that's it. And it loads really, really fast. Because there is nothing but webkit.
For images I use 'feh'. It can load the images from the Internet and locally, so it is all good. I use it to view messages from my news (will get there in a bit) and from elinks. Once elinks is configured to use MIME types and images are pointed to use feh it works really nice. How about flash video?
Enter clive. It is in the repos, so not hassle installing it. Use it with mplayer and you don't even have to switch anything regardless of the medium (i.e. X or no X). Detailed instructions are available here.
What about the news I have mentioned? Well, I was in a limbo for a while now, between google reader and newsbeuter. The thing with greader is that you get your news anywhere. The keyboard shortcuts are great, they provide both list view and page view which is great for image blogs. Sounds all good, except I miss the filter language that is available in newsbeuter. Turns out it is possible to configure newsbeuter to work with google reader! And then again, I have to keep all my things on their servers.
Don't get me wrong, I find it very pleasing especially for emails, because I get my emails on my Android phone. But my feeds.... I don't know why, maybe because I had issues before with the loss of some entries or I don't know... it is just I am not comfortable with everything being there. So I switched back to load URL source for now.
Wrote a little script to handle different type of media from the newsbeuter 'browser' command (so when I start 'open-in-browser' I am actually submitting the link to a script that decides how to handle it, feh for images, clive/mplayer for video, links for html).
The Internet can tell you how to use alpine/mutt with google main, but as mentioned I don't get that much of mail so I use my phone for it.
It seems that this is all, I get everything else from console applications, including mc, mocp, hbn, vim and a few bash scripts to handle various situations.
There is however one major exception. I use homebank to handle my finances, I have not discovered console tool to manage this. I enter my day to day expenses from cli script I wrote and once in a while I import it to homebank, but still this binds me to X.
Anyone knowing any PFM (Personal Finance Manager) for the console?
Nov. 26th, 2010
What does stoning to death means? National Post (Canada) explains it for us.
Excuse me, but who will EVER want to live in Iran? I would be ashamed to be citizen of such country!
Nov. 14th, 2010
So here it is - The oath of Spartacus - fragment. I like the angle and the accent on the face of the boy.
Enjoy!
Oct. 31st, 2010
I know I am making fun of all the guys (and probably some girls) constantly sharing their current desktops on the Internet, but hey, mine isn't bad! Not bad at all! (What you see is i3 with dzen2 (and probably me1)).
Умна жена - приказно същество, съчетаващо красота и интелект
Каляска - спортен модел каруца, две врати, две седалки, до 8 конски сили
Is this how straight guys say 'fantastic'?
I love it!
The everlasting dilema on should we proceed with abortion should we know for sure the embrio would turn out to be homosexual - I aways enjoy the debate and often encourage the priests to go into it, it's kind of funny and stupid at the same time. Here we get it on a new level:
And while we are at the Church vs. the Homos here is another one:
Oct. 30th, 2010
Brian Justin Crum - Quiet (at Joe's pub - Broadway Impact, 2010)
Kyle Dean Massey - What kind of fool am I (at Joe's pub - Broadway Impact, 2010)
Brian Justin Crum & Kyle Dean Massey - Who will love me as I am (at Joe's pub - Broadway Impact, 2010)
And this is what it's all about
(plus you get to see Kyle Dean's chest hair)
Oct. 24th, 2010
Харел Скат си призна. Сякаш никой не се досещаше де...
Понеже отдавна 'се знаем' с него, ми беше странна цялата тази тайнственост около личния му живот. Например конкурента му в предаването, с което проби в Израел (пак със същото малко име - Харел Мойал), не съм забелязал да се крие много, като беше в България, чак му се появи снимката по едни 'специфични' сайтове. От друга страна, явно Скат искаше да стане много, ама много известен, преди да се раздуха цялата история.
И все пак, като загледам клипа от прослушването му за Kochav nolad и се питам: кого можеше да заблуди? В момента не мога да намеря клипа в YouTube, но можеше да го дръпнете от
тук.
Нищо де, да е жив и здрав, пожелавам му да го намери този "бой-френд", дето като се появял и какво щяло да стане. Последните години е наедрял доста, съзрял, време му е да се задоми.
За финал може да погледате последната му песен:
Oct. 5th, 2010
Стой, върни се, скитнико незнаен....
Oct. 1st, 2010
Years ago I have posted about the findings of UK government study related to e-waste indicating that using Linux operating system can prolong the useful life of the computer equipment.
Those years ago I have not owned a computer for long enough to be able to confirm it. But now I have. My own laptop is 7 years and 10 months old now. Apart from the faulty hard drive (which was gone on the second year) the laptop is still running, the software has been updated many many times but the operability is still there.
My dad is now using it with basic Fedora 12 install (plus skype and video codecs). No significant impairment of usability is observed. I use the same hardware on my work laptop for the last 5 years and I can assure you it is capable of doing almost anything you can think of, except playing really large video files. And then again most computers can't do it.
So yes, the seal cub was saved. Partially by me, I like to think so!
Няколко снимки от миналият месец не намерих ред и място да бъдат публикувани на време. Днес назря момента.
Първата е от изложбата на котки провела се във Варна, в Двореца на спорта миналата седмица. Повечето котки бяха от сивите (явно сега те са на мода), но имаше и един два сфинкса, както и една огромна с много дълга козина, чиято порода не ми стана ясна, но беше върха. Снимката обаче показва една розова котка (за съжаление цвета е малко неясен, защото я заснех с камерата на телефона), само дето котето беше толкова изплашено и озлобено, че дори на снимка се вижда агресията:
Втората снимка е направена пак през миналата седмица, пак с телефона. Този ъгъл на падане на слънчевата светлина става все по-късен и по-късен... усещам как ми става все по-студено и по-студено:
Стига толкова снимка. Друг път - пак.
Между другото нещо много неприятно забелязвам, питон скрипта, който бях написал за попълване на картинките в постовете не работи така добре вече, от как преминах на новата версия на GTK/Гном и Питон, питам се къде ли се чупи. Като цяло си беше глупава идея, да ползвам графичен инструмент, просто исках да е универсален (тоест да може да се ползва от всеки) и в стремежа си към това пропуснах факта, че GTK както и bindings към GTK от питон еволюират доста стремглаво точно в момента и има голяма вероятност всичко изведнъж да спре да работи. Тези дни вероятно ще се наложи да пренапиша инструмента с друг, отлежал и доказал себе си похват.
I have played aroun with PyLjVim script to tune it for better intergation with my workflow.
Here are the changes I have introduced to make it easier to work with:
- Instead of always loading the macros (:LJ*) add :au command for *.lj filenames to source the macros file
- Changed macros file to use current file instead of creating new buffer and to keep the buffer after posting to LiveJournal servers
- Edited macros file to set filetype to livejournal to match snippet file (see bellow)
- Source ~/.vim/after/lj.vim from macros file, in after file add settings for closetag vim plugin to be used in LJ posts as html is supported and then source the closetag plugin, invoke LJTemplate also to load template in current buffer
- Edited pyljpost.py python script to support tags when posting, tags and pictures implemented as snippets (see bellow)
- Added snippet file for LiveJournal filetype to implement links, quotes, code and tags/pictures
File listing (all files can be downloaded - see link at the end of the post):
~/.vim/ftdetect/livejournal.vim
au BufRead,BufNewFile *.lj nested source ~/.vim/macros/pyljpost.vim
~/.vim/after/lj.vim
let b:closetag_html_style=1
let b:unaryTagsStack="br"
source ~/.vim/plugin/closetag.vim
LJTemplate
It is now much easier and more convenient to post to LiveJournal from withing Vim than it was originally designed by its author, I dare say. All related files can be found on
the usual place.
Sep. 30th, 2010
Sep. 29th, 2010
We should not count on web services for essential needs!
Sep. 25th, 2010
In the sea of old and new series bombarding the silver screen, if you are like me, each season you are desperately looking for a drop of fresh idea, a nice to watch, interesting enough but not in obsessive ways, new series to watch.
Just like Drop dead diva it is funny, easy to watch, the episodes does not seem to be strongly connected, so you are not in anxiety to watch the next one (like with Glee), and yet interesting enough to force us to enjoy it.
I present you
"Outsourced". I have not seen the movie, so it is a fresh idea for me. And it involves Indian food which is yummy enough for me also.
Among the other starters this year, I could mention the following (already seen thus far):
- My generation (pretty awesome, if you are into those kind of realities)
- S#!% My dad says (comedy, not very original, not at all, just put balls on the mother in law in every family commedy you can think of and voilà)
- The whole truth (I confess - I like law)
- The defenders (see above... Indeed I like it)
There are some more (not new, but watchable): Supernatural (Come on! they should quit already! How many times one can go to hell?!), Glee (no, its not gay, just the music is coming from a drag queen's iPod music collection), Desperate housewives (Ok this is gay, but hey, they have Wanessa Williams now, how can one resist?!), House (the weakest season premier EVER!!! Loosers...). Hum, I guess that's it. I might be missing something.
What will be missed: Eurika (of course), Hevan (not so much, actually not at all), Warehouse 13 (I know it is childish and completely ridicule most of the time, but if you have nothing better to do...), Unnatural history (3 young, pretty attractive, nicely cleaned, cute people, 2 boys and a girl, save the day, each Wednesday, what is ti not to like?!).
The rest is a mix of !? of course, but can help the work hours pass, especially if you work in a mall where no one ever do his shopping in your department. Like "Life unexpected" or "Melissa and joey". Or even "Mike and Molly". No, seriously, who wants to watch about the development of the romantic relationship between two obese middle aged dick heads? Uhm... not a gay man anyway!
Sep. 24th, 2010
Okay, I confess, I am a fan. Not that I read his column regularly (and not that I can, since I don't buy subscriptions for news papers). But I have watched his QAs on youtube and I can tell he is a funny guy. And nice to look at. For a gay man on my age this is almost as he's Apollo himself.

From the first page of the book one can sense his witty humor and I can tell you, I laugh a lot with it. If you are looking for something funny and light to read before sleep (or to finally start using your iPhone/iPad/Android device for something more than games (because come on! confess it finally, you are using it for games and stupid apps anyway, don't tell me you regularly use the map to find your way to the coffee shop or to track your hikes or to research important information on the go, you, just like everybody else are mostly playing games and update constantly your freaking facebook status with occasional mindless tweets)) I would strongly recommend it. I am actually surprised to read the following in chapter one:
We realized relatively quickly that the only time we remembered why we liked each other well enough to want to have kids together in the first place is when we were alone together. (you may need to read the last sentence twice)
Okay, honestly, Dan, is this an insult to your readers? Or is the average literacy of gay men (as I suspect the book will be bought mostly by gay men) in the United States that low to incline you to suggest re-reading your 20 something word sentences twice just to make sure they understand it? I hope you did not mean that.
Anyway the book is funny and, at least from where I stand, a good read. Unfortunately (mostly for you and for your publisher) I am not buying it any time soon.
But as I said it is a good read, so, dear reader, if you have spare 4 dollars - go for it. As Terry Pratchet is more expensive. Kidding, really, the book is good! I promise!
Navigate: (Previous 50 Entries)