• 7 признаков того, что вы будущий босс
    0
    Не согласен с «вы не знакомы с фразой это не мое дело» — умение говорить «нет» важное лидерское качество. Неумеющие говорить нет попадают в корпоративные ловушки — их перегружают и они перегорают. Примеров тьма.
  • Программист ли я, или просто хорошо гуглю?
    +3
    Гуглить не проблема. Проблема в том, что часто люди сразу не думая бегут гуглить и находят бяку какую-нибудь и вставляют в код кое-как.

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

    То есть решать по одной схеме «гуглить — не гуглить неправильно». Иногда придется прогуглить 3 разные вещи, и из них слепить решение.
  • FizzBuzz на TensorFlow
    0
    Ну у нас максимум два if. Задача Холланда, не моя.
    максимум два раза можно узнать результат — это значит пробу сделать.
    if (i mod 3 = 0) — опробировали 1 раз
    if (i mod 3 = 0 && i mod 5 = 0) — опробировали 1 раз.
    Результат первой пробы можно использовать во второй пробе.
  • FizzBuzz на TensorFlow
    +1
    Задача давалась Джоном Холландом отцом генетических алгоритмов, в 70-х годах.

    Ключевой момент вашего решения — операция s = ""

    Обычно схема fizzbuzz идет следующим образом:
    1. Напишите fizzbuzz — написал в 3 if.
    2. Напишите fizzbuzz в 2 if. Пишут что и вы.
    3. Избавьтесь от изменения переменных. Тут продолжите свои размышления.
    Если вы считаете, что в условиях 3 задача не решается — докажите что решений нет. Если решается — решите.

    Неумеющий программировать — уходит на пункте 1
    Умеющий программировать — решает пункт 2
    Математик — решает пункт 3.

    Правило следующие:
    if { block } then { block } else { block}; if {block} then {block} else {block} — два if
    if; if — два if
    if then else if; if — недопустимо. Три if

    промежуточные результаты можно сохранить в неизменяюю переменную.
    Нельзя менять переменную, в вашем случае s = "" недопустимо для пункта 3.
    можно вычислять любые выражения, битовые сдвиги, числа — все допустимо.
    Обрамляющий цикл — классический for или while.
  • FizzBuzz на TensorFlow
    –31
    Еще раз условие задачи для тех кто не понял:
    есть понятие пробы. Проба позволяет узнать значение.
    есть if () — в скобках мы пробируем значение.
    нам надо написать программу, которая:
    1. если число делится на 3 выводит «fizz»
    2. если число делится на 5 выводит «buzz»
    3. если число делится на 3 и на 5 выводит «fizzbuzz».
    4. если число не делится на 3, на 5, на 3 и на 5 НЕ выводит ни fizz, ни buzz, а выводит само число

    Example output:
    1 2 fizz 4 buzz 6 7… 14 fizzbuzz 16 17

    Попробуйте Randl, не знаю С++, что у вас выведется на экране.

    Можно написать
    for { if else; if else }
    можно
    for { if; if }
    можно
    for { if else; if}
    и т.п.
    оператор print()
    Попробуйте честно решить
  • FizzBuzz на TensorFlow
    –50
    Идея fizz buzz — проверить умение логически мыслить и читать тело задачи.
    Задача решается в два if. Если число делится на 3 и на 5, значит оно делится и на 15. Написать в два if не так просто, учитывая output. Но надо сделать именно в два if (else стейтмент можно вводить).

    Именно так задача давалась в оригинале.
    Попробуйте решить строго в два if
  • 80 за 20 — как не надо оптимизировать процессы
    0
    У вас ошибка в расчетах. Вот вы пишете:
    «Во время пилотного проекта вы обнаруживаете, что шансы не уложиться в срок для каждой из команд – около 20%. А значит шансы, что опоздает хоть кто-нибудь из них – 0.8^3=0.51»

    На самом деле — представляем себе что есть не три команды, а 1 команда которая как будто работает последовательно. Делает 3 проекта подряд.

    Какие будут исходы? Не будем утруждать себя формулой Бернулли:
    1 раз опоздали, 2 раза не опоздали. Причем таких ситуаций аж 3.
    2 раза опоздали, 1 раз не опоздали. Таких ситуаций аж 3.
    3 раза опоздали. Таких ситуаций 1.

    0.2 * 0.2 * 0.2 + 3 * 0.2 * 0.8 * 0.8 + 3 * 0.2 * 0.2 * 0.8 = 0.008 + 0.384 + 0.096 = 0.488

    Как я провел этот анализ. Давайте подумаем наоборот. «Хоть кто-нибудь опоздает — это все равно что от 1 отнять вероятность, что никто не опоздает».

    0.8 — вероятность что один не опоздает. Значит что все трое не опоздают — 0.8^3 = ваши 0.512. То есть 0.512 — это никто не опоздает. А что хоть кто-нибудь опоздает — это 0.488

    Статья очень хорошая. Помните, что теорию вероятностей не так просто опровергнуть как вам кажется. Спасибо, пишите еще.

  • «Ешь. Спи. Пиши код. Повтори» — чушь
    0
    нет расслабляться вообще никогда нельзя. Просто надо всесторонне образовываться. Ну вот накодите вы кода. И кто этим кодом будет пользоваться? Вы же для кого-то кодите, надо понимать как минимум для кого и почему. Для этого нужна эмпатия и понимание чего он хочет и как он думает. А вы кодить-шкодить.

    Надо никогда не расслабляться и всегда думать головой, а кодить или не кодить — это зависит от деятельности. Я вообще могу два часа ходить туда-сюда, в голове вертя систему информационную, потом сесть на стул две строчки кода написать. и вам следует действовать по этому примеру.
  • Разработка Кинетической Новеллы: затраты, доходы, статистика, советы, выводы post factum
    +1
    Ну вот теперь надеюсь до многих умников дойдет что затраты такие, что бежать в аутсорс со своей «идеей» для мобильного приложения — дело весьма убыточное.

    Вам рекомендую послушать песню The Love Of Richard Nixon
  • Бизнес-процессы: Как все запущено и запутано. Глава Вторая «Мухи и котлета»
    0
    Статья хорошая, очень подробный разбор рынка.

    Конкретно бизнес-процесс — логистическое view. Пример: покупаем карандаши. Куда отправить заявку, кто ее получит и когда, куда он побежит у кого он купит. Бизнес-процесс? Бизнес-процесс. Лучше чтобы их кто-то инженерил.

    Enterprise level — это стратегия (что мы сделали, делаем и куда вообще хотим идти своей долбаной компанией) + структура предприятия.

    Business Process Level — уже понятно. Логистические схемы. Что и как покупаем, продаем, сбываем производим. Все цепочки.
    Infrastructure Level — маппинг людей, должностей и отделов на бизнес-процессы.
    IT Infrastructure Level — информационные системы нужно выделять в отдельное view.
    Financial Level — надо добавить. «токовая» модель, куда втекают денежки, куда вытекают. Чтобы мы знали что мы неубыточны своей компанией.

    Так, судя по вашему анализу, видно что это все в ужасном состоянии от одной терминологии можно шею свернуть. Так этому учить совершенно нельзя. Напрудили прудов.
  • Структурная модель СКУД предприятия с арендаторами и их клиентами
    0
    Вполне неплохая структурная модель дверей, турникетов и хозяев. Журнал есть, учет есть. Есть что анализировать, например, кто куда ходит или кто приходит и как уходит. Любые терки с безопасностью с переложением ответственности друг на друга и со всем прочим моментально исчезают.

    По этой модели уже можно сделать реальную систему. В принципе, хорошая работа, но увы не могу сказать что это крутая структурно-инженерная модель, поскольку предметная область достаточно простая. Однако модель хорошая.
  • Регулярные выражения для простых смертных
    –2
    Крайне не рекомендую книгу Фридла для регулярных выражений. Она плохая, плохо написанная и имеет кучу всяких проблем. Такая же плохая как и книга Кнута.

    Фактически оба уничтожили или как минимум покоробили свою индустрию — регулярные выражения заработали репутацию чего-то сложного и непонятного потому что Фридл написал ПЛОХУЮ, СЛОЖНУЮ, ОТВРАТИТЕЛЬНУЮ КНИГУ.

    Из литературы на рынке мне понравилось:
    Python Regular Expressions
    Б.Форта Регулярные выражения за 24 часа (аж 2004 года что ли)
    Неплохое введение если не ошибаюсь было в книге XSLT Дага Тидвелла
  • Утренний режим: как преуспевающие люди начинают свой день
    0
    >Нам нужно принять фразу Твена так: «Решайте сложнейшие задачи в первую очередь».
    Это просто greedy-приоритизация тасков. Как и всякая эвристика необязательно оптимальна. Иногда стоит попинать вола, то есть попрокрастинировать над сложнейшей задачей, иногда стоит пойти в библиотеку, иногда сначала сделать ресерч, а иногда сразу на нее кидаться. Не могу сказать как лучше.

    Я считаю себя достаточно успешным человеком, утро начинаю с выкуривания сигареты.
  • Какой бы совет я дал себе в начале своей карьеры программиста
    0
    Совершенно не согласен с тезисом, точнее согласен — но скорее этот тезис иллюстрирует убогость и однобокость мышления работодателя:
    >Работодателю интересно, чтобы Вы не росли профессионально, а росли производительно >(больше однотипной ответственности).

    Работодателю должно быть интересно, чтобы вы росли профессионально тогда вам можно поручать более сложные и ответственные задачи. Возможно просто ваши с работодателям представления расходятся — например, работодателю желательно чтобы вы углубились в предметную область, а вам в какую-то новую sexy-технологию. В любом случае с работодателем можно и нужно договариваться и разговаривать.

    >Работодателю интересно, чтобы Вы углублялись в стек тех технологий, которые использует >он сейчас. Если стек вдруг поменяется, то лучше найти синьора с многолетнем опытом >новой технологии «Х», чем ждать пока Вы переучитесь.
    Нет, не лучше. Проект не ограничивается набором какой-то технологии. Проект это и знание людей, и знание каких-то прочих технологий, и знание серверов, и знание баз данных, и знание психологических тонкостей заказчика или заказчиков. Поэтому работодателю интересно вложиться в одного человека на много лет вперед.
  • Все, что хотел
    0
    Хорошая девелоперская утилита, не уверен насчет Node.js может что-то по структурнее и попровереннее взять? Так в целом незакрытая ниша — сейчас каждый разработчик поднимает какой-нибудь зоопарк (HTTP Server, Database, NoSQL DB, Hadoop, etc).
  • Метод Монте-Карло для поиска в дереве
    –5
    Почему вы не хотите сыграть на двух уровнях сразу? Или на трех. Вы же уже дерево «предварительное» имеете. Осталось сыграть. Вот и новый алгоритм-болгаритм.
  • Методика его, деньги мои
    0
    «They made a company based on my research» какое-то. Если я автор уникальной методики, я еще одну методику придумаю. А этот дурень пусть радуется. По опыту, я в свое время работал ассистентом на кафедре, но изобрел пару методик — потом писаются в штаны и прибегают и все равно отстегивают. Главное non-reaction, им страшненько становится.
  • Наша модель мотивации персонала
    0
    Три эмоции управляют практически любым человеком: первая – страх, вторая – жадность, третья – тщеславие»

    А еще удовольствие — секс там, конфеток пожрать, и так далее.
  • От шедулера к планировщику
    0
    «Реальное время: нити такого класса всегда вытесняют с процессора нити других классов так быстро, как это возможно»

    Дмитрий, я просто предупреждаю что со времени появления защищенного режима процессоров Intel такой класс нитей исчез, условно на этом уровне работает операционная система, daemon триды там глобальные. Но вы что-то свое пилите, отказались из соображений безопасности. Чтобы нить реального времени не сломала что-то (умышленно или случайно). Просто предупреждаю, чтобы вы знали и не наступили на те же грабли, что инженеры Intel. Если вы делаете real time нити это нужно делать осознанно. Извините, пожалуйста, что несколько резкое замечание, но не мог не схватиться за маузер.
  • Конспирологи ликуют: после появления НЛО трансляция НАСА с МКС оборвалась
    –1
    Никакое там не НЛО, а какой-нибудь глонасс или 2гис или еще какая бяка неправильно запущенная летает. НЛО, обрадовались тоже мне.
  • Андрей Ершов: «Два облика программирования»
    0
    Программист-слуга и программист-хозяин — если думать именно в этих терминах, то просто, видимо, один в состоянии написать спецификацию, а другому надо написать спецификацию иначе он ни бе, ни ме. Подобное видно во всех широтах. 99,9% относятся к программистам слугам — знаем алгоритмы, знаем фреймворки, но надо чтобы пришел кто-то и сказал какой алгоритм или какой фреймворк. В лучшем случае даже не сказал точно, а обрисовал словами — и тот поймет. А хозяюшка может и выбрать сам и фрейморк и т.п. ему надо задачу поставить, а может и сам поставит себе, но такое не бывает. Я видел только одного за всю свою жизнь.

    «если (p′, d′) = t(p, d), где t — трансформация, выполненная машиной, то p′(d′) = p(d)». непонятна логика здесь с т.з. математики. Давайте уберем программа и данные и введем мат.функции и вы увидете что контрпример легко построить.

    То есть:
    (p',d') = t(p,d) при этом p'(d')<>p(d)
    Это ошибка, не знаю может в вашем случае не возникает.
  • Делаем мультизадачность
    0
    А может попробовать 2-steps scheduler:
    1. Select process.
    2. Select thread
  • День рождения Ершова
    +5
    «знают ли они, как сделать, чтобы программист в возрасте свыше 50 лет был бы не меньше полезен, нежели 30-летний.»

    Непонятна эта фраза, у 50-летнего программиста на 20 лет больше опыта. Даже при условии сегодняшнего мирового прогресса Технологий, человек в 50 лет действительно может не знать самых новых и крутых либ (может, и не надо кстати, некоторые типа node.js).

    Но +20 лет опыта это +20 лет опыта. Это опыт создания сложных систем, со всевозможными проблемами багами и прочим.

    Нам наверное пора отучаться думать что «лучшему программисту 30 лет» и пытаться удерживать в программировании чем дольше тем лучше, чтобы инженерный опыт накапливался. Такие дела.

  • 30+ кейсов: как скорость сайта влияет на конверсию
    0
    я так понимаю здесь происходит некий A/B тестинг
    Users did 0.21% fewer searches, even after we
    stopped injecting the delay.

    Кроме того, еще наверное сильнее упадет
    процент «повторного поиска» — написал, не понравилось,
    еще ищет. Как-то тут непонятно.

    Пример 11 Bing.com мне не нравится в силу того, что
    если быстро отрисовать первый результат то это как
    бы подстава пользователь видит первый результат
    другие не видет и скорее всего крямкает на него.
    То есть пользователя скорее принудили перейти чем
    0,7% кликов больше. Но надо разбираться.
  • Шпаргалка Java программиста 7.2 Типовые задачи: Обход Map'ы, подсчет количества вхождений подстроки
    0
    По идее варианты 2 и 3 должны быть идентичны, не думаю что разработчики оракл настолько умны что добавив лямбды переписали все заново, придумав какой-то сим салавим. Если и не идентичны, то где-то рядом. В одном случае вижу массив long[], в другом просто long. Плюс непонятно как реализованы лямбды точно. Но по идее должны быть рядом.
  • Нейросети vs вычисления на глазок
    0
    Ну не знаю, видимо на картинке люди закодировали ранг матрицы по количество разных цветов в строке, такое ощущение. То есть выбрать строки с максимумом различных элементов. Я почему-то глянул на столбцы и сказал что ранг 6 или 7

    Вопрос — как это добро кодировать. Видимо, одинаковые число надо кодировать одинаковым цветом. Причем близкие числа нужно кодировать цветом поближе.

    Проблем у существующего подхода два:
    1. Это быстрая оценка, но хорошая идея.
    2. Какова вычислительная сложность калибровки цветов? Такие дела, если маленькая то годидзе, если нет — то негодидзе, быстрее будет так ранг посчитать.

    В принципе задача найти ранг приблизительно хорошая, например для разложений матрицы на подматрицы. Крайне душеполезно и все такое но надо поподробнее написать, а то карнеги мелон марнеги мелон
  • Ученым удалось воспроизвести звучание Царь-колокола
    0
    Идея хорошая и метод правильно описан. Единственное что — я бы добавил шумов в модель и попробовал взять преобразование Фурье не FFT, а DFT целиком. Еще хорошая наводка — взять три колокола разных размеров. Один колокольчик, другой побольше третий еще больше и сравнить волны и посмотреть на решение должно быть еще глуше. Тут слишком звонко звучит.
  • Новый бот Microsoft умеет распознавать картинки, но игнорирует нацистов и нацистскую символику
    0
    Распознает ли бот Чарли Чаплина? Вот в чем вопрос.
  • Создание простой игры на базе FPGA
    –7
    отличное упражнение написать игру пинг понг на любом языке программирования. В один тред. С AI на генеративных функциях (иногда ошибается) и с Command pattern'ом.

    Хорошая задача, нормальный студент должен суметь кое-как написать.

    Вот тут ныли-ныли, что они не хотят быть «мясом» и писать на го. А вот идите ка на своей скале напишите хоть пинг-понг. И покажите и поговорим тогда.
  • Лабораторка
    –3
    Тут дело не в моральных принципах, а в том что допустим в микровселенной могут происходить какие-нибудь безобразия вроде гомосексуализма или еще чего и ребенку такую бяку видеть не пристоило, поэтому вот они и сдали креатор сделавший разумную жизнь по гарантии потому что так нельзя.
  • Угнано за шесть символов. Сокращатели ссылок поддались брутфорсу
    –3
    На самом деле можно и собственно, и 40 символьные адреса брутфорснуть. Можно сидеть и для сайта строки перебирать подряд. Как правило надо посмотреть внимательно на схему url-ования и можно прокверить какой-то сайт и написать скрипд который будет кверить, дизайн в большинстве случаев url-схемы, очень простой. Такие дела.
  • Пространство-время. Возраст вселенной. Пятница
    –2
    Что такое сфера? И что такое вселенная? Если мы говорим о звездочках и планетках и карликах и всяких интересных штучках дрючках, то у нас кроме скорости света есть и гравитационные силы. Вот гравитационные волны только открыли, а они распространяться должны быстрее — мне об этом говорил зам. зав. кафедрой, когда я работал ассистентом на кафедре физической математики.
  • Так ли нужно избавляться от ветвлений? — На примере sign, abs, min и max
    0
    Нужно понимать что вот под капотом глубоко где-то так (вариант 2) и будет, по крайней нормальный Math-compiler именно так и сделает, но это будет работать быстрее, потому что там решили общую задачу и написали 100.000 тестов. В принципе, поэтому либы и пишутся.

    Классический вариант реализуется несложной схемой из условий:

    Вот такие штуки превращаются
    sign_t sign0 (i32 a) {
    if (a>0) return +1;
    if (a<0) return -1;
    return 0;
    }
    В вот такие штуки:
    sign_t sign1 (i32 a) {
    return (a >> SHIFT) | ((u32)(-a) >> SHIFT);
    }
  • Сортировка слиянием по-простому
    0
    Написал тотже самый код. У меня через по-другому.

    1. Нам потребуется процедура copyArray(sourceArray, sourceStartPosition, destinationArray, destinationStartPosition) — замечу что копирование происходит фрагмента [sourceStartPosition; sourceArray.length — 1] в позиции [destinationStart; destinationStart + lengthOfSourceFragment — 1].

    2. Код процедуры слияния

    narray, murray — входные массейвы
    rarray — выходной

    narray — 0..n-1, length = n, i — indexer
    murray — 0..m-1, length = m, k — indexer
    rarray — 0..n+m-1, length = n+m, l — indexer

    i, k, l = 0;

    while ( i < n or k < m) {

    x = narray[i];
    y = murray[k];

    if (x <= y) {
    rarray[l] = x;
    i++;
    }

    else {
    rarray[l] = y;
    k++;
    }
    l++;
    }

    if i = n-1 then copyArray(murray, k, rarray, l+1)
    if k = m-1 then copyArray(narray, i, rarray, l+1)
  • ​«Как преуспеть в бизнесе, нарушая все правила» — объясняем книгу Дэна Кеннеди
    0
    Еще лучше написано в Managing with power, а еще лучше у него поискать презентацию на 48 минут там он весь сюжет озвучил.
  • Как мы делали Зимнюю Стажировку по iOS- и Android-разработке в Redmadrobot
    –5
    «Мы сфокусировались на нашем собственном опыте, о котором могут рассказать только разработчики Redmadrobot.»

    Смотрите map: focus -> концентрироваться. По-английски говорим focus, по-русски «концентрироваться». Фокусироваться в русском языке умеют оптические приборы, а люди нет.
  • Реверс-инжиниринг визуальных новелл
    –3
    Мне все это напомнило " бесконечное лето", очень популярную игру, причем популярную у очень странных и смешных людей
  • Более чем 80 средств мониторинга системы Linux
    +11
    Статья хорошая, надо обвести в рамочку но 80 утилит требуют классификации и какого-то быстрого поиска. Не знаю, например сделать то самое web-application с тегами, рубрикатором и функцией search.
  • Перспективы языка го для программиста
    –30
    Очень странная позиция, Антон. Начнем с того, что не «берем студентов и школьников и они пилят в проекте», а «берем студентов и школьников и учим их десять лет структурам данных и алгоритмам».

    Простота building blocks системы вовсе не равносильна простоте творения. Скажем, английский язык куда проще русского а писать на нем куда приятнее и выразительнее. С этим многие не согласятся, давайте съедем на программирование.

    Есть язык erlang. сложный. На нем ничего не написано.
    Есть язык C++. Не такой сложный, на нем многое написали. Все работает неправильно.
    Есть язык Java. Очень несложный. Все работает кое-как, написали много.
    Есть язык Python. Очень простой. Написали много не работает почти ничего.
    Есть язык PHP. Простой. Написали много. Что-то работает.
    Есть язык Delphi. Простой. В принципе работает. Но вышел из употребления.
    Есть язык С. На самом деле сложный. Систем написали сложных много. Но вышел из употребления.
    Есть языка Scala. Сложнее Java, проще C++. Написали в последние годы много. Не работает вообще ничего.
    Есть язык Lisp. Простой. Но не имеет аппаратной поддержки. Не написали вообще ничего.
    Есть язык Closure. Взяли Lisp, сделали в 100 раз сложнее и убожественнее и все равно ничего не написали.

    А язык go это замена С на рынке. Возможно, даже не go а его дальнейшие эволюции.

    Еще раз простота инструмента — не гарантия простоты целевой системы.

    А чтобы написать с челленджами и не быть мясом нужно:
    1. Иметь язык который стройно создан и имеет дизайн в своей структуре. И все как минимум базовые библиотеки в большинстве случаев работают.
    2. Знать алгоритмы и структуры данных. Программа — это алгоритмы и структуры данных.

    Такие дела, Антон. Такие дела.
  • Антихрупкость архитектуры хранилищ данных
    0
    Елена Верещага адски угорела по буквам. Отвечу тоже потоком текта с минимумом абзацев. Текст написан очень хорошо но мне напомнил г-на Белковского. Так, в целом ничего. Если есть 2000-3000 таблиц нужно реинжинирить и разбираться в СУБД, Service Layer и оркестратор точно надо перебирать. Core можно условно «выкинуть» и переписать, Data Mart придется перебирать уже с учетом обратной совместимости. Primary Data Layer большая помойка туда лишь бы сгрузить. Можно сильно не менять. В тексте вы пишете что у вас кернел 20-30 таблиц в коре — это может быть правда, а может и нет, нужно разбираться и анализировать.

    Процесс реинжиниринга действительно долгий, а бизнес не такой уж и динамичный раз они могут 2000-3000 таблиц хранить. Если бы бизнес был сильно динамичный то реинжиниринги стали бы давно-нормой. Так уж прям замораживать работу не стоит, но встречь предстоит много, предстоит выдергивать документацию какую можно и общаться со всеми, потому что 2000 таблиц тяжело документировать.

    То что 3NF для Core — не знаю, может быть и так. Нужно подумать. Точно нужно денормализовывать Data Mart чтобы снизить нагрузки. И возможно и помойку-Primary Data Layer (скорее всего там уже денормализовано все).

    Primary Data Layer работает на Write в основном, Core Read/Write, Data Mart Read. Отсюда примерный дизайн. Работы много. Мы будем сражаться и мы победим.