• Какой редактор выбрать для html/css?

    tomnolane
    @tomnolane
    профессиональный разработчик
    пользуюсь brackets. Очень доволен.
    Вот хороший обзор на youtube
    Очень гибкий, обновляется, open source, есть возможность установить много разных плагинов (хотя из-за этого (п.с. большого кол-ва) может начать подтормаживать)
    Ответ написан
    Комментировать
  • Стоит ли использовать смайлики на Хабре?

    tomnolane
    @tomnolane
    профессиональный разработчик
    п.с. 37311da1dcd74f98bfed7e4d689ee118.PNG

    а так - хозяин барин unfortunately ... могли ошибиться (НЛО ведь ошибаются) - и мимо юзеря виновного мышкой промазать на вас...

    upd или попасть "под горячую руку" и "чужое плохое настроение"...
    Ответ написан
    Комментировать
  • При запросе на photos.getPhotos возвращается PERMISSION_DENIED: User must grant an access to permission 'VALUABLE_ACCESS'?

    tomnolane
    @tomnolane
    профессиональный разработчик
    Возможно сделать автопубликацию в Odnoklassniki?

    нужно сначала получить VALUABLE_ACCESS - для этого отправляется письмо на адрес api-support@ok.ru с указанием - зачем он вам нужен и кто вы:
    6aca12a1f3634824ac759389b2697aa9.PNG
    после чего (дня через 2-3) присылают ответ:
    55ac45ee58b44d1ba6b7d42558706092.PNG
    и только после этого вы сможете пользоваться методами, которые требуют 'VALUABLE_ACCESS'
    а так, без этого вы не можете пользоваться.

    п.с. API у Одноклассников самое "строгое" среди API : Вконтакте, Твиттера, Иснтаграмма и Фейсбука
    Ответ написан
    1 комментарий
  • Как организовать авторизацию и аутентификацию в WPF приложении?

    tomnolane
    @tomnolane
    профессиональный разработчик
    у меня аналогичная проблема была Как ограничить использование своего декстоп-приложения (.exe) только тем, кто зарегистрирован у меня на сайте (как это выглядит примерно?)?
    Смысл в чём: всё что вы напишите на c# || vb можно будет посмотреть (тем или иным образом). Т.е. если едёт аутентификация внутри приложение - то более менее грамотный специалист через CIL увидет, что и с чем сравнивается. Обусфакция - уберёт праздошатающих и студентов. Я пока (лично для себя) решил так: кто пользуется моим приложением - должен ввести логин и пароль, после чего (используя любой принцип шифрования) - отправляется ко мне на сайт, где сравнивается с логином/паролем из БД. Если гуд, тогда обратным вызовом я передаю непосредственно тот файл, который "рабочий" (exe,dll). Точнее ссылку для скачивания его. Приложение подключает его через рефлексию. Перед закрытием, файл (exe,dll) удаляется. Более грамотно - это использовать API. Т.е. вы создали приложение в WPF - в котором нету никакой информации - только кнопки, методы, классы, сво-ва и т.д. Ваше приложение (после аутентификации) обратным методом возвращает в JSON или XML формате данные, которые непосредственно вставляются в ваш WPF. И это наверно самый правильный вариант - сделать, всё через API. Все проверки/добавления/удаления в БД - только через php вашего сайта. В самой программе - никаких паролей и прочего.

    от слов к делу: https://tomnolane.ru собственно это он

    п.с. регистрацию сделал через сайт
    Ответ написан
  • Какие требования для разработки приложений под Windows XP и выше?

    tomnolane
    @tomnolane
    профессиональный разработчик
    Какие требования для разработки приложений под Windows XP и выше?

    использовать максимум .Net framework 4.0 (не выше, можно ниже). И синстаксис c#4-5 версий, т.к. XP понятия не имеет что это значит на версии c#7:
    string my_text = "Hello";
    string nickname = "ogpol32!";
    Console.WriteLine(string.Format($"({my_text}, {nickname})"));

    ещё можно добавить, что постараться сделать приложение максимально не требовательно к ресурсам компьютера/памяти (хотя это касается любых приложений под любые ОС)
    и (в идеале) постараться использовать как можно меньше костылей и дополнительных(не родных) библиотек в проекте. Вообщем, чем проще, тем лучше.
    И есть ли существенная разница?

    существенная. Я лично пишу под/на .Net 4.5 и (конечно) с XP пролетаю... Между 4 и 4.5 разница достаточно существенная: особенно касается обработки исключений и многопоточности. Но увы и ах... на .Net 4 придётся пожертвовать "синтаксическим сахаром" в результате чего, код будет менее читабелен и удобен.
    Как вы относитесь к Telerik?

    к сожалению я им не пользовался( и не могу подсказать, разве что, Telerik заточен под .Net 4 Client (не ниже)
    fa1746047c24437d8854507ff13331e2.PNG

    вообщем, используйте .Net framework 4 Client и версию c#4-5 и да прибудет с вами сила...

    upd
    677a22bb956243e8b66c717184bcd4bf.PNG
    Ответ написан
    1 комментарий
  • C# SendKeys.Send в игре?

    tomnolane
    @tomnolane
    профессиональный разработчик
    6 комментариев
  • Как быстро получить права для игры на Unity?

    tomnolane
    @tomnolane
    профессиональный разработчик
    в среднем, мне так и отвечали 2-3 дня. Ускорить никак(
    получал: VALUABLE_ACCESS, GROUP_CONTENT.
    Некоторые разрешения получить не возможно: к примеру: PUBLISH_TO_STREAM

    доп:
    VALUABLE_ACCESS в Одноклассники API?
    Как получить разрешение на право PUBLISH_TO_STREAM в Api Одноклассников?
    Ответ написан
    Комментировать
  • Как проверить открыта ли стена вк?

    tomnolane
    @tomnolane
    профессиональный разработчик
    637e8a4807dc4bd4ac4b750635f82053.PNG
    в fields используйте параметр can_post и/или can_see_all_posts
    запрос users.get

    а по этому запросу можете посмотреть ещё всякие интересности, в частности:
    ed8ad530525241c8a219d2deda0be738.PNG20f3cc2116da4378b38a2c47188afbb7.PNG
    Ответ написан
    Комментировать
  • Почему не выполняется InitializeComponent?

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

    tomnolane
    @tomnolane
    профессиональный разработчик
    90% так и надо делать!
    1 правило хакера (точнее компьютерщика кодера, программиста) - не создавать велосипед, а использовать готовое.
    Если для повышения скила - то лучше конечно самим придумать/разработать/написать.
    Если для всего остального - чем быстрее напишите (особенно с учётом/доработками вашего проекта) - тем лучше для всех. Останется время пиво попить и футбол посмотреть) или с семьёй побыть рядом.

    п.с. для повышения скила можно и тостер использовать в частности - пытаясь отвечать/решать вопросы +
    попробовать в чужом коде сделать рефакторинг +
    когда столкнётесь с тем, что даже примерно аналога нету - конечно придётся самим решать, НО, вы же не просто ctrl+c ctrl+v делаете, а подгоняете код под ваши нужды и хоть немного но разбираетесь в том, что он делаете (т.е. вы увеличиваете скилл). И лучше за n-промежуток времени столкнуться 1-2 раза, когда сами ручками и головой будете решать ТАКОЕ, чем на каждый чих - тратить время

    Если я пишу код на основе других, это плохо?

    в 90% случаев - НЕТ

    п.с.с.
    умение найти чужой код (понять его), который будет работать + его доработать(встроить) - тоже, очень и очень важное умение!

    03aee4062f1347ed96f49f044ebe25b3.PNG
    Ответ написан
    2 комментария
  • Как правильно выводить данные из массива?

    tomnolane
    @tomnolane
    профессиональный разработчик
    $mas_samara = ['Чапаевск','Новокуйбыышевск','безенчуг'];
    $mas_moscow = ['Москва','Аргентина','Казань','Иннополис'];  
    
    echo "Самарская область:<br/>";
    foreach ($mas_samara as $city)
    echo "$city<br/>";
    
    echo "<br/><br/>Московская область:<br/>";
    foreach ($mas_moscow as $city)
    echo "$city<br/>";


    или так:
    $mas = [
        'Самарская область' => [
            'Чапаевск',
            'Новокуйбыышевск',
    		'безенчуг'
        ],
    	'Московская область' => [
    		'Москва',
    		'Аргентина',
    		'Казань',
    		'Иннополис'
    	]
    ];
    
    echo "<br/><br/>Самарская область:<br/>";
    foreach ($mas['Самарская область'] as $city)
    echo "$city<br/>";
    
    echo "<br/><br/>Московская область:<br/>";
    foreach ($mas['Московская область'] as $city2)
    echo "$city2<br/>";


    результат всего:
    2981b0093c9d4106856dfcec8e00ebe6.PNG

    п.с. <br/>- это перенос на новую строку
    Ответ написан
    Комментировать
  • Как быть с видеокартой при таких адовых симптомах?

    tomnolane
    @tomnolane
    профессиональный разработчик
    чтобы демагогию не разводить - самый правильный и не проигрышный вариант - пойти в оф. сервис обслуживания - отдать с заменой видюхи. Придётся заплатить (помните поговорку: "Скупой платит ..."). И тогда в этом случае там проводят полную диагностику + меняют видюху (специалисты, а не горе коленщики) + дают гарантию.
    Я лично так теперь и поступаю: в своё время телефон LG (сенсерный) ремонтировал - причём б/у стоил порядка 8-9, а мне за 4 поменяли абсолютно ВСЁ (кроме задней крышки и аккумулятора). П.с. в "ларьке" у "ремонт телефонов/Iphonoff" за 4 мне обещали поменять лишь сенсор. экран.
    Также с ноутом - отдали бесплатно не работающий ASUS (пролили воду на него). Отдал (август 2016) в официальный сервис - поменяли материнскую карту (именно в ней были проблемы) + гарантия 3 месяца. Сумма где-то 11 800 (если с али покупать -то 6-7, но али я не доверяю такие вещи). Сам такой ноубтук сейчас на авито стоит примерно 25-27

    Возможно подлатать видяху или лучше сплавлять дальше по рукам?

    Если подлатать - то тем способом, что описал.
    Если "по рукам" - то посчитайте насколько экономически вы "теряете" (с/без ремонтом видео карты) при последующей продажи
    Ответ написан
  • Почему не работает метод docs.save Vk api?

    tomnolane
    @tomnolane
    профессиональный разработчик
    я загружаю так (правда не на php, а на c#, но суть одна и таже):
    1) получаю сервер для загрузки:
    var json = JObject.Parse(VkRequest("https://api.vk.com/method/docs.getUploadServer?v=" + Vk.Version + "&access_token=" + Vk.AccessToken)); // выполняю без group_id, и в данном случае документы будут сохранены в моём аккаунте в документах .. если нужен group_id, то id указываем положительным

    парсю ответ и получаю url куда загружать
    2) загружаю файл на указанный url (обычным POST запросом), получаю json ответ и беру от туда file
    3) сохраняю и получаю как attachment:
    string request_path = "https://api.vk.com/method/docs.save?file="+file+"&title=999999999&tags=9999999999&v="+Vk.Version+"&access_token=" + Vk.AccessToken;
                
    var json = JObject.Parse(VkRequest(request_path)); // в json - уже мой attachment, который использую при отправке на стену


    п.с.
    Допустимые форматы: любые форматы за исключением mp3 и исполняемых файлов.
    Ограничения: файл объемом не более 200 МБ.
    Поле POST-запроса: file.
    Ответ написан
  • Как проверить в php существует ли силка?

    tomnolane
    @tomnolane
    профессиональный разработчик
    Проверяем ссылку на существование:
    Первым делом разобьем ссылку на составляющие части и проверим записи DNS
    $url_p=parse_url($url);
    if (!empty ($url_p ['host']) and checkdnsrr($url_p ['host'])){
     // Запись DNS существует
    }

    Когда мы убедились, что такой сайт существует, мы должны получить ответ от сервера:
    if ($otvet=@get_headers($url)){
     echo  substr($otvet[0], 9, 3);
    }

    Если сервер вернет код 200 или 301/302, тогда страница существует!

    полный скрипт:
    <?
    // Корректность ссылки (URL)
    function check_url($url)
    { 
      if(preg_match("@^http://@i",$url)) $url = preg_replace("@(http://)+@i",'http://',$url);
      else if (preg_match("@^https://@i",$url)) $url = preg_replace("@(https://)+@i",'https://',$url);
      else $url = 'http://'.$url;
     
     
      if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) { 
        return false;
    }
    else return $url;
    }
     // Существование ссылки (URL)
    function open_url($url)
    {
     $url_c=parse_url($url);
     
      if (!empty($url_c['host']) and checkdnsrr($url_c['host']))
      {
        // Ответ сервера
        if ($otvet=@get_headers($url)){
          return substr($otvet[0], 9, 3);
        }
      }
      return false;     
    }
    
    // Проверка ссылки
    $url='https://tomnolane.ru/';
    if ($url=check_url($url))
    {
      // ссылка корректная
      if ($o=open_url($url))
      {
        echo "Ответ сервера " . $o;
      }
      else
      {
        echo "Сервер не отвечает";
      }
    }
    else echo "Некорректная ссылка";
    ?>
    Ответ написан
    1 комментарий
  • Отправка письма на email.?

    tomnolane
    @tomnolane
    профессиональный разработчик
    вы уверены, что:
    1) указали верный порт smtp принимающей(к какой подключаетесь) стороны? (точно 587 ??? не всегда используется 587 для smtp)
    2) указали верный адрес почты?
    3) верный логин и пароль?

    вот рабочий код:
    class Program
        {
            static void Main(string[] args)
            {
                 
                // отправитель - устанавливаем адрес и отображаемое в письме имя
                MailAddress from = new MailAddress("somemail@gmail.com", "Tom");
                // кому отправляем
                MailAddress to = new MailAddress("somemail@yandex.ru");
                // создаем объект сообщения
                MailMessage m = new MailMessage(from, to);
                // тема письма
                m.Subject = "Тест";
                // текст письма
                m.Body = "<h2>Письмо-тест работы smtp-клиента</h2>";
                // письмо представляет код html
                m.IsBodyHtml = true;
                // адрес smtp-сервера и порт, с которого будем отправлять письмо
                SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
                // логин и пароль
                smtp.Credentials = new NetworkCredential("somemail@gmail.com", "mypassword");
                smtp.EnableSsl = true;
                smtp.Send(m);
                Console.Read();
            }
        }


    вот асинхронный код:
    class Program
        {
            static void Main(string[] args)
            {
     
                SendEmailAsync().GetAwaiter();
                Console.Read();
            }
     
            private static async Task SendEmailAsync()
            {
                MailAddress from = new MailAddress("somemail@gmail.com", "Tom");
                MailAddress to = new MailAddress("somemail@yandex.ru");
                MailMessage m = new MailMessage(from, to);
                m.Subject = "Тест";
                m.Body = "Письмо-тест 2 работы smtp-клиента";
                SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
                smtp.Credentials = new NetworkCredential("somemail@gmail.com", "mypassword");
                smtp.EnableSsl = true;
                await smtp.SendMailAsync(m);
                Console.WriteLine("Письмо отправлено");
            }
        }

    если через это не отправится - значит проблемы с указанными данными: порт, емеил, логи и пароль...
    Ответ написан
    1 комментарий
  • Что такое методы?

    tomnolane
    @tomnolane
    профессиональный разработчик
    это "штука" позволяющая внутри себя описать логику, для выполнения какого-либо действия:
    например вывести надпись "Hello World" или подключиться к сайту или всё что угодно (и что возможно).
    Т.е. ЭТО нужно для того, чтобы вы не городили всё и вместе (перемешивали логику, под логику и т.д.) а как-то структурировали все вещи для работы, чтобы "механизм" работы был отдельно, "внешняя оболочка" отдельно... проверка каких-то вещей отдельно... т.е. если абстрагироваться на тему автомобиля: чтобы двигатель и детали к нему были в одном месте, салон и обивка в другом, каркас в третьем... а не вперемешку, где вы ставите фару, тут же пытаетесь подключить провод к аккумулятору, но его ещё нет - занимаетесь аккумулятором, потом двигателем, потом лобовым стеклом и т.д.

    метод выглядит так:
    [модификатор] возвращаемый_тип ИмяМетода([параметр])
    {
    //тело метода
    }

    модификатор - private, public, protected, internal, protected internal (подробнее
    возвращаемый_тип: void либо (например) string, string[], int, float, double либо свои какие-то вещи Personal, Car подробнее
    ИмяМетода - любое (лишь бы не начиналось с цифры, не использовалось "зарезервированное слово" - например int, string, и т.д. и написанное латиницей)
    тело метода - непосредственно код в котором описывается логика. Например:
    Console.WriteLine("Hello World!");
    если возвращаемый_тип void: то метод выполняется без возврата результата. т.е. выше код - он говорит: в консоле напиши мне слово Hello World!
    если возвращаемый тип не void (а любой другой), то метод значит что-то возвращает (результат, причем он должен быть таким же, как и сам возвращаемый_тип) т.е. если метод принимает строку (string) то он и должен её вернуть. Пример:
    public string Hello()
    {
       string text = "say Hello!";
       return text ; //return всегда в самом конце логики
    }

    и вызов метода:
    string my_new_text = Hello();

    также в метод можно передавать параметры. Лучше посмотреть на примере тут например
    п.с. параметры бывают и пустыми (т.е. их не обязательно вставлять/использовать)
    п.с.с. переменные созданные/объявленные внутри метода - доступны только в рамках(внутри) этого метода
    Ответ написан
    1 комментарий
  • Как в c# в TextBox вывести текст с параметрами {0}?

    tomnolane
    @tomnolane
    профессиональный разработчик
    доп.
    в c# (версии 6) есть такая возможность (чтобы не цифры использовать):
    string bla = "первое слово";
    string bla2 = "второе слово";
    textBox1.Text = string.Format($"({bla}, {bla2})"); //знак $ нужен для того, чтобы сказать, что тут именованные переменные нужно брать
    Ответ написан
    Комментировать
  • Языки программирования для работы с API?

    tomnolane
    @tomnolane
    профессиональный разработчик
    в принципе любой, который вы понимаете (разбираетесь)
    Я работал с 5 разными API и больше всего "готовых" решения для работы (чтобы "быстро стартануть" было на PHP, JavaScript, Java,Python (именно в этой последовательности)
    PHP/Python/JavaScript - в основном для сайтов/серверов/браузеров
    Java - для andoird
    под Ruby/ C++ или C# редко встречаются (например API Twitter)

    Сам лично использую C#
    Ответ написан
    Комментировать
  • Visual Studio 2010 Error MSB4014 что делать?

    tomnolane
    @tomnolane
    профессиональный разработчик
    You log on a computer by using a user name whose length is longer than 19 characters, excluding the domain name or the computer name. When you try to build a Microsoft Visual C++ 2010 project, you receive an error message that resembles the following:
    Error MSB4014: The build stopped unexpectedly because of an internal failure.


    оф. источник и пакет исправлений:тык
    Ответ написан
    6 комментариев