Dark

MpaKus Dominion - блог о кино, музыке и веб-программировании

несколько жизненных трендов

Последний рубеж (Homefront) // 2013
Dark
mpak666
Рецензия на фильм Последний рубеж (Homefront) Сюжет из под Сильвестровского пера прост: Джейсон один из агентов отдела по борьбе с наркотой под прикрытие в отмороженной банде байкеров. Как вам? Тепло? Яйцы на слове Anarchy зачесались? Дальше больше, Стэтхэем хайрастый и очень напоминает нашего Дона Балдиньо в его молодые годы :killumnik: Сейчас фото не найду, но вот-вот и сходство на 99.9% подробнее о фильме "Последний рубеж"

Советник (Counselor) // 2013
Dark
mpak666
Фильм Советник - рецензия от музыкального портала РокУфа Если человек талантлив и упорен, то дайте ему 10 000 часов или 20 миллионов долларов и...

В общем есть один из величайших режиссеров Голливуда - Ридли Скотт, есть пулитцеровец Кормак Маккарти известный сценариями как "Старикам тут не места" оскара получил, а за "Дорогу" (пост-апокалиптическую драму с Вигго Мортенсеном) еще и Пулитциревоскую литературную премию. И кучка известных на весь мир актеров как Кэмирон Диаз, Брэд Питт, Пенелопа Круз, Хавиер Барден и начинающий мелькать Майкл Фассбендер. И тут ты включаешь экран... полная рецензия на фильм Советник тут

Олдбой (Oldboy) // 2014
Dark
mpak666
Oldboy - рецензия на американский ремэйк Блядь.

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

Черта под 2013-ым годом
Dark
mpak666
Долго как-то не хотел писать, лень было и слов не находил, попробую в кратце. Тем более тут как раз ЖЖ обновил интерфейс, сделав его еще говенее, так что думаю это уже будет последний пост тут и найду таки время перевести все это в свой блог.

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

+ Много работал и мой инструментарий полностью покрыт тем, что мне нравится: Ruby, Rails, CoffeeScript, MySQL, MongoDB, Faye, Sinatra, Backbone - это то с чем я сталкиваюсь каждый день и эти встречи меня не тяготят, я уверен, что люблю их.

+ Я начал изучать и пробовать в деле новые языки: Objective C для написания iOS приложений, но дело пока отложено из-за нехватки времени, Go - для меня это C каким бы он должен был бы быть, элегантный, интерфейсный, горутиный :) Хорошие языки и я думаю, уже скоро продолжу изучение их и сделаю свои первые проекты на оных.

+ Я поднял за год много камней для опыта в плане ПМ. В общем-то я и раньше не плохо разбирался в проектах и понимал, что можно успеть в срок, а что нельзя и где на самом деле сроки занижены, а где надо было умножить на 3.14 раза, но в этот год было нечто невообразимое. Я убедился, что могу найти людей, которым поставить можно расписать задачи, запланировать и не сорвать сроки по запускам проектов. Но это люди с которыми работал и знаю, что и какие сроки ожидать, если еще есть четкое осмысление или доверие от клиентов, то получаются действительно стоящие продукты. Пусть даже не всегда большая часть кода написана и мной. Но продукты на которые приятно смотреть и даже дальше возможно использовать.
Но есть и обратная сторона, есть проекты в которых кол-во левого народа от которых не ясно чего ожидать, которые как могут слепить говно и сорвать сроки, так и сделать все во-время. Тут как повезет, как ляжет монетка и в целом людям даже при условии денег - срывать названные ими же сроки не проблема. В общем или у меня пока не клеится, но даже два найма junior помощников закончились довольно плачевно, даже при условии четких задач, дизайнов на руках и обговоренных денежных сум с их стороны без какого-либо занижения приходилось тянуть и ощущать, что разработка ведется емким словом "на отъебись". У людей которые называют свою сумму и сроки, при этом их не демпенгуют - нет заинтересованности соблюдать четкость выполнения задач и сроков. Это печально, но в общем-то фактически это так, при том, что я ведь как раз тот "заказчик", который понимает, что ему надо на выходе, которые дает четкие ТЗ и сроки в 3 раза выше. Тут не то чтобы тянуть и срывать, тут их сделать бы и двигаться дальше, попутно спрашивая, как и что сделать новое.
Я могу это понять например в больших проектах, которые я сам не могу никому отдать, ибо там и так не ясно ничего, что хочет клиент (точно он знает, что хочет, а вот КАК? - это его основная проблема) и приходится быть в условиях мизерных бюджетов строить из себя и дизайнера интерфейсов и решать проблемы кода и поддержки бэкенд вещей, такие вещий я понимаю, что никто кроме меня самого не осилит. Но последний случай с запиливанием нескольких форм и бэкенда на скаффолдинге в 2 НЕДЕЛИ меня конечно удивил, неожиданно причем. Но надеюсь в этом году я таких провалов допускать буду меньше. А так в общем-то как обычно по статистике на 2 отличных проекта приходится 1 какое-нибудь странное стечение обстоятельств, в общем-то к этому стоит привыкнуть.

