О блогах на сайте
Наверное опять меня не поймут.
Но всё же напишу. Иногда хочется собрать в кучу свои знания, как то их систематизировать и написать статью. Пишу блог на этом сайте. И в итоге получаю что-то вроде такого в комментах. Цитата:
очень серьезные, но не доскональные до каждой запятой и специфики стандарта. И вот после таких комментов, думаю: То ли я что не так пишу, то ли люди такие злые. После этих комментов боишься еще что либо писать. А писать надо потому, что более удобной платформы для своих мыслей по 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, время: 09:19. |