О блогах на сайте
Наверное опять меня не поймут.
Но всё же напишу. Иногда хочется собрать в кучу свои знания, как то их систематизировать и написать статью. Пишу блог на этом сайте. И в итоге получаю что-то вроде такого в комментах. Цитата:
очень серьезные, но не доскональные до каждой запятой и специфики стандарта. И вот после таких комментов, думаю: То ли я что не так пишу, то ли люди такие злые. После этих комментов боишься еще что либо писать. А писать надо потому, что более удобной платформы для своих мыслей по js с запуском кода я не знаю, а работать с закрытыми для публикации статьями очень не удобно. По мнению одного товарища, вот это "фуфло". Не ужели это реально так? http://javascript.ru/blog/mycoding/Fishki-JS http://javascript.ru/blog/mycoding/Reaktivnyj-JS |
Организуйте себе собственный блог (на blogspot'е, например) и пишите туда. Несогласных можно слать лесом, аргументируя тем, что это личный блог и "пишу, что хочу".
Но если у несогласных есть весомые аргументы, хорошо бы их учесть. P.S. Да и вообще, всех необоснованно несогласных можно отправлять за аргументами. |
mycoding, ты бы объяснил "поводянистей" тот код, что там написан. из "реактивного JS" я , честно сказать, мало чего понял. и по коду тоже.
в комментариях таких посылов и школьного мата не увидел.. I-zone дело говорит, честно сказать ведь в этой конструкции будет проходиться все if(a==1){} else if(a==2){} ... а в свиче сразу выход из проверки. Конечно, из-за этого свич будет еще быстрее. |
Сейчас когда есть время пишу мини-чат на NodeJS.
Постараюсь там применить методы описанные в статье. Первый пример из статьи http://javascript.ru/blog/mycoding/Reaktivnyj-JS Нужен для быстрой выборки сессий пользователя. Второй пример нужен для прохода по всем открытым соединениям, чтобы дать ответ о новом сообщении. Я вообще завел эту тему, потому что когда целый день пишешь код, который разместишь на сайте хочется доброго слова от Community. А если не прав, то чтобы просто сказали: Братишка ты здесь ошибся, надо вот так вот. У меня знаний очень много, но стараюсь всегда писать, что я ничего не знаю. Но это не значит, что я реально ничего не знаю. Я знаю очень много. Дело вот в чем. Цитата не точная Цитата:
Спасибо всем, кто меня поддерживает и дает дельные советы.;) Статью "Реактивный JS" решил написать после разговора с monolighted и блога http://javascript.ru/blog/tenshi/yavascriptovoe-dao |
а , вот почему там примеры такие отдаленные : функция с телом "запятая", и другое :)
но все равно стоит разбавить тот сплошной код в статье своим поясняющим текстом, хотя бы обьясняя это теми же примерами из ноды. |
Пожалуйста, не обращайте внимание на троллей :)
Систему блогов(статей) мы доработаем, как раз на новом движке. Видимо, нужна модерация комментариев к своим статьям? |
Цитата:
Спасибо Илья за Ваш сайт. |
Цитата:
|
mycoding, пиши на хабр и не парься. Там людей много, процент троллей (которых быстро убивают), пофигистов и интересующихся почти такой же, но статистически так проще оценить качество собственных статей, имхо.
|
Цитата:
И у них нет запуска кода js/html. Пробовал получить инвайт через статью. Не принимают. |
mycoding, не парься ты так) если в комментах к твоим постам с тобой не соглашаются - это нормально, ведь в споре рождается истина и ты действительно можешь ошибаться или наоборот отстоишь свою точку зрения. А на тех кто кроет матом и вообще ведет себя, как редиска, не стоит обращать внимание)
|
Цитата:
Цитата:
Кстати говоря, хороший способ раскрутки. Ты пишешь, её копипастит очень много других сайтов :) Цитата:
|
Статья про Ext Core.
Как писать виджеты и основы. Сейчас статьи нет. Не сохранилась. В данный момент над другим проектом работаю. Может дадут инвайт. |
|
интересно кстати
чуть чуть больше текста и рассказов, чтобы заинтриговать, как это делают там, и будет классно :) и еще : аналогов статьи этой нигде нет? |
Цитата:
Сейчас пишу еще примеры. |
Цитата:
зачем ты так на хабру рвёшься? |
Цитата:
У всех есть у меня нет;) |
Цитата:
|
Цитата:
mycoding, не умеешь ты писать. Структура следующая: 1. Сумбурное вступление. 2. Код. Это не статья, а просто набор набор кодов со вступление. Прочитай томик Пушкина что ли, для вдохновения;) И еще... Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Сделал небольшой чат на NodeJS.
Вот видео http://www.youtube.com/watch?v=7mVOZ...er_profilepage Вот код. https://github.com/mycoding/Simple-Chat Может кому-нибудь пригодится. |
Нормально. Код не расширяемый, но судя по видео, рабочий.
Hint: json лучше генерировать посредством JSON.stringify(). |
|
Либо так
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" type="text/css" href="http://moc-081.ru/ext/resources/css/ext-all.css" /> <script type="text/javascript" src="http://moc-081.ru/ext/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="http://moc-081.ru/ext/ext-all.js"></script> <script src="http://vreshenie.ru/work/comet/cross-domain/extjs-cross-domain.js"></script> <style> .icon-user { background-image: url("http://www.vreshenie.ru/resources/user.png") !important; } .icon-users { background-image: url("http://www.vreshenie.ru/resources/group.png") !important; } .icon-pencil { background-image: url("http://www.vreshenie.ru/resources/pencil.png") !important; } .icon-comments { background-image: url("http://www.vreshenie.ru/resources/comments.png") !important; } </style> <script> var messages = [], users_online = [];//, //chat_property = {login:'',sid:''}; Ext.onReady(function(){ function sendMessage(login){ var msg = Ext.getCmp('idMsgChat').getValue(); if(msg.length!=0){ crossDomainRequest('sendMessage',{login:window.login,sid:window.sid,msg:msg,action:'sendMessage'}) } } function runLoginedChat(){ var win = Ext.getCmp('windowChat'); win.setTitle('Cross-domain comet chat on ExtJS+nodeJS'); var login = Ext.getCmp('login'); win.items.items[1].el.fadeOut({callback:function(){ login.hide(); }}); var buttonLogin = Ext.getCmp('idLoginButton'); buttonLogin.setText('Send'); buttonLogin.setIconClass('icon-pencil'); buttonLogin.setHandler(function(){ sendMessage(login); Ext.getCmp('idMsgChat').setValue(''); }); var xy=win.getPosition(); var x = xy[0]-100; var y = xy[1]-100; win.el.shift({ x: x, y: y, duration:1, //easing:effect, callback:function(){ win.el.shift({ width:400, callback:function(){ win.setWidth(400); win.setHeight(300); var str=' '; for(var i=0;i<messages.length;i++){ str+=""+messages[i].login+":"+messages[i].msg+'</br>'; } Ext.getCmp('serverMessage').update(str); Ext.getCmp('idMsgChat').show(); Ext.getCmp('serverMessage').show(); Ext.getCmp('idUsersOnline').show(); var winUserOnline = Ext.getCmp('idWinUsersOnline'), windowChatXY = Ext.getCmp('windowChat').getPosition(), windowChatXYSize = Ext.getCmp('windowChat').getSize(); winUserOnline.setPosition(windowChatXY[0]+windowChatXYSize.width+50,windowChatXY[1]); winUserOnline.show(); var treeUserOnline = Ext.getCmp('idTreeUserOnline'); for(var i=0;i<users_online.length;i++){ var newNode = new Ext.tree.TreeNode({id:"'"+users_online[i]+"'", text:users_online[i], leaf: true}); treeUserOnline.root.appendChild(newNode); } crossDomainRequest('getMessage',{login:window.login,sid:window.sid,action:'getMessage'}); } }); } }); } function crossDomainRequest(action,params){ Ext.Ajax.request({ timeout:300, url: 'http://node2.tw1.ru/', //url: 'http://127.0.0.1:1337/', params:params || {}, scriptTag: true, success: function(r){ var message = r.responseObject.msg; var login = r.responseObject.login; //console.log(message); //console.log(r); if(action=='getMessage'){ if(!r.responseObject.reconnect){ if(login!='Server'){ messages.push({msg:message,login:login}); } var str=' '; for(var i=0;i<messages.length;i++){ str+=""+messages[i].login+":"+messages[i].msg+'</br>'; } if(login=='Server'){ var action_server = r.responseObject.action_server; switch(action_server){ case 'join': str+="<b>Server</b>:"+message+' join</br>'; messages.push({msg:message+' join',login:'<b>'+login+'</b>'}); var newNode = new Ext.tree.TreeNode({id: "'"+message+"'", text: message , leaf: true}); Ext.getCmp('idTreeUserOnline').root.appendChild(newNode); break; case 'left': str+="<b>Сервер</b>:"+message.join(',')+' left</br>'; var users_left = message; messages.push({msg:message.join(',')+' left',login:'<b>'+login+'</b>'}); for(var i=0;i<users_left.length;i++){ var node = Ext.getCmp('idTreeUserOnline').getNodeById("'"+users_left[i]+"'"); if(node){ Ext.getCmp('idTreeUserOnline').root.removeChild(node); } } break; default: } } Ext.getCmp('serverMessage').update(str); } crossDomainRequest('getMessage',{login:window.login,sid:window.sid,action:'getMessage'}); } if(action=='login'){ if(r.responseObject.success){ messages = r.responseObject.msgs; window.sid = r.responseObject.sid; users_online = r.responseObject.users_online; runLoginedChat(); } else{ Ext.Msg.alert('Error', r.responseObject.error); } //console.log(r.responseObject); } if(action=='sendMessage'){} if(action=='usersOnline'){ messages.push({login:r.responseObject.login,msg:r.responseObject.msg}); var str=' '; for(var i=0;i<messages.length;i++){ str+=""+messages[i].login+":"+messages[i].msg+'</br>'; } Ext.getCmp('serverMessage').update(str); } }, failure:function(){ console.log('failure'); Ext.Msg.alert('Error','Critical error on server'); if(action=='getMessage'){ crossDomainRequest('getMessage',{login:window.login,action:'getMessage'}); } } }); } function chatLogin(){ var login = Ext.getCmp('login').getValue(); window.login=login; crossDomainRequest('login',{login:login,action:'login'}); } var w = new Ext.Window({ resizable:false, closable:false, id:'windowChat', shadow:false, iconCls:'icon-comments', title:'Chat', width:270, height:95, layout:'form', bodyStyle:'padding:5px 5px 0', items:[{ id:'serverMessage', bodyStyle:'padding:5px 5px', height:230, hidden:true, autoScroll:true, html:'Place for massages' },{ id:'login', xtype:'textfield', fieldLabel:'Input nick', listeners: { specialkey: function(field, e){ if (e.getKey() == e.ENTER){ chatLogin(); } } } }], bbar:[{ id:'idMsgChat', xtype: 'textfield', width:260, hidden:true, listeners: { specialkey: function(field, e){ if (e.getKey() == e.ENTER){ var msg = Ext.getCmp('idMsgChat'); if(msg.getValue().length>0){ sendMessage(w.login); Ext.getCmp('idMsgChat').setValue(''); } } } } },'->',{ id:'idUsersOnline', text:'Users', iconCls:'icon-users', hidden:true, handler:function(){ crossDomainRequest('usersOnline',{login:window.login,sid:window.sid,action:'getUsersOnline'}); } },'','',{ id:'idLoginButton', text:'Enter', iconCls:'icon-user', handler:chatLogin }] }).show(); new Ext.Window({ id:'idWinUsersOnline', title:'Пользователи онлайн', closeAction:'hide', layout:'fit', closable:false, width:170, height:195, items:[{ xtype:'treepanel', id:'idTreeUserOnline', autoScroll: true, root: new Ext.tree.AsyncTreeNode({ expanded: true, children: [] }), rootVisible: false, listeners: { click: function(n){ //console.log(n.attributes.id); //var newNode = new Ext.tree.TreeNode({id: "5", text: "foo", leaf: true}); //Ext.getCmp('idTreeUserOnline').root.appendChild(newNode); //var node = Ext.getCmp('idTreeUserOnline').getNodeById('2'); //if(node){ // Ext.getCmp('idTreeUserOnline').root.removeChild(node); //} } } }] }) }); </script> </head> <body> </body> </html> |
Я вообще завел эту тему, потому что когда целый день пишешь код, который разместишь на сайте хочется доброго слова от Community.радуйся, что тебе хоть что-то пишут. меня вот все игнорят ._." Цитата:
|
Цитата:
Он настолько классный, что даже ничего не понял))) Вы не могли бы чуть более подробней написать? Я поняли, что тема про СУБД и псевдо потоки на js. Меня это очень интересует и если Вы приведете побольше примеров и разместите проект на github я и многие читали будут Вам благодарны. PS: Ссылка битая:http://smileg.jino-net.ru/_files/dao.js Если есть время пишите блоги, они у Вас очень серьезные. Если Вы это знали еще в 2008 году, то я представляю какой сейчас у Вас уровень в js. |
там были ещё статьи, да я их выпилил, когда на хабр перебирался. %-) дао всё хотел переписать, да руки не доходили, а про потоки там фигня написана, непрактично это.
могу поделиться инвайтом на хабр, но тебя там быстро заминусуют и будешь как я только комментить чужие топики. вообще, я смотрю яваскриптовое комьюнити в рунете какое-то куцое. dklab.ru заглох. javascript.ru заполонили ламеры со своими "животрепещущими" вопросами. только на хабре яваскриптеры и остались. но там, чтобы иметь возможность вещать на комьюнити, нужно старательно лизать всем задницу. одно неосторожное слово и ты исключаешься из этого междусобойчика. и не важно есть тебе что предложить сообществу или нет. если интересно - можешь почитать http://tenshi.habrahabr.ru/blog/ |
Цитата:
Был когда-то, но после того как им крышу снесло и я запарился вбивать пароль я плюнул на акк. Если честно, то не вижу особого смысла рваться в сборище яростно минусующих хомячков. Будет что толковое написать не проблема где, кинул тут ссылку и получишь свою порцию признания. Цитата:
Про дао тоже почитал, понравилось и да ссылка битая. |
Перепишите, когда появиться время
http://javascript.ru/blog/tenshi/yavascriptovoe-dao Очень классная штука. Мне в NodeJS это надо, чтобы к Б.Д. не делать коннект. |
Цитата:
|
не, у меня есть идея наоборот сделать открытую распределённую платформу %-) чтобы комментировать можно было на своём сайте статьи расположенные на чужом, при этом чтобы по статье можно было найти все комментарии к ней по всему инету. собственно не будет чёткого разграничения между статьями и комментариями. то есть что-то типа ярушки, только в масштабах всего интернета. а вопрос фильтрации контента решать индивидуально - не хочешь читать слёзные посты товарища ЧеБуРаШкА - одним кликом добавляешь его в чёрный список и он тебя более не беспокоит.
угу, перепишу.. |
Ничего не говорю в защиту хабробыдла, но что это за херня: http://habrahabr.ru/blogs/personal/100667/? Понятное дело, что тебя заминусуют и не только на хабре. Жамкнул тебе на плюсег за то что на годном форуме сидишь :)
|
это не херня называется сатирой. от неё был небывалый взлёт кармы. а слили вне её за топик, где я сравнивал скорости смарти и хслт.
|
Наверное не стоит это писать.
Но напишу своё мнение о NodeJS. С одной стороны, мне NodeJS нравится. Вроде круто, интересно. С другой стороны, ни х**** не круто. Эта с****, которую звать NodeJS ни х**** не работает. Течет память, какого ей х**** надо не ясно. Я уже пол года его изучаю и вот как только думаю, все понял. На на тебе, это с***, падает от малейших нагрузок. Извините, наверное у меня руки из ж*** растут. Я понять не могу, какого х**** надо этому NodeJS, чтобы он работал как надо. Ни о какой highperfomance речи не идет, PHP - highperfomance в сравнении c NodeJS. Я уже разок бросал изучение NodeJS, потому что сложно настроить его на сервере. Потом появился хостинг с NodeJS и я задумался, ну ладно если за меня настроят сервер будет круто, можно и попробовать. А тут эта с*** начала такое показывает с производительностью, что я думаю хватит тратить время впустую. Простите, что выругался. Не могу себя сдержать. |
mycoding,
вы словами со звёздочками только подтверждаете статус местной истерички, не более. Да, вконтактовцы тоже говорили, что нода течёт. Но это было пару версий назад и у вконтакта пользователей поболее будет. У меня два сайта на ноде крутятся, следил за потреблением памяти -- не течёт. И, о боже, ни разу не упала. Может всё-таки хостинг кривой? Если у вас течёт ваш чат, так может вы историю сообщений никогда не очищаете? Про установку надоело. У всех получается, у вас не получается, так может не в ноде дело? |
Цитата:
От одного сообщения "123457567676" увеличивается RSS на 0.1~0.3 мб ? Да Вы правы дело в том, что у меня руки из ж*** растут. Не знаю какой статус я подтверждаю. Просто от того, что я умею зависит то сколько я получу. И если я не смогу сделать ту или иную задачу то мне не заплатят. Вот и меня это и раздражает. Как и 90% населения я живу не в Москве, а поэтому надо быть мега асом, чтобы выбрали именно тебя на проект. Извините, что опять поднял эту тему. Но от того, что я буду льстить и улыбаться всем, ничего не измениться. Работы в нашей стране как не было так и нет. Думайте обо мне что хотите. Раз я похож на истеричку, то это Ваше мнение и я его уважаю. |
Цитата:
|
Часовой пояс GMT +3, время: 20:46. |