+ Проблемы с ПМ меня вынудили взглянуть и по новому на тайм-менеджмент и планирование. Сложная тема и порой ну просто не зависящая от нас.

+ Еще раз удалось посетить Chiangmai, отличное место, люблю этот город, когда-нибудь обязательно вернусь туда, но пока дыхание моря ближе.

+ Я побывал в Куала-Лумпуре в 3-ий раз, на этот раз посетил концерт METALLICA, зрелище охренительное, жалею, что не было у меня профи-фотика, только телефонное видео на память, но в целом это мой первый безалкогольный концерт (малазия страна муслимов если чо) и запомнится он мне на долго :)

+ Побывали на Малазийском Пенанге, в целом тоже не плохое место, но надо приезжать на большие сроки.

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

+ Встретили НГ на острове Ко Тао - в общем-то это упоротая дыра дырой, сам новый год встретили отлично, но в общем-то за этим ехать на ко тао не надо было, так же можно было на Самуи встретить, чего-то нового этот "черепаший" остров для меня не открыл, только, что там полно наглых бирманцев работающих нелегально, завышенные цены и говеные дороги.

- Ну и многое за год не удалось сделать, не выучил шведский, ни норвежский. Хотел подтянуть лучше английский.
Рабочее не все закрыл, что хотел. Многое не сделал, что планировал и хотел, самое обидное, что проблема во времени и зависимости от других людей. Не успел запустить один большой, но уже изрядно измотавший меня проект, который таки хочется доделать и пустить в мир плавать, ибо потом я возьму таймаут на создание всяких социальных-дэйтинг сервисов по дешевым ценам с непонятными требованиями. Увы, не запустил ни одного своего проекта, какие-то open source https://github.com/mpakus мелочи на коленке вообще считать за проекты еще даже нельзя. Не сделал кучу сторонних проектов, что планировал закрыть до конца года, но уже как бы пора доделывать, запускать и искать новые. Все это переходит в новый год, в общем-то гнетет конечно, но надо с этим быстрее разбираться и уже искать какие-то новые проекты или же даже подумываю может найти какую-то удаленную постоянку на определенные часы, чтобы и стабильно иметь некое дело приносящее доход и главное развитие в команде, последнее за год кажется стало очень немаловажным, ибо играть надо с сильными игроками, а иначе пиздец. Да и а в свободное время пилить свои проекты, коих скопилось уже с горкой и есть ряд действительно полезных и на мой взгляд интересных идей, которые можно запускать как сервисы и продавать даже как продукты.

В общем планов на 2014-ый много, громадье просто, остается только не опускать руки, доделывать старые дела и начинать новые.
Чего и вам желаю тоже: "Да прибудет с вами СИЛА"!!!
Метки: , ,

Дистанция для мысли
Dark
mpak666
Remote DHH 37signalsБудущее уже рядом. Оно приближается во всем, от создания улучшенных электрогибридных каров Tesla до 3D печати оружия из металлического поршка в домашних условия.
Для себя лично я сейчас вижу и ощущаю два трэнда: дистанционное образование и удаленная работа.

Дистанционное образование. Сейчас это трэнд, сервисы плодятся как грибы, можно учить все от физики до машинного распознавания (привет Coursera) до иностранных языков (привет English-Central, Live Mocha и LinguaLeo). А сколько еще всяких программистских курсов от CodeSchool, Khan Academy до казахской альтруистической Hexlet. Действительно, поток информации и знаний поступает огромным шквалом, читая лишь один интернет можно изучить все науки мира, но нужно сперва знать конечно же английский.

