:-) А вот это как раз совсем не странно. Кругом враги )
Нам лифт поменяли в подъезде, недостающее нужное русское и крепкое слово появилось на следующий день.
А мои драгоценные соседи парой этажей выше считают вполне нормальным в районе 23 часов выкидывать на улицу мусор. И иногда попадать йогуртом по припаркованным машинам.
А поскольку враги кругом, как сказал один генерал — это отлично, ведь мы можем стрелять в любом направлении ))))))
Здорово, что не сидишь на месте и что-то изобретаешь. Очень здорово, что не стесняешься НЕ использовать инструменты, не предназначенные, мягко говоря, для не свойственных им задач. И очень здорово пишешь, как технически, так и литературно. Нет, я не стану критиковать за ошибки, не ошибается только тот, кто ничего не делает. А ты делаешь, и это отлично!
Но вот что хочется тебе пожелать, дорогой автор :-)
Будь смелее! Во всех аспектах и во всех делах! Ты придумал классную идею и хочешь внедрить? Подумай, посоветуйся, реши для себя каким инструментом эту задачу лучше сделать. Никогда не стесняйся незнакомых «монстров», ну например Scala, Haskel, Java EE. Сложных языков программирования не бывает. Бывает лениво изучать и ковыряться, это да. Всегда смотри на ситуацию так, как будто ты знаешь любой инструмент. Ведь суть не в инструменте, а в задаче, и её изящном решении.
То же и с девушками. Я за свою жизнь встречал много девушек. Дважды был женат. Даже дети есть от одного из браков. Но нужно быть смелее. У тебя есть мечта? Иди к ней. Хочешь что-то получить — прямо скажи что хочешь. Хочешь жениться — женись! Разводиться — разводись! Главное, чтобы путь к мечте был как таковой. Гораздо хуже, если ты ничего не хочешь… Или боишься. Не бойся.
И еще один универсальный совет :-)
Никогда! НИКОГДА не подавай вид что ты в чём-то не уверен. Уверенность в любом деле, даже совершенно незнакомом сделает тебя лидером в любой области. Только ради всего святого, не путай уверенность и… слово забыл ))) пусть будет слово наглость, ближайший синоним. Пример:
Дано: ты работаешь в компании N. Они хотят внедрить какую-то неведомую хрень. Ты крайний, и тема для тебя слабо изучена (не изучена).
Уверенность: ты НЕ боишься взять на себя ответственность, но ЧЕСТНО предупреждаешь об уровне компетенции, и требуешь либо отправить тебя на повышение квалификации, либо изучаешь предмет самостоятельно, но при этом делаешь полный отчёт о своей работе перед руководством. Итог: всё внедрено, ты на коне, премия, + ты прокачался по новому скиллу
Наглость: ты тоже не боишься взять на себя ответственность, но практически сразу же находишь кого-нибудь, на кого эту ответственность спихиваешь. Сам становишься только буфером между реальным исполнителем и заказчиком, при этом полностью присваиваешь все заслуги себе, а в случае фиаско — есть на кого спихнуть. Итог: ты вроде и в плюсе, но как человек — гавно.
Уверенность, даже только для виду — это когда ты лидер. Когда ты не спрашиваешь у всех: «а правильно ли я иду?». Ты просто идёшь. Не знаешь — спрашиваешь. При этом говоришь всем правду. Не умеешь — учишься. При этом учишь других!!! Не успеваешь — найди способ заранее сообщить, переиграй по-другому. И никогда не бойся «крутым» показывать свои зубы. Не бойся ругать начальство прямо в глаза, если они не компетентны (и кстати да, некомпетентный начальник — беги оттуда быстрее молнии). Не бойся крутым заказчикам указывать СВОИ правила игры. Дай в конце концов понять всем что ты управляешь ситуацией, и это не они тебе нужны, а ты им. (И девушкам, и заказчикам, и клиентам, и вообще всем).
Исключение из правила: родители. С ними нужно быть сыном. Сам будешь отцом, сам поймёшь почему.
В заключение скажу, что эту «истину» я вывел многолетним опытом огромных жизненных ошибок. Чем я только не занимался, с кем только не общался, в каких только ситуациях не побывал. Сейчас я занимаюсь тем, что люблю. Я уверен только в себе и своих силах, и если я что-то хочу — я этого добиваюсь любым способом, но добивают на все 100%. И обязательно делюсь с другими. Не каждый может себе позволить жить так, как ему хочется, и при этом быть Д'Артаньяном. ))) Удачи, успехов, ты крутой, у тебя всё будет!
Скотчбокс хорош для реально быстрого деплоя среды окружения разработки, чтобы быстро начать. Причём не важно на какой ОС разработчик сидит. Это удобно когда нужно сделать что-то быстро, например на хакатоне, или быстро прототипировать.
А вообще, лично для себя, лучше докера пока решений не вижу. Мгновенная работа сервисов, относительно «чистая» основная ОС без лишних пакетов, мгновенная работа приложений (в отличие от более длинных пробросов файлов в виртуалку, и т.д. в вагранте).
Опять же, всё зависит от стэка. Докер позволяет конфигурить вообще как угодно среду исполнения. Хочешь — django, хочешь lamp, хочешь rails, хочешь нода. Еще Ansible и скрипты автоматического деплоя на DO или AWS — так вообще ракета-космос ))
А вот утверждать что скотчбокс это плохо и нубство — это большая глупость. Любая технология хорошо, а если она еще правильно применяется — это еще лучше! Для каждой задачи есть свой набор инструментов, и безусловно здорово, что ребята из скотча придумали такую сборку. Только с обзором этой сборки опоздали немного, это было очень актуально где-то год назад. Сейчас докер )
я почему-то уверен что к тому времени как такое устройство с этим хладагентом станет доступно всем, процессоры будут показывать вполне мощные вычислительные результаты, сопоставимые с нынешними i5-i7, но при этом практически не выделяющие тепла
Можно реальный практический пример? Ну например что именно является лягушкой, как себя заставить её сожрать, почему именно утром, и как среди болота её найти? Нужны детали )) Так как я никак не могу до сих пор определить для себя что является лягушкой, и мне очень хотелось бы увидеть реальный пример на конкретных действиях, и к чему это может привести :-)
Уж очень мне нравится «отложенных дел уже нет». О да.
Спокойно. Динамическая типизация это прекрасно, это значит что можно делать приведение типов в другие формы. А речь идёт о создании сильной и строгой типизации (Strong typing) в PHP. Это более правильная модель работы с той же памятью, и более корректным приведением типов, например.
Сегодня проскочила новость о том, что 20% военного бюджета режима Чучхе уходит как раз на кибер-войнов, которые вполне себе успешно разрабатывают схожее со Stuxnet оружие. И судя по всему у них это даже получается. Во всяком случае явно лучше, чем летать на солнце :-)
Grace period. Всё верно. В следующих итерациях типизация вероятно будет строгая по-умолчанию, без обратной (и по всей видимости прямой, при версиях <=5) совместимости. А может быть так и останется, как знать.
Это высказывание актуально для очень многих библиотек, фреймворков и языков программирования. Я полностью согласен, что решающий конкретную задачу инструмент глупо было бы не использовать. И для каждого случая есть свой инструмент. Тоже и для ангуляра актуально, и для Руби, и даже для внутреннего языка 1С. Для своих задач — более чем. А вот пихать везде тот же jquery, не думая головой — это вот плохо :-)
Работал на больших (более 10 тысяч js файлов кода с простынями на сотни и тысячи строк) проектах на ангуляре. Иногда испытывал сильную боль в области js, когда реально нужно было чтобы проект без проблем работал на Windows XP + IE6!!! И это главное требование заказчика, т.к. во всех гос.учреждениях вне больших городов именно такое установлено.
Помогали супер костыли из нативного JS там, где ангуляр в официальной документации явно говорил о неразрешаемых траблах именно с такой связкой. Из проекта ушёл, и по моим данным боль продолжается у других кодеров ))
Для своих я стараюсь использовать родной JS без обёрток, в крайнем случае когда нужны финтифлюшки — могу взять пару либ.
Полимер тоже ковырял, очень интересный. Но как и в языках программирования в целом, все js фреймворки и библиотеки всё-таки заточены под какие-то конкретные задачи. Универсальных решений нет. И наверное не будет.
Автор, язык программирования — инструмент. Не более. И инструменты есть для самых разных задач. Руби не исключение. Фреймворки — вообще зло и от лукавого. Да, удобно, да, быстро, но стоит разобраться подробнее, и начинаются костыли, зависимости и велосипеды. А если всё равно это начнётся — зачем тогда начинать с фреймворков.
И да, Руби не для больших проектов. Для реально больших проектов я рекомендую Java, С и С++.
Go — хорош на многопоточности, но проигрывает C. Rust подаёт большие надежды, хотя многие скептически настроены. Python — вообще стал стандартом во многих областях программирования, но тоже не панацея от всех бед. Я был на python конференции, где тусили реально гуру. Они хвастались своими либами, наработками и реализациями идей. А в кулуарах на кофе-брейках скромно добавляли, что узкие места они всё равно дописывали на Си, так как важна была скорость и надёжность.
Повторю. Язык — инструмент программиста. Знаешь один — хорошо. Знаешь несколько — отлично. Чем больше знаний, тем больше применимости в тех или иных задачах. А вот писать ТОЛЬКО на Руби конечно же в корне не верно.
Какое небо голубое… Покуда есть на свете дураки, обманом жить нам, стало быть, с руки.
(с) Лиса Алиса и Кот Базилио.
Это я к чему, от человеческой головы никакая защита не поможет. Иногда фатально. Вот летишь в самолёте, один пилот пописать вышел, а второй кабинку закрыл, потому что с головой беда. И всё. То же и взломы.
К слову, есть один медиахолдинг, довольно крупный. У них директор «по айти» скорее хорошо смотрелся бы на месте охранника или завхоза. Не смотря на его утверждения о полной защите всей информационной инфраструктуры секретарша всё равно смогла запустить вложенный экзешник и потом просрать все полимеры. Хорошо что бяку быстро устранили. Это я про вирус. А люди-то остались… А с другой стороны, зачем я это всё говорю: пока такие есть, я обеспечен работой :-)
Совершенно согласен с вами, тем не менее хочу обратить внимание на io.js, к вопросу о работе js исключительно в браузерах.
Что же касается знания нескольких языков — я не понимаю проблемы совершенно. Язык — это инструмент. Когда мне было нужно писать изящный парсер на питоне — я написал изящный парсер на питоне. Java? Окей гугл, она не так сложна как может показаться. Go — без проблем, после прочтения первой же книги — пара полезных утилит для повседневной жизни в убунте. Вынашиваю идею ОРМ для Go, но это пока только в голове. Тем не менее — не вижу проблем. Если нужно в голове держать несколько языков — держите. Главное — всё равно логика.
А так, да, согласен, есть еще белые пятна, с теми же коллбеками из бэкенда. Реализуемо, но сложно. Опять же, всё зависит от задачи. Да наверное вообще всё от задачи зависит. Есть вещи, которые вообще только на асме лучше всего делать )
В качестве фантазий могу сказать так:
прежде всего, разработка ПО ушла в схему: backend + frontend, и это очень сильно упростило разработку бэкенда, освободив его от рендеринга, оставив только логику, например фреймворк Grape для руби вообще API-only. А фронтенд стал развиваться как бешеный, не даром ходит шутка что если к любому английскому существительному добавить окончание JS — скорее всего такая библиотека (фреймворк, тулза, сборщик, линтер, и т.п.) уже есть. Всё это кстати породило бешеный спрос на фронтендеров.
Далее тренды: компонентность, рективное программирование, отказ от массовых фреймворков в пользу библиотек и нативного кода (про это могу отдельно расссказать).
Тренд в кроссплатформенности: всё идёт к тому, чтобы можно было на любой ОС запускать любые приложения под любые ОС. Я на Линуксе запускаю нативные андроид приложения (пусть пока через хром, но всё же), wine для windows. Скоро обещают совершить революцию и запускать нативные ObjC и Swift приложения под линукс. Под виндой я могу запускать нативные линуксовые утилиты, и даже иксы. Развитие технологий — вопрос времени.
Тренд в UI — сейчас всё больше и больше уходят на html,css,js. Почему? Ведь даже телевизоры, микроволновки и духовые печи на кухне, холодильники — все имеют интерфейс, построенный на этом. А виной всему то, что мир ушёл в онлайн. Сейчас нет необходимости в приложении, которое будет работать нативно на ОС, т.к. для большинства задач уже подходят веб-приложения. Редакторы графики, текстовые, звуковые и видео редакторы — всё в онлайне. Хотите 3d игрушки? Нате, зависайте: webquake.quaddicted.com/Client/WebQuake.htm
Хотите красоту и интерактивность ui — идите в HCJ. Здесь нет .net на 100500 мегабайт с кучей (реально кучей) ненужных зависимостей. Да, даже на линуксе «Hello world» на си занимает восемь килобайт, хотя текста там…
#include <stdio.h>
int main (void)
{
printf ("Hello World\n");
}
Ок, резервирование памяти, стдио, это простительно. Но когда простите Hello World занимает 20+ мегабайт с .net компонентами — это уже слишком.
А так, да, здорово что у Go есть UI, пусть и скромненький, зато свой. Это безусловно хороший шаг развития языка, который мне очень симпатичен. Тем не менее, я бы предпочёл его использовать как хороший сильный многопоточный (даже на уровне синтаксиса) бэкенд.
Нам лифт поменяли в подъезде, недостающее нужное русское и крепкое слово появилось на следующий день.
А мои драгоценные соседи парой этажей выше считают вполне нормальным в районе 23 часов выкидывать на улицу мусор. И иногда попадать йогуртом по припаркованным машинам.
А поскольку враги кругом, как сказал один генерал — это отлично, ведь мы можем стрелять в любом направлении ))))))
Здорово, что не сидишь на месте и что-то изобретаешь. Очень здорово, что не стесняешься НЕ использовать инструменты, не предназначенные, мягко говоря, для не свойственных им задач. И очень здорово пишешь, как технически, так и литературно. Нет, я не стану критиковать за ошибки, не ошибается только тот, кто ничего не делает. А ты делаешь, и это отлично!
Но вот что хочется тебе пожелать, дорогой автор :-)
Будь смелее! Во всех аспектах и во всех делах! Ты придумал классную идею и хочешь внедрить? Подумай, посоветуйся, реши для себя каким инструментом эту задачу лучше сделать. Никогда не стесняйся незнакомых «монстров», ну например Scala, Haskel, Java EE. Сложных языков программирования не бывает. Бывает лениво изучать и ковыряться, это да. Всегда смотри на ситуацию так, как будто ты знаешь любой инструмент. Ведь суть не в инструменте, а в задаче, и её изящном решении.
То же и с девушками. Я за свою жизнь встречал много девушек. Дважды был женат. Даже дети есть от одного из браков. Но нужно быть смелее. У тебя есть мечта? Иди к ней. Хочешь что-то получить — прямо скажи что хочешь. Хочешь жениться — женись! Разводиться — разводись! Главное, чтобы путь к мечте был как таковой. Гораздо хуже, если ты ничего не хочешь… Или боишься. Не бойся.
И еще один универсальный совет :-)
Никогда! НИКОГДА не подавай вид что ты в чём-то не уверен. Уверенность в любом деле, даже совершенно незнакомом сделает тебя лидером в любой области. Только ради всего святого, не путай уверенность и… слово забыл ))) пусть будет слово наглость, ближайший синоним. Пример:
Дано: ты работаешь в компании N. Они хотят внедрить какую-то неведомую хрень. Ты крайний, и тема для тебя слабо изучена (не изучена).
Уверенность: ты НЕ боишься взять на себя ответственность, но ЧЕСТНО предупреждаешь об уровне компетенции, и требуешь либо отправить тебя на повышение квалификации, либо изучаешь предмет самостоятельно, но при этом делаешь полный отчёт о своей работе перед руководством. Итог: всё внедрено, ты на коне, премия, + ты прокачался по новому скиллу
Наглость: ты тоже не боишься взять на себя ответственность, но практически сразу же находишь кого-нибудь, на кого эту ответственность спихиваешь. Сам становишься только буфером между реальным исполнителем и заказчиком, при этом полностью присваиваешь все заслуги себе, а в случае фиаско — есть на кого спихнуть. Итог: ты вроде и в плюсе, но как человек — гавно.
Уверенность, даже только для виду — это когда ты лидер. Когда ты не спрашиваешь у всех: «а правильно ли я иду?». Ты просто идёшь. Не знаешь — спрашиваешь. При этом говоришь всем правду. Не умеешь — учишься. При этом учишь других!!! Не успеваешь — найди способ заранее сообщить, переиграй по-другому. И никогда не бойся «крутым» показывать свои зубы. Не бойся ругать начальство прямо в глаза, если они не компетентны (и кстати да, некомпетентный начальник — беги оттуда быстрее молнии). Не бойся крутым заказчикам указывать СВОИ правила игры. Дай в конце концов понять всем что ты управляешь ситуацией, и это не они тебе нужны, а ты им. (И девушкам, и заказчикам, и клиентам, и вообще всем).
Исключение из правила: родители. С ними нужно быть сыном. Сам будешь отцом, сам поймёшь почему.
В заключение скажу, что эту «истину» я вывел многолетним опытом огромных жизненных ошибок. Чем я только не занимался, с кем только не общался, в каких только ситуациях не побывал. Сейчас я занимаюсь тем, что люблю. Я уверен только в себе и своих силах, и если я что-то хочу — я этого добиваюсь любым способом, но добивают на все 100%. И обязательно делюсь с другими. Не каждый может себе позволить жить так, как ему хочется, и при этом быть Д'Артаньяном. ))) Удачи, успехов, ты крутой, у тебя всё будет!
p.s. GO — респект!
А вообще, лично для себя, лучше докера пока решений не вижу. Мгновенная работа сервисов, относительно «чистая» основная ОС без лишних пакетов, мгновенная работа приложений (в отличие от более длинных пробросов файлов в виртуалку, и т.д. в вагранте).
Опять же, всё зависит от стэка. Докер позволяет конфигурить вообще как угодно среду исполнения. Хочешь — django, хочешь lamp, хочешь rails, хочешь нода. Еще Ansible и скрипты автоматического деплоя на DO или AWS — так вообще ракета-космос ))
А вот утверждать что скотчбокс это плохо и нубство — это большая глупость. Любая технология хорошо, а если она еще правильно применяется — это еще лучше! Для каждой задачи есть свой набор инструментов, и безусловно здорово, что ребята из скотча придумали такую сборку. Только с обзором этой сборки опоздали немного, это было очень актуально где-то год назад. Сейчас докер )
Уж очень мне нравится «отложенных дел уже нет». О да.
Помогали супер костыли из нативного JS там, где ангуляр в официальной документации явно говорил о неразрешаемых траблах именно с такой связкой. Из проекта ушёл, и по моим данным боль продолжается у других кодеров ))
Для своих я стараюсь использовать родной JS без обёрток, в крайнем случае когда нужны финтифлюшки — могу взять пару либ.
Полимер тоже ковырял, очень интересный. Но как и в языках программирования в целом, все js фреймворки и библиотеки всё-таки заточены под какие-то конкретные задачи. Универсальных решений нет. И наверное не будет.
И да, Руби не для больших проектов. Для реально больших проектов я рекомендую Java, С и С++.
Go — хорош на многопоточности, но проигрывает C. Rust подаёт большие надежды, хотя многие скептически настроены. Python — вообще стал стандартом во многих областях программирования, но тоже не панацея от всех бед. Я был на python конференции, где тусили реально гуру. Они хвастались своими либами, наработками и реализациями идей. А в кулуарах на кофе-брейках скромно добавляли, что узкие места они всё равно дописывали на Си, так как важна была скорость и надёжность.
Повторю. Язык — инструмент программиста. Знаешь один — хорошо. Знаешь несколько — отлично. Чем больше знаний, тем больше применимости в тех или иных задачах. А вот писать ТОЛЬКО на Руби конечно же в корне не верно.
Имхо.
(с) Лиса Алиса и Кот Базилио.
Это я к чему, от человеческой головы никакая защита не поможет. Иногда фатально. Вот летишь в самолёте, один пилот пописать вышел, а второй кабинку закрыл, потому что с головой беда. И всё. То же и взломы.
К слову, есть один медиахолдинг, довольно крупный. У них директор «по айти» скорее хорошо смотрелся бы на месте охранника или завхоза. Не смотря на его утверждения о полной защите всей информационной инфраструктуры секретарша всё равно смогла запустить вложенный экзешник и потом просрать все полимеры. Хорошо что бяку быстро устранили. Это я про вирус. А люди-то остались… А с другой стороны, зачем я это всё говорю: пока такие есть, я обеспечен работой :-)
Что же касается знания нескольких языков — я не понимаю проблемы совершенно. Язык — это инструмент. Когда мне было нужно писать изящный парсер на питоне — я написал изящный парсер на питоне. Java? Окей гугл, она не так сложна как может показаться. Go — без проблем, после прочтения первой же книги — пара полезных утилит для повседневной жизни в убунте. Вынашиваю идею ОРМ для Go, но это пока только в голове. Тем не менее — не вижу проблем. Если нужно в голове держать несколько языков — держите. Главное — всё равно логика.
А так, да, согласен, есть еще белые пятна, с теми же коллбеками из бэкенда. Реализуемо, но сложно. Опять же, всё зависит от задачи. Да наверное вообще всё от задачи зависит. Есть вещи, которые вообще только на асме лучше всего делать )
прежде всего, разработка ПО ушла в схему: backend + frontend, и это очень сильно упростило разработку бэкенда, освободив его от рендеринга, оставив только логику, например фреймворк Grape для руби вообще API-only. А фронтенд стал развиваться как бешеный, не даром ходит шутка что если к любому английскому существительному добавить окончание JS — скорее всего такая библиотека (фреймворк, тулза, сборщик, линтер, и т.п.) уже есть. Всё это кстати породило бешеный спрос на фронтендеров.
Далее тренды: компонентность, рективное программирование, отказ от массовых фреймворков в пользу библиотек и нативного кода (про это могу отдельно расссказать).
Тренд в кроссплатформенности: всё идёт к тому, чтобы можно было на любой ОС запускать любые приложения под любые ОС. Я на Линуксе запускаю нативные андроид приложения (пусть пока через хром, но всё же), wine для windows. Скоро обещают совершить революцию и запускать нативные ObjC и Swift приложения под линукс. Под виндой я могу запускать нативные линуксовые утилиты, и даже иксы. Развитие технологий — вопрос времени.
Тренд в UI — сейчас всё больше и больше уходят на html,css,js. Почему? Ведь даже телевизоры, микроволновки и духовые печи на кухне, холодильники — все имеют интерфейс, построенный на этом. А виной всему то, что мир ушёл в онлайн. Сейчас нет необходимости в приложении, которое будет работать нативно на ОС, т.к. для большинства задач уже подходят веб-приложения. Редакторы графики, текстовые, звуковые и видео редакторы — всё в онлайне. Хотите 3d игрушки? Нате, зависайте: webquake.quaddicted.com/Client/WebQuake.htm
Хотите красоту и интерактивность ui — идите в HCJ. Здесь нет .net на 100500 мегабайт с кучей (реально кучей) ненужных зависимостей. Да, даже на линуксе «Hello world» на си занимает восемь килобайт, хотя текста там…
Ок, резервирование памяти, стдио, это простительно. Но когда простите Hello World занимает 20+ мегабайт с .net компонентами — это уже слишком.
А так, да, здорово что у Go есть UI, пусть и скромненький, зато свой. Это безусловно хороший шаг развития языка, который мне очень симпатичен. Тем не менее, я бы предпочёл его использовать как хороший сильный многопоточный (даже на уровне синтаксиса) бэкенд.