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

    tomnolane
    @tomnolane
    профессиональный разработчик
    Стоит ли идти в IT индустрию в 20 лет если твои навыки и знания равны 0?
    1) если обращаетесь к сообществу - разговаривайте на его языке (нормальном русском или на английском). Это касается и при разговоре с работодателями. (это не нотация, а пожелание)
    2) у вас есть портфолио с готовыми работами (не типа "Hello world") и Н-проектов на гитхабе? к примеру хотя бы так
    3) в 20 лет все мы маленькие Наполеоны, желающие, чтобы солнце крутилось вокруг нас, а не мы вокруг солнца. Но для работодателей (и вообще, кто дает деньги) 20-лет автоматом говорит, что человек ещё "зеленый", хотя это может и не так. Докажите это!
    4) "знать-прочитать" != увидеть результат. Посмотрите глазами "работодателями": вы(работодатель) - даете (условно) 250 долларов за простенькую программу. Через 10 мин у вас 50 заявок (вы только разместили объявление) от индусов, готовых это сделать и за 10 долларов. Зачем вам искать фрилансера, у которого нету сертификата, диплома, работ на гитхабе, портфолио, готового (без торга) сделать за 250 долларов? а?
    5) не нужно знать 30 языков и уметь писать "Hello wolrd" на них. Лучше знать отлично 1-2 и уметь писать своих "танчиков"
    Ответ написан
    4 комментария
  • Как создать OS с помощью C++ и Python?

    anton_lazarev
    @anton_lazarev
    Дополню ответ devalone

    У Таненбаума есть замечательная книга Операционные системы. Разработка и реализация в которой теория представлена на реальном примере разработки ОС MINIX

    К сожалению, печатное издание с 2007 года не переиздается, но в сети есть скан хорошего качества.
    Ответ написан
    1 комментарий
  • Babel или Typescript? Есть ли смысл учить второй?

    @pastenak
    Вы напрасно придаете столь высокое значение новым фичам.

    Гугль Аналитик на моих сайтах показывает, что процент морально устаревших браузеров у посетителей очень велик - около 40% древностей.

    И, кстати, противопоставление Typescript и Babel - вообще не уместно.

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

    Если вас устраивает функционал Typescript - это будет вполне себе целесобразно. Качество ваших проектов будет выше.

    Если же вам по каким то веским причинам нужен ES6 - используйте Babel на здоровье.
    Ответ написан
  • В каких случаях эффективнее дублирование кода вместо вызова функции?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Если на данный момент функция в памяти не была определена (не была востребована) и использование логики работы кода этой функции планируется строго один раз, то разумнее использовать сразу само тело функции.
    Ответ написан
    4 комментария
  • Какие оптимизации используются в языках С и С++?

    longclaps
    @longclaps
    Виталий, стандарты этих языков не содержат "списки оптимизаций".
    Конкретные реализации кое-что умеют, например, константные выражения вычисляют все популярные компиляторы.
    Ответ написан
    4 комментария
  • Какие оптимизации используются в языках С и С++?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Мне не нужен полный список низкоуровневых оптимизаций, таких как размещение переменных в регистры, а нужны такие, как вычисление константных выражений или раскрытие простых методов (get/set). Какие оптимизации в C и C++ различаются? В частности, рассматриваю gcc.

    gcc -Q --help=optimizers выведет список всех включенных в настоящий момент (другими опциями командной строки) оптимизаций. Что каждый из -f* ключей означает можно посмотреть тут: https://gcc.gnu.org/onlinedocs/gcc/Optimize-Option...
    Ответ написан
    1 комментарий
  • Как построить сохранение состояния компонентного приложения?

    @koronabora
    Человек
    Обычно компоненты вместе со своими свойствами и состояниями выгружаются в xml форму. Потом загружаются обратно. Иерархия компонентов хорошо ложиться в xml в виде вложенных структур или в виде ссылки на id родителя. Состояние чекбокса, например - лишь значение поля value - 1 или 0.
    Ответ написан
    7 комментариев
  • Как создать переменную в шаблоне?

    Angular 4

    Вот так может сработать, только нужно чтобы эта функция всегда true в булевом эквиваленте возвращала
    <z *ngIf="zOf(x, y) as z" (disabled)="disabled(z)" (selected)="selected(z)"></z>


    иначе такой вариант
    <z *ngIf="{ of: zOf(x, y) } as z" (disabled)="disabled(z.of)" (selected)="selected(z.of)"></z>


    Правда я советую не заниматься такой фигней в шаблоне, а заранее готовить данные.

    И я очень уверен что в @Output код будет исполняться при срабатывании соответствующего подписчика. Так что я не понимаю зачем вам тут переменная
    Ответ написан
    1 комментарий
  • Как низкоуровневые операции распределяются по потокам?

    Вот есть неплохая статья по этой теме.
    И вот здесь и здесь более детально.
    Ответ написан
    Комментировать
  • Как синхронизируются потоки на низком уровне?

    @Mercury13
    Программист на «си с крестами» и не только
    Этого мало.
    Первое. Нужны особые операции, которые гарантированно выполняются атомарно. Например (из исходников Delphi)
    function InterlockedAdd(var Addend: Integer; Increment: Integer): Integer;
    asm
          MOV   ECX,EAX
          MOV   EAX,EDX
     LOCK XADD  [ECX],EAX
          ADD   EAX,EDX
    end;

    Здесь префикс LOCK (блокирование шины) и даёт атомарность. Также используют операцию XCHG (exchange) — единственная атомарная без префикса LOCK.

    На основе этого можно устроить объект, который называется spinlock. Крутим цикл, пока система не скажет: свободно. Из Википедии.
    mov eax, spinlock_address
    mov ebx, SPINLOCK_BUSY
    
    wait_cycle:
    xchg [eax], ebx  ; xchg - единственная инструкция, являющаяся атомарной без префикса lock
    cmp ebx, SPINLOCK_FREE
    jnz wait_cycle
    
    ; < критическая секция захвачена данным потоком, здесь идёт работа с разделяемым ресурсом >
    
    mov eax, spinlock_address
    mov ebx, SPINLOCK_FREE
    xchg [eax], ebx  ; используется xchg для атомарного изменения
    ; последние 3 инструкции лучше заменить на mov [spinlock_address], SPINLOCK_FREE -
    ; это увеличит скорость за счёт отсутствия лишней блокировки шины, а mov и так выполнится атомарно
    ; (но только если адрес spinlock_address выровнен по границе двойного слова)


    От спинлока до настоящего мьютекса остаётся один небольшой шаг. Спинлок потребляет ресурс процессора, не производя полезной работы. После того, как спинлок проработал несколько микросекунд и не освободился, мы говорим: не судьба — и передаём работу другому процессу. Надеюсь, вы в своей мини-ОС как-то научились переключать процессы.

    В однопроцессорном ядре никаких спинлоков нет. Если надо захватить ресурс, а он чей-то — сразу отдаём управление другому.

    UPD1. Почему не сразу отдавать работу другому процессу. Хороший тон — защищать мьютексом не системные вызовы (которые действительно долги) а какие-нибудь структуры данных вроде связных списков и атомарных struct. Так что вероятность, что объект просидит занятым долго, крайне мала. В настоящем мьютексе есть очередь с приоритетом, которая защищается, как ни странно, спинлоком. И этого достаточно.
    Ответ написан
    2 комментария
  • Как сохранить клиента себе не в убыток?

    opium
    @opium
    Просто люблю качественно работать
    Никак если клиент не готов платить, растаньтесь и развивайтесь дальше
    Ответ написан
    Комментировать
  • Как сохранить клиента себе не в убыток?

    Согласитесь, с условием:

    1. оплата вперёд, 100%
    2. срок ровно полгода – фиксируйте дату последнего дня;
    3. вы будете считать время, потраченное на поддержку. Прозрачно, таймером как на upwork. Если оно превысит 80 часов вы прекращаете работу до получения ещё $100, которые покроют дополнительные 20 часов работы (цифры сами точно расчитайте)
    4. Дополнительное время, оплаченное дополнительно – это только дополнительные часы. Как только полгода истекут – вся работа прекращается до продления контракта.


    Т.е. фактически сведите договор к почасовой оплате, сохранив внешнюю форму предложения индуса.
    Ответ написан
    5 комментариев
  • Как сохранить клиента себе не в убыток?

    Zifix
    @Zifix
    Barbatum
    Друг, даже индусы не работают за 1.8 доллара в час, серьезно. $2000-3000 на полгода поддержки — можно соглашаться.
    Ответ написан
    Комментировать
  • По какому принципу работает фича, когда в разных браузерах синхронно заполняются формы?

    @davidnum95
    Обычно делают через промежуточный сервер на веб сокетах, в базу писать необязательно. Принцип такой: пишешь что то в первом браузере -> это отсылается на сервер посредством веб сокетов или просто пост запросом -> сервер отсылает всем подключенным клиентам(браузерам).
    Ответ написан
    Комментировать
  • Как монетизируются языки программирования и бесплатные фреймворки?

    @di23
    Вы недооцениваете опенсорс. И смотрите только на быстрое получение прибыли с проекта.
    Вот пару моментов которые пришли в голову:
    1. Распространение своей технологии, своей продукции. Завоевать умы гораздо гораздо легче бесплатным продуктам, особенно когда этот продукт хорош. А люди, аудитория стоят дороже денег, надеюсь это не надо объяснять? В конечном счете подсадив людей на технологию можно ими управлять и диктовать свои правила. Это власть.
    2. Деньги можно срубать с больших компаний использующих ваш продукт. Грубо: "Для того что бы я дальше развивал свою технологию мне нужны деньги, иначе я перестану ее развивать, она загнется, а вы, уважаемая компания, потеряете кучу времени и сил переходя на другое решение. По этому прошу отстегивать мне Н-ю сумму ежемесячно" Это грубо, но в целом именно так. Можно сюда еще включить то, что компании могут напрямую просить добавить какой-то функционал в следующую версию вашего продукта.
    3. Банальные пожертвования.
    4. Поддержка. Опять же, у крупной компании возникли проблемы или не понимания вашей технологии. Вы им оказываете индивидуальную поддержку за приличную сумму.
    5. Вас будут приглашать на различные конференции, в универы, в компании и т.д. За это все можно и нужно брать деньги. Вообщем сюда попадает весь заработок с собственного имени и лица, как у голливудской звезды.
    6. Еще можно делать технологию полу-бесплатной. Как Юнити, например. Можно юзать бесплатно, но если ваша игра набрала определенную аудиторию вы должны платить за их технологию. Весьма честно и хитро.
    Да кучу еще всего можно сюда дописать. Главное - это аудитория и популярность. С этими двумя вещами можно ворочать горы.
    Ответ написан
    3 комментария
  • Как монетизируются языки программирования и бесплатные фреймворки?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Вы, простите, много видели программистов 1С, работающих на языке программирования 1С без 1С? Я - ни одного. Закрытый "клуб по интересам", который генерит такие велосипеды, что диву даешься.
    Закрытый язык программирования никто не будет учить, на закрытом фреймворке никто работать не будет, даже если будут обучать. Для чего его учить, время тратить? Чтобы потом иметь возможность устроиться только в компанию Х? Потеря сообщества - это смерть любой технологии, любого языка, любой ОС.
    Была такая замечательная ось - OS/2. То, что она замечательная, я знаю не понаслышке - все-таки два года проработал под ней. Погубило ее как раз отсутствие поддержки - не было софта, не было программистов, не было сообщества - все постепенно разбегались кто куда. Где нынче OS/2 - да никто и не вспомнит. А отдал бы IBM ее в опен сорс - глядишь, нашлись бы пара-тройка энтузиастов.
    Продавать продукт невыгодно - его можно продать один раз. Гораздо выгоднее продавать поддержку - ее можно продавать постоянно.
    Ответ написан
    4 комментария
  • Как монетизируются языки программирования и бесплатные фреймворки?

    @xfg
    Колесят по конференциям и собирают барыши. Книгами барыжат. Много всего.
    Ответ написан
    3 комментария
  • Возможно ли освоить React Native, без знаний React.js?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    React Native это просто компиляция JSX в нативные для платформы виджеты. Писать на нем, не зная JS и JSX, просто нет смысла.
    Ответ написан
    Комментировать
  • Какие есть альтернативы sqlite?

    kirill89
    @kirill89
    Для хранения пар ключ-значение однозначно могу посоветовать leveldb.
    Ответ написан
    3 комментария