Как стать автором
Обновить
207
0
akamuza @akamuza

Пользователь

Отправить сообщение

Недавно наткнулся на ваши статьи. Начал с индексов и читаю все подряд теперь - очень ценная информация для понимания работы Postgresql и не только.

Спасибо большое за труды! Не останавливайтесь.

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

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

Вот цитата:
Thank you for contacting Amazon Web Services. My name is Bianca and I apologize for our delayed response. I have reviewed your account and see that card ending in 0275 is the current payment method.

I have retried your January charges and they have been successful! I am sorry for any inconvenience you may have experienced and as a one time courtesy I have added a $25 credit on your account!


Очень приятно удивили.
Очень любопытная тема. У меня в перспективе похожая задача стоит. Как раз присматривался к JasperReport, о котором тут говорили.
А вы производительность своего решения не замеряли? Как себя ведет на объемах по 100тыс строк и больше?
А вы бы попробовали Saucony — качественные и с приемлемой ценой. Я уже в них три года бегаю — самые положительные впечатления.
А вот при выборе кроссовок ориентируйтесь на амортизацию. Если у вас просто легкие неспешные пробежки, либо много бегаете по асфальту — то лучше брать модели с хорошей амортизацией. Иначе будут колени страдать.
Есть «жесткие» модели — они хороши для скоростной работы.
А вот это вряд ли получится. У меня корпоративные заказчики и конкретно кастомные решения под их бизнес-задачи. Но направления такие: 1С связки для всяческой синхронизации с сайтами, 1С связка с каталогом автозапчастей TecDoc, Java+Androind треккинг работников во время рабочего дня и анализ реального/теоретического движения транспорта при доставке товара.

Если действительно интересно, то у меня в профиле есть первые публикации о том, как развивалась наша комп. фирма. Примерно в то же время я и ушел полностью в программинг.
Алкоголь ))) Я и раньше не особо-то и пил, а сейчас вообще в полной завязке уже больше года. Зато приобрел прекрасную традицию бегать первого января. Не ночью конечно же, а просто днем по парку.
Если мотивирует, то поделюсь еще отчетом о гонке 95км:
Не «на работу», а перед работой. Вот линк, где видно каждую тренировку:


Смотрите с начала 2015 года. Ну и до октября. Сейчас плановые 2 недели отдыха.
«Спорт и программирование несовместимы: любая тренировка ведёт к утомлению, на восстановление после которого недостаточно поспать одну ночь. Состояние постоянного истощения плохо сочетается с интеллектуальным трудом.»

Очень пугает категоричность автора. А вы точно хоть чем-нибудь занимались кроме хождения к маркерной доске??

Поделюсь своими «достижениями», которые в вашем варианте вселенной никак не совместимы с программированием. Я — программист. Не просто для удовольствия, а именно этим зарабатываю на жизнь уже долгое время.
А еще я — спортсмен. Любитель, конечно же, на далеко не аматор. Основное — бег. Из испытанных нагрузок только за этот год: полумарафон — 1 час 20 минут, 95км трейлового бега — 8часов 40минут. Это не опечатка — именно 95км. Бег в горах 50км с общим набором высоты 3000м — 7 часов.

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

Перед работой (я работаю не дома, а в офисе) средняя пробежка 16-24км. А затем на 9:30 на работу. И знаете что? Вы абсолютно не правы, и видимо слишком дорожите своей зоной комфорта. Физическая нагрузка и умственный труд — очень даже совместимы. Пока бежишь — полностью отключается голова, очищаются мысли. Это 1-2 часа абсолютной гармонии и умиротворения. И качество моей работы ни капли не страдает от перенесенной мной нагрузки. Ах да, и живу я не сам и не с родителями, а с девушкой уже много лет — и никакая сторона отношений не страдает.

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

Когда-то я где-то услышал.
— Боже, прекратите, мы не можем больше этого выдержать!
— Благодарите Бога, что это не продолжается столько, сколько вы реально можете выдержать.

Человек способен сделать и вынести на много больше, чем ему кажется. А особенно, чем кажется другим. Не позволяйте никому определять границы своих возможностей — сами определяйте себя. И вы очень удивитесь.

Кстати, багаю я всего 3 года. А до этого отходил 6 лет с портзал по 4 раза в неделю. Рабочий вес штанги был 100кг при моих 70кг. А еще когда-то я закончил англ. филологию. Это к слову, что с детства я ни капли не спортсмен.

Прошу понять правильно: я все это пишу не для того, чтобы похвастаться. Нет. Тем более, что мои «результаты» более чем скромны. Я хочу сказать о том, что автор очень сильно ошибается. У каждого своя мотивация: хотите — знимайтесь спортом, не хотите — не занимайтесь.

ps
Подозреваю, что автор может сказать, что понаписывать можно много всего перед монитором. Так вот без проблем могу дать ссылки на свой профиль в спорт трекере, где все то, о чем я писал, есть записано в виде gps данных.

Несколько месяцев назад Amazon очень приятно удивил дав скидку 25$ на следующий месяц аренды инстанса ec2.

А всего-то делов было: не мог в биллинг добавить новую карту, а дефолтная пропала со списка. В итоге просрочил оплату на неделю.
Написал одно письмо, а затем второе — боялся что сделают suspend из-за просрочки.
Через пару дней пришел ответ, мол не волнуйтесь все хорошо, карту сейчас добавим, а за нашу задержку вот вам 25$ на счет.
Очень приятно удивило.
Ощущение, что текст для портфолио пропустили через переводчик.
Носитель языка вот так «In my portfolio, are a few of the programs that» — никогда не напишет. Это грамматически неверно. Да и вообще по тексту много всего странного.
Получается вы попадаете в свою же ловушку, если будете пропускать даже O(n^2), то есть в «запоздалую оптимизацию» следуя вашей терминологии. Конфетку, конечно же O(n^2) не сделает, но в то же время может превратить ваше детище в шлак.
Есть вещи, которые все таки нельзя нарушать, ну к примеру тот же $i <= array.count() прямо в цикле. Они являются признаками плохого кода.

