Freelance days  

Posted in , ,

Дела во врилансе снова пошли в гору. Но сначала было очень хреново.
Хреново было потому, что я 4 месяца после основной работы занимался одним крупным проектом. Проект был вообщем интересныйи отдали мне его по дружбе сделать за копейки.
Я человек добрый, наивный - взялся. Но что меня ожидало ? Меня ожидал полный неадекват.

Поговорить с заказчиком о проекте не удавалось. Просто вопрос в стиле "как вам тут будет удобней" превращался в многочасовые монологи заказчика о его планах или просто отвлеченные вроде бы не большие просьбы. Через 3 месяца весь внутренний код пахал, но требовал ещё тщательного тестирования в мелочах. Из них 1 месяц был потрачен вхолостую на переписывание уже имеющегося кода - большая и хитрая самописная ЦМС активно этому сопротивлялась из-за кучи хардкода. Выбить из заказчика чего он хочет было практически нереально и при том все интерфейсы ему не нравились и вообще он считал что фейс аля gmail - это само собой подразумевающиеся вещи. Голод и откровенная непруха сделали свое дело - я морально сдулся и напарник мой тоже.. Проект стал вялотекущим. Но мы взяли себя в руки и допилили. Оставались недочеты вроде "Я-же просил поменять эти колонки местами" или "зачем мне видеть лог работы". Терпение уже кончалось. Четкого ТЗ небыло, код был сложный и из-за неимоверного объема и мизерной цены я два раза менял направление разработки.

И тут настал волшебный момент, когда рекурсивный парзер перестал работать из-за того, что админы "удаленного" ресурса ввели защиту от роботов. Меня попросили это переделать, точнее фактически потребовали. Потом заявил что ничего не готово, ничего не работает и будет за просрочку брать штраф. (изначальный срок был 2 месяца). Закажчик естественно был жутко недоволен, а я был просто в бешенстве и уставший от этого полоскания мозгов. В конце концов говно полилось через край и каждый остался при своем. Мы при коде, заказчик при деньгах.

А теперь для общего понимания глупости всего произошедшего.
Что было сделано:

  • Интерактивная админка, связанная с сайтом только по БД, при том проверяющая целостность БД и полной защитой от дурака.
  • Переписаный рапидлич (rapidleech) под автономную (консольную) версию, привязка его к БД, полное логирование.
  • Грабер, который грабил закрытый форум, искал в нем нужные линки на файлы, проверял их, декодировал (отслеживал редиректы) и записывал в БД.
  • Менеджер задач, которым управлялось скачивание файлов по сграбленым линкам и перезакачивание их на другие файлообменники (куски рапидлича)
  • Перед закачиванием архив (с некоторым музлом по дефолту) раскрывался, в нем делался полный дебрендиг, переписывание всех тегов (в mp3 например), переименовывание файлов, удаление хлама и запаковка обратно.
  • Генерация NFO по нестандартизированным, нетипизированным данным из архива.
  • И много мелкого лютого гемороя, вроде поднятия упавшего сервера (по дружбе), настройка хостингов, решения вопросов с саппортами и т.д.
И все это в итоге за 15 000. Заказ был не принят из-за Граббера, который стал неактуален и интерфейса, который по мелочам не радовал заказчика. Ну да, в последний момент нашелся баг и тут-же был исправлен.


История о чудесной связке идиотизма и наивности. На публику о конкректностях распростронятся не буду. Кому станет любопытно - обращайтесь в приват.

pause  

Posted

Пауза. Или пост заполняющий пустоту таймлайна.
Почему пауза ? Потому что доделываю большой проект и занят своими проектами.
За прошедшее время удаленной работы скопилось много экпириенса по software и wetware.
В частности в мире фриланса. Анонсирую прогноз своей деятельности или продолжаю анонс.

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

Наконец собралась небольшая команда, в которой хочется свернуть горы. (Да, приглашаю квалифицированых людей работать вместе). Команда - это прекрасно. Ключ к созданию команды - одноранговость и взаимопомошь.

Также ближайшее время есть неуемное желание "зарелизать" множество кода, который я естественно считаю крайне интересным. От того, как пойдет этот код в народ будут выбраны темы для развития. Идеи есть самых различных направленностей. Начиная от SEO, заканчивая играми с семантикой.

P.S. Спасибо за внимание, рад любым положительным контактам.

Unicode and UTF-8. Рвем волосы на голове.  