Удаленная работа. Тут и ребята из 37Signals выпустили еще книжку REMOTE, читать стоит обязательно, чего стоил их REWORK, который можно просто на цитаты на стену разобрать. Я смотрю на это все со своей стороны, но работа ИТишников все ближе и ближе подходит к удаленным вариантам. Сидеть на острове сегодня, завтра лететь уже в Лондон, при этом лаптоп нежно греет коленки, а клавиши настукивают очередной блого-пост или код огромной риал-тайм форекс биржи. Уже совершенно нет, что могло бы заставлять по два часа в день ехать в офис и заморачиваться обсуждением последних киноновинок просмотренных за выходные вместо хорошо потраченного времени на код. Стены офиса не нужны. Это ясно и без книги.

Но все это еще на подходе, есть множество вещей которые надо преодолеть.

Дистанционное образование - еще далеко от удобства преподнесения и так и нет приятственной тактильной связи между учеником и учителем. Сейчас все сервисы дистанционки построены предельно в одном ключе: лекции (видео, аудио, текстовый материал), домашние задания (интерактивная песочница), тесты, курс сдан.
При этом на курсе идет поток, это конвеер, 3к пользователей одновременно читают курс "Node.js для слабоумных", но у всех людей возникают вопросы, мысли, им просто не хочется делать безумно глупые и оторванные от его текущей реальности задания. Тактильный контакт с преподавателем и оторванность домашних заданий от пользовательской действительность - это две задачи которые надо решить, у меня есть ряд мыслей как это сделать и реализовать, но пока я оставлю их в своей голове, лучше это показывать, чем описывать.

Удаленная работа, с ней тоже не все так гладко. Проблемы есть и они как на поверхности в виде "дисциплины", а вглубине "сложности с управлением проектов" и выразительность инструментов.
- "Дисциплину" можно просто выработать, но над этим нужно работать и нужно время и само осознание, что форс-мажоры есть, были и будут, они случаются независимо человек сидит у вас в офисе (сегодня он пришел, а завтра не пришел, надоело, заболел любимый кот или его мучает понос так как он пережрал спелых манго) или же это же самое случается удаленно. Тут менять сознание нужно не только работадателя (чтобы он пустил сотрудников в плавание), но и самого работника, есть действительно люди которые не могут работать в одиночестве, наверное есть, я таких не встречал. Но создать атмосферу и условия дисциплинированного рабочего места даже в условия удаленки можно всегда. Для меня это простые вещи: удобный тайминг в удобное время в удобном стуле за удобным столом, кому-то нужно еще что-то, например фотообои Ниагарского водопада или ежечасовой popup с калькулятором подсчитавшим сколько он заработал денег за этот час.
- "Управление проектов" тоже решаемый момент. На рынке сейчас море систем и методик, сотни инструментов и тысячи "коучеров", которые бла-бла знают как управлять созданием продукта, тикеты, аджайл и прочий снафф стафф. Каждый решает сам чем пользоваться и как, идеальных инструментов нет, я перепробовал множество решений для управления проектами, но пока той самой системы не нашел, я пользуюсь до сих пор Redmine + Wunderlist и меня это не устраивает. Как обычно у меня есть свое решение и в какой-то момент я решу, что достаточно заниматься чужими проектами, что есть у меня некоторое время, чтобы сделать свои накопленные идеи и пустить в жизнь, тогда возможно я сделаю свой очередной софт для управления проектами, пока что смотря как пользователь систем нечто такого, что сформировалось из потребностей у меня в голове я еще не видел.
- "Выразительность инструментов", это пока основная сложность, еще бы я назвал этот момент как "сложность коммуникаций" или проще, что всегда проще подойти к монитору и тыкнуть, что "вот эта кнопка должна быть на 10 пикселей левее заголовка". Инструменты есть, но это такой же зоопарк, что и с пунктом выше. Пока я решений не вижу, но технологии развиваются быстро, так что leap motion + веб-камера и webrtc скоро могут дать нам возможность легко создавать голографическое присутствие директора у вас за спиной и тыкающего пальцем (который кстати не оставляет жирных следов на экране монитора)!

