Как стать автором
Обновить
2
0

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

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

Больше похоже на очередного "изнасилованного журналиста" https://www.youtube.com/watch?v=HxTpQA8AIrY
В 11 винде так же как в 10 можно создать оффлайн аккаунт без проблем.

За лаконичностью и изящностью кода (пример с обменом значений переменных) в питоне лежит куча "магии" там точно так же создался временный объект кортеж который потом был "распакован" и удален. В паскале все произошло явно и это большой плюс при обучении. Да синтаксис паскаля по современным меркам тяжеловат тут спорить тяжело и питон наверное более востребован в современном мире, однако учить программировать можно на чем угодно. Главное чтобы тамада был хороший и конкурсы интересные учитель мог хорошо объяснить материал и умел заинтересовать детей, а это талант который не зависит от языка программирования.

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

Объясните мне как отцу двоих детей (с абсолютно разным отношением к учебе), что значит 25 минут учим уроки? Если я за 10 сделал мне что "делать вид" или я уже посидел 25 минут, верните планшет помидор звонил!

Я понимаю что статья не про это, но индекс создан какой то странный. Почему posts(likes, created desc). Селективность у количества лайков просто никакая. Теоретически мы обойдем все дерево. Плюс записи будут постоянно менять свой порядок и
"прыгать по всему дереву" (жудкая фрагментация). Если сделать индекс posts(created), а лайк перенести в include, то новые записи будут попадать в "конец" индекса (в одни и те же ноды) Плюс при поиске "недавних" записей нам нужно будет обойти только минимальную часть дерева.

Мне показалось автор перемудрил. Из разряда ну зачем то же нужны эти CTE. Так и не понял что смутило в оконных функциях.


SELECT id, SUM(d) OVER tzw2
FROM
  (
    SELECT 2 - (LAG(y, 1, 0) OVER tzw = y AND LAG(x, 1, -1) OVER tzw = x - 1) AS d, y ,x ,id
    FROM seats 
    WHERE venue_id = @venue_id 
    WINDOW tzw AS (ORDER BY y, x)
  ) t WINDOW tzw2 AS (ORDER BY y, x);

я не специалист в MySQL, пускай тот кто понимает объяснит чем этот ANALYZE хуже? Судя по кост модели так гораздо выгодней и имхо читабельней.


| -> Window aggregate with buffering: sum(t.d) OVER tzw2  (actual time=0.132..0.139 rows=5 loops=1)
    -> Sort: t.y, t.x  (actual time=0.008..0.008 rows=5 loops=1)
        -> Table scan on t  (actual time=0.000..0.001 rows=5 loops=1)
            -> Materialize  (actual time=0.121..0.122 rows=5 loops=1)
                -> Window aggregate with buffering: lag(seats.x,1,-(1)) OVER tzw, lag(seats.y,1,0) OVER tzw  (actual time=0.051..0.106 rows=5 loops=1)
                    -> Sort: seats.y, seats.x  (cost=0.75 rows=5) (actual time=0.030..0.031 rows=5 loops=1)
                        -> Index lookup on seats using venue_id_y_x (venue_id=(@venue_id))  (actual time=0.015..0.018 rows=5 loops=1)
 |

Мой опыт был к сожалению не такой радужный. Брал ребенку модель трактора. Оси сделанные из зубочисток постоянно ломались под нагрузкой от резинки. Сама идея выше всяких похвал.

Так и не понял с чем автор не согласен у Вирта? Вирт вроде нигде не утверждал что одно важнее другого. Вирт пытался "продемонстрировать, насколько глубоко влияет выбор той или иной структуры на алгоритмы" (С) Вирт (глава 2.1).

По-моему правильное решение выглядит так.
Лёша: ребята кто то видел Юлю?
Максим: она не коммитила…
Серёжа: давно пора!

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

Если вашему ребенку еще нет 6-7 лет и вам кажется что программировать ему еще рано, просто попробуйте поиграть в игру "Я робот". Мы так делали с дочерью когда ей было 4-5 лет. Это основы алгоритмизации. Вы договариваетесь что вы будете выполнять дословно все приказы ребенка. Она в свою очередь должна отдавая команды выполнить какое то задание.
Например делаем чай:


  • Возьми чашку.
  • Здесь нет чашки. (покажите растерянность)
  • Подойди к шкафу. Возьми чашку.
  • (шкаф закрыт) попытайтесь взять ударившись руками несколько раз в дверцу.
  • открой шкаф… и т.д.
    Это отличный способ провести время вместе с ребенком весело. Играть можно где угодно.

