Контакты

Достижения

Все достижения (14)

Наибольший вклад в теги

Все теги (34)

Лучшие ответы пользователя

Все ответы (21)
  • Сколько стоит разработка подобного сайта?

    Такого уровня или даже хуже примерно 50 000.
    Плюс надо учесть что такие проекты делаются не за раз, после готового первоначального варианта идет стадия поддержки.
    Ответ написан
  • Что изучать веб-программисту самоучке, кроме самого языка?

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

    Что касается веба (но применима к любому языку, да и не только)
    Изучили php — посмотрите как оптимизировать. Как закэшировать и тд
    Изучили MySQL — изучите оптимизацию запросов.
    Изучили JS — найдите как более рационально его применить.
    Оптимизируйте сервера, в общем все что только можно.

    Извиняюсь за излишнюю эмоциональность. Просто наболело и надоело видеть кучу тормозного кода.
    Начиная от сайтов заканчивая приложениями.
    Ответ написан
  • Подскажите софт для автоматической синхронизации данных с сервером

    rsync — очень гибкое решение. Но возможно покажется сложным в развертывании.
    + многие IDE умеет заливать на FTP или SFTP
    Ответ написан
  • Как сымитировать "нажатие" кнопки выключателя?

    Тоже задавался данным вопросом. Данные выключатели есть с радио управлением. И на плате есть разъем для радиоприемника. Один из контактов это RX.
    Если используете ардуину:
    int txPin = 9; // pin connected to RF transmitter
    int i; // counter to send command pulses
    int pulse; // count pulse repetitions
    int incomingByte = 0;   // for incoming serial data
    
    // hard coded commands (see txButton): 1 - pulse start, 2 - zero, 3 - one, 4 - pause, 5 - low
    int button1[45]={44, 1, 2, 4, 2, 4, 2, 4, 3, 5, 2, 4, 2, 4, 3, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2};
    int button2[43]={43, 1, 2, 4, 2, 4, 2, 4, 3, 5, 2, 4, 2, 4, 3, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 5, 3, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2};
    int button3[41]={40, 1, 2, 4, 2, 4, 2, 4, 3, 5, 2, 4, 2, 4, 3, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 5, 3, 5, 3, 4, 2, 4, 2, 4, 2};
    int button4[43]={42, 1, 2, 4, 2, 4, 2, 4, 3, 5, 2, 4, 2, 4, 3, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 5, 3, 4, 2, 4, 2, 4, 2};
    int button5[43]={42, 1, 2, 4, 2, 4, 2, 4, 3, 5, 2, 4, 2, 4, 3, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 5, 2, 4, 3, 4, 2, 4, 2, 4, 2, 4, 2};
    int button6[43]={42, 1, 2, 4, 2, 4, 2, 4, 3, 5, 2, 4, 2, 4, 3, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 5, 3, 4, 2, 4, 2, 4, 2, 4, 2};
    int button7[41]={40, 1, 2, 4, 2, 4, 2, 4, 3, 5, 2, 4, 2, 4, 3, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 5, 3, 4, 2, 5, 3, 4, 2, 4, 2};
    int button8[43]={42, 1, 2, 4, 2, 4, 2, 4, 3, 5, 2, 4, 2, 4, 3, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 5, 3, 4, 2, 4, 2};
    int button9[43]={42, 1, 2, 4, 2, 4, 2, 4, 3, 5, 2, 4, 2, 4, 3, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 5, 2, 4, 2, 4, 3, 4, 2, 4, 2, 4, 2};
    int button10[43]={42, 1, 2, 4, 2, 4, 2, 4, 3, 5, 2, 4, 2, 4, 3, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 5, 2, 4, 3, 4, 2, 4, 2, 4, 2};
    int button11[41]={40, 1, 2, 4, 2, 4, 2, 4, 3, 5, 2, 4, 2, 4, 3, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 4, 2, 5, 3, 4, 2, 5, 2, 4, 3, 4, 2};
    
    void setup () {
    
    pinMode(txPin, OUTPUT);
         Serial.begin(9600);
         Serial.println("Number = button;  a to press 0;  b to shut off all");
    
    }
    
        void loop(){
          if (Serial.available() > 0) {
            // read the incoming byte:
            incomingByte = Serial.read();
            switch(incomingByte) {
            case 49:
            txButton(button1);
            Serial.println("Switching on 1");
            break;
            case 50:
            txButton(button2);
            Serial.println("Switching on 2");
            break;
            case 51:
            txButton(button3);
            Serial.println("Switching on 3");
            break;
            case 52:
            txButton(button4);
            Serial.println("Switching on 4");
            break;
            case 53:
            txButton(button5);
            Serial.println("Switching on 5");
            break;
            case 54:
            txButton(button6);
            Serial.println("Switching on 6");
            break;
            case 55:
            txButton(button7);
            Serial.println("Switching on 7");
            break;
            case 56:
            txButton(button8);
            Serial.println("Switching on 8");
            break;
            case 57:
            txButton(button9);
            Serial.println("Switching on 9");
            break;
            case 97:
            txButton(button10);
            Serial.println("Switching on 0");
            break;
            case 98:
            txButton(button11);
            Serial.println("Switching All off");
            break;
            }
          } // end if serial available
        }// end void loop
        
    // transmit command. Due to transmitter (or something, I don't know) transmission code should be INVERTED. Ex: one is coded as LOW-delay->HIGH instead of HIGH-delay-LOW
    void txButton(int cmd[]) {
    Serial.print("Processing. Array size is ");
    Serial.println(cmd[0]);
    digitalWrite(txPin, HIGH); // not sure if its required, just an attempt to start transmission to enable AGC of the receiver
    delay(1000);
    
    for (pulse= 0; pulse <= 100; pulse=pulse+1) { // repeat command 100 times
    for (i = 1; i < cmd[0]+1; i = i + 1) { // transmit command
    
      switch(cmd[i]) {
       case 1: // start
       digitalWrite(txPin, HIGH);
       delayMicroseconds(550);
       digitalWrite(txPin, LOW);
    //   Serial.print("s");
       break;
       case 2: // "zero", that is short high spike
       digitalWrite(txPin, LOW);
       delayMicroseconds(110);
       digitalWrite(txPin, HIGH);
    //   Serial.print("0");
       break;   
       case 3: // "one", that is long high spike
       digitalWrite(txPin, LOW);
       delayMicroseconds(303);
       digitalWrite(txPin, HIGH);
    //   Serial.print("1");
       break;      
       case 4: // pause, that is short low spike
       digitalWrite(txPin, HIGH);
       delayMicroseconds(110);
       digitalWrite(txPin, LOW);
    //   Serial.print("p");
       break;      
       case 5: // low, that is long low spike
       digitalWrite(txPin, HIGH);
       delayMicroseconds(290);
       digitalWrite(txPin, LOW);
    //   Serial.print("l");   
       break;      
      }
        
      }
    
    } 
    
    
    }


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

    Все отлично работает. Так же работает команда на выключение.

    Пока эксперименты приостановил. Но следующим хотел найти как его можно напрямую включить или по UART
    Ответ написан
  • Какие онлайн сервисы упрощают вам жизнь и экономят время?

    unite.opera.com (File Inbox, File Sharing)
    File Inbox — если вам надо что то принять, вы просто даете ссылку куда человек заливает файл и он сразу попадает к вам на винт.

    File Sharing — если вам надо что то кому то скинуть, даете ссылку и он качает прямо с вашего винта (не надо искать куда бы залить файл). Также можно слушать музыку потоком. Удобно иметь постоянный доступ к файлам из мобильного устройства.

    Ну и еще куча удобств + работает с сетью если компы в сети.
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (18)