Posted in ,

Unicode. Как много в этом слове. Сейчас использовать юникод в вэб приложениях - это уже не просто хороший тон, а стандарт.

Но с юникодом бывает много проблем, т.к. для начала наиболее расспространенные операционные системы используют "снаружи" однобайтовые кодировки и на этапе создания основных языков програмирования поддержка UTF не была заложена. Юникод был предложен как универсальная кодирвка в 1991 году, и в 1993 уже использовалась версия 1.1. Сейчас при слове "юникод" у большенства всплывает в голове аббревиатура UTF-8. Но честно говоря UTF-8 - это не юникод. Чуть более внимательно вчитавшись в определения можно подчеркнуть, что "Юникод" - это стандарт кодирования символов. А UTF-8 - кодировка, реализующая представление Юникода. Основная черта UTF-8 заключаеться в том, что первые 128 символов совпадает с ASCII, что дает обратную совместимость с ПО "не умеющим" юникод.

Всеже "Настоящим" юникодом считается UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE. Собственно первая версия кодирования юникода была 16-битной, с фиксированной шириной символа. Windows начиная с 2000 внутри себя использует UTF-16LE. В мире *nix принято использовать UTF-8.

И наконец о том, как все это касается нас. Редактирование файлов в нужной кодировке, темпаче если она отличается от системной становится не найтивной. Впрочем всегда решается удачным редактором, или толковым IDE. Для простых целей - это EditPro (win) и JOE (*nix). Тексты - это только пол беды. Оснавная беда - это языки програмирования. Про С/С++ говорить не имеет смысла, т.к. язык достаточно низкого уровня и собственно является основой для всего остального. А все остальное - это как минимум JAVA, Perl, PHP, Python, etc..

О некоторых тонкостях стоит рассказать. От простого к сложному.
JAVA - найтивно поддерживает юникод. JDK 1.5 полностью реализовывает стандарт Unicode 4.0.
PHP - впринципе при работе с UTF-8 не возникает никаких проблем. Пока речь не доходит до регулярных выражений и мультабайтных строчек. Есть несколько библиотек, которые решают возникающие проблемы, не считая iconv конечно. Собственно для поддержки всего рациона кодировок в PHP есть mbstring.
Perl - изначально работает на своей собственной кодировке, т.е. имеет внутренние представление текста. Впринципе при работе с однобайтными кодировками это не заметно, т.к. кодировка определяется автоматически. В остальных случаях её следует указывать для источника данных и для вывода. Тут неплохо об этом написано. Вообщем ясная документация дает все ответы:
http://perldoc.perl.org/functions/open.html
http://perldoc.perl.org/Encode.html.

Пример работы с разными кодировками в Perl:
open(SQLFILE, "<:encoding(UTF-16LE)", $SQL_files{$item})
$current_sql_query =~ s/\x{FEFF}//g; ## срезаем спецсимволы.
$current_sql_query_utf8 = encode("UTF-8",$current_sql_query);

Об остальных языках я пожалуй говорить не буду.
На закуску, настоящий юникод: http://www.unicode.org/~scherer/emoji4unicode/snapshot/full.html

Да, есть ещё одна забавная штука - юникод в виндовой консоле.
Ставим PowerShell, в нем помимо иных возможностей можно менять кодировку на лету:
$OutputEncoding = [System.Text.Encoding]::UTF8

Другие материалы:
http://docs.activestate.com/activeperl/5.10/lib/Encode/Unicode.html
http://www.utf8-chartable.de/
http://www.php.net/manual/en/regexp.reference.php
http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php
http://www.mapbender.org/Encoding_UTF8/ISO8859-1#utf8_decode
http://webcollab.sourceforge.net/unicode.html

rapidleech and rapidget.  

Posted in

По работе встала передо мной простая по сути, но не самая тривиальная по технике проблема: Массовое скачивание и закачивание файлов на файловые хостинги, при том, чтобы пользователь орудовал только списками этих файлов не более того.
(для гугла: php download script filehosting или php filehosting mass uploader)

Почесав репу я поинтересовался у гугла, кто и как решал такую проблему. Потому что я не первый - это уж точно. И первое, что я нашел - это был rapidget. Второе - это rapidleech.
Как-то более мне приглянулся рапидлич, хотя большой разницы нет. Но она таки есть.
Кто с кого попер код я не стану судить, но оба скрипта выросли из одного начала. Более причесаным выглядит первый, наверное потому что переписывали таки русские.

