У меня на работе специфический интернет, который фильтрует все пакеты по User-Agent (не спрашивайте зачем так сделали, не знаю). Вот в таких условиях скачанная и установленная Android Studio не работает, затыкается сразу при попытке скачать что-то из инета. Проверял год назад.
Чтобы это обойти пришлось с помощью mitmproxy модифицировать пакеты на лету, добавляя нужный User-Agent, и работать как раз таки через прокси. И даже это помогает не во всех случаях - вероятно, настройки прокси не распространяются на все утилиты, входящие в Android Studio, или может быть у какой-то утилиты таймаут слишком маленький.
Непонятно. В коробочных продуктах я скачиваю (или даже покупаю на DVD) единый инсталлятор, сколько бы гигов он не был, и дальше интернет не нужен вообще.
Почему все эти пакеты не включены в состав среды разработки?
Вот что мне не нравится во всех современных IDE, в том числе и в Android Studio (и в других программах входящих в инфраструктуру разработки под Android) - так это тотальная зависимость от интернета. Причем люди вроде пытались делать оффлайн-версии - но всё равно при попытке собрать проект какие-то программы непременно лезут в инет, и если инета нет то ничего не собрать.
Раньше было лучше - коробочные продукты, пусть даже на нескольких CD/DVD, гарантированно включали в себя всё что нужно для работы, и их хватало на несколько лет пока там новая версия не выйдет.
Ну что можно сказать... Политические проблемы техническими средствами как правило не решаются (бывают и исключения, но они совсем уже не по тематике Хабра).
Операторы связи - это крупный бизнес. А значит - большие финансовые потоки и возможности лоббирования. И если бизнес терпит убытки по вине режима, то с его стороны было бы разумно пытаться как-то влиять на ситуацию именно в политической плоскости. Что бы там ни говорили про демократию, но в капиталистических странах крупный бизнес как правило имеет (или должен иметь?) значительное влияние на власть. И в общем это лучше, чем непойми кто из организации, которую по трагическому недоразумению не люстрировали в начале девяностых.
Смысл как раз в том, что новый синтаксис исправляет ошибки дизайна языка. Делает его более логичным, более строгим, более удобным. А предложенный мной путь позволяет сохранить совместимость со старым кодом (точнее, отсутствие необходимости его переписывать) и при этом писать новый код уже на новом диалекте - и всё в рамках одного проекта. Буквально, часть файлов с расширением *.cpp, часть с расширением *.cpp2, и все компилируется и работает.
Думаю, если копнуть поглубже в эволюционную психологию, то все эти искажения окажутся следствиями того, что наши мозги - это практически на 100% мозги охотников и собирателей:)
Очевидно что не любые изменения можно версионировать, а только изменения в синтаксисе (то что называется синтаксический сахар). В одной версии функция объявляется как inf foo(int), в другой как func foo(int) int, и т.д. А как раз ABI у разных версий должен быть общим.
В результате в новой версии язык станет синтаксически чище и понятнее. Можно будет легче вводить новые языковые возможности. Это - единственная цель данного предложения. Но цель важная, так как именно этот "сахар" определяет в конечном итоге удобство использования языка программистами, количество ошибок, всяких UB и т.д.
Все проблемы с нарушением обратной совмесимости прекрасно решаются. Не знаю почему никому не приходит в голову очевидное решение версионирования языка на уровне исходников, и мыши продолжают жрать кактус святой обратной совместимости, вводя все новые и новые безумные заплатки в единственную версию языка.
да, а также типа Go, Rust, Swift, Scala, Kotlin и т.д. :)
Для любителей ломать обратную совместимость есть "современные языки".
Вот здесь я предложил рабочий способ одновременно сломать и сохранить обратную совмесимость. Просто вводим новую версию языка, несовместимую со старой на уровне исходников, но при этом требуем от компиляторов поддерживать обе версии одновременно в рамках проекта - за счет этого получается гарантированная совмесимость на уровне ABI без стандартизации самого ABI. Старую версию замораживаем, все улучшения вносим только в новую, и так постепенно лет за 20 все кому нужно перейдут на новую версию.
И то и другое что-то вроде нестандартных/экстремальных режимов работы человеческой нейросети:)
И читая статью, постоянно ловил себя на мысли - как же мы, люди, все-таки уязвимы - перед старостью, перед болезнями, перед несовершенством нашей биологической природы... Гениальный математик, и в конце жизни скатился в мистицизм и нумерологию:( И ведь каждого из нас в старости может ждать нечто подобное:(
Причем интуитивно более-менее понятно почему так происходит: мозг, на пике своих возможностей находивший скрытые закономерности в сложнейших математических абстракциях, в старости пытается делать то же самое - но в силу заметно меньших ресурсов делает это в очень упрощенном виде, на базовых, заложенных на инстинктивном уровне понятиях: добре и зле, религиозны/мистических чувствах и тому подобном - том, что заложено в нас наиболее глубоко.
Я в FIDO не был никогда, компьютер появился в 1998, интернет в 2000. И думаю, мои первые впечатления от интернета примерно такие же как ваши от FIDO.
Доступ был по модему, и поначалу это было примерно 5 часов в месяц. В таких условиях субъективная ценность информации казалась очень высокой, поэтому прежде чем заходить в интернет, тщательно думал что буду скачивать, а затем изучать оффлайн. По результатам изучения составлял файлы со ссылками на то что нужно скачать при следующем заходе. Пользовался и специальными программами, которые скачивали сайты оффлайн. В основном были интересны статьи по программированию и прочему айти, это казалось самым важным и интересным. Была даже специальная бумажка, где я вел учет времени, чтобы неожиданно не оказаться без интернета:)
В общем, статья - просто ностальгия по старым добрым временам - первые впечатления, да еще и в молодости, всегда наиболее яркие.
Что же касается "неайтишников"... вот сейчас есть всякие анонимные p2p-сети. И что, много ли там айтишников и много ли там ценной информации?
Ох уж эти шаблоны:) Но я не против унифицированной инициализации всего в круглых скобках (да и вообще я всегда за универсальность во всем). А зачем добавили фигурные? (на Хабре кстати множество статей с подробным разбором инициализации, например эта). Для решения проблемы "vexing parse" и для инициализации контейнеров. Первое - это проблема кривого синтаксиса функций (функция должна начинаться с ключевого слова, как во всех современных языках, а не с возвращаемого типа). Второе решается введением концепции "кортежей". Но вместо прямого решения проблемы )пусть и ломающего обратную совместимость) решили поставить заплатку на заплатке и породили еще один синтаксис инициализации.
Конечно в С++ с инициализацией наворотили лишнего. Зачем было вводить "универсальную инициализацию," если проблема была в другом - в том что нужно было ввести новый синтаксис функций (и его все равно ведь ввели - с auto и стрелочкой). И вообще добавление новых фич в С++ становится все более фрагментарным и бессистемным.
В целом я согласен - круглые скобки это конструктор (выполнение кода), фигурные с присваиванием - поэлементное присваивание публичных полей (т.е. даже и не инициализация как таковая, а просто присваивание нескольких полей одним оператором). Фигурные скобки без оператора присваивания вообще не стоило вводить. А вот что стоило, так это ввести универсальную концепцию кортежей - как раз тех самых составных литералов в фигурных скобках - как структурно типизированных объектов. Тогда бы можно было писать что-то вроде {i, j, k} = {1,2,3}, не потребовался бы отдельный синтаксис "структурных привязок" и т.д.
Для криптоисторического фанфика в жанре фэнтези идея подойдет:)
Это именно он и есть. Заодно такой сертификат сломал VirtualBox и пришлось переходить на VMWare:)
У меня на работе специфический интернет, который фильтрует все пакеты по User-Agent (не спрашивайте зачем так сделали, не знаю). Вот в таких условиях скачанная и установленная Android Studio не работает, затыкается сразу при попытке скачать что-то из инета. Проверял год назад.
Чтобы это обойти пришлось с помощью mitmproxy модифицировать пакеты на лету, добавляя нужный User-Agent, и работать как раз таки через прокси. И даже это помогает не во всех случаях - вероятно, настройки прокси не распространяются на все утилиты, входящие в Android Studio, или может быть у какой-то утилиты таймаут слишком маленький.
Непонятно. В коробочных продуктах я скачиваю (или даже покупаю на DVD) единый инсталлятор, сколько бы гигов он не был, и дальше интернет не нужен вообще.
Почему все эти пакеты не включены в состав среды разработки?
Вот что мне не нравится во всех современных IDE, в том числе и в Android Studio (и в других программах входящих в инфраструктуру разработки под Android) - так это тотальная зависимость от интернета. Причем люди вроде пытались делать оффлайн-версии - но всё равно при попытке собрать проект какие-то программы непременно лезут в инет, и если инета нет то ничего не собрать.
Раньше было лучше - коробочные продукты, пусть даже на нескольких CD/DVD, гарантированно включали в себя всё что нужно для работы, и их хватало на несколько лет пока там новая версия не выйдет.
Такая тема и без голосовалки:)
Я так понимаю, крипту хранит блокчейн (по определению). А холодные или горячие кошельки - лишь разница где хранятся ключи: оффлайн или онлайн.
Ну что можно сказать... Политические проблемы техническими средствами как правило не решаются (бывают и исключения, но они совсем уже не по тематике Хабра).
Операторы связи - это крупный бизнес. А значит - большие финансовые потоки и возможности лоббирования. И если бизнес терпит убытки по вине режима, то с его стороны было бы разумно пытаться как-то влиять на ситуацию именно в политической плоскости. Что бы там ни говорили про демократию, но в капиталистических странах крупный бизнес как правило имеет (или должен иметь?) значительное влияние на власть. И в общем это лучше, чем непойми кто из организации, которую по трагическому недоразумению не люстрировали в начале девяностых.
Для меня полезной информации много. Как раз такую статью я давно ждал (если это конечно не сгенерированная GPT, а реальный опыт реального человека:) )
Смысл как раз в том, что новый синтаксис исправляет ошибки дизайна языка. Делает его более логичным, более строгим, более удобным. А предложенный мной путь позволяет сохранить совместимость со старым кодом (точнее, отсутствие необходимости его переписывать) и при этом писать новый код уже на новом диалекте - и всё в рамках одного проекта. Буквально, часть файлов с расширением *.cpp, часть с расширением *.cpp2, и все компилируется и работает.
Думаю, если копнуть поглубже в эволюционную психологию, то все эти искажения окажутся следствиями того, что наши мозги - это практически на 100% мозги охотников и собирателей:)
Очевидно что не любые изменения можно версионировать, а только изменения в синтаксисе (то что называется синтаксический сахар). В одной версии функция объявляется как inf foo(int), в другой как func foo(int) int, и т.д. А как раз ABI у разных версий должен быть общим.
В результате в новой версии язык станет синтаксически чище и понятнее. Можно будет легче вводить новые языковые возможности. Это - единственная цель данного предложения. Но цель важная, так как именно этот "сахар" определяет в конечном итоге удобство использования языка программистами, количество ошибок, всяких UB и т.д.
Все проблемы с нарушением обратной совмесимости прекрасно решаются. Не знаю почему никому не приходит в голову очевидное решение версионирования языка на уровне исходников, и мыши продолжают жрать кактус святой обратной совместимости, вводя все новые и новые безумные заплатки в единственную версию языка.
да, а также типа Go, Rust, Swift, Scala, Kotlin и т.д. :)
Вот здесь я предложил рабочий способ одновременно сломать и сохранить обратную совмесимость. Просто вводим новую версию языка, несовместимую со старой на уровне исходников, но при этом требуем от компиляторов поддерживать обе версии одновременно в рамках проекта - за счет этого получается гарантированная совмесимость на уровне ABI без стандартизации самого ABI. Старую версию замораживаем, все улучшения вносим только в новую, и так постепенно лет за 20 все кому нужно перейдут на новую версию.
Радуется наступлению православного национал-коммунистического самодержавия?
И то и другое что-то вроде нестандартных/экстремальных режимов работы человеческой нейросети:)
И читая статью, постоянно ловил себя на мысли - как же мы, люди, все-таки уязвимы - перед старостью, перед болезнями, перед несовершенством нашей биологической природы... Гениальный математик, и в конце жизни скатился в мистицизм и нумерологию:( И ведь каждого из нас в старости может ждать нечто подобное:(
Причем интуитивно более-менее понятно почему так происходит: мозг, на пике своих возможностей находивший скрытые закономерности в сложнейших математических абстракциях, в старости пытается делать то же самое - но в силу заметно меньших ресурсов делает это в очень упрощенном виде, на базовых, заложенных на инстинктивном уровне понятиях: добре и зле, религиозны/мистических чувствах и тому подобном - том, что заложено в нас наиболее глубоко.
Я в FIDO не был никогда, компьютер появился в 1998, интернет в 2000. И думаю, мои первые впечатления от интернета примерно такие же как ваши от FIDO.
Доступ был по модему, и поначалу это было примерно 5 часов в месяц. В таких условиях субъективная ценность информации казалась очень высокой, поэтому прежде чем заходить в интернет, тщательно думал что буду скачивать, а затем изучать оффлайн. По результатам изучения составлял файлы со ссылками на то что нужно скачать при следующем заходе. Пользовался и специальными программами, которые скачивали сайты оффлайн. В основном были интересны статьи по программированию и прочему айти, это казалось самым важным и интересным. Была даже специальная бумажка, где я вел учет времени, чтобы неожиданно не оказаться без интернета:)
В общем, статья - просто ностальгия по старым добрым временам - первые впечатления, да еще и в молодости, всегда наиболее яркие.
Что же касается "неайтишников"... вот сейчас есть всякие анонимные p2p-сети. И что, много ли там айтишников и много ли там ценной информации?
Ох уж эти шаблоны:) Но я не против унифицированной инициализации всего в круглых скобках (да и вообще я всегда за универсальность во всем). А зачем добавили фигурные? (на Хабре кстати множество статей с подробным разбором инициализации, например эта). Для решения проблемы "vexing parse" и для инициализации контейнеров. Первое - это проблема кривого синтаксиса функций (функция должна начинаться с ключевого слова, как во всех современных языках, а не с возвращаемого типа). Второе решается введением концепции "кортежей". Но вместо прямого решения проблемы )пусть и ломающего обратную совместимость) решили поставить заплатку на заплатке и породили еще один синтаксис инициализации.
Конечно в С++ с инициализацией наворотили лишнего. Зачем было вводить "универсальную инициализацию," если проблема была в другом - в том что нужно было ввести новый синтаксис функций (и его все равно ведь ввели - с auto и стрелочкой). И вообще добавление новых фич в С++ становится все более фрагментарным и бессистемным.
В целом я согласен - круглые скобки это конструктор (выполнение кода), фигурные с присваиванием - поэлементное присваивание публичных полей (т.е. даже и не инициализация как таковая, а просто присваивание нескольких полей одним оператором). Фигурные скобки без оператора присваивания вообще не стоило вводить. А вот что стоило, так это ввести универсальную концепцию кортежей - как раз тех самых составных литералов в фигурных скобках - как структурно типизированных объектов. Тогда бы можно было писать что-то вроде {i, j, k} = {1,2,3}, не потребовался бы отдельный синтаксис "структурных привязок" и т.д.
А что за язык программирования для которого нет парсера?