Будущее рядом и оно уже входит в нашу жизнь. Можно упираться и жизнь по старому, ходить на работу, читать в метро бумажные книги Достоевского и материть клиента, который хочет зеленого Салавата Юлаева на фоне горящей Уфы... А можно уже вкушать дистанционно обучение, осваивать новые знания через Интернет, отхватывать кусочек интеллектуального пирога и предвкушать, что когда-то можно будет с утра выходить в трусах на балкон с пальмой открывать свой легкий лэптоп прямо за кофейным столиком и пока заказанная по интернету пицца едет к вам на завтрак можно написать свой гениальный код для разворота зеркал, чтобы не смогли отразить солнечное освещение на темную часть города находящегося в горной долине.

Метки: ,

Неожиданные факты за месяц
Dark
mpak666
Не знаю с чего бы это, но захотелось это отметить, что за последний месяц:

- я пока учусь управлять временем, получается все лучше и лучше, но уже точный факт, что я отрегулировал сон. Если в России было невозможно работать днем и приходилось работать вечером и до 2-3-х ночи, то сейчас я выровнял графики, о тайминге дневном я расскажу попозже, сейчас стало просто, что если ложишься в час ночи, то по будильник стоит на 8 утра. 7 часов самое оптимальное время для сна, оказалось для меня, подобрал опытным путем. Время проснувшись после которого весь день нет желания пойти и поспать! Неделю было сложновато входить, но потом... сейчас встаю даже без будильника. Но большей проблемой для меня было не встать, а лечь. Т.е. заставить бросить все, не оконченный код или недосмотренный фильм и пойти спать. Но так же неделя ровного сна и планирования, то входишь в калею без проблем.

- с сайтом kickass.to я полностью перешел на фильмы на английском, все думал, что буду пропускать какие-то сложные моменты и недопонимать, но... В целом если не смотреть всячески фильмы в околонаучной тематике или драмы с кучей диалогов, то фантастика, комедия, триллеры заходят на ура. Сериалы кстати тоже, речь Уолтера Вайта из Breaking Bad вообще прекрасно понимается, вообще американский на ура у меня всегда шел. У меня скорее с британским, что на работе было когда бритов и ирландцев я процентов на 40-50% улавливал только или когда американцев или неродной язык (французы, испанцы, румыны) то на все 90%. Так и по фильмам видно, например Саймон Пегг в The World's End сразу резкий скачек акцентов, хоть и говорят о всяких простых вещах, но акцент заметно разница с привычным уху.

- язык заметен по книгам тоже. Понятно, что техническую литературу читать на английском стало уже нормой, вот только не вся она заходит. Вот например, прочитал я книгу от гуру этой базы Kristina Chodorow - Scaling MongoDB, язык автора сразу видно, очень сложно читается, конструкции простые, но написано сухо, без остатка правил. Или вот индус Gautam Rege - Ruby and MongoDB web development, я осилил почти на 200 страниц из 300, но воды в тексте и каких-то дико бессмысленных примеров и исходников море, да такое что авторский текст тонет, ну и видимо книги в виде рецептов хороши, но в определенных ситуациях, когда книга и называется рецепты, а вот учить на рецептах как-то необычно и не думаю что эффективно. Это неотвадило меня от MongoDB и не отбило у меня желание постоянно работать с этой базой, скоро это будет мой второй проект на этой базе, она реальна хороша, если умеешь страховаться и понимать самую суть.
А вот другой пример AngularJS - Brad Green и Shyam Seshadri написано очень и очень приятным языком, объясняется что и зачем, сраниваниваются плюсы минусы, решения разные показаны и главное текст и язык книги легко проглатывается, читается книга на Ура!

- и вообще на удивление мне начал нравится AngularJS! То ли я в конец обленился писать кучу кода для Backbone, но в целом моя претензия к AngularJS, что он гадско заворачивает код и представление и подменяя своим ng-* уже устоявшиеся правила снимается. Не так все страшно и не больно, возвращаться к стилю onClick за место него ng-click конечно слегка кажется странноватым, но выигрышь в другом месте побеждает.
Могу порекомендовать 2 сылочки для начала познания бусидо ангуляра:
https://shellycloud.com/blog/2013/10/how-to-integrate-angularjs-with-rails-4 и http://toddmotto.com/ultimate-guide-to-learning-angular-js-in-one-day/
А дальшей пойдет как по накатанной, главное не упираться в том что single page должен быть всегда на одной странице и без перезагрузки, по мне так если вы переходите например от админки пользователей к админке страниц, то нет ничего страшного перейти на другую страницу полностью отрендерив страницу. Меньше крайностей и перфекционизма, автомат должен стрелять и попадать в цель, а не блестеть своим золотым рожком! (с)
То есть если что-то средних размеров в приложении с возможностью переходов между страницами и с привычной логикой и быстро накидать не боясь "магии", то AngularJS самое милое дело. Если хочется держать все под контролем, куча временим и готовы писать много кода, то однозначно Backbone.

