- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
final class HackFormFlowPanel extends FormPanel {
...
@Override
public void reset() {
GWT.log("Upload form reset suppressed");
// Overridden to do nothing.
}
public void reallyReset() {
super.reset();
}
}
А потом это ХМЛ зазиповать, зип упаковать в джар, джар спрятать в мейвен репу, а мейвен репу перенести на локальный сервер.
Впрочем после виртуального i386 на js, на котором крутится ядро линуха, и даже работает куча гну\линуксовых команд, включая gcc и tcpdump (для виртуальной локалки между двумя консольками, нарисованными на страничке), я уже ничему не удивляюсь...
Приблуда примитивнейшая - выдавала какую-то инфу о принтере, и что-то там могла ему приказывать, не помню что, но не в этом суть.
Главная фича была в том, что эта хрень представляла собой... ярлычок для браузера, в котором был прописан URL веб приложения на яве, которое крутилось на локальном Коте.
Счет исходников идет на тысячи.
База данных выглядит фантастически изза ОРМа - каждый раз как кто-то переименовал класс привязаный к таблице, Хибернейт жеж не станет удалять старые... вобщем таблиц там тоже под тысячу.
Ну и просто типичная для начинающих тяга к копипасте...
Ну ёперный театр, кто же оставляет включённым автообновление схемы в продакшене?!
По студенческому опыту?
А как он объясняет это нежелание?
> как было хорошо в жабе и как плохо в цпп
Надо его недельку пожержать на чистой сишке... Кресты сахаром покажутся ;)
> А как он объясняет это нежелание?
Молча игнорирует рекомендацию "используй вектор", в некоторых других случаях отмазывается универсальным "не нужно". Мутный тип, короче.
> > как было хорошо в жабе и как плохо в цпп
> Надо его недельку пожержать на чистой сишке... Кресты сахаром покажутся ;)
Тогда меня начальник пожержит куда надо и ввернет туда же болт чуть большего диаметра резьбы :)
Царя на ГК так не хватает...
> Царя на ГК так не хватает...
ОМГ, неужели к нам устроился... Сам...
Сишник! Если ты это читаешь, то слушай (меня, но не их).
Сначала они заставят тебя использовать немного STL, потом крестошаблонов станет больше, потом еще, а потом они будут просить юзать буст...
В какой-то момент свой собственный код станет выглядеть как набор символов.
И глазом не успеешь моргнуть, как окажешься в болоте крестоблядства, словно ынтырпрайзная жаба.
Участь твоя будет страшной, и с великим сожалением ты будешь вспоминать о простой и понятной как пять копеек сишке, как о своей первой и навсегда потерянной любви.
Набор "Сделай сам велосипед"?
А в чем это приемущество заключается
?
Но зачем?
> Но зачем?
например потому, что виндовый компилятор даже в c99 не умеет.
Виндовый - это VS, питухгцц на винде нет? Но зачем?
Тем, что он питушок пубертатного периода, считающий себя кульным хацкиром.
Практически все, что учится в рамках высшего образования, начиная с первого курса, в промышленном программировании не нужно. Даже не то, что не нужно, оно запрещено и сильно наказуемо. Программисту с десятилетним стажем и внушающим послужным списком даже не разрешат написать свои утилитные функции - из страха, что они будут работать неправильно и завалят проект в самый неподходящий момент, что тестеры, которые будут тестировать что-то менее тривиальное, чем школьная алгебра не справятся с задачей, что те, кто прийдет на смену не поймут код сложнее примеров из учебника.
Хороший программист, это такой, который умеет оперативно найти популярную (с упором на популярность, а не качество) библиотеку и скопировать код из документации к этой библиотеке слово в слово.
Высшее образование - только вредит, ведет к расстройству, краху идеалов, продолжительным запоям, депрессии, и в конце концов - суициду. Лучше просто сходить на стадион и поболеть за любимую команду. Нах этот институт.
... в рашке?
>, начиная с первого курса, в промышленном программировании не нужно.
Если в вузах нормально учат разработке - они нужны, но до какого-то уровня абсолютно не обязательны.
Мне кажется, пожёсче с ними надо. Код-инспекции проводить почаще, недолгие сессии парного программирования проводить. Заставлять, ЗАСТАВЛЯТЬ юзать вектор. Если бурчит, что не нужно, прям при нём переписывать на вектор и коммитить. В общем подавать пример и заставлять их соответствовать уровню, указывать им на ошибки, только без упрёка и высокомерия.
Хорошо ещё, что они моложе. У нас вот дядка-рокер лет под 40 работал, писал адский треш, но сказать ему об этом было как-то совсем неудобно...
Самое гнилое дело заставлять человека писать так, как он думает, что писать не нужно. Если код проходит тесты - принимать безоговорочно, при этом не надо делать вид, что код нравится. В конце концов, если затачиваться на длительное сотрудничество, люди предпочитают искреннюю справедливость двойным стандартам, даже если они преподносятся с лучшими намерениями.
Есть рационал в том, чтобы использовать более абстрактные коллекции, но этот рационал нужно осознать. В нем нужно самому убедиться делая тесты и считая любимые биты с байтами. Если человек сам этот путь не пройдет, за него его никто не пройдет. Худшее, что может случиться - он просто забьет и станет писать как скажут, не пытаясь разобраться в том, что же происходит (99% всех программистов, которых мне приходилось наблюдать вживую). И в проекте будет восновном мистическая паста из недопонятых скопированых из интернета примеров.
Код - лютое гавно, которые все бояться трогать.
Нормальные код-ревью это отличный способ подтянуть уровень всей команды. У нас сейчас такие, и я всё никак не нарадуюсь. Даже люди без особого знания языка могут замечать такие вещи, которые сделают код опытных людей лучше.
> что циклы - хорошо, а функции высшего порядка - плохо
И иногда это действительно так.
Когда критика обоснована, она очень полезна. У нас сейчас проводится довольно тщательный код ревью на все изменения в системе. Это очень помогает.
Ну и прошедший ревью код тут пока самый лучший из всего, что я видел вне опенсорсных проектов. Но тут многое, конечно, зависит от уровня команды.
Еще, наверное, effective C++/STL подарю коллективу.
> У нас вот дядка-рокер лет под 40 работал, писал адский треш, но сказать ему об этом было как-то совсем неудобно...
И чем закончилось?
где и, главное, зачем вы таких упоротых набрали, между прочим?
если у работника есть своя позиция, то прежде всего его надо послушать - и далее если ты не согласен, то дать ему обстоятельную аргументацию, почему ему надо будет делать иначе. новую позицию работник должен понять и принять.
иначе, если заставлять из-под палки, ничего хорошего не выйдет - только градус недовольства повысишь и себе настроение испортишь
ну это при условии, что работник адекватен
если неадекватен и неуправляем, то это промах отдела кадров и людей, которые ему поверили на собеседовании
Не факт, что адекватен: Молча игнорирует рекомендацию "используй вектор", в некоторых других случаях отмазывается универсальным "не нужно".
Мне вот что интересно: зачем ненавидя и не зная кресты устраиваться на крестоработу, и при этом не выходить на диалог с более опытными коллегами?
кто его знает, как там дела обстоят
В хорошем смысле - да. ИМХО профессия обязывает.
> зачем вы таких упоротых набрали
Видимо, упоротые критерии отбора, раз уж даже меня взяли :)
> новую позицию работник должен понять и принять
Ну, тот сишник чем-то на меня похож - не доверяет не поняв и не проверив. Я тому же бусту не доверял, пока не познакомился с ним поближе. Второй - податлив аки пластилин. Разглагольствовал, насколько джава хороша, но через месяц вяленьких вбросов "джава тормозит" и т.п. сам начал её обсирать. Похоже, у меня начинает проклевываться стратегия их крещения
"Жава не для того, чтобы выжать 99%, жава для того, чтобы выжать 85% и сравнительно легко распараллелить на кластер" (с) инет.
Работает всё там же. Там крупная система документооборота, разными модулями занимаются разные люди. Думаю, пока он успешно выполняет поставленные задания и здоровье у него крепкое, в его код особо никто не лазит...
Ого как жестко. Я ему скажу отъебись от моего компа. Не ты мне зарплату платишь.))))))))))
У нас был дядька-рокер лет под 40. Писал только на сишке под микроконтройлеры. Теперь пишет на крестах ооп+паттерны+стл+буст+шаблонные петушения
И слушает дабстеп?
http://www.youtube.com/watch?v=qObzgUfCl28
же
> же
бубен неимоверно доставил
В жс нет различий при использовании между лямбдами и обычными функциями.
А уж когда введут =>, в жс наступит праздник
ЖС это scheme для сишников :) Правда макросы забыли перетащить.
Какая беда?
kegdan, правда, откуда эта двойка, почему интерпретатор дал мне спокойно похерить куда-то второй аргумент?
P.S. Это не ruby, это jruby делает такую хрень с присваиванием, но всё остальное остаётся на совести ruby.
что за версия руби такая? ни в 1.9.3 ни в jruby не работает.
Скорее всего эта магия выглядит так f - это proc. Proc принимает в себя любой набор переменных - в данном случае он уведел 2, решил что аргумент 1 и положил хуйцы на второй. Отака хуйня, малята.
Вся эта блокомагия удивляет меня. После других языков смотрится странно, как паскалевское разделение на процедуры и функции.
В общем, пусть японцы на своём руби пишут, а я не буду лезть в их мирок :)
мне кажется все остальное вполне очевидно и соответствует ожиданиям
Различие f(2,3) и f (2,3) может и очевидно с точки зрения парсера, но (2,3) - не кортеж, а запятая - не оператор.
(2,3) - это вообще не конструкция языка - именно на это он и ругается. Он не может понять, что ты засовываешь в него первым аргументом. По моему очевидно
Это всё из разряда "кто тут нагадил? больше так не делай".
Википедия говорит
Язык следует принципу «наименьшей неожиданности»: программа должна вести себя так, как ожидает программист. Однако в контексте Ruby это означает наименьшее удивление не при знакомстве с языком, а при его основательном изучении. Сам Мацумото утверждает, что целью разработки была минимизация неожиданностей при программировании для него, но после распространения языка он с удивлением узнал, что мышление программистов похоже, и для многих из них принцип «наименьшей неожиданности» совпал с его принципом.
Хм, т.е. кресты тоже следуют принципу наименьшей неожиданности.
В руби нужно понять философию
В плюсах нет философии - только костыли
Ты просто не понял их философию.
Честно говоря, выглядит как троллинг. Чем лучше я что-то освоил, тем меньше оно удивляет.
Выходит новый стандарт C++, матёрый крестушник смотрит и говорит, "Ничего удивительного, это норма".
Что бы понять плюсы жизни не хватит
Чтобы понять кресты достаточно прочитать стандарт на 500 страниц.
В этом и заключается философия крестов.
a.AnyUndefinedField, безо всяких ошибок или предупреждений. Видимо недаром есть столько компиляторов, компилирующих в js нормально типизированные языки.
Мне наоборот становится грустно, когда хрень вида a.AnyUndefinedField() вызывает исключение - иногда хочется, чтобы вернуло undefined и не беспокоило.
Скажем, [1,2,3].map(5) не ломало всё при попытке вызвать 5, а возвращало [undefined, undefined, undefined], пока я не соизволю исправить баг.
типа
а.x=3 unless a.x
Нет, такого нет. И вместо a.x==3 if not a.x надо писать православное сишное if(!a.x) a.x=3;
Да там столько сахара, что жопа слипнется.
Чтобы читать код профессионального рубиста надо знать руби целиком.
Да хрен с ним с количеством. Там часть еще и повторяется.
всего 500 страниииц)
Стандарт крестов тоже всего 500 страниц ;)
делаем выводы)
вообще думаю перл надо учить. пятый
вывод - что ты ленивый?
даже Тарас со всей своей ненавистью и только лишь в своё свободное время - и то освоил
Нахуя зачем? Сайтики на нем уже почти никто не ваяет. А для одноразовых скриптов и питон с руби вполне подойдут.
для себя
так то я дотнетчик
Лучше хаскель выучи ей-богу, или эрланг какой-нибудь. От них хоть какая-то польза будет, а не бесполезное засирание мозга бредом Ларри.
Пёрл - чисто прикладной язык. В нем нет никаких новых концепций или идей. И если ты не собираешься его юзать по назначению - нафиг он нужен?
Романтика языка
До хаскеля тоже дело дойдет
любители могут поиграться в консоли, которая в винде с git устанавливается
Изкоробки прям? :)
А если ставить - то и баш ставится, и питон ставится.
При желании и упоротостве можно собрать один какой-нибудь XomyakTozheZverDVD.iso :)
дык они в любом функциональном языке не меняются
А как ты будешь его исправлять? Бектрейса нет, причины неизвестны, половина входных данных давным-давно забыта... Удачной отладки ;)
Меня вот в жс очень бесит, что они смешали ассоциативный массив и объект в кучу. Для ассоциативного массива при отсутствии ключа возвращать null или undefined вполне адекватно. Для объекта - нет.
пф, на старой работе отладка методом расстановки логов была практически основным способом искать проблемы, js тут ничем не удивляет
Ну так там хотя бы синтаксические ошибки и глупые опечатки не надо было ловить расстановкой логов... И у нормального софта логи пишутся в файл, а у жс они благополучно забудутся при закрытии браузера. И пост-фактум в проблеме уже хер разберешься.
Мой предпочитаемый способ: swank-js, он может и с нодой работать, и к браузеру подключиться.
вывод в консоль или отладка по шагам
undefined можно и другим честным путём получить и протащить сквозь десяток функций. Можно функции написать криво...
А ведь в жизни не все объекты неизменны. Они эволюционируют и взрослеют.
http://ideone.com/fSxqlz
Можно еще через define_method оптимизировать, но мне лень.
сдвигаем же
Сдвигаем вправо на const char * бит.
Перегрузка операторов же :)
P.S. Я буду обновлять страницу перед отправкой комментария.
1. "Система" типов - плевок в лицо здравому смыслу. Зачем нужны typeof и instanceof если все объекты?
2. "Класс" Math - ну какой он в жопу класс?
3. Динамическая привязка "методов" к объектам которые они "принадлежат" (что значит this?) - не то, чтобы это было совсем алогично, но абсолютно непрактично.
4. 32-битная математика сэмулированая даблами...
5. Дохера (в процентом соотношении) бесполезных функций в стандартной библиотеке (всякие битовые операции).
6. Date.getYear - вообще пиздец, зачем его вообще оставили?
7. Императивные выражения не являющиеся вычислениями (for, while, if, do, break, continue и т.п. - все это императивное говно в этом языке абсолютно не к месту).
Чего катастрофически не хватает и нет возможности эмулировать.
1. Модулей.
2. Инструментов по работе с синтаксисом.
3. Нормальной объектной системы.
4. Большей стандартной библиотеки для работы с часто встречающимися проблемами (чтобы упразднить говноквери, андерскор, мастач и т.д.).
5. Вменяемых коллекций (одна коллекция на все случаи жизни - верный путь к ПХПрограммированию).
Метатаблиц как в луа и макросов как в си.
А я ещё молод и хочу иметь возможность выстрелить себе в ногу:
> #define ADD(a) + a
Ещё один человек, не видевший нормальных макросов.
Полезно было бы, чтобы нормальные макросы вылились в инструмент метапрограммирования, поддерживающий вложенность и возможность генерить любые куски исходного кода до компиляции, быть может даже менять синтаксис, насколько парсер позволит. Но я таких не видел.
Посмотри в схеме и лиспе ;)
Видимо, очень отдалённо. У меня подразумевается уровень строк, магия
#macro $("_+") printf #end-macro
явно не дружит с АСД.
Кстати, в макросе PRINT у меня не хватает скобок после printf.
:)
Напроч отсутствующий механизм решения проблем безопасности и коммуникации между программами (часть модулей).
Абсолютно рандомальное поведение математических функций примененных не к числам. Почему:
'a' + 'b' = 'ab'
но
'ab' - 'a' = NaN
и т.д.
Непоследовательнос в использовании префиксных функций, почему можно:
typeof x
но нельзя
isNaN x
Может, Proxy и решит подобную проблему.
И да, ещё бы просто передать хоть что-нибудь по ссылке:
А при этом данные переносятся в новую таблицу? Или их руками приходится переписывать?
Нет человека - нет проблем.
Знакомая работает распростанителем 1с. Рассказывала такую историю - приходит она значит в какую то мелкую контору, пригласили проконсультировать нового человека да базу посмотреть. В базе должен быть скрипт, который автоматом списывает через некоторое время предметы, чья стоимость менее X рублей. А он не работает. В результате разбирательств выяснилось что старый макак - базозаполнятель (который есстесно уволился с концами) в вписывал в накладные не
Name ="item" Count = "Y" Cost ="Z" TotalCost = Y*Z
A
Name ="item (Y)" Count = "1" Cost ="Z*Y" TotalCost = Y*Z
в итоге "огнетушитель" за 1000р превращался в "огнетушитель 5 штук" за 5000р
Нужно перепиливать базу, а на этих накладных держится вся база за 2 года.
Вот и все, ребятки!
Вставляет лучше алкоголя и легких наркотиков... Вот документация Спринга написана в том же ключе: это незамутненный сивушный бред, но мастерство, изощренность и целеустремленность авторов просто не может не восхищать.
В принципе, ответы на возникающие вопросы я находил, иногда не сразу. Для общего введения, на мой взгляд, отлично подходит Spring in Action.
P.S. мне когда-то нравился Евгений Замятин
Кьеркегора.
Вики говорит, что можно и так и так. (Я его не по-русски читал, не уверен, как его по-русски переводят).
Не знала. Извиняюсь.
Кого-то, знающего правила чтения этого долбоязыка?
Например, латеральные согласные звуки (разновидности "л" и "р"), даже в родственных языках отличаются очень сильно (но при этом могут записываться одинаково, даже по правилам ИПА). И тут возникает вопрос: нужно ли стараться в точности скопировать звук оригинала, или нужно искать звук ближе всего соответствующий в алфавите языка говорящего к исходному.
Например, для японцев "л" и "р" - одно и то же, по большому счету.
Но у латеральных это просто ярче выражено, у фрикативных - так же есть различия. Особенно, если мы посмотрим на корейский... А, например в арабских диалектах может и не быть не-гортанного "к".
А если вспомнить о том, какой огромний сектор занимают звуки которые мы описываем как "е"... это почти треть из всех гласных звуков, которые мы вообще можем произнести.
И вполне возможно, что лучшей фонетической транскрипцией было бы Кйыркыга. Но есть традиция заимствования слов из романских язков. Или языков записываемых латиницей. И просто соображения благозвучности и удобства в произношении...
http://ru.forvo.com/word/søren_aabye_kierkegaard/#da
http://ru.forvo.com/word/søren_kierkegaard/#da
Датский и шведский — это почти как немецкий, но только с вологодским окцентом. Северяне боятся на морозе широко раскрывать рот, поэтому произносят «а» как «о».
Но увы, на письме, как уже заметил wvxvw, мы используем не транскрипцию, а транслитерацию. Зачастую даже что-то среднее между транскрипцией и транслитерацией. Точность принесена в жертву узнаваемости.
> и даже работает куча гну\линуксовых команд, включая gcc и tcpdump
Фабрис Беллард сделал только эмулятор процессора и устройств. Урезанный же луникс со всеми тулзами подтягивается с образа.
Он вообще гений. Чего только стоит начатый им ffmpeg и tcc (миникомпилер подмножества сишки собирающий сам себя)