Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
Даже не знаю - радоваться, что меня кто-то назвал программистом, либо горевать от остального. Добавлю, пожалуй, от себя пункт 3: "Использовать стильный, модный, молодежный стек технологий".
Именно. В WinAPI есть очень функция для создания файлов с логичным именем CreateFile, а также есть функция для открытия файлов с не менее логичным именем CreateFile. Вот вся эта логичность и проявилась в 16-й строке.
Ну и? Какие ошибки ты собираешься показывать пользователю? Как ты собираешься показывать прогресс?
>Я в курсе, кэп. Я просто говорил, что вброс об этом был бы лучше вброса об обработке ошибок.
Лучше - так вбрось. Я спросил то, что мне показалось важнее.
> Лучше - так вбрось.
Теперь уже не интересно. Ты же уже написал, как эта проблема решается, а я согласился с данным решением.
> Я спросил то, что мне показалось важнее.
Ок.
> Какие ошибки ты собираешься показывать пользователю? Как ты собираешься показывать прогресс?
ОП'у надо было проверить файлы, а не писать мегаполезную тулзу с прогрессом и шлюхами. Эта вполне конкретная задача решается вполне конкретной командой sha1sum -c checksums. И я не думаю, что выхлоп этой команды кому-то окажется непонятным.
Проверка подразумевает информирование пользователя о том, что делает программа и не повисла ли она. sha1sum с большими файлами этот сценарий проваливает на ура.
> Какие ошибки ты собираешься показывать пользователю? Как ты собираешься показывать прогресс?
Естественно, если бы я надумал писать гуишную прогу для сверки хешей (а я никогда не надумаю ее писать, т.к. мне это нахуй не нужно, для насущных целей мне всегда хватало и консольной, задача унылая и не интересная, и платить мне за нее явно никто не будет), то я бы не пользовался бекендом в виде *sum, а воспользовался бы какой-нибудь вменяемой криптобиблиотечкой, которой можно скармливать поток кусками, а не целиком (ну или, как вариант, есть колбеки о прогрессе расчета).
> Чтобы юзер думал, то ли программа повисла, то ли чем-то занята?
Ну я же написал, что "я бы не пользовался бекендом в виде *sum, а воспользовался бы какой-нибудь вменяемой криптобиблиотечкой, которой можно скармливать поток кусками, а не целиком (ну или, как вариант, есть колбеки о прогрессе расчета)". Для чего, по-твоему, мне нужна загрузка кусками или колбек? А нужна она именно для индикации прогресса.
> А ты хочешь проверять файл на пару терабайт молча
Да, лично меня, (а не абстрактных юзеров моей ненаписанной сверялки сумм) такое поведение никогда не бесило.
Ты имел в виду, что если я напишу программу так, что она будет удобна не только для меня, но и для кого-то еще, то она не будет говнокодом? Ну да, в этом что-то есть. И этой мысли не хватает многим авторам опенсурсных программ.
Нет, я имею в виду, что если ты бы падсибя сделал по-другому, то это ни значит ничего. Вообще. Потому, что критерии говнокодности выставляешь ты и, соответственно, это мнение важно только для тебя.
А юзабилити и швабодка - вечная тема для холиваров, причем юзабилити как для юзеров, так и для программеров (в частности, в апинсорсе никогда не бывает коментов к апи, если не брать стандартные библиотеки языков).
>(а я никогда не надумаю ее писать, т.к. мне это нахуй не нужно, для насущных целей мне всегда хватало и консольной, задача унылая и не интересная, и платить мне за нее явно никто не будет)
Спасибо, что ты об этом рассказал, буду знать, что ты настолько крут, что всякой хуйней не занимаешься.
> ты настолько крут, что всякой хуйней не занимаешься
Да не, хуйней позаниматься можно, если она интересная или за нее платят. Но кому нужна очередная унылая сверялка сумм, коих и без меня полным-полно?
> Файлы можно и самому искать, потери скорости при этом не будет.
Я в курсе, кэп. Я просто говорил, что вброс об этом был бы лучше вброса об обработке ошибок.
Самая жопа случается после десятка комментов, когда оно перестает быть деревом, и превращается в линейное месиво, в котором не поймешь кто что кому писал ;(
Мне в последнее время кажется, что линейная структура была бы удобней: сейчас приходится прокручивать длинные треды в поисках новых комментов, а после обновления страницы с них слетают пометки.
А родителя можно показывать как на бордах, во всплывающем диве при наведении на ссылку на него.
Всплытие при наведении может раздражать, уж лучше по клику что-нибудь делать.
На мой взгляд удобнее было бы по клику выполнять скроллинг на комментарий, чтобы страница не обновлялась. Возможно, даже с эффектом подмигивания преамбулы комментария. Так будет виден весь контекст.
А чтобы можно было вернуться, показывать ссылки не только на родителя, но и на потомков в разворачивающемся по клику списке.
Одна из главных проблем дерева имхо - два ответа на один комент, даже от одного юзверя, обрастают своими деревьями и разносятся так, что хер найдешь. Как найти всех детей одного родителя?
> Как найти всех детей одного родителя?
Есть такое. А если добавить кнопку для сворачивания всех деревьев потомков, так чтобы под данным комментарием оставались видимыми только корни этих деревьев?
Два чая этому господину. С подсветкой вообще беда, когда пост на 400 комментов, и где-то один новый, в середине.
В линейном такой херни нет. Да и там легко отложить тред на "почитать потом", постранично.
Дискуссии не такие разветвлённые получаются, но как по мне, это только плюс.
Если уж менять, то делать закос под стековерфлоу нелогично, потому что они сами признают, что комментарии к ответам при количестве комментариве >5 желательно выносить в чат вообще. Поэтому труёво сделать, вы удивитесь, как на лоре. На хабре говняно придумано с ветками. Ветки вообще не нужны. Видимая структура должна быть линейной, а под ней уже может быть и дерево.
Первый, кто скажет съебнуть на лор - хуй.
И до какого уровня ты собираешься ветвиться? Все движки, что я видел, имели какое-то ограничение правого края коментов, или ты ограничиваешь ветвление, или коменты становятся шириной 5 пикселей.
SO ни в жопу ни в пизду, коменты там очень неудобные и ссылка на автора не для этого. Ответы на ответы там линейные, да и формат ресурса не тот. Холиварс вообще непонятно зачем.
Можно оставить древовидность, но не отодвигать комментарий, а ставить стрелочку или иную метку, если его не нужно отодвигать. Например, если у родителя больше нет комментариев, или у родителя родителя нет, или при выполнении этих двух условий. Такой подход значительно сократит ширину в большинстве случаев на ГК.
Примерная демонстрация:
function siblings(elem){
var allSiblings = elem.parentNode.childNodes, count = 0;
Array.prototype.forEach.call(allSiblings, function(elem){
if(elem.tagName == 'LI') ++count;
});
return count;
}
var comments = document.getElementsByClassName('hcomment');
for(var i=0; i<comments.length; ++i){
var comment = comments[i];
if(siblings(comment) > 1 || siblings(comment.parentNode.parentNode) > 1) continue;
var author = comment.getElementsByClassName('entry-author')[0];
var label = document.createElement('span');
label.innerHTML = ' ◸';
author.parentNode.insertBefore(label, author);
comment.parentNode.style.marginLeft = '0px';
}
P.S. Этот код не борется с
div.entry-comments ul .hcomment ul .hcomment ul .hcomment ul .hcomment ul .hcomment ul .hcomment ul .hcomment ul .hcomment ul .hcomment ul .hcomment ul .hcomment ul .hcomment ul .hcomment ul .hcomment ul .hcomment ul {
margin-left: 0;
}
> Няша какая... А для скругления дивных уголков, небось, jQuery используете?
Если надо скруглить уголки у каждой третьей дивки, содержащей ровно две зелёные кнопки, и всё это на странице, которую я вижу на сайте незнакомого дяди, то да.
Во-первых, тот кусок кода был написан лишь для того, чтобы каждый желающий мог выполнить его в консоли своего браузера (это не было предложением вставить код на страницу для администрации ГК) и понять, о чём я говорю. Прошу прощения, если он не оказался кроссбраузерным.
Во-вторых, я не в силах выразить в CSS условия "у ul есть <= 1 детей li" и "у ul есть > 1 детей li". Не стоит говорить и о полном условии "у ul есть <= 1 детей li и этот ul находится внутри ul, у которого есть только один ребёнок li".
К тому же, надо будет переписать условия прекращения отступов, которое станет зависеть от содержимого дерева комментариев. Либо понижать вложенность не отступами, а перемещением нужных элементов внутри DOM.
В общем, решать вопрос следует либо на сервере, либо долго думать над CSS. Для всего остального есть JS.
Очень хороший тематический сайт о играх. Скачать игры очень легко и доступно каждому, тем более через торрент. Ежедневные обновления и всегда отличные игры. Отзывчивая администрация сайта ежедневно помогает всем, кто не понимает как запустить, установить или скачать игру. Сайт полностью уникален, никакого коллипаста. Всем советую!!! freepc-games.ru
Заходите к нам:
freepc-games.ru
1) Изобрести проблему.
2) Самолично решить проблему не самым очевидным способом.
Я так понимаю, скачанные файлы пришлось скачивать заново...
Из скрипта - проверю код возврата.
Из консоли - так она на stderr валит ошибки.
Что тебе не нравится, guest?
P.S. Более годный вброс по поводу *sum звучит так: "а считать sha1 от файлов в подкаталогах ты как собираешься?".
P.P.S. Или ты о том, что приведенная мной команда генерит чексуммы а не сверяет их? Тогда открой для себя опцию -c.
Файлы можно и самому искать, потери скорости при этом не будет.
>Я в курсе, кэп. Я просто говорил, что вброс об этом был бы лучше вброса об обработке ошибок.
Лучше - так вбрось. Я спросил то, что мне показалось важнее.
Теперь уже не интересно. Ты же уже написал, как эта проблема решается, а я согласился с данным решением.
> Я спросил то, что мне показалось важнее.
Ок.
> Какие ошибки ты собираешься показывать пользователю? Как ты собираешься показывать прогресс?
ОП'у надо было проверить файлы, а не писать мегаполезную тулзу с прогрессом и шлюхами. Эта вполне конкретная задача решается вполне конкретной командой sha1sum -c checksums. И я не думаю, что выхлоп этой команды кому-то окажется непонятным.
Естественно, если бы я надумал писать гуишную прогу для сверки хешей (а я никогда не надумаю ее писать, т.к. мне это нахуй не нужно, для насущных целей мне всегда хватало и консольной, задача унылая и не интересная, и платить мне за нее явно никто не будет), то я бы не пользовался бекендом в виде *sum, а воспользовался бы какой-нибудь вменяемой криптобиблиотечкой, которой можно скармливать поток кусками, а не целиком (ну или, как вариант, есть колбеки о прогрессе расчета).
Ну я же написал, что "я бы не пользовался бекендом в виде *sum, а воспользовался бы какой-нибудь вменяемой криптобиблиотечкой, которой можно скармливать поток кусками, а не целиком (ну или, как вариант, есть колбеки о прогрессе расчета)". Для чего, по-твоему, мне нужна загрузка кусками или колбек? А нужна она именно для индикации прогресса.
> А ты хочешь проверять файл на пару терабайт молча
Да, лично меня, (а не абстрактных юзеров моей ненаписанной сверялки сумм) такое поведение никогда не бесило.
Ты имел в виду, что если я напишу программу так, что она будет удобна не только для меня, но и для кого-то еще, то она не будет говнокодом? Ну да, в этом что-то есть. И этой мысли не хватает многим авторам опенсурсных программ.
А юзабилити и швабодка - вечная тема для холиваров, причем юзабилити как для юзеров, так и для программеров (в частности, в апинсорсе никогда не бывает коментов к апи, если не брать стандартные библиотеки языков).
Из того, что((нет рюшечек для юзера) или (нет комментариев) или (переменные называются А, В, С)) не следует что код - говнокод.
если переменные называются не A,B,C, и есть комментарии то код может быть как говнокодом, так и годнокодом
Сие я хотел сказать)
Ты можешь посмотреть кто что открыл, какая тулза тянет ИО(iotop) и т.п. - в кедах это можно даже в гуйне поглядеть.
Ты путаешь домохозяек и юзеров, поэтому не путай.
Спасибо, что ты об этом рассказал, буду знать, что ты настолько крут, что всякой хуйней не занимаешься.
Да не, хуйней позаниматься можно, если она интересная или за нее платят. Но кому нужна очередная унылая сверялка сумм, коих и без меня полным-полно?
Да легко: pv ubuntu.iso | sha1sum
Выглядит примерно так:
Я в курсе, кэп. Я просто говорил, что вброс об этом был бы лучше вброса об обработке ошибок.
А родителя можно показывать как на бордах, во всплывающем диве при наведении на ссылку на него.
Для последних коментов есть сток, он только работает хуево.
Да вот в стоке не последние комменты, к сожалению. Там один коммент на тред ;(
На мой взгляд удобнее было бы по клику выполнять скроллинг на комментарий, чтобы страница не обновлялась. Возможно, даже с эффектом подмигивания преамбулы комментария. Так будет виден весь контекст.
А чтобы можно было вернуться, показывать ссылки не только на родителя, но и на потомков в разворачивающемся по клику списке.
Зайди на двощ и протестируй.
>преамбулы
Это типа родитель? А что если он не помещается на экране?
Видел. Неюзабельно.
> А что если он не помещается на экране?
Можно сделать прокрутку по клику же.
Да ты охуел. Ну давай, предложи лучше.
>Можно сделать прокрутку по клику же.
Как на хабре?
Мне кажется, например, что «вилка вниз» неинтуитивно работает.
Есть такое. А если добавить кнопку для сворачивания всех деревьев потомков, так чтобы под данным комментарием оставались видимыми только корни этих деревьев?
В линейном такой херни нет. Да и там легко отложить тред на "почитать потом", постранично.
Дискуссии не такие разветвлённые получаются, но как по мне, это только плюс.
Как определять, что куда относится? Ссылки на родителя и на потомков.
Да и потом существуют компромиссные схемы с отображением двух уровней:
1. Корневые комментарии.
2. Ответы на корневые и ответы на ответы.
Примеры в действии:
А. http://holywars.ru/comments/653
Б. http://stackoverflow.com/questions/14589346/
Вроде и лесенки нет, и ветвление делать можно.
Первый, кто скажет съебнуть на лор - хуй.
Там просто в заголовке комментария есть ссылка на пост, на который отвечаешь, и можно удобно прыгать туда-сюда.
SO ни в жопу ни в пизду, коменты там очень неудобные и ссылка на автора не для этого. Ответы на ответы там линейные, да и формат ресурса не тот. Холиварс вообще непонятно зачем.
Примерная демонстрация:
P.S. Этот код не борется с
Если надо скруглить уголки у каждой третьей дивки, содержащей ровно две зелёные кнопки, и всё это на странице, которую я вижу на сайте незнакомого дяди, то да.
Во-первых, тот кусок кода был написан лишь для того, чтобы каждый желающий мог выполнить его в консоли своего браузера (это не было предложением вставить код на страницу для администрации ГК) и понять, о чём я говорю. Прошу прощения, если он не оказался кроссбраузерным.
Во-вторых, я не в силах выразить в CSS условия "у ul есть <= 1 детей li" и "у ul есть > 1 детей li". Не стоит говорить и о полном условии "у ul есть <= 1 детей li и этот ul находится внутри ul, у которого есть только один ребёнок li".
К тому же, надо будет переписать условия прекращения отступов, которое станет зависеть от содержимого дерева комментариев. Либо понижать вложенность не отступами, а перемещением нужных элементов внутри DOM.
В общем, решать вопрос следует либо на сервере, либо долго думать над CSS. Для всего остального есть JS.
гм
Протестировал программу на скачанных файлах.
P.S. Я пояснял guest'у почему fs.Close() в строке не достаточно. А про то, что в одноразовом коде на все это насрать - полностью согласен.
Заходите к нам:
freepc-games.ru