• Что и как в bash?

    sublime3 - вполне себе пойдет, я пишу в vim но для старта куда удобней sublime
    для старта выучи что такое
    1. выучи команду
    man ls
    и
    ls --help
    пойми в чем их разница и вдолби в голову что это то с чего начинается любая работа в баш.

    В начале выучи что такое код завершения команды, ну и как следствие
    stdin
    stdout
    stderr
    Научись работать с этими потоками. без них никуда, да это проще чем кажется.

    НО нужно что-то подавать на эти потоки следоватлеьно тебе нужны
    ls
    cd
    pwd - нужна как ни странно
    tail -f - вывод в потоке
    дальше гугл плюс man и --help

    В совершенстве нужно знать grep - чем больше тем лучше
    find - так же чем больше тем лучше, когда ты собираешся работать с массивами файлов по маске.

    && - упрощеная конструкция возврата положительного кода завершения
    || -не тру завершение кода
    awk - тоже редактор потока
    sed - редактор потока
    ну и научись передавать все это художество |
    это вообще легко
    ну и xargs как апофиоз этого
    Далее уже можно IF учить и тд и тп но по факту у тебя уже будет
    1. работа с потоком ты ее понял и тебе нет проблемы получить вывод из sttderr его части сделать какое-то минимальное условие используя упрощеную ифку
    сед позволит тебе редактировать эти данные на лету.
    файнд позволит работать с кучей файлов по мкске и тд
    grep -без него ни ногой.

    Ну и да на последок тебе нужно понять как работают права в линук + владельцы и группы chmod chown
    то что запускаемость это атрибут

    Со временем прийдет понимание что линукс умеет тольк показывать буковки и брать буковки, откуда они появились его не особо интересуют, принт ли это данных из бд, или последствие пхп скрипта.
    ты указал ему файл интерпритатора и подал на него данные, он че-то тебе выплюнул на один из потоков, ты его поймал и что-то с ним сделал.
    Дальше количество утилит не имеют значения, ты открываеш ман смотриш и работаеш.
    Ответ написан
    Комментировать
  • Golang подходит ли для создания сайтов?

    @dinegnet
    Golang используют для создания сайтов да. Только дорогих сайтов. Скажем есть у меня проектик - хозяин ввалил в него уже стоимость Ленд Круизера свежего и все продолжает платить и платить.
    Вы - не тот человек, которого будут для этого нанимать.
    А в дешевой нише вы не сможете конкурировать по цене с ПХПистами.

    1. Как обстоят дела с производительностью в сравнении с php смотрел benchmark go выигрывает у php в 2 раза по скорости
    (возможно мне стоит и дальше сайты создавать на php)


    Одни из самых высоконагруженных сайтов в мире сделаны с PHP - Facebook, примеру.
    Или Vkontakte

    Формально Go быстрее. Если ваш сервер и клиент разделяет только 10 метров.
    Но в мире веба очень большие задержки - это связь между сервером и браузером, там совсем другие расстояния и другой порядок задержек. А это от языка программирования не зависит.

    На их фоне, если вы нормально запрограммировали сайт - не должно тормозить ни на PHP ни на Go.

    2. Влияет ли как-то golang на seo оптимизацию-выдачу
    (если для frontend не админ панели взять angularjs то сайт не будет весь индексироваться)


    Вам с таким уровнем понимая рано что-то решать.
    Делайте то, что старшие скажут.

    3. Какую выбрать связку для сервера возможно имеется nginx или apache в поддержке для golang (или у go имеется свой сервер и как он в сравнении с остальными)


    Это не связано с языком. Это связано с администрирование, проектированием, архитектурой системы, но не языка.

    4. Поддерживает ли golang mysql и какая скорость


    Да.
    Скорость работы с СУБД ограничена, как правило, самой этой СУБД - это узкое место всегда.
    От языка программирования, использующего ту или иную СУБД - зависит слабо.

    5. Возможно имеются хорошие фреймворки написанные на golang для создания именно сайтов


    Revel, Beego.me, gin и еще десяток.
    Только они не нужны.
    Все что нужно уже входит в стандартную библиотеку Golang.
    Для облегчения работы стоит глянуть на фреймворки - Gorilla, Martini....

    6. Подойдет ли вообще golang для мелких или для крупных сайтов

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

    7. Имеются ли подводные камни при разработке

    Для тебя - важно, что мало информации, а особенно мало - на русском.
    Ответ написан
    8 комментариев
  • Как узнать почему тормозят сайты в браузере?

    Jump
    @Jump
    Системный администратор со стажем.
    Вопрос-
    почему тормозят сайты в браузере?


    Ответ-
    Atom Z520 Кол-во ядер 1 Тактовая частота 1.33 ГГц Расчетная мощность 2W


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

    Он не может не тормозить. А уж браузер на таком запускать даже не стоит.

    Нормальная конфигурация компьютера на котором не будут тормозить сайты-
    • Процессор - 2ядра, частота более 2Ггц.
    • Оперативная память - 8Гб
    • Операционная система на SSD диске.
    Ответ написан
    Комментировать
  • Как правильно распарсить JSON телеграма?

    bitniks
    @bitniks
    Go/PHP/Symfony developer
    Первый вариант, это распарсить вручную. Выглядит так
    package main
    
    import (
    	"fmt"
    	"encoding/json"
    	"log"
    )
    
    func main() {
    	bodyBytes := []byte(`{"ok":true,"result":[{"update_id":715296593,
    "message":{"message_id":5,"from":{"id":362268798,"is_bot":false,"first_name":"\u041a\u043e\u0442\ud83d\udd25","username":".....","language_code":"ru"},"chat":{"id":362268798,"first_name":"\u041a\u043e\u0442\ud83d\udd25","username":"....","type":"private"},"date":1604728384,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}}]}`)
    
    	var data map[string]interface{}
    	err := json.Unmarshal(bodyBytes, &data)
    	if err != nil {
    		log.Fatal(err)
    	}
    	
    	result, ok := data["result"].([]interface{})
    	if !ok {
    		log.Fatal("Failed to type-cast result")
    	}
    	firstResult, ok := result[0].(map[string]interface{})
    	if !ok {
    		log.Fatal("Failed to type-cast first result")
    	}
    	message, ok := firstResult["message"].(map[string]interface{})
    	if !ok {
    		log.Fatal("Failed to type-cast message")
    	}
    	chat, ok := message["chat"].(map[string]interface{})
    	if !ok {
    		log.Fatal("Failed to type-cast chat")
    	}
    
    	fmt.Println("id =", chat["id"])
    	fmt.Println("type = ", chat["type"])
    	fmt.Println("username = ", chat["username"])
    	fmt.Println("first_name = ", chat["first_name"])
    }

    https://play.golang.org/p/ZDis4Y9be31

    Второй вариант более корректный и удобный. Описать структурой ответ и распарсить json в эту структуру
    package main
    
    import (
    	"fmt"
    	"encoding/json"
    	"log"
    )
    
    type Response struct {
    	Results []Result `json:"result"`
    }
    
    type Result struct {
    	Message Message `json:"message"`
    }
    
    type Message struct {
    	Chat Chat `json:"chat"`
    }
    
    type Chat struct {
    	 ID int `json:"id"`
    	 FirstName string `json:"first_name"`
    	 UserName string `json:"username"`
    	 Type string `json:"type"`
    }
    
    func main() {
    	bodyBytes := []byte(`{"ok":true,"result":[{"update_id":715296593,
    "message":{"message_id":5,"from":{"id":362268798,"is_bot":false,"first_name":"\u041a\u043e\u0442\ud83d\udd25","username":".....","language_code":"ru"},"chat":{"id":362268798,"first_name":"\u041a\u043e\u0442\ud83d\udd25","username":"....","type":"private"},"date":1604728384,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}}]}`)
    
    	var response Response
    	err := json.Unmarshal(bodyBytes, &response)
    	if err != nil {
    		log.Fatal(err)
    	}
    
    	fmt.Println("id =", response.Results[0].Message.Chat.ID)
    	fmt.Println("type = ", response.Results[0].Message.Chat.Type)
    	fmt.Println("username = ", response.Results[0].Message.Chat.UserName)
    	fmt.Println("first_name = ", response.Results[0].Message.Chat.FirstName)
    }

    https://play.golang.org/p/qrROYHjn-Cc
    Ответ написан
    Комментировать
  • Есть ли смысл в моем выборе. PHP или JS?

    arman1231
    @arman1231
    Keykeeper
    Выбор будет зависеть от того, чем вы хотите заниматься в дальнейшем, так как для разработки сайтов для бизнеса, визиток, интернет магазинов, связка html-css-js-php жизненно незаменима. Но если в планах работать на специфических проектах, где ведется разработка крупных приложений, есть смысл уделить все время на изучение js+фреймфорк типа react, angular и т.п.
    Ответ написан
    2 комментария
  • Можно ли принимать пожертвование (донат) за написанную программу?

    @Levhav
    Возьмусь за разработку проектов любой сложности.
    Получите сначала ощутимый донат. А потом думайте как работать в белую. Мне за год бесплатной работы SaaS сервиса задонатили 100 руб один раз. Посещаемость была около 90 чел в день. А расходы на хостинг 500 руб в месяц.
    Ответ написан
    Комментировать
  • Как организовать самообучение языкам программирования?

    aRegius
    @aRegius
    Python Enthusiast
    1. Определяете минимум, который вам необходим для создания продукта-цели. Ну, то есть, самый минимум, minimum minimorum. Например: "Для создания моего продукта мне нужны HTML, CSS, JS и PHP. Без любого из них я свой продукт создать не смогу. Это мой необходимый минимум."

    2. Ищите по 1-му толковому материалу (чтобы не распылять усилия на 8 книг и 15 онлайн-курсов по JS, условно) для каждого инструмента. Более того, по трем из них я вам могу дать рекомендации: HTML5 + CSS3 + JS. PHP не мой "конек", возможно коллеги подскажут...

    3. Учите в том же порядке: HTML, потом CSS, потом JS/PHP (PHP/JS, тут уж сами смотрите).

    4. Открывайте соответствующий материал по предмету, ознакомьтесь со структурой подачи материала и определите для себя ключевые точки для разбития этого материала на блоки, каждый из которых вы будете стараться пройти "за один присест".
    Например: открываете книгу по HTML, смотрите содержание, и принимаете решение (исходя из имеющегося у вас времени, которое вы готовы в день уделять обучению), что будете в день работать над 2-мя главами материала.
    Или: открываете материал по JS, смотрите содержание, и принимаете решение, что будете в день работать над 1-ой темой (сегодня - "Основы JavaScript", завтра - "Качество кода" и т.п.)

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

    6. До тех пор, пока вы не реализуете свой стартовый проект, учите и практикуйте только то, что вам для этого необходимо. Работу непосредственно над самим проектом начинайте ровно в тот момент, когда почувствуете, что пора. Тут уж все индивидуально.

    7. После реализации проекта можете выдохнуть, осмотреться, наметить очередные цели с учетом приобретенного опыта - и дальше в путь!

    Подытожим: определитесь с минимумом технологий, распланируйте время на изучение, учите технологии step-by-step - не распыляйте усилий, придерживайтесь графика.

    P.S. Вам будет проще, если вы сконцентрируетесь, поставите себе минимально возможные сроки и "возьмете эту крепость блицкригом", ибо на скользкую горку проще всего забраться с разбегу :)
    Ответ написан
    4 комментария
  • Нужно ли фрилансеру платить налоги?

    niksite
    @niksite
    Нужно. Регистрируйте ИП и работаете. Всей бумаги - один рабочий день в год едва набегает. Да и то не выходя из дома.
    Ответ написан
    Комментировать
  • Как ускорить работу программисту?

    customtema
    @customtema
    arint.ru
    1. Проектировать решения, прежде чем писать код. Цветными фломастерами в тетрадке. Записывать микроТЗ, прежде чем писать код. В тетрадку или в любой текстовый редактор. Вообще, код написать просто, вы в курсе, да? Придумать, что написать - это другой вопрос.
    2. Использовать личный список задач, вне зависимости от того, что используют коллеги. Если требуют использовать корпоративный - используйте его и личный. Любой таск-менеджер, а еще лучше - записывать даже самые мелкие задачи в тетрадку и вычеркивать при изменении статуса цветным фломастером.
    3. Работать ритмично. N минут работы, M минут отдыха, где N от 20 до 90, M от 5 до 20.
    4. Заняться физкультурой. Обязательно каждый день гулять. Здоровое питание, полный отказ от алгоколя и кофе, принимать витамины курсами.
    5. На работе заниматься только работой. Не на работе работой не заниматься. Можно завести два телефона (или двухсимочный телефон) и отключать симки, в зависимости от времени дня и других факторов. Не использовать мессенджеры, скайп, джаббер, аську и т.д. Не отвлекаться на соцсети и т.д.


    Эти простые вещи помогли мне увеличить продуктивность примерно в десять раз.

    И да, вы используете VCS и фреймворки?
    Ответ написан
    3 комментария
  • Студент и Низкоуровневое программирование?

    @k_levin
    Разработчик ASIC
    Не могу полностью согласиться со всеми высказавшимися.

    Да, в среднем высокоуровневое программирование оплачивается выше чем разработка железок. На счёт уровня зарплат могу судить лишь по Москве (для молодого специалиста с 0.5-1 годом стажа на старт большинство фирм дают ~40 - 50 т.р.). Плюс некоторые готовы брать людей и без опыта, если голова варит.

    Да, порог вхождения в область существенно выше чем у программирования. Нужно знать очень много всего, чтобы результаты Вашего труда работали.

    Да, в большинстве случае будете прямо или косвенно работать на государство. Косвенно - это когда фирма частная, но участвует в разработке по ОКР.

    Но!
    Если говорить о разработке железа (прототипирование на ПЛИС/разработка ASIC), то в сфере наблюдается кадровый голод. Если выучите SystemVerilog, UVM/OVM/Assertions и что-нибудь из комплекта C/C++, Tcl, bash Вам цены не будет как верификатору. Потому что верификация разработки это самая трудозатратная часть. Можно ещё и разработчиком быть - на Verilog-е писать. Везде свои прелести. В итоге поработав лет 10 можете заиметь весьма реальные шансы уехать поработать куда-нибудь. Но тут очень много разных факторов и что будет через 10 лет сказать сложно.
    Ответ написан
    6 комментариев
  • Мат плата из принтера и что с ней сделать можно?

    @semen-pro
    Распаять на запчасти, во всяком случае там есть dc-dc преобразователь и драйверы шаговиков. все это можно к той же ардуине или малине подключить (шилдов наделать). А вот писать софт под камень из незнакомого семейства, навык работы с которым вряд ли пригодится в дальнейшем - это мазохизм. Впрочем, если мсье знает толк в извращения, с удовольствием почитаю статью на хабре об успешном завершении этого проекта. С фотографиями, разумеется.
    Ответ написан
    Комментировать
  • Как заняться авивмоделированием?

    Serhioromano
    @Serhioromano
    Web Developer
    Можно 3д принт. Можно старым способом из фанеры. Я не понимаю в чем затык? Распечанываете четрежи, переносите на материал, пилите, точите, ....

    По поводу электроники, то сейчас готовых контроллеров полно просто. Нужны будут степ моторы. Все можнжо купить комплектом.

    Гугл просто пестрит после поиска. Все что душе угодно.
    Ответ написан
    1 комментарий
  • Django + fastcgi + nginx как заставить работать?

    @bromzh
    Drugs-driven development
    Зачем fastcgi? Это же не пхп, возьми нормальный питоновский веб-сервер. Вот, например, с подробной инструкцией.

    UPD. Вот бенчмарки.
    Ответ написан
    Комментировать
  • Какой алгоритм сортировки слов по смыслу или библиотеку использовать?

    @Rorg
    сходства у этих строк по смыслу и рассортировать на 3-4 группы словосочетаний


    Если именно помыслу, то смотрите наверное в сторону нейросетей. Как вариант возможно хорошо сработает цепь Маркова (но она скорее для больших текстов, чем для словосочетаний )
    Ответ написан
    1 комментарий
  • Как начать делать сайт для организации по заданной идее, если у тебя нет опыта?

    iiil
    @iiil
    Инженер и вэб-дизайнер, рисую.
    Да все на самом деле просто. Смотрите на сайты других компаний и делайте себе такое же.
    1. Про юзабилити общие понятия Веб-Дизайн: книга Стива Круга или "не заставляйте меня думать!" (да, она старая)
    2. Кирсанов, Веб-дизайн (да, и она старая)
    3. html/css - или используйте фреймворк, или смотрите как сделано в нем, например в бутстрап
    4. Сразу озаботьтесь вопросом адаптивности, потому что подход: ну мне бы хоть пока по-простому сделать - неверный
    А так, вопрос Ваш слишком общий, Вы на этапы разбейте и начинайте с поиска. Не изобретайте велосипед, задавайтесь почаще вопросом - почему на сайтах делают именно так, а не вопросом - а чем мой вариант хуже.
    Ответ написан
    1 комментарий
  • Как сделать редирект с www на без www на фреймворке symfony2, чтобы не было циклического перенаправления?

    nazarpc
    @nazarpc
    Open Source enthusiast
    Лучше всего пропишите CNAME в настройках домена. От фреймворка не зависит, работает проще и быстрее.
    Ответ написан
    2 комментария
  • Как отдавать статику сервером на node.js ?

    icelaba
    @icelaba
    Знаю и умею всё
    npm install express --save

    в коде
    var express = require('express');
    var app = express();
    app.use(express.static(__dirname + '/public'));
    app.listen(3000);

    Но лучше не извращайтесь и поставьте для статики nginx,
    тут вам будет и кеширование и gzip и в сто раз удобнее.

    Особо нет смысла использовать ноду даже в тестовой конфигурации как сервер статики
    Ответ написан
    Комментировать
  • Питон. Как изучать?

    afiskon
    @afiskon
    Тупо берите задачу и решайте. Гуглите, смотрите по книжкам, спрашивайте на форумах. Через пол года посмотрите на свой код, офигейте и напишите заново, в этот раз лучше :) Список задач можно тут посмотреть например.
    Ответ написан
    Комментировать
  • Что изучать и в каком порядке?

    @Misha7
    Учи php и mysql. Очень перспективно. Только не смотри курсы Попова по php. Там один говнокод, потом переучиваться придеться. Затем когда выучиш php и mysql попробуй написать например блог или интернет магазин. Это не так сложно как кажеться. Появляться вопросы пиши. Удачи))
    Ответ написан
    1 комментарий