Профиль пользователя заблокирован сроком с 6 мая 2016 г. и навсегда по причине: Мат в комментариях
  • Как получить HTML код страницы какого-нибудь сайта через JS?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    А Flash не покатит?

    Вообще-то нормальное API должно возвращать ответ с заголовком, разрешающим кросс-доменные запросы.
    Другое дело, когда разрабы это не делают, нарочно либо по незнанию.
    Ответ написан
    Комментировать
  • Возможно ли получить данные из API ВКонтакте через JS?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Flash?
    Ответ написан
    Комментировать
  • Порог вхождения в Bootstrap?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    > и все еще не вижу в чем ускорение верстки?
    Если у вас есть свой самописный фреймворк из кучи наработок, где куча готовых контролов, где можно также за четверть минуты сбацать navbar, grid, tabs, pagination, то вы и не заметите ускорения. Тогда Bootstrap вам особо и не надо, юзайте свой фреймворк и развивайте его, а Bootstrap - только по желанию заказчика.
    "Написать код на самописном фреймворке" - это всегда не хуже, чем "написать код на готовом фреймворке". Но не стоит это понятие путать с понятием "написать (говно)код без фреймворка".

    > неужели у него такой высокий порог вхождения?
    Высокй порог вхождения - это когда вы НЕ можете сделать то, чего хотите.
    А если у вас все получилось, но вы видите, что оно не соответствует вашим целям, то это просто данный инструмент вам не подходит.
    Насчет бутстраповских средств для navbar, grid, tabs, pagination, все они осваивается с опытом при наличии умения гуглить, и затем, по появлению опыта, это будет быстрее, чем делать все то же с нуля без бутстрапа.
    Но, повторюсь, если у вас куча своих наработок и вы делаете не с нуля, то быстрее может и не быть.

    > сама идея называть классы по свойствам стилей, а не семантически, это в принципе нарушает общую концепцию css
    Вы вообще о чем, и почему нарушает? Что вы предлагаете?
    Ответ написан
    Комментировать
  • Где бы почитать про такую "архитектуру"?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    > Хочется узнать про клиент-серверную архитектуру (ведь так называется?).
    Строго говоря, клиент-серверная архитектура применена в любом сайте, даже если он без ajax (тупо на form'ах).
    И более того, даже если это вообще одна статическая страница HTML, лежащая на серваке без всякого PHP, то это все равно уже клиент-серверная архитектура.
    Ведь браузер (или иной клиент), когда вы в адресной строку вбиваете путь к каждой странице, делает GET-запрос к серверу и получает ответ с содержимым этой страницы.

    Вот здесь почитать для начала:
    codeproject.com/Tips/1065669/How-To-Build-Web-Site...
    Вначале там краткий пример очень простого чатика на form'ах с PHP+MySQL, без AJAXа.
    Потом показано, как в такой чат очень быстро добавить AJAX, сначала голым JS, затем jQuery.

    Затем уже самостоятельно вы можете подумать, как усовершенствовать этот AJAX и довести его до уровня реального REST API, к которому не просто возможно, а реально удобно подключаться и из других клиентов (скажем, собственного мобильного приложения, вроде как WebMoney Keeper, или как у VK или Facebook) Подсказка: JSON, React.

    Обязательно скачайте и поставьте сниффер Fiddler. Он позволяет вывести изучение клиент-серверной архитектуры по протоколам HTTP/HTTPS на новый глубокий уровень, многое тайное для простых смертных сделать явным, изучить бек-енд вашего сайта на предмет использования его в качестве REST API для сторонних клиентов (и не только вашего, но и чужих)))
    Ответ написан
    1 комментарий
  • How in Visual Basic select all textbox и т.д.?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Пример:
    var textBox = this.Controls["textBox1"] as TextBox; // где textBox1 - это свойство Name текстбокса
    textBox.Hide();

    Вроде бы достаточно, чтобы понять логику.
    Текстбокс в данном случае должен лежать непосредственно на форме. Если в панели, то надо panel1.Controls
    Ответ написан
  • Есть ли проекты на С++, исходники которых стоят внимания, а то есть проекты написаны качественно и там есть чему поучиться?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    .NET Framework - один из лучших проектов с лучшей архитектурой. Не идеальной, местами вообще плохой - но в целом тем не менее лучшей.
    Его библиотеки написаны на C#, а не на C++, но это не имеет значения. Для С++ подобного фреймворка до сих пор никто не написал, даже лучшему C++-фреймворку Qt очень далеко до .NET. А жаль. В рамках любого достаточно крупного проекта обязательно следует написать нечто подобное, и проект строить уже на этом фреймворке.

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

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    > Ярким примером желаемого -- установщик любого приложения (Installation Wizard)
    Ну, лично мне как-то не приходилось делать Wizard'ы, но скажу следующее:

    1) Если интерфейс не совсем динамический, а все же шаблонный, то удобнее было бы заранее (в WYSIWYG) сделать много форм на каждый экран визарда и просто менять их.
    Но конкретно менять формы (окна) это не очень хорошая идея, незаметно скрыть одно окно и показать другое - сложно (смотрится некрасиво), и еще есть нюансы, это уже особенности ОС.
    Я бы посмотрел в сторону композитных контролов (они же юзерконтролы), каждый экран сделал бы отдельным юзерконтролом, и все их на одну форму (как Panelи). При этом редактировал бы их - через отдельные файлы, как если бы это были отдельные формы.
    А какой показать, какой скрыть - это уже решать либо экранам, либо форме-контейнеру. Скорее - второе, каждый экран возвращал бы значение по принципу ShowDialog, возвращал форме, а она б уже решала.

    2) В винде для визардов есть готовые средства - Property Sheets. Да, это WinAPI, Да, это тот еще гемор. Но все же я бы обязательно изучил их. Может стоит написать для них удобную обертку под .NET. Или хотя бы перенять какие-то интересные решения из них - и воплотить в своих визардах, которые тогда реально станут самыми визардатыми визардами в мире.
    Ответ написан
    5 комментариев
  • Кто знает C# opensource проекты с хорошей архитектурой?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Ну, а вы сами не можете определить, где архитектура спроектирована грамотно, а где - безграмотно?
    Зачем вообще нужна грамотно спроектированная архитектура? Прежде всего - для повторного использования кода (re-use), особенно посторонними программистами.
    Вот и попробуйте по-re-use-ать код разных проектов. Идеально подходят библиотеки - которые как бы для этого и предназначены, чтобы можно было быстро, удобно их заюзать. Но и само приложение тоже легко так проверить, достаточно попробовать внести в него какие-то изменения и вообще разобраться в нем, и сравнить, сколько сил и времени будет затрачено в разных случаях.
    В идеале тестировать нужно не на одном человеке, а на нескольких разных, предпочитающих разные языки и разные подходы.

    Или вы просто не видите, что удобно, а что неудобно? Ну тогда пару слов о том, что такое - неудобное:
    1) Избыточное.
    Когда слишком много слоев абстракции.
    Когда слишком много обязательных аргументов некой функции (не аргументов вообще, а именно обязательных).
    Когда слишком много.
    2) Длинное.
    btnCloseAllApplicationsAndRebootMyComputer.
    Без комментариев.
    3) Короткое.
    btn.
    Без комментариев.
    4) Нестандартное.
    dAtETIMEPICKEr_______1.
    textbox2.
    BUTTON3.
    Или когда в классе C# имя какого-либо публичного члена пишут с маленькой буквы.
    Без комментариев.
    4.1) Несоответствие парадигме ООП, хотя на данном языке возможно соответствие.
    Когда так:
    FormHeightSetter.Set(form1, 500);
    Вместо:
    form1.Height = 500;

    Список можно продолжать. Но, видимо, и эти 4 пункта уже невыносимо сложны, коль скоро они нарушаются этак в 99,(9)% всех приложений.
    Ответ написан
    Комментировать
  • Во фрилансе (в частности UpWork) нужны C# и ASP.NET программисты?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Можно ли хорошо зарабатывать в качестве C# программиста

    Вы не в курсе, что C# - основной инструмент под винду, которая суть основная десктопная ОС?

    ASP.NET

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

    Как много заказов и к какой области они чаще всего относятся?

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

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Вы под винду разрабатывать пробовали? Нет? А зря.
    Если бы пробовали, то понимали бы, что и ежику ясно, что разработка под нативное API ОСи - это 3,14.
    Но только в винду уже давно входит высокоуровневый фреймворк .NET, который абстрагирует вас от этого 3,14 и который в общем-то можно использовать и непосредственно (хотя и он далеко не идеален, можно и еще одну обертку сделать, если уметь и понимать).
    А для Android такого фреймворка толком нет ни из коробки, ни стороннего.
    Так что, подобную обертку в любом случае необходимо написать самому и юзать ее.

    Но! Обертка - это отдельный слой абстракции. Она никак не мешает вам группировать GUIшные классы и пакеты. GUI (туда же сервисы и т.д.) - это еще один, отдельный слой абстракции. Они не могут исключать друг друга.
    Так что ничто не мешает вам сделать 2 пакета и в одном из них разместить это:
    -activities
    -adapters
    -fragments
    -model
    -utils
    -widgets
    А в другом это:
    -database
    -network
    -reader
    -ui // здесь не GUI, а высокоуровневые средства для GUI, например, обертка для Toast

    Тогда гуй останется в пакете с гуем, а пакет с фреймворком можно будет свободно перекидывать из одного проекта в другой.

    Или, если проект мелкий, то можно ограничиться только этим:
    -activities
    -adapters
    -fragments
    -model
    -utils (а вот сюда - кидать все обертки, ибо они и есть utils по сути своей)
    -widgets
    Ответ написан
    Комментировать
  • Как понять что дано программировать?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Хочется создавать программы. Мне захотелось тогда же, когда увидел комп и посидел за ним. В 6-7 лет. Возможности программировать не было, поэтому я имитировал интерактив с помощью PowerPoint, а еще на досуге брал белый лист бумаги, рисовал GUI и фантазировал, будто это какая-то программа.
    Ответ написан
    Комментировать
  • Серверные языки - как не запутаться и что изучить?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    > c# на нем еще пишут?)
    С чего вдруг столь странный вопрос?

    > Есть ли смысл браться за все направления серверной разработки?
    Есть.
    Я еще и десктопную туда добавил, и мобильную, и еще ряд более редких направлений. И ни разу не жалею.

    > Что учить?
    Учат - стихи, наизусть.
    А программированию - учатся.
    Главное в программисте - это понимание общей логики. Веб не исключение. Скажем, формы (form) - они и в Африке формы. HTTP-запросы - они и в Африке HTTP-запросы. MVC - он и в Африке MVC. И главное - гугл - он и в африке гугл.
    И чем больше вы изучите разных средств (в смысле изучите на практике, а не сколько учебников прочитаете), тем обширнее, глубже и тверже будут эти знания.
    Да, если говорить об учении наизусть (чтоб прям все функции помнить без гугла), то лучше что-то одно, чем много, ведь голова-то имеет ограниченный объем памяти. Но знать функции наизусть - задача кодера, а не программиста.
    Ответ написан
    4 комментария
  • Что если вся "data science" сведется к последовательности вызовов готовых функций?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    > создается куча курсов, пишутся книги, в которых все сложные с математической точки зрения алгоритмы объясняются на пальцах
    99,(9)% уверен - вы жОстко преувеличиваете, и не все там так радужно у Data Scientistов.
    Вы сами-то пробовали те курсы и книги в деле?
    У нас реверс-инженеров в этом плане вообще печалька по определению))) но я-то не только реверс-инженер, я занимаюсь и кучей иных областей, и проблемы с документацией и высокоуровневыми средствами вижу в абсолютной любой области, даже самой-самой банальной и стандартной, типа разработки СУБД для предприятий.

    И если бы вдруг с неба упала куча сверхвысокоуровневых средств или книг с кучей готовых решений, то я бы от этого ни разу не пострадал.
    1. Насчет удобных инструментов, большинству просто синдром утенка не позволит на них перейти. А еще они платные же должны быть, иначе это вообще фантастика какая-то. Так что разброс между мною и ими - увеличился бы, а не уменьшился.
    2. Насчет книг, навыки принципиально не может давать никакая книга. Если только она волшебная, как живая вода или ковер-самолет.
    3. Ну и, как и многие другие, скажу, что если мои текущие знания и навыки окажутся не нужны, то я просто возьму и освою что-то новое.
    Могу писать программы для американских горок. Могу сверлить и резать стены. Могу перебирать ДВС и варить водопроводные трубы. Могу ремонтировать ноутбуки, смартфоны. Могу стать воздушной планетой. Могу стать воздушным асом. Берем телевизор, вставляем в Мурманский полуостров
    А еще я стану больше бизнесменом. Не меньше, а больше! Ибо больше идей, проектов, меньше технической части.
    А кто так не умеет - тот, осмелюсь сказать, вообще не особо-то и программист. И трястись над навыками и знаниями ему уж точно не стоит - у него их нет. У него нет общих навыков и знаний, иначе бы он тоже так умел.
    Вотъ.
    Ответ написан
    Комментировать
  • Многопоточная программа?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Нужно в классе Proba сделать поле или свойство, ну и в каждый поток передавать переменную со своим значением, ну а уже в самом потоке от нее и отталкиваться.
    Достаточно элементарных знаний ООП и алгоритмики, чтобы догадаться до этого и реализовать.

    Но 1/2/3/4/5 - не получится уж точно. Потоки выполняются не совсем параллельно, а псевдопараллельно, винда переключается от одного к другому, так что последовательность строк в Memo будет хаотичной. И чем больше потоков и чем меньше ядер у проца, тем хаотичнее.
    Ответ написан
    Комментировать
  • Как перенести DataGridView в виде таблицы в excel файл c#?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Я юзаю библиотеку NPOI, она работает как с xls, так и с xlsx.
    К сожалению, особых средств для импорта-экспорта в грид (типа одной строчкой кода) в этой библиотеке нет. Но довольно легко реализуется алгоритм, если учитывать ряд нюансов, например, необходимость createить ячейку перед заданием ей знаения.
    Здесь пример и импорта и экспорта из грида:
    www.codeproject.com/Tips/813187/Csharp-Read-and-wr...
    и также есть вариант с еще одним подходом к работе с Excel - через ADO
    Ответ написан
    Комментировать
  • Стоит ли использовать Microsoft Visual Studio для разработки не под .NET?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Ее и ее компилятор целесообразно использовать для проектов на C++, включая Qt. В большинстве случаев лучший выбор для С++ под виндой.
    HTML, CSS, JS - хз, пробовал только в связке с ASP.NET.
    Остальное - не очень. Главная проблема - отсутствие поддержки IntelliSense для синтаксисов многих языков.
    Ответ написан
    6 комментариев
  • Как через StreamReader считать строку с определенной позиции?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    StreamReader хз, а BinaryReader - сто пудов может. Обычно такая функция называется seek.
    Только она задает не строку, а положение каретки.

    Может, лучше готовую БД применить? В них тот же принцип как раз.
    Ответ написан
    Комментировать
  • Создание форм в Golang?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Это GUI называется.
    Что, прям обязательно на Go? Обязательно нужно выбрать тот ЯП, который максимально НЕ подходит под задачу?

    На линуксе полно средств для GUI, соответствующих ЦА линукса.
    Qt самый мощный.
    Ответ написан
  • А какая архитектура пакетов в Android Studio у Вас?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    > Хотелось бы что-то похожее на MVC. Чтобы все было логично. Правильно ли будет так?
    MVC не подходит для мобила и десктопа. Ибо там не может быть C, такого, как на вебе.

    > как вы организуете структуру вашего проекта. Какие пакеты классов вы создаете?
    Прежде всего, я создаю обертки для стандартного API. Можно сказать - фреймворк.
    На винде выглядит дико писать под голое API ОС и так давным-давно никто не делает, пишут под .NET или хотя бы VCL. На Android это в порядке вещей. Линукс же.
    Так как разрабы самой ОС не позаботились об этом, то заботиться приходится самому.
    И даже на уровне хелловорлда чувствуется польза от этого, я не пишу
    Toast.makeText(this.getActivity(), "Blablabla", 500).show();
    Я просто пишу:
    MessageBox.show("Blablabla");
    А все остальное делает самописный класс MessageBox. Время показа Toast рассчитывается автоматом по длине текста, при этом метод show имеет и гибкие перегрузки с кучей параметров, все те же, что и в нативном Toast.
    Для удобства re-use, все подобные классы лучше вынести в отдельный проект, отдельный jarник. А собственно код под этот фреймворк - писать прямо в своем проекте.
    В остальном архитектура зависит от задачи, скажем HTTP-библиотека должна иметь классы GetRequest и PostRequest, и высокоуровневый класс HttpClient с контейнером куков, и т.д.
    Чтобы быть хорошим архитектором, однозначно нужно рассмотреть максимум готовых фреймворков, чтобы извлечь из них лучшее.
    Ответ написан
  • Возможно ли отправлять запросы "поставить/снять лайк" без клика по фрейму?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    1) Не знаю, можно ли делать такие запросы с сайтов с помощью API.
    Хотя можно просто купить полноценный сервак, закинуть на него десктопное приложение, а бек-енд сайта, лежащего на серваке, пусть дергает (запускает) это приложение и оно лайкает
    Сервак - это тот же десктоп со своей стороны

    2) Можно и без VK API.
    У VK, как и у любого другого сайта, есть бек-енд. И это не VK API, у него именно свой бек-енд.
    Когда юзер работает с VK, браузер шлет HTTP-запросы к этому бек-енду.
    И вот с помощью сниффера вроде Fiddler можно отследить эти запросы и затем симитировать их на любом десктопном/серверном языке программирования (но НЕ на JS, ибо на нем нельзя кроссдоменные запросы делать, - но это не критично). Симитировать действия клиента (браузера).
    У некоторых сайтов вообще нет API как такового. Для них только так и пишут боты.
    Ответ написан
    Комментировать