Вы читаете журнал [info]meettya

Предыдущие 10

15 Сент, 2009

аватар

Крик души. Сраная SMS-летуаль.

Запись опубликована FotoV.net. Пожалуйста, оставляйте комментарии там.

Млять, ну за каким хреном я оформлял черт знает когда в этой шараге чертову карточку клиента?

Как же меня заебали тупые SMS-ки с тупейшими акциями!!!

Почему руководящие бакланы в этой shady business establishment не придумали для клиента способа отказа от этой сраной рассылки?

Музычка на мудацкой “горячей линии” орет как резаная и разрушает мозг по полной - ее нельзя заглушить даже на минимальном уровне динамика. Хрен бы с ним, если бы при этом можно было дождаться оператора, так веть куй! В прошлое свое звонение мне минут через 30 какая-то далекая от всего сотрудница пообещала что-то куда-то передать, сегодня за 20 минут прослушивания говномузыки единсвтенного, чего добился - смены на гудки “занято”. 

Что это за нах?

Это - блядский сервис по русски - бессмысленный и беспощадный!

Это когда кучка долбоебов с баблом нанимает еще больших долбоебов без денег и все вместе они хуячат что-то называемое “бизнесом”, а на проверку - унылое гавно, цель которого - рапортуя о достижениях распилить побольше бабла акционеров и по-тихому свалить, рассказывая про “кризис”.

Work or die! Млять! Или ты ДЕЛАЕШЬ услугу или ты ее НЕ ДЕЛАЕШЬ! Накуй эти фанерные поделки в стиле “третьекласников на трудах”!

Достали, короче.

Кто знает, как гарантировано отписаться от их тупой рассылки по SMS

Как-бы нид хелп. Рыли.

Метки:

18 Авг, 2009

аватар

Субкультура. В тихом трауре.

Запись опубликована FotoV.net. Пожалуйста, оставляйте комментарии там.

Как-то совершенно случайно вляпался сегодня в “альтернативную субкультуру” - вские “упячки” и разные “двачи”.

Непередаваемое унылое гавно, если воспользоваться словариком папуасов.

Милые дети, в написании слова “Жопа”, ровно как и любого другого грубого, жаргонного или матерного -  нет ничего героического или смешного. Ваши герои - жулье да великовозрастные имбецилы.

 Имбецилы понимают речь окружающих, сами могутпроизносить короткие фразы. Речь бедна и неправильна, но более или менее связна. Мышление конкретно и примитивно, но последовательно,отвлечения недоступны, запас сведений крайне узок, резкое недоразвитие внимания, памяти, воли. Страдающим имбецильностью удаётся привить элементарные трудовые навыки, обучить чтению, письму, счёту. Некоторые имбецилы способны производить элементарные счетные операции, усваивать простейшие трудовые навыки и навыки самообслуживания. Эмоции имбицилов более дифференцированы, чем у идиотов, они привязаны к родным, адекватно реагируют на похвалу или порицание.

Цитата из Википедии

Просто задумайтесь на минуту - на что вы тратите свое время.

Метки:
аватар

Работаем с search-частью произвольного url

Запись опубликована FotoV.net. Пожалуйста, оставляйте комментарии там.

Под впечатлением от идеи создания библиотеки для работы с search-частью произвольной ссылки решил написать функцию, выполняющую ту-же задачу:
/**
* @version 0.2
* Функция для модификации GET-параметров uri
*
* @param {String} uri
* @param {String} paramsNew
* @param {Boolean} [isReplace]
*
* @private {String} $_
*
*/