Для меня главный посыл статьи = не заморачиваться ни в одну, ни в другую сторону. Как говорил Гай Кавасаки: продукт должен быть good enough. То есть не идеальным, но и не черти чем.

Дело в том, что кто-то после прочтения об O(n^2) может подумать, мол а меня-то в универе за это гоняли и я-то дурак заморачивался, а оказывается можно и так. И эти семена взойдут в нехороший урожай)

В общем, я все таки против O(n^2) — и не в «конфетке» все таки дело.
Вера в то, что O(n) вместо O(n^{2}) или замена всех операций умножения на 2 на побитовый сдвиг сделают из программы конфетку

Мне кажется, что по поводу O(n) против O(n^2) вы все таки утрируете. Как только количество элементов чего-либо перевалит за 10000 (а это 100% случится благодаря Мерфи), то O(n^2) вылезут даже не боком, а более жестко )
Конкретно в этом примере, такие «узкие» места всегда должны подвергаться оптимизации и сразу. Одна из основ теории алгоритмов — избегать O(n^2) любыми способами.

А вот по поводу умножения на 2 — вполне согласен.
Кстати, о записи в файл очень актуально.
Вчера писал как раз логгирование для небольшого проекта.
Первая мысль: 10 минут и закончу. Прошло два часа… И сколько возможных ужасов я себе придумал, которые прилось в итоге решать.
Совсем не о программировании, но в тему, как по мне. У Дж. Лондона Волк Ларсен говорил:
«И в этом его счастье. Он слишком занят жизнью, чтобы думать о ней. Я сделал ошибку, когда впервые
открыл книгу.»
Столкнулся с такой же проблемой, когда недавно решил пересесть на Ubuntu. Пока что моих знаний хватило только на то, чтобы поставить два разных xampp с необходимыми мне вверсиями php.
Минусы:
— нужно настраивать каждый инстанс xampp отдельно, хосты, php.ini и т.д.
— кроме разных версий php, там еще и разные MySQL, а соответственно и разные базы.
— не получится параллельной работы.
Лично меня такой расклад устраивает. Уверен, что можно все сделать иначе и по фен-шую, но пока что смог только так.

Плюсы:
Без проблем заводится и взлетает по отдельности любое количество версий php: 5.2, 5.3, 5.4 и т.д. и не требуется никаких виртуальных машин.
Учитывая что мне не нужна параллельная работа одновременно в нескольких версиях php, то все это дело меня более чем устраивает.

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

А часто взломы начинаются именно из того, что отбираются необходимые шифрованные блоки. То есть взломщик не должен иметь возможность хоть как-то дифференциировать шифрованные данные.

Поэтому для Фейстеля и советуют 3 и больше. Доказано, что при таком количестве раундов злоумышленник не может отличить шифрованный блок от просто случайного набора бит/символов.
Ну так в в том и проблема DES — легко подобрать ключ.
А каждый алгоритм без нормального ключа ничего из себя не представляет.
К примеру, AES — можете прочитать его реализацию от и до и до мельчайших деталей. Но даже узнав, что он обратимый — у вас все равно ничего не получится. Ключ подобрать в данный момент просто не судьба.

Так и в DES — алгоритм написан так, что использует 56бит — вот и проблема. Когда он проектировался, то 56бит было достаточно.

Поэтому на счет неуязвимости алгоритма — это не совсем правильное определение. Ключ должен быть неуязвимым.
А алгоритм он лежит на всеобщем обозрении и ничего не скрывается.
Стоит упомянуть, что при использовании алгоритм Фейстеля необходимо делать как минимум 3 цикла, только в таком случае при анализе результат таких перестановок будет не отличим от случайного набора бит.

Кроме того, на этой системе не получиться построить «идеальный шифр». К примеру, DES использует 16round Feistel и, как известно, не является безопасным. То есть от соседа защититься получится. А вот

На счет гаммирования — это обычный xor который исполняется над двумя величинами. Вы бы объяснили почему нельзя 2 раза использовать одну и ту же гамму. Обычно в криптографии её называют ключом (k). А саму схему One time pad
Чем больше злоумышленник соберет зашифрованных одним ключом сообщений, тем легче будет вскрыть весь шифр и найти ключ.

Хотя One time pad является идеальным шифром, им не так часто пользуются.
Проблема one time pad в том, что им неудобно шифровать большие данные. Поскольку ключ должен быть такой же длины. А это ведет к определенным неудобствам.
Да и вообще представьте, что вам нужно для любого шифрованного кусочка данных нужно хранить где-то отдельный ключ/пароль. Весь проблематично и не удобно.

В общем, если реально передать инфу из курса криптографии, то нужно отдельную статью писать.

Даже если Quicksort будет знать исходное распределение, то быстрее не заработает.

Основа Quicksort — это random shuffle в самом начале. А затем идет секционирование и сама сортировка.
Shuffle нужен для вероятностной гарантии того, что секционирование пройдет правильно.
Без «перетасовки» можно нарваться на производительность O(N^2) — это худший случай для Quicksort.

А в лучшем случае, как уже сказали, Quicksort имеет O(N*lg(N)) и никак не меньше.
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Украина
Дата рождения
Зарегистрирован
Активность