Далее надо было встроить скрипты в имеющийся код и сделать из них консольные качалки.
Тут начались первые проблемы, т.к. кроме плагинов аплода/даунлода код представляет из себя большую свалку HTML, CSS, JS и PHP соответственно, но разобраться можно.

Разбираться я стал с рапидличером, т.к. он поновей будет и у него хорошее коммунити.
Краткая история такова - вырезать весь ненужный для консоли код из файлоа http.php и other.php. Для даунлода можно почистить audl.php, оставив там лишь обработчик формы.
Для аплода все немного хитрей - надо добавить цикл (если много файлов) в файл upload.php (auul.php можно даже не открывать) и тоже поменять GET переменные на иные нужные. Впринципе в таком сильно обрезаном варианте скрипт можно встраивать.

P.S. Писал немного второпях, такчто извиняюсь за сумбурность.

silence before something  

Posted in

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

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

Я убежден, что работа по принципу "не хочется но надо" - есть мучение за ничего. Конечно может принести деньги, на которые можно будет хорошенько напиться от тоски несусветной. Если-же деятельность человека гармонирует с его желаниями и подкрепляется талантами то человек находится в потоке и ему не нужно себя заставлять. Всё делается "само собой", легко и непринужденно. И все компоненты складываются в хорошие результаты по всем фронтам. Безусловно "без труда не выловишь и рыбку из пруда", рутина есть в любом самом приятном деле, но труд труду - рознь.

Очень популярно нынче сравнение "работы на себя" и "работы на дядю", но всегда опускается такой момент - работая на себя ты можешь стать "сам себе дядей" ещё злобней и ненависней того, что был до этого. Особенно если силы воли достаточно.

Надо знать себя, надо пробовать многое, надо понимать что происходит и чего тебе нужно, а не просто гнаться за первым что сулит "успех".

Вышеидущий текст несет в себе много скептиса и субъективизма, но отражает несколько мыслей которые давно хотелось высказать. Множество раз можно опровергнуть каждое слово и эти опровержения будут обоснованными и верными, всей многовариантности не описать.

P.S. Хотел написать "вдохновлятор" для себя и для вас, но написал то, о чем думал.

kowloon walled city culture.  

Posted






Обещанное продолжение рассказа о KWC разбавленное фотографиями. Все таки о жизни внутри рассказывать смысла нет - в инете таких пересказов первоисточника полно. Расскажу о другом. Я не зря начал с истории Гонконга в прошлом посте, дело в том что Гонконг сам по себе населен очень густо и является портом денег в китай. Гонконг стремительно растет в основном за счет эмигрантов.


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


Коулун оставил заметный след в мировой культуре, хоть этот след и не сразу заметен. В некоторых фильмах использовались пейзажы Коулуна для подчеркивания особенной атмосферы перенаселения, атмосферы высшей степени урбанизации, когда солнечный свет не проникает на "нижние уровни". В англоязычной википедии есть некоторый перечень произведений, в которых упоминался или использовался KWC. (ссылки ниже)
И наконец почему KWC столь интересен для меня и мне подобных ?
Дело в том, что KWC впринципе можно считать олицитворением социальных, политических и экономических парадоксов, о которых в частности рассказывается в GITS. В GITS вообще часто косвенно ссылаются на KWC. В первой часте в самом начале было брошенное гетто, в GITS SAC 2 действие вообще разворачивалось вокруг места, подобного KWC места. Вильям Гибсон собирался снимать в KWC некий фильм, совместно с японским режисером Сого Исшии, но не успел. Battle Angel Alita, ShadowRun..

Но если представить себе во что мог превратится такой "оазис" доживи он до дней "повсеместного интернета" то сразу открываются просторы для размышлений и фантазий.
Коим и придался всеми нами уважаемый Гибсон в новылах "Виртуальный свет" и "Идору", где Коулун представлен как виртуальное гетто, простор сетевого/виртуального беспредела.


Далее просто фотографии.
http://www.youtube.com/watch?v=KEo6ogAnoZ8&feature=player_embedded

P.S. На подготовку поста ушло 3 часа, не смотря на то, что многие материалы уже были собраны. Всеравно не рассказал обо всем, о чем хотел рассказать и в чем хотел разобраться.
Если вам интересно, то продолжение следует, если нет - то не буду зря время тратить.

metanews


Add to Google