var uriQueryParamsModifier = function (uri, paramsNew, isReplace, $_) { 
    $_ = (($_ = uri.match(/\?([^#]+)/)) && $_[1]); 
    if ($_ && isReplace) {
        return uri.replace(/\?[^#]+/, !paramsNew ? '' : '?' + paramsNew );
    }    
    if (paramsNew) {
        return uri.replace(/(#)|$/, (!$_ ? '?' : '&') + paramsNew + '$1');
    } 
    return uri;
}

* This source code was highlighted with Source Code Highlighter.

Возможно кому-то и пригодится.
UP. Качественный рывок читаемости кода - by Кирилл, любимая “перловка” $_ - от меня.

Метки:

17 Авг, 2009

аватар

О приличии

Запись опубликована FotoV.net. Пожалуйста, оставляйте комментарии там.

Я абсолютно уверен, что жестикуляция обогащает процесс общения на порядок, в частности помогая решить вопрос местонахождения того или иного обсуждаемого предмета или субъекта.

Так почему меня пытаются убедить в том, что “- Показывать пальцем - неприлично!”?

Уверяю Вас - палец это самая приличная часть тела, которой я могу на что-то указать!

Метки:
аватар

Откровения специалистов

Запись опубликована FotoV.net. Пожалуйста, оставляйте комментарии там.

Оцените всю прелесть последней фразы:

Принцип работы лазера, определяющего скорость.

Так называемые лазерные пушки более известны как лидар (LIDAR) - лазерный локатор определённого диапазона. Лидар генерирует невидимый пучок лазеров,<…>

Пучок, млять, лазеров!

Криворукие обЫзъЯаны.

Метки:

15 Авг, 2009

аватар

Суровые челябинские 1С-разработчики и как же юзать XSLT.

Запись опубликована FotoV.net. Пожалуйста, оставляйте комментарии там.

Озадачился я вопросом - а что такое “шаблонизаторы” и какой в них смысл?

Полез читать, да все как-то про “сипульки для сипуления в сипулярии”. Но за пол-дня в общем и целом начал осозновать, что именно имеют некоторые, говоря об отделении логики от представления и благе шаблонизаторов для больших проектов, где не нужно дергать кодера для того чтобы что-то где-то поправить, мол - “дизайнера это работа”.

Вся сложность восприятия этой темы возникает лишь из-за того, что есть настоящие шаблонизатор - например  XML -> XLST -> “Привет мир!”  и многие другие, по факту являющееся библиотеками расширения языка.

Что я хочу этим сказать? Да то что Smarty к примеру - не шаблонизатор, а лишь библиотека акронимов, позволяющая писать не знаю ни PHP ни Smarty, это лишь попытка объяснения на пальцах, не приставайте к коду)

{foreach from=$data item="entry"}
<div>
{$entry.Comment|escape}
</div>
{/foreach}

Вместо 

<?php 
//... а здесь мы пишем функцию, которая читает из базы и последовательно вставляет полученное нами в
$output = $output.'<div>'.$entry.'</div>'
//... и делает это наверное в цикле
?>

Т.е. разделения логики и отображения не происходит - мы просто используем расширение языка. Мы обязаны быть в курсе, какие именно переменные и в каком виде (какого типа) у нас возвращаются из основного кода, после чего в “шаблонизаторе” мы эти переменные используем для отображения.

Сериализации данных не происходит, а лишь сериализация позволяет гарантировать  ”чистоту” данных от логики источника. Я не говорю о том, что в сериализованных данных не может содержаться какой-то код, я говорю о том, что он перестает быть исполняемым. Адресат данных должен самостоятельно решать, как именно будут восстановлены полученные им данные, в “предложении” же должны содержатся как минимум и подлежащее и сказуемое для возможности самостоятельного восстановления сути сказаного. Содержащиеся данные не “подразумевают” чего-либо еще или не умалчивают о чем-то, они ровно то, что они есть. 

Ну например, если принять выражение -“Эта булка стоит 5 рублей!” за сериализованное, то варианты несереализованных выражений будут такими - “Это стоит 5 рублей! (Что?)”, “Булка стоит 5 рублей (Какая?)”, “Эта булка стоит 5 (Чего?)”, “Эта булка - 5 рублей!(Местная валюта-хлеб?)” ну и апофеозом будет “Это стоит денег (???)” и “Смотрите прайс-лист! (wtf?!)”.

Smarty позволяет разработчику сказать что-то типа “-Эта булка стоит 5 тышш рублей, потому что мы - пафосный бутик на Тверской!” и следует принимать решение на основе полученных от него данных и находясь в границах его логики. То есть начать соображать “- А, этож Тверская, тут же все дорого, значит надо баблос слюнявить как сказали”.

Сериализация позволяет отстранится от логики источника и вполне обосновано предположить “- Дороговато!”, соотнеся услышанную стоимость со своим представлением о том, чего должен стоить хлеб, после чего вежливо поинтересовавшись, не отведывали ли тут рыбного супа предложить продавцу отправиться налегке в пешее эротическое путешествие.

Сериализация - это пачка распечатанных фотографий из последней поездки, которые Вы прихватили с собой показать бабушке в деревне. Не-сериализованные данные - когда вместо распечатанных на матовой бумаге фотокарточек 13х15 Вы везете с собой Blu-ray диск, находя очевидным, что уж где-нибудь там найдется ноут с поддержкой Blu-ray.

Отлично, мы прониклись идеей, что “сериализация” есть благо, но при чем тут 1С?

Ну, они похоже этой идеей просветлились, во всяком случае г-н Рыжиков, создавший незабвенную виршу Иллюзии XML/XSLT технологий. Я лично смутно себе представляю, сколько и чего нужно раскурить, чтобы “я сам программист”, прочитавший 

много книг и учебников, в которых программистов и проектировщиков учили, что лучший способ создать шаблонизатор или абстрагировать внешний вид (представление) от данных - это загнать все в XML, пропустить потом через XSLT и уже на выходе получить HTML.  

наложил табу на back-end логику и 

Все восприняли это буквально и начали делать подобные продукты. Ну и конечно мы тоже наслушались и уверовали, что наше будущее - это XML/XSLT технологий.
Совершили подвиг, заставив XSLT шаблоны работать достаточно быстро, вложили кучу сил, времени и денег в разработку технологии… Самые большие каталоги товаров вмещали по 70 тысяч товаров. 

сделал вывод, что:

Как не стараются РАЗРАБОТЧИКИ, производительность XML/XSLT систем остается очень низкой, несмотря на все усилия индустрии. Да и как выжать эту производительность? Сначала данные из SQL базы преобразуются в XML (а это текстовый файл большого размера в силу своей структуры). Потом XML данные загружаются в XML парсер уже в серверной части, где они занимают еще больше памяти для работы XPATH, формирования индексов по XML данным в момент загрузки и т.п. Далее XSLT проходит по огромному массиву данных, получая на выходе опять же текст, который занимает память.

И искренне не понимал о чем идет речь, когда ему задавали вопрос - “Откуда берутся огромные объемы данных, если контента на страницу бывает кило 100 максимум???”.

Действительно, как же не взяться огромным объемам, если обрабатывать xml-дамп базы XSL-шаблоном?

Безумству храбрых поем мы песню!

Не менее весело читать “независимых разработчиков”, которые согласны с мэтром - “XSLT - тормоза и отстой!”.

Нет, ну вообразите себе - это ровно(в смысле абсолютно эквивалентно) как наткнутся в ЖЖ на топик

-Сегодня взялся за голые провода, стоя в мокрой ванне. Нехило меня током пиз#$%ло, 3 часа в себя приходил!

с толпой комментов:

- И я сегодня взялся за провода! И меня пиз#$%ло!

-+1, ванны отстой! Резиновые коврики рулят!

- Резина - отстой, лучше пластик!

- Сам ты отстой, и пластик твой - фуфел!

- Ответил за базар, что пластик - фуфел?

- Ха, да у меня друг - директор шинного завода, они там только резину и юзают, а не какой-то говнопластик. Не надо же тебе объяснять, как это круто - делать шины! Это не какой-то там свечной заводик в Урюпинске, это же production! 

- А меня так каждый раз током пиз#$%ит, когда я за провода берусь, достало!

- Да ты лошара, вот меня один раз пиз#$%ло в ванне от проводов, так я нахрен их вырубил в щитке в подвале! Чтоб ни меня, не мою семью, ни соседей не било! Надо же и об окружающих думать!

Клиника, одним словом :)

Пожалуйста, не делайте так!

Шаблон должен делать ровно то, что он делает - взять с полки и  укомплектовать товар аксессуарами, в зависимости от того - OEM это или Retail. Если Retail - то и диск положи, и шлейфы и мануалы на всех языках, и брелок. А если OEM - чихни в пакет для комплекта к самой железяке. При этом комплектовщик работает с конкретной железкой и каким-то конечным объемом аксессуаров, подходящих к этому устройству. Он не пытается запихнуть в коробку с видеокартой блок питания, потому что у нее есть дополнительный разъем - блок питания не входит в комплект по его ТИ, или вместо видюхи положить бутылку коньяка, метнувшись за ним в магазин, потому что это для “самого”. И уж тем более ему не говорят - “Вот видюха, вот склад комплектов - выбери чего-нить и сунь туда, ты же головастый малый!”

Разделение логики означает ее, логики, разделение -не более и не менее! (если Вас передернуло от такой формулировки - просто проигнорируйте, а если какая-то смутная догадка мелькнула в мозгу - перечитывайте до просветления)

У вас все еще есть база SQL с хреновой тучей записей (как и положено приличной SQL-базе); back-end который ходит в базу и получает от нее полтора десятка записей (в соответствии с запросом пользователя и логикой постраничного отображения, предписывающего отображать 15 записей, причем в названии не должно быть слова “Жопа” если в графе “Возраст” у юзера стоит “до 18”) на выходе заворачивающий результаты своей работы в XML; front-end получающий коротенький XML и накладывающий на него свою таблицу стилей ака XLST в результате чего получается новый XML-файл, в котором первоначальный узел <bullshit>Костюм и галстук - $5000</bullshit> меняется на <Haute couture>Костюм и галстук - $5000</Haute couture>.

А где же HTML? Да здесь он, родимый, просто в другом шаблоне - toHTML, для узла <bullshit> задано другое правило, трансформирующего его в <span class=”amazing” >, которое отдается клиенту тем же front-end-ом, если пользователь не умеет читать XML. Да, суть front-end-а именно в том, чтобы говорить с клиентом на одном языке, при этом ему пофигу о чем ведется речь - про шмотки или бухло. Он и о том и о том может, если суфлер-back-end подскажет, что вставлять после “Это очень крутая штука, наша”…

Короче, если Вы смогли это дочитать и все еще пытаетесь реализовать back-end как XLST-преобразование XML-дампа базы данных - прямая дорога вам в 1С, делать “Битрикс-ы” под руководством г-на Рыжикова. Или нет, не возьмут Вас за слова XML и XSLT, они же уже “накололись” на этом и больше так не “лохонутся”. Ну, тогда перечитайте еще разок этот опус или попробуйте написать гневный отклик на него, думая над каждой своей фразой.

Метки:

14 Авг, 2009

аватар

Мелочь, а приятно.

Запись опубликована FotoV.net. Пожалуйста, оставляйте комментарии там.

За сутки получил инвайт на хабр с ре-принтом своего измышления про регулярки

Приятно, однако.

Метки:

13 Авг, 2009

аватар

АбызЙаны - и этим все сказано.

Запись опубликована FotoV.net. Пожалуйста, оставляйте комментарии там.

Не большой любитель глумится над юродивыми, но это нечто.

Сайт с говорящим, в общем-то именем http://regexlib.ru (да, ссылки НЕ ставлю - не заслужил) с вот такими “шаблонами” :

Проверка соответствия формату даты: dd MMM yy

if (eregi('^[0-3]{1}[0-9]{1}[ ]{1}(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|
Sep|Oct|Nov|Dec|JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC|
jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec){1}[ ]{1}[0-9]{2}$'
, $subject)) {
	echo "Совпадение!";# Successful match
} else {
	echo "Нет совпадений!";# Match attempt failed
}

Что тут можно сказать ? Правильно - “Взял бы палку и убил! Нах#$%!”

Я уж молчу про логику поиска - совпадает исключительно с 2-х значным годом, но не мешает существовать 37 июлю - ну, может оно так и задумано.

Но, млять, святая простота - юзать регистронезависимый оператор eregi

This function is identical to ereg() except that it ignores case distinction when matching alphabetic characters.

ПЕРЕЧИСЛЯЯ при этом альтернативы Jan|JAN|jan !

Однако не это довело меня до белого каления, не-а… А вот этот “финт ушами” - [ ]{1} . Косорукая обезьяна ! 

Дайте мне этого Пупкина, и я буду пиз$%$ть его по рукам до тех пор, пока он во сне не научится писать \s вместо своего говнокода!

Про [0-3]{1} и (Jan|…|dec){1} просто промолчу, тем кто пишет [ ]{1} все равно ловить более нечего.

Магический сайт, с которым я достиг просветления. Ибо узрел, что же есть на самом деле try КГ/AM !

Метки:

12 Авг, 2009

аватар

Изобретая велосипед. Некоторые особенности JavaScript

Запись опубликована FotoV.net. Пожалуйста, оставляйте комментарии там.

Наткнулся тут на пост у John Resig о применении функции-в-замене для сжатия url из вида

foo=1&foo=2&foo=3&blah=a&blah=b в foo=1,2,3&blah=a,b

Оригинальная функция (by JR) звучит так -

var compress = function (data){
var q = {}, ret = "";
data.replace(/([^=&]+)=([^&]*)/g, function(m, key, value){
q[key] = (q[key] ? q[key] + "," : "") + value;
});
for ( var key in q )
ret = (ret ? ret + "&" : "") + key + "=" + q[key];
return ret;
}

немного пораскинув мозгами я сделал так -

var compress3 = function (data,stuff,q) {
stuff = data.split(/[=&]/); q={};
for (var i=0,len=stuff.length;i<len;i+=2)
q[stuff[i]]=(q[stuff[i]]?q[stuff[i]]+", ":"")+stuff[i+1];
stuff = "";
for (var key in q)
if (key) stuff=(stuff?stuff+"&":"")+key+"="+q[key];
return stuff;
}

Моя функция оказалась вдвое быстрее.

JavaScript чертовски быстра при работе с объектами, намного быстрее чем при работе со строками.

Да, там же есть вот такая “красота” -

function compress(data) {
data = data.replace(/([^&=]+=)([^&]*)(.*?)&\1([^&]*)/g, "$1$2,$4$3");
return /([^&=]+=).*?&\1/.test(data) ? compress(data) : data;
}

Не делайте так. Мало-мальская строка может подвесить клиентский браузер. Рекурсия со строками и регулярными выражениями - худшая смесь.

Метки:

11 Авг, 2009

аватар

Re-cycle, или кому журналов занедорого?

Запись опубликована FotoV.net. Пожалуйста, оставляйте комментарии там.

Решил тут от большой заботы о экологии убить пару бобров спасти пару деревьев. Да и жить негде от ненужных вещей.

Если у вас есть, где приютить вот эту стопку журналов-газет по автотематике 

- готов передать в Москве в добрые руки за символические полторы тысячи рублей (1500р.)

Особенно рекомендую наборчик, если у Вас есть: автосервис, диллерский центр или мужская парикмахерская.

Дальше - несколько групповых фото того, что входит в пачку.

Читать запись полностью »

Метки:

Предыдущие 10

аватар

Сентябрь 2009

Вс Пн Вт Ср Чт Пт Сб
  12345
6789101112
13141516171819
20212223242526
27282930   

Метки

Трансляция

RSS Atom
Разработано LiveJournal.com