Как отец двух детей 14 и 8 лет. Поделюсь опытом.
LightBot, Scratch, Arduino суть одно и то же, инструмент который позволит показать что за сложным поведением объектов может стоять простая логика. Отличный вариант для детей младше 12-13 лет. Раньше начинать серьезно заниматься программированием наверное бессмысленно.
Игрострой вообще любой язык.
Игры можно писать на всем. Skratch с возможностью поделиться проектами будет отличным вариантом. Начать можно с простых видео уроков, когда ребенок просто повторяет за преподавателем. Есть уроки на youtube. Все же как показал мой опыт, сначала ребенку интересно сделать "самому" (без родителей) и похвастаться. Когда ребенок наигрался в "обезьянку" и понял что дальше повторять за кем то не интересно. У него появляется желание делать что то самому и приходит понимание что создавать объекты соединять блоки воедино он умеет, а как реализовать собственные идеи он не понимает. Тут выход родителей. Нужно показать как реализовывать свои идеи придумайте что-то свое. Поэтапно покажите как простые действия из учебника (у нас дают обзорно скретч во втором классе) превращаются в игру.
Первый проект который я делал с дочерью была игра в выбивного.
Как заставить мячик летать по экрану и отталкиваться?
Как заставить кота на экране бегать в зависимости от нажимаемых кнопок?
Как проверить что мяч столкнулся с котом?
Как считать сколько раз мяч попал в кота?
Добавим злодея краба который будет кидать новые мячи каждые 10 секунд.
У кошки девять жизней. Конец игры если они закончились. Грузим в сеть. Звоним бабушка дедушкам хвастаемся.
https://scratch.mit.edu/projects/219603236/
Все выше ребенок может сделать сам, а после того как он увидит целостную картину он и придет к программированию.
Игрушки тоже бывают разные. Старший сын вместе с тем как начал программировать так же увлекался игрушками Zachtronics. SpaceChem, TIS-100. Туда же Human Resource Machine.
После игрушек приходит время выбирать. И тут уже все зависит от интересов и способностей ребенка. Именно этот выбор и будет диктовать язык.
Если ребенок увлекается математикой логичным продолжением будет информатика. Более серьезный алгоритмический подход. Оптимальным языком будет C/C++. Из плюсов этого выбора наличие олимпиад в том числе и международных. Наличие множества соревнований и огромное комьюнити (codeforces и подобные сайты).
Веб. HTML CSS и конечно никуда без Javascript. В школе ребенок сможет похвастаться своим сайтом.
Мобильные приложения под андроид будет вами любимая Java. Отличный способ "похвастаться" в школе.
Нет плохих и хороших языков. Есть разные дети и разные интересы, а плохие программы можно писать на любом языке.
И да нет никакой необходимости выбирать что то одно. Сын участвует в олимпиадах по информатике, заинтересовался вебом, ходил в кружок Samsung по разработке мобильных приложений увлекался ардуиной. Пробуйте все и только методом проб и ошибок вы узнаете что нужно вашему ребенку. Единственное требование на начальном этапе ребенок должен видеть что это интересно не только ему, но и вам. Только на личном опыте и собственным интересом и поддержкой вы сможете "заразить" ребенка программированием, а дальше "болезнь" начнет прогрессировать без вашего вмешательства.

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

При всем уважении, VIII — число, а V и I — цифры, просто римские числа являются непозиционной системой счисления.

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

10-20 здоровых мужиков будут жарить быков… разрешите им в городе брать баб в отряд.

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

Вопрос даже не в быстродействии, что мешает такими фильтрами подбирать пароли userpasswordstartswith='a'.

Так это найти все начала периодов, сравнив данные с предыдущим, и все концы периодов сделав то же самое с последующими потом объединить попарно начала и концы, не выделяя отдельно однодневные и прочие периоды. Насчет NULL значений в поле Value вы меняете постановку на ходу, понимаю что ваш заказчик всегда делает так же, но может в рамках статьи этого делать не нужно? Если вы думаете что вы сделали великое открытие вы ошибаетесь и в данном случае скорее вопрос реализации и ваша реализация просто уродлива. Я пытался написать нормальный запрос с нормальной идеей, но если автору самому не интересна тема обсуждения, то я темболее не вижу в нем смысла. Автор любит свой велосипед и агрессивен ко всем кто отказывается его "полюбить" :).

SELECT volume, convert(datetime,date) as date INTO #Test FROM (VALUES (1,'2017-01-01'),(2,'2017-01-02'),(3,'2017-01-03'),(3,'2017-01-04'),(3,'2017-01-05'),(4,'2017-01-06'),(1,'2017-01-10'),(1,'2017-01-11'),(1,'2017-01-15')) AS t(Volume, DATE)

;with cte as (
select volume, date, 
    isnull(LEAD(date) over (ORDER BY date), date+10) as nd,  
    isnull(LEAD(volume) over (ORDER BY date), volume+1) as nv, 
    isnull(LAG(date) over (order by date),date-10) as pd,
    isnull(LAG(volume) over (ORDER BY date), volume-1) as pv 
from #test
)
select s.volume, s.date as vt_beg, e.date  as vt_end
from (select row_number() over (order by date) as rn, volume, date from cte where date>pd+1 or volume <> pv) s
join (select row_number() over (order by date) as rn, date from cte where date<nd-1 or volume <> nv) e on s.rn = e.rn

Вот так подойдет? :)… Кстати если у Вас есть большой объем реальных данных интересно какой запрос и во сколько раз работает быстрей потому что, на маленьком объеме поведение практически идентичное, а план сервер категорически отказывается.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность