Одна соц-сеть — это очень мало. У меня, например, нет ВК, а ФБ я не люблю использовать для авторизации.
Интересный момент: а почему бы в случае создания нового аккаунта пользователя из социалки не дать ему возможность, поняв ошибку, дать возможность пересвязать акаунт с другой социалкой и слить два профиля? На многих сервисах можно привязываться ко многим сетям, это будет логичный шаг еще дальше.
А вам известны решения задачи не только ограничивать память, но еще и ее сегментировать, чтобы, например, доступно было много, но выделить кусок более 64 килобайт было нельзя? У меня недавно возникла задача отладки алгоритма в условиях сегментации памяти, он падал если приложение работало долгое время. Мое решение было слишком примитивное — перед стартом алгоритма выделить много маленьких кусочков, потом через один-два освобождать.
Мой опыт — не на себе, а на близком человеке — показывает, что если у вас с духовным самолечением получилось — вы были здоровым человеком с самого начала, это было как насморк вылечить. Поверьте, в случае клинической депрессии и неврозов и БАР2 все очень зависит от запущенности. На каких-то стадиях вы должны заниматься с очень серьезным мастером, но с какого-то момента без медикаментов вы даже на коврик для медитаций сесть толком не сможете. При этом я соглашусь: духовные практики и медитация — это действительно отличная профилактика депрессий.
Это вам хочется сделать робот-пылесос, а ребенку хочется робота с руками и ногами. Мой почти пятилетний ребенок, например, предпочитает лепить абстрактные самолетоподобные и человекоподобные конструкции из Дупла, вместо того, чтобы делать очень реалистичные вещи из «взрослого» Лего, хотя чудесно умеет собирать его самостоятельно по инструкции. Но пусть лучше пока так, чем ставить перед ребенком реальные задачи, которые он не в состоянии решить, да и зачем ему реальные вещи, если самолет с пятью крыльями прикольнее?
Пытаюсь придумать адекватное объяснение и не могу придумать ничего действительно обоснованного. Такое ощущение, что компилятор за нас решил сделать функцию инлайном, и оптимизировал ее вызов вместе с созданием объекта. Интересно бы было собрать ваш код с оператором clang'ом. И я могу предполагать, что в случае с раздельными модулями, результат бы был похож на gcc.
Так и есть, все, что может быть вызвано извне, подставляется в виде символа, которые потом уже соберет линковщик. Именно поэтому если вы хотите применять инлайны, они должны быть доступны в момент компиляции. Хотя есть возможность инлайнить и в момент линковки.
Мне кажется, этот код будет на 100% безопасен, поскольку std::cout либо полагается на то, что код оператора new для библиотеки уже где-то определен и скомпонован (если библиотеки run-time), либо что будет использован доступный компоновщику код в случае static-сборки.
Я вдруг подумал, что если вы анализировали исключительно культурные сообщества, то результаты вашего анализа могут вполне отвечать действительности, срез-то действительно не по всем людям. Кстати, было бы интересно разделить на группы уже авторов и сделать еще несколько рейтингов. Ну например, «русская классика», «русский модерн», «русские соврмененные», «западная классика», «западные современные» и так далее.
Было бы действительно очень интересно почитать про то, как вы решили эти проблемы.
Ну вы же понимаете, что анализ профилей и упоминаний по сути разные вещи, что тут было неоднократно отмечено. Т.е. вы анализировали не любимых авторов, а авторов, которые повышают значимость упомянувшего их, и тех авторов, которые есть в школьной программе.
Под выкладками я понимаю методику майнинга данных — как вы вычленяли авторов из интересов, какие технологии использовали, с какими проблемами столкнулись.
Я думаю, что если у Запорожца нет колес, то учится, конечно, можно и на нем, но без интереса и особого толку. Тем более, если учиться хотя бы на Жигулях последних моделей, то даже это много приятнее.
Вы поймите меня правильно. Чтобы ребенок учился, ему должно быть не только интересно, но курс должен быть построен логично и понятно. Я имею опыт преподавания студентам и на своем горьком опыте знаю, как сложно построить действительно логичный курс и как сложно удержать аудиторию, мы первый курс успешно с коллегой провалили. Если курс — это просто набор фактов, то его никто не будет учить, даже если он полезный и нужный. А еще у меня есть дочка, хотя и маленькая, и я твердо знаю: если игра не понятна, она мгновенно теряет интерес к игре. Так вот в вашем курсе — нелогично и непонятно.
Если у вас нет опыта преподавания, я настоятельно рекомендую вам просмотреть несколько самоучителей и учебников, обязательно разных и по разным предметам, просто чтобы увидеть, как они построены. А если есть, то порасспрашивайте коллег, может у кого есть опыт преподавания детям, они могут рассказать много полезного. И помните, что современные дети избалованы играми и интерактивными сайтами и софтом, как их заинтересует всего лишь блог? Это же просто читать… И это не шутка, к сожалению.
1. Если вы хотите написать учебник-блог, то представьте, что вы пишите книгу. Вы бы хотели читать ваш текст в виде книги? Я бы нет. Текст отформатирован жутчайше, картинок нет. Вы гляньте на любую документацию и туториалы к любой библиотеке, там и единство стиля, и типографика, и структура. У вас этого ничего нет.
2. Если вы хотите привлечь детей именно к обучающей платформе, я бы вам посоветовал прикрутить тут же поле для ввода кода с кнопкой. Читаем главу, сразу же смотрим примеры, вводим, смотрим результат, экспериментируем. Голый текст сейчас никого не заинтересует.
3. То, что вы начинаете с JS огромная ошибка. Вы уже в первой главе смешали вместе арифметику, диалоговые алерты и операции вывода в DOM. Тут же к этому примешиваются HTML. Я бы на первой же практике потерялся бы в этом винегрете. А в конце первой части (первой! еще даже примитивов языка не рассказали) вы уже рассказываете про css. Зачем? Почему бы не взять за основу любой другой скриптовый язык с минимальным интерфейсом (Perl, PHP, Ruby, Lua) и не дать возможность вводить программу в окно, показывая рядом результат по нажатию кнопки?
В целом отличное начинание, но реализации сводит ваши усилия на нет. Ваш ресурс был бы интересен в начале 2000-х, а сейчас сами судите, он выглядит как-то школьно, что ли… Обучать программированию сложно, обучать детей в квадрате сложнее. Я думаю, что формат обычного блога тут просто не сработает. Увы.
У нас в школе были калькуляторы с мнемокодами, но уже тогда я знал паскаль и имел представление про asm, поэтому калькуляторы казались чем-то излишним.
Интересно, чем вам примитивным казался Object Pascal? Я помню, меня приводило в полный восторг, как Borland удалось сделать из довольно неуклюжей объектной модели TP весьма изящную на то время VCL, по образу и подобию которой потом проектировали .NET. С++ конечно дает более легкие средства контроля над выполнением кода, но в плане создания интерфейсов он все же попроще.
А как это противоречит тому, что я написал? Я не считаю, что человек, не способный самостоятельно написать алгоритм сортировки массива, вообще способен адекватно кодить. А архитектору сортировки знать тоже вроде бы и не надо, но будет ли он адекватным архитектором, если не будет представлять, как работают отдельные узлы системы?
Я за то, чтобы основы императивного подхода преподавали в школе. А дальше — веер возможностей и специализаций, выбирай не хочу. Проблема же наших ВУЗов не в широте мировоззрения (которое на самом деле необходимо, иначе уменьшается обучаемость и потенциальные способности), а в отсутствии практики. Можно сколько угодно рисовать диаграммы данных, но если не спроектировать реальный веб-магазин на курсовик, то грош цена знаниям и ноль умений. Если не преподавать курс основ безопасности — с реальной демонстрацией уязвимостей и путей решения проблем — то получите дыру вместо сайта.
Я не понимаю, почему у нас не в почете трехлетнее бакалаврское образование. Его более чем хватает, чтобы создать узкого специалиста, который будет способен написать по проекту компонент системы. Выдали основы, выдали инструмент, выдали теоретическую базу под инструмент — вот и готовый спец. Я не уверен, что для этого хватит ПТУ, ведь даже для самой простой задачи необходимы инженерные навыки. Иначе «узкие специалисты» ПТУ-шники будут писать в индийском стиле, и попробуй их потом переучить. Могу предположить, что у вашей девушки-дизайнера все таки есть высшее образование, и для нее учиться — это нормальный процесс.
Насчет стартапов, мне кажется, другая ситуация. У них нет времени заниматься качеством, у них деньги горят, там бы хоть что-то выкатить, а там уже посмотрим, если взлетим — то полатаем.
Таблицу умножения учат во втором классе, алгебру начинают учить в пятом, до конца школы дают понимание начал анализа. Так же и тут, надо исходить из того, что можно дать в объеме выделенных часов. Но то, что вы перечислили и есть основы, в общем-то.
Есть еще момонт. Приходящие из лицеев не пашут, поэтому пропускают какие-то вещи, которые дают на первых курсах универа. Пашущие же сокурсники из обычных школ, впрягаясь в адовую учебу, отлично взбираются на все ступеньки. Так что тут есть еще и психологический момент.
У нас в универе курсы математики были очень интересно построены. Итак, у нас есть база в виде алгебры, на которую навешивается матан и линейная алгебра. Матан в какой-то момент становится комплексным на полях, иными словами, происходит обобщение, и все теореты 1-го курса на 2-м рассматриваются с новой точки зрения. Матричным операции обобщаются тензорнам анализом, а потом вся математика внезапно оборачивается функциональным анализом операций, который еще раз обобщает все, что было до этого в одну теорию более высогоко порядка, еще раз повторяя все теоремы, только опять же, в новом свете. Параллельно проходит куча специальных курсов, уже использующих готовые на тот момент знания.
А теперь обратно к программированию. Любой школьник способен понять процедурное программирование + структуры данных. Классы — это обобщение процедур-данных. Объекты — обобщение понятия интерфейс. А функциональное программирование — это дополнительное обобщение. Упомянутая мной книжка из Стенфорда была устроена именно так: выстраивала иерархию обобщений. Ни одна документация по лямбда функциям ни в одном языке не содержала этой иерархии, именно поэтому научиться мыслить на новом уровне абстракции по ним невозможно. Если ваш университетский курс программирования и CS не был цепочкой вот таких иерархий, то меня абсолютно не удивляет, что только 3 из 50 людей въехали в теории более высоких уровней.
С точки зрения этих иерархий паскаль как раз тот язык, который позволяет на первых порах оторваться от нюансов реализации CPU и при этом не содержит сахара, что заставляет вдумываться в написанное, и он чисто реализует самую простую процедурную парадигму, в отличие от Java, например.
Почему asm первый? Может лучше сразу с машинных кодов начинать?
Мне кажется, что надо в самое начало ставить курс алгоритмов/данных, потом С++/Java/C#, а потом уже asm (илм параллельно с С++) и потом уже ОС и теории. Фишка в том, что первый курс можно читать в школе для ознакомления с программированием вообще, а вот asm я бы в школе давать не стал, единицы поймут.
Мне кажется, что обучение программированию надо начинать, как ни странно, с программирования, а не с технологий и языков. Мы в свое время начинали с паскаля, который именно для обучения и был создан, это потом на него накрутили объекты и Delphi. Сначала на простом языке человек учится составлять вообще алгоритм, понимая принципы работы компьютера, разбирается с примитивными структурами данных. Этот курс, помню, занял год в школе, но это же арифметика, без которой не будет ни системного программиста, ни архитектора, ни кодера. И современные скриптовые языки, мне кажется, не очень подходят, потому что в них уже все это реализовано, и человек начинает мыслить примитивами языка, а не алгоритмами.
Паскаль вполне позволяет работать с динамической памятью, с графикой и с ассемблером. И когда эти двери показаны, все последующие курсы-языки-технологии будут выходом в нужном человеку направлении. И да, С++ я бы предлагал вторым языком. Я отчетливо помню, что до каких-то вещей мне пришлось долго созревать, прежде чем стало понятно, что же автор книги пытается донести.
А как человек решит, что он системщик или архитектор? Мне кажется, что базовый курс алгоритмов надо выдавать в школе, как и алгебру, а к универу человек уже сможет достаточно попробовать, чтобы знать, что ему интересно. И в универе да, там уже системщики получают ASM/С/С++, а прикладные программисты могут писать вообще на чем угодно.
Хотя опять же, системщик системщиком, а я хоть и пишу в основной работе на С++, тем не менее делаю сторонние хобби-проекты на PHP/JavaScript/Python, что позволяет увидеть новые подходы, которые часто чудесно переносятся в основную работу. А пару лет назад стенфордская книжка по фукциональному программированию не сделала из меня функциональщика, но открыла глаза на то, что лямбда функции — они не только для короткой записи кастомного компаратора в std::sort(). Поэтому универ должен давать обзорные курсы разных языков и парадигм.
А это только мне кажется, что 65000 — это не совсем BigData, если данные вытаскивались только из профилей? Очевидно же, что результат анализа профиля показывает не то, что люди реально читают, а то, что они хотели бы, что бы другие думали, что они читают. Мы же все понимаем, что профиль — это не то, что человек есть, а то, что чем он хотел бы казаться в глазах других. Интересно было бы анализировать комментарии и диалоги и считать там упоминания книг и авторов. Вот это была бы совсем другая, действительно интересная и актуальная статистика.
Ну и вообще ничего не сказано про технологии извлечения данных, а гистограммы в Экзеле все строить умеют. На графиках нет даже второго измерения.
Многие ставят Мастер и Маргарита, потому что не так давно вышел одноименный и не самый плохой сериал. Не было бы сериала — никто бы и не вспомнил. И да, списки книг очень сильно повторяют школьную программу. У меня много читающих друзей, Стругацких прочитали все, а осознанно добраться до Достоевского смогли очень немногие. Так что графики меня не то чтобы озадачили, они вообще не имеют отношения к реальности.
В топе должны быть Маринина, Коэльо, Бах, Лукьяненко, Перумов и Толкин, а никого из них нет не то чтобы в десятке, они вообще в список не попали! Так что как указали выше, исходные данные — сплошное лицемерие и ложь, за исключением упомянутых групп, где означенные авторы упомянуты.
А сам анализ… Я ожидал выкладки, а не результативную статистику, построить гистограмму по уже извлеченным данным дело нехитрое.
Может быть есть смысл сделать ползунок процентов заполненности ответа? Если заполнено меньше трети, то не принимать отзыв как неполный, если меньше двух третей, то показывать диалог, что информации мало, а если больше, то принимать.
Я понимаю, что субъективны, но меня порадовала тенденция: два из двух самых негативных отзывов во всей Европе именно о Брюсселе. Впрочем, я и сам не считаю Брюссель идеальным местом для жизни. После того, как появится больше отзывов, можно будет проводить целые социологические исследования на тему «восприятие страны сквозь призму места жительства». С нетерпением жду большего числа отзывов!
Интересный момент: а почему бы в случае создания нового аккаунта пользователя из социалки не дать ему возможность, поняв ошибку, дать возможность пересвязать акаунт с другой социалкой и слить два профиля? На многих сервисах можно привязываться ко многим сетям, это будет логичный шаг еще дальше.
Пытаюсь придумать адекватное объяснение и не могу придумать ничего действительно обоснованного. Такое ощущение, что компилятор за нас решил сделать функцию инлайном, и оптимизировал ее вызов вместе с созданием объекта. Интересно бы было собрать ваш код с оператором clang'ом. И я могу предполагать, что в случае с раздельными модулями, результат бы был похож на gcc.
Мне кажется, этот код будет на 100% безопасен, поскольку std::cout либо полагается на то, что код оператора new для библиотеки уже где-то определен и скомпонован (если библиотеки run-time), либо что будет использован доступный компоновщику код в случае static-сборки.
Было бы действительно очень интересно почитать про то, как вы решили эти проблемы.
Под выкладками я понимаю методику майнинга данных — как вы вычленяли авторов из интересов, какие технологии использовали, с какими проблемами столкнулись.
Вы поймите меня правильно. Чтобы ребенок учился, ему должно быть не только интересно, но курс должен быть построен логично и понятно. Я имею опыт преподавания студентам и на своем горьком опыте знаю, как сложно построить действительно логичный курс и как сложно удержать аудиторию, мы первый курс успешно с коллегой провалили. Если курс — это просто набор фактов, то его никто не будет учить, даже если он полезный и нужный. А еще у меня есть дочка, хотя и маленькая, и я твердо знаю: если игра не понятна, она мгновенно теряет интерес к игре. Так вот в вашем курсе — нелогично и непонятно.
Если у вас нет опыта преподавания, я настоятельно рекомендую вам просмотреть несколько самоучителей и учебников, обязательно разных и по разным предметам, просто чтобы увидеть, как они построены. А если есть, то порасспрашивайте коллег, может у кого есть опыт преподавания детям, они могут рассказать много полезного. И помните, что современные дети избалованы играми и интерактивными сайтами и софтом, как их заинтересует всего лишь блог? Это же просто читать… И это не шутка, к сожалению.
1. Если вы хотите написать учебник-блог, то представьте, что вы пишите книгу. Вы бы хотели читать ваш текст в виде книги? Я бы нет. Текст отформатирован жутчайше, картинок нет. Вы гляньте на любую документацию и туториалы к любой библиотеке, там и единство стиля, и типографика, и структура. У вас этого ничего нет.
2. Если вы хотите привлечь детей именно к обучающей платформе, я бы вам посоветовал прикрутить тут же поле для ввода кода с кнопкой. Читаем главу, сразу же смотрим примеры, вводим, смотрим результат, экспериментируем. Голый текст сейчас никого не заинтересует.
3. То, что вы начинаете с JS огромная ошибка. Вы уже в первой главе смешали вместе арифметику, диалоговые алерты и операции вывода в DOM. Тут же к этому примешиваются HTML. Я бы на первой же практике потерялся бы в этом винегрете. А в конце первой части (первой! еще даже примитивов языка не рассказали) вы уже рассказываете про css. Зачем? Почему бы не взять за основу любой другой скриптовый язык с минимальным интерфейсом (Perl, PHP, Ruby, Lua) и не дать возможность вводить программу в окно, показывая рядом результат по нажатию кнопки?
В целом отличное начинание, но реализации сводит ваши усилия на нет. Ваш ресурс был бы интересен в начале 2000-х, а сейчас сами судите, он выглядит как-то школьно, что ли… Обучать программированию сложно, обучать детей в квадрате сложнее. Я думаю, что формат обычного блога тут просто не сработает. Увы.
Интересно, чем вам примитивным казался Object Pascal? Я помню, меня приводило в полный восторг, как Borland удалось сделать из довольно неуклюжей объектной модели TP весьма изящную на то время VCL, по образу и подобию которой потом проектировали .NET. С++ конечно дает более легкие средства контроля над выполнением кода, но в плане создания интерфейсов он все же попроще.
Я за то, чтобы основы императивного подхода преподавали в школе. А дальше — веер возможностей и специализаций, выбирай не хочу. Проблема же наших ВУЗов не в широте мировоззрения (которое на самом деле необходимо, иначе уменьшается обучаемость и потенциальные способности), а в отсутствии практики. Можно сколько угодно рисовать диаграммы данных, но если не спроектировать реальный веб-магазин на курсовик, то грош цена знаниям и ноль умений. Если не преподавать курс основ безопасности — с реальной демонстрацией уязвимостей и путей решения проблем — то получите дыру вместо сайта.
Я не понимаю, почему у нас не в почете трехлетнее бакалаврское образование. Его более чем хватает, чтобы создать узкого специалиста, который будет способен написать по проекту компонент системы. Выдали основы, выдали инструмент, выдали теоретическую базу под инструмент — вот и готовый спец. Я не уверен, что для этого хватит ПТУ, ведь даже для самой простой задачи необходимы инженерные навыки. Иначе «узкие специалисты» ПТУ-шники будут писать в индийском стиле, и попробуй их потом переучить. Могу предположить, что у вашей девушки-дизайнера все таки есть высшее образование, и для нее учиться — это нормальный процесс.
Насчет стартапов, мне кажется, другая ситуация. У них нет времени заниматься качеством, у них деньги горят, там бы хоть что-то выкатить, а там уже посмотрим, если взлетим — то полатаем.
Есть еще момонт. Приходящие из лицеев не пашут, поэтому пропускают какие-то вещи, которые дают на первых курсах универа. Пашущие же сокурсники из обычных школ, впрягаясь в адовую учебу, отлично взбираются на все ступеньки. Так что тут есть еще и психологический момент.
У нас в универе курсы математики были очень интересно построены. Итак, у нас есть база в виде алгебры, на которую навешивается матан и линейная алгебра. Матан в какой-то момент становится комплексным на полях, иными словами, происходит обобщение, и все теореты 1-го курса на 2-м рассматриваются с новой точки зрения. Матричным операции обобщаются тензорнам анализом, а потом вся математика внезапно оборачивается функциональным анализом операций, который еще раз обобщает все, что было до этого в одну теорию более высогоко порядка, еще раз повторяя все теоремы, только опять же, в новом свете. Параллельно проходит куча специальных курсов, уже использующих готовые на тот момент знания.
А теперь обратно к программированию. Любой школьник способен понять процедурное программирование + структуры данных. Классы — это обобщение процедур-данных. Объекты — обобщение понятия интерфейс. А функциональное программирование — это дополнительное обобщение. Упомянутая мной книжка из Стенфорда была устроена именно так: выстраивала иерархию обобщений. Ни одна документация по лямбда функциям ни в одном языке не содержала этой иерархии, именно поэтому научиться мыслить на новом уровне абстракции по ним невозможно. Если ваш университетский курс программирования и CS не был цепочкой вот таких иерархий, то меня абсолютно не удивляет, что только 3 из 50 людей въехали в теории более высоких уровней.
С точки зрения этих иерархий паскаль как раз тот язык, который позволяет на первых порах оторваться от нюансов реализации CPU и при этом не содержит сахара, что заставляет вдумываться в написанное, и он чисто реализует самую простую процедурную парадигму, в отличие от Java, например.
Мне кажется, что надо в самое начало ставить курс алгоритмов/данных, потом С++/Java/C#, а потом уже asm (илм параллельно с С++) и потом уже ОС и теории. Фишка в том, что первый курс можно читать в школе для ознакомления с программированием вообще, а вот asm я бы в школе давать не стал, единицы поймут.
Паскаль вполне позволяет работать с динамической памятью, с графикой и с ассемблером. И когда эти двери показаны, все последующие курсы-языки-технологии будут выходом в нужном человеку направлении. И да, С++ я бы предлагал вторым языком. Я отчетливо помню, что до каких-то вещей мне пришлось долго созревать, прежде чем стало понятно, что же автор книги пытается донести.
А как человек решит, что он системщик или архитектор? Мне кажется, что базовый курс алгоритмов надо выдавать в школе, как и алгебру, а к универу человек уже сможет достаточно попробовать, чтобы знать, что ему интересно. И в универе да, там уже системщики получают ASM/С/С++, а прикладные программисты могут писать вообще на чем угодно.
Хотя опять же, системщик системщиком, а я хоть и пишу в основной работе на С++, тем не менее делаю сторонние хобби-проекты на PHP/JavaScript/Python, что позволяет увидеть новые подходы, которые часто чудесно переносятся в основную работу. А пару лет назад стенфордская книжка по фукциональному программированию не сделала из меня функциональщика, но открыла глаза на то, что лямбда функции — они не только для короткой записи кастомного компаратора в std::sort(). Поэтому универ должен давать обзорные курсы разных языков и парадигм.
Ну и вообще ничего не сказано про технологии извлечения данных, а гистограммы в Экзеле все строить умеют. На графиках нет даже второго измерения.
В топе должны быть Маринина, Коэльо, Бах, Лукьяненко, Перумов и Толкин, а никого из них нет не то чтобы в десятке, они вообще в список не попали! Так что как указали выше, исходные данные — сплошное лицемерие и ложь, за исключением упомянутых групп, где означенные авторы упомянуты.
А сам анализ… Я ожидал выкладки, а не результативную статистику, построить гистограмму по уже извлеченным данным дело нехитрое.