- и страшное, мне вполне нравится Turbolinks - это просто! Главное опять же цель и задача. Вот например у меня на админках бэкэнда сгенерированного из scaffold'инга, покрашенного и слегка измененной логикой, связями, с натянутым Turbolinks + nprogress-rails все становится быстрее, краше и удобно появляется прелоадер как у Youtube сверху. У меня минимум JS (Coffee) кода потому меня не заботит, что у Turbolinks нет реакции на загрузку страницы, я прописал все события один раз через $(document).on 'page:load' и я это вынесу, что он "кэширует" 10 последних страниц, все равно формы не обрабатывает и страница в какой-то частый момент будет перегружена. Wiselinks тоже хорош, но там много ручной работы для проставки ссылок и блоков, это эдакий Backbone путь, когда хочется уже контроля, в то время как Turbolinks это путь AngularJS поставил и работает когда может :)


Связи
Dark
mpak666
Хотел было много написать, да потом подумал, что можно кратко поделиться своим мелким ощущением, что выбираемые инструменты разработчиками наносят свои отпечатки на эти периоды. Не только на ощущения и воспоминания, но и на сам код конечно же.

Сегодня обратил на это внимание, заострив на базах данных, у меня сейчас MongoDB в одном проекте и в другом MySQL.
Я вот циклично пробегаюсь в памяти, как я писал в самом начале, что и баз-то не было, а какие-то файлы "сериализованных" структур. Потом первой базой была Interbase (Firebird) кажись так правильно называлась. Код тех времен на Delphi и C++ я практически уже не помню, ощущения тоже, помню окрыляло меня все.
Потом, когда резко ушел в веб, базы стали разнообразными от flat-файлов, сериализованных массивов, до MySQL версии 3 кажется и больше всего я Berkley любил, так сказать откуда key-value растет. Период запомнился изучением, я нихрена не понимал как это все работает, только вникал и задавал дурацкие вопросы на deforum. Именно от туда у меня в голове фраза: "ты не должен этого хотеть". Я постоянно хотел понять своим испорченным десктопом мозгом как работает веб, сервера, базы, интерпретаторы. Это сейчас я понимаю как наивно и глупо это все смотрелось.
И тут какой-то провал, MySQL рос всегда удовлетворял все мои потребности. Года 3-4 назад я пробовал MongoDB, она была еще сырая, только появившаясь, но очень впечатляющая. Нет схем, нет долбанных ограничений, выбирай, играй с данными, яхууу!!! Но проекта я так и не сделал, только через 2 года сделал и в целом был доволен всем, хотя и использовал Монгу только на треть возможностей. Время какого-то угарелого фриланса, писал все и говно тоже :)
Два года назад у меня был целый год MSSQL, я бы конечно бросил это все еще раньше, но хорошо, что в помощи был человек DBA знавший и накатавший в этой базе сотни строк процедур. Впечатления были о базе самые суровые, массивный, неповоротливый гигант в котором даже limit offset делается через задницу. Но куча красивых возможностей самого SQL, всякие IDEшечки и менеджмент тулзы. Но DBA ушел, а так как я был изначально против хранить всю логику внутри базы, то я тоже потихому свалил из этого приближавшегося пиздеца. В общем время работы с этой базой запомнилось не самой хорошей стороной, но код был красив, прям мог бы назвать всякие рюшечки "Ынтырпрайзом".
В прошлом году я впервые можно сказать столкнулся с PostgreSQL, впечатления были самые положительные, типа все четко, строго по типам, не то что в этом MySQL. Но база так же быстро наскучила, когда логика пошла опять в процедуры, отладка, оптимизация. Не красиво, да и код приходилось дописывать чужой, что php, что python - все можно было назвать адом и отвратительнейшим уроком. Но урок как не писать - тоже урок.
Ну и дальше уже текущий период, свободы, когда даже не задумываешься о какой-то базе, а просто пишешь свой Ruby код и проставляешь объекты связи в ActiveRecord, остальное не волнует. Вот как раз пару недель назад при написании одного из больших sql запросов я подумал, что маюсь с какой-то дурной проблемой и архитектурой которую натворил под наркотиками (ну точно, не мог же я не упоротый такое начудить)... а н-нет, мог... потому просто взял 2 дня на раздумывание и тесты, после чего за неделю перенес проект на MongoDB.
Яху! Опять повеяло смузи и стартапиками! Никаких схем, измерения ужасных милисекунд запросов, какие-то миграции-шмиграции... Тьфу... Mongoid, консолька Robomongo и впяред! Пусть и ничего что стоит два реплицирующих монго сервера, ничего, что один не журналируется! Даешь смузи и дикие стартапы!

Вот это понимаю настроение, прям второе дунование в проект, которые уже начинал было набивать оскомину и поднадоедать, а обновил базу, почему бы сразу не обновить и инструменты, еще пару дней и Rails 3 плавно перехал на Rails 4.
И что заметил в этот раз? Бодрость и порох в проекте прибавились, это главное, ну и плюс оптимизм, что с такими мощными инструментами можно его быстрее закончить и запустить, пусть себе плывет уже, а то столько вынашивать уже точно родить можно было бы. :)))

Для себя вывод простой: инструменты влияют на код и дух проекта, освежают и новые веяния, пусть даже экстримальные и экспериментальные, но они дают свежее дуновение в проекте, который уже давненько застоялся.


Игровой таскер
Dark
mpak666
Идея игрового таск менеджера В общем-то у меня нашлось время на выходные и я подобробнее обдумал и чутка отрисовал свою недавнюю идею "Игрового менеджера задач" (Gaming Task Manager). Но перед тем как попробую донести свою идею, я сперва отвлекусь в общем на все таск менеджеры что я пробовал.

И так, что я пробовал и часть все еще полизую, это: Redmine, Asana, Any.do, Workmateapp, Basecamp, Trello, Track + Jira, Wunderlist, Google tasks, Doit.im, Casual.pm, Remember the Milk... Понятно, что часть из списка это уже больше чем таск менеджеры, они переросли и стали гигантами как например Remine и Basecamp, но все же они начинали из тасков (task - задача, далее просто таск(и). Ну так к чему я клоню, что все они мне кажутся не совсем удобными, то одного не хватает, то другое сделано из рук вон неудобно и словно сами создатели продуктов не пользуются ими. Я как обычно продумываю создать свой таск сервис и в целом найдя в будущем время сделаю его, пока конечно приходиться кусать локти и пользоваться Redmine в связке Wunderlist, наиболее для меня удобное из всех зол. Но это была вводна, чтобы представить какой большой рынок задачников и разнообразие их реализаций.

Сегодня моя идея в другом. О мотивации. Мотивации вести вообще задачник, пользоваться им, планировать, отмечать и довольствоваться.

Я давно понял, что задачник нужен. Если стоит задача в голове держать более 3-х дел на недели нужно их записать, это не проблема вести блокнотик. Проблема появляется, когда нужно работать в компании с другими людьми. А тут начинается чехарда с блокнотиками, датами и задачами, тут общий для всех блокнотик не сделаешь, хотя грубейшие попытки вести например таблицу в Google docs я тоже видел - это ужасно неэффективно. И очень быстро надоедает.

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

Потому я предлагаю в эту скучную деятальность как вести задачи внести ИГРОВУЮ ЧАСТЬ (так модную на жаргоне бла-бла продажников воздуха - gamification). Читать подробнее и смотреть картиночкиСвернуть )

Как на самом деле плохо запроектированы вокруг нас вещи, на примере формата MP3
Dark
mpak666
В общем-то всего спроектировать и построить правильно нельзя с первого раза нельзя. Ну вот вообще ничего... Что там говорить о сложных конструкторских решениях двигателей или архитектурных сооружений, взять простейший пример: MP3 файлы, к которым мы уже привыкли как к родным и слушаем уже с десяток лет. MP3 тот самый злейший убийца AUDIO CD!

Нам кажется, что так просто кинул *.mp3 файл себе в плэйер (я не считаю мерзкий тунец плэйером) и тут же вместо 06-pope-burn-in-hell.mp3 становится для вас например: Slayer - Reign in Blood (thrash-metal). То есть "магическим" образом ваш плэйер узнает какая великая группа играет какую песню в каком году и на каком альбоме + даже стиль. Многие уже просекли слово "тэги", да это просто кто-то из цифровавших диск задал описание и теперь они лежат внутри файла. Где-то и как-то внутри, ну вы поняли.

Вот тут и подошли к самому интересному. Я тут немного попилил и думал, что закончу за пару часов одно дельце, но затянулось это на 2 дня с переменным успехом конечно на нормальную работу. Занимался я тем, что пытался восстановить как же внутри mp3 файла хранится эта самая информация, были проблемы что сайт id3.org лежит и пришлось читать его через вебархив.

И тут про "проектирование" формата мне открылись его больные места. Напомню, что еще Билл Гейтсу приписываемые слова при выпуске его MS-DOS звучали: "640 kb хватит всем".
Это как бы фэйл. Но видимо фэйлы никого не учат. Берем лопату в виде hex редактора и копаем в историю mp3 формата.

id3


Вот предумали гении формат сжатия, устроили ему контейнер и назвали mp3 пусть это возможно не исторически верно, но все же.
Решили положить туда информацию внутрь, тэги, это Артиста, Название песни, Альбом, Год, Жанр, Комментарий.
И тут решили, что 128 байт хватит, ну и выделили с конца файла те самые 128 байт, по 30 байт на текстовые а-ля Название, Артиста, Альбом, на Жанр числовой код в 2 байтика и Комментарию еще 30. Туда сюда, вот и 128 байтиков.
И ведь жеж понятно, ну что такое 30 байт? ОК, это 30 букв в стандартной например ASCII кодировке, а и но! Ведь весь мир не анлоязычен, есть море языков от самого распространенного испанского до русского, китайского и прочих. Сразу урезаем до 15 символов при UTF-8 и в худжем случае до 7-8 при UTF-16. 7 - букв (иерогливоф) на название песни вы представляете? Я тоже, считаю это мало, очень мало...

id3v1


Гениальные инженегры ничего более глупого не придумывают как ввести еще один блок, расширяющий предыдущий id3 и называют его id3v1 дают туда 227 байт и засовывают опять от конца файла перед тем блоком, итого fseek где-то -(227+128) выходит. И опять мало!
Да и ладно бы мало, появляется еще одна неучтенная при проектировании проблема - потоки! Да, музыку начинают слушать по сети и как вы пониманиете в нашем случае чтобы узнать какая это песня и кто поет, нам надо дождаться пока весь mp3 файл скачается и тогда можно будет заглянуть ему под "хвост". Это плохо, очень плохо.

id3v2.3 - id3v2.4


И тогда придумывают опять новый формат хранения тэгов внутри бедных mp3 файлов. Теперь это блок неограниченного размера, начинается сначала и подразумевает внутреннюю кодировку с запасом на японцев (UTF-16). Там все просто в общем-то в начале файла 10 байт заголовок, по нему мы определяем это тэговый блок (сигнатура ID3 в самом начале файла скорее всего говорит, что это mp3), дальше типа минорная и мажорная версия по байту, потом общий размер блока. А дальше пошли простые структурки фрэймов или тэгов: 4 байта на идиотские название, например APIC или TIT2 с ходу хрен догадаешься, но это attachment picture и title почему 2 я не знаю. Дальше 4 байта на размер текстового значения (V_SIZE), 2 байта на служебный флаг и 1 байт на указание кодировки текста, а потом уже сам текст размером V_SIZE байт. Все просто в общем-то, но...

Чем 2.3 от 2.4 отличается я не шибко уловил, только, что добавили возможность вкладывать в mp3 файл картинку - это раз (!!!) и лирику песни - это два.

Чем и тут я недоволен в проектировании?
- Может быть конечно это удобно когда скачал один файл mp3, а у тебя внутри и картинка и текст, текст ладно пусть будет. Но картинка?! Вы понимаете, что если у вас альбом лежит в папочке, а там 13 песен, а в каждой песне еще по 500кб. png картинка (а размер не редкость), то ведь это почти на 7 мб. больше пришлось бы качать по модему, трафик. Конечно винты большие, скорости дикие и "ВСЕМ ХВАТИТ", опять же на мой взгляд уж можно было решить проблему лучше, вынести файл в папку или сделать ссылку на мировой ресурс обложек и т.д.
Но не пихать все внутрь файла, похоже кстати на моду на nosql запилить внутрь и засунуть все в одно.
- Ну и второй момент, вы же уже поняли, что теперь внутри 1-го mp3 файла у вас будет лежать целых 3 версии как оформлены тэги! Это 128 байт с конца ID3 + 228 байт перед ними это ID3v1 и еще туева-хуча байт в начале это будет ваш ID3v2.x И все это надо уметь читать, конвертить, проверять и показывать. Потому и например некоторые плэйеры правильно показывают тэги файла, а кидаешь на другой уже нет, один умеет читать одну версию, другой нет.

Все это к чему?
Что конечно и я даже уверен, что взять и сразу спроектировать идеальную систему нельзя и даже почти невозможно, для этого нужно до идеальной сломать сотню других неидеальных, но хотя бы постараться сесть и уделить время на раздумия перед созданием нового формата данных нужно делать и желательно в несколько голов и скрежетащих мозгов.

p.s. Всем спасибо, а либу для более или менее работающего варианта получаения ID3 и ID3v2.x я написал, задача была на PHP потому и на PHP она, один простой класс, обязательно ее подчищу и доведу до красоты приемлимой и выложу на http://github.com/mpakus

p.p.s & upd: класс выложил, в целом более или менее сносно и приемлимо работает, брать тут https://github.com/mpakus/mp3meta


О медлительности, митингах и разработке проектов.
Dark
mpak666
Я одну и очень глобальную фишку заметил, когда работал тут у бритов. Фишечек даже 2, но сливаются они в одну полноценную работу без простоев.

- Это у нас каждое утро был митинг. Очень непринужденная процедура. Ну так чисто пригнали в 9 утра, сели на столы, взяли тетрадки с записями и отчетались, что сделали вчера или в пятницу.
Да, был и трэкер, был и SVN, но простое бла-бла-бла завинчивание гаек очень полезно для общего понимания, что есть и что надо бы делать сегодня. Из этого и вырабатывался план например на сегодня и завтра. Так можно и долгое планирование строить, что не принято в России, у нас-то проект менеджмент встретить сложно в мелких компаниях.

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

Это навеяло последними делами, среди хороших и удачных работ с фрилансерами встречаются и такие вот...

Один фрилансер верстал сайт 2 недели в виде уебанского говно-css кода (когда так уже давно не верстают), потом прислал и сказал, что шрифта одного бесплатного и первого в google поиске у него нет. Блеа, ты же сраный профессионал и берешь деньги за работу, уж возьми гугл, найди ты этот уебанский шрифт без засечек, нет его, так поставь хотя бы Arial, Verdana, Tahoma сраные. Нет надо сверстать все 8 страниц ошибиться раз по 30 в макетах и прислать этот набор "на отъебись". А ведь если бы он прислал уже на 1-ой странице ему бы сразу можно было оторвать уши.

Второе, тоже удаленщики, неделю назад попросили id из google store для того, чтобы push сообщения прикрутить к мобильной аппликухе. В этот же день им этот ID дали, хотя (!!!) заметь те у людей изначально были все доступы к google account'у! Что это лень? Думаю нет, я называю, это простым и очень емким словом - уебанство.
И это был бы конец, но через неделю узнается, что им нужен некий url, потому они не делают. Блин, а что всю неделю нельзя спросить этот адрес? Есть trello, redmine, skype, email контакты всех участников от руководителя до разработчиков, каждый с легкостью даст ответ. Нет жеж блеадь надо сидеть на жопе. Только смысл-то тянуть проект? Платят же не за время, это не офис сраный куда надо ходить, это работа, тут платят когда ты сделал. Сделал раньше получил деньги, пошел на другой проект или нахуй сразу.
В общем сегодня пришлось стукнуть узнать дела, ждут оказывается. В ходе недолгой беседы выясняется, что они впервые вообще push делают и никакой нахуй им url не нужен. 8 дней проеба, когда за это время уже можно было дотестить, поправить еще баги и закрыть проект.

Не понимаю я этого и этих. "Эти" все еще мыслят совковыми опилками набитыми в голову. Словно они все еще ходят в офис, где им говорят, что делать, как делать или сидеть до обеда, после 5-ти уже домой.
Тогда не понятно, чтобы они делают на рынке такие люди вообще...

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

upd. Не надо думать конечно, что косячат только фрилансеры и наемные работники, косячат все и сами заказчики в том числе, просто у кого-то все равно есть ссаная тряпка от которой можно получить по морде, а это знаете ли неприятна-с...


?

Log in

No account? Create an account