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

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Стандартных тэгов, с подсветкой синтаксиса, нумерацией строк и прочими рюшечками, в HTML нет.
    Но есть сторонние контролы/виджеты/элементы/библиотеки/..., реализованные на HTML+CSS+JS. Их можно подключить к своей странице.
    Их можно немало найти по запросам вроде html syntax highlighter.
    Или можно взять любой сайт, на котором есть подобное, и посмотреть в коде, какие там подключены скрипты, стили и т.д.
    Ответ написан
    1 комментарий
  • IronPython - что за зверь?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Спрашивается: зачем Python, если есть .NET, который, будем откровенны, гораздо мощнее и стройнее как фреймворк?
    Под винду надо .NET, а под .NET надо C#, а не мутанта какого-то, по которому исходников вообще нету и придется все время юзать конвертер.
    И IDE надо нормальную (т.е. VS), а не устаревшую кривую SharpDevelop, которая в развитии остановилась где-то на уровне VS 2003-2005 и не имеет, скажем, достаточно развитого аналога IntelliSense.

    IronPython - не единственный такой мутант. Еще есть IronRuby, был J#, JScript.NET, есть C++.NET... Да и VB.NET, по сути, туда же можно отнести.
    Естественно, всё это хрень. Пожалуй, единственное применение подобным мутантам (как и большинству прочих "альтернативных" средств разработки) - это в качестве "моста", позволяющего кое-как соединить чьи-то уже готовые наработки на одном ЯП - с кодом на другом ЯП.
    Делать на них упор в изучении - не стоит. Если вы станете программистом (именно программистом, а не тупо кодером), то вы просто сможете брать тот инструмент, который вам нужен для данной задачи - и писать на нем то, что надо написать (хотя иной раз и не без приступов рвоты)

    Ну а настоящий Python, который без мутаций, - это аналог C#, но для линукса и линуксоидов (в смысле любителей терминала, вроде сисадминов).

    Так что пусть C# будет отдельно, а Python - отдельно; ну а что из этого нужно вам - решайте сами.
    Ответ написан
  • Как объяснить разную скорость выполнения вложенных циклов в разных языках?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Вообще в таких случаях все сводится к интерпретации (ну или исполнению машинного кода, если он машинный; по сути-то это та же интерпретация).
    А именно, к двум факторам:

    1) насколько хорошо оптимизирован алгоритм интерпретатора (алгоритм разбора кода, + не слишком ли много интерпретатор делает лишних операций, не связанных с выполнением кода, например, он может подгружать что-то там)
    > Замерял время выполнения с помощью линуксовой команды time.
    Это то есть вы смотрели не время выполнения алгоритма, а время выполнения программы в целом, от запуска до завершения? Ну там вообще куча причин может быть, интерпретатор не моментально запускается, и что он подгружает и делает при запуске, вообще одним авторам известно.

    2) насколько минимизирован (и вообще оптимизирован для интерпретации) сам интерпретируемый код. Именно поэтому код в бинарном формате (машинный код, байт-код) потенциально быстрее, чем код в текстовом формате. Во-первых, бинарник тупо компактнее, скажем вместо слова function (которое занимает самый минимум 8 байт) может быть всего лишь 1-2 кракозябра. Во-вторых, бинарный формат - он строгий, всё там более однозначно и не бывает всей этой мути с пробелами, табами и пр., интерпретатору меньше приходится думать что же значит каждый байт вместе с байтами перед ним и байтами после него. Минимизация кода с помощью утилит помогает сделать его компактнее, но интерпретатор-то все равно проверяет на табы, пробелы и т.д., так что и минифицированный код в текстовом формате - все равно не очень быстр всегда.
    Но в случае с Си, стандартные компиляторы по дефолту просто загаживают код всякой "дрянью", это отлично видно, если взять OllyDbg и сравнить хотя бы по длине с тем кодом, который дают компиляторы ассемблера.
    Ответ написан
  • Почему не работает плеер на HTML5?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    А длительность ролика он определяет? Можете вручную запустить плеер?
    Он должен определять ее по-любому, неважно, что со скриптом.
    Если там всегда стоит 0:00 и даже вручную ничего не запускается, то, вероятно, данный браузер не поддерживает формат mp3 в тэге audio. Почитайте доки про этот тэг и посмотрите, какие форматы поддерживаются. Ну еще возможны проблемы с самим файлом mp3, может лежит не там где надо, но это вряд ли. Больше вариантов нет.

    А если можете запустить плеер вручную, то проблема в скрипте. Тогда смотрите консоль JS в браузере... В нее вообще стоит смотреть при ошибках.
    Ответ написан
    Комментировать
  • Как работает C#?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    > Насколько я знаю, в Java есть JVM, которая загружает файлы .class, содержащие байт-код, и запускает их.
    Поправка: обычно не .class, а .jar. А вот внутри .jar (это архив) - уже файлы .class. Ведь .class, как ясно из названия, содержит только 1 класс, нечто вроде .obj в C++. А в приложении может быть и несколько классов, + цифровая подпись, + прочее. Вот всё это и линкуется в .jar.
    Один и тот же .jar работает везде там, где есть JVM в чистом виде. На десктопных линуксах работает. На Android не работает, там вместо этого .apk - другой формат.

    > Куда компилируются .cs?
    Гуглим csc.exe
    Обычно все операции осуществляются в нем, т.е. из .cs может делать сразу .exe. Хотя возможно сперва сделать IL (нечто вроде ассемблера, но пока еще НЕ байт-кода, т.е. НЕ бинарное), а вот IL уже скомпилировать в байт-код (бинарный формат) с оберткой exe.

    > В мире C# существуют также такие понятия как .NET, Mono, Roslyn и т.д., можете ли вы структурированно разъяснить их смысл?
    В .NET Framework входят:
    - компиляторы: для C# (тот самый csc.exe) и не только для C# (да, компиляторы именно входят в .NET, а не в Visual Studio);
    - тот самый CLR;
    - несколько библиотек классов, таких, как mscorlib.dll, System.Windows.Forms.dll (Winforms). библиотеки WPF. Такие библиотеки называются стандартными. Те библиотеки, которые в .NET не входят и их нужно таскать рядом с exe, называются сторонними (third-party), так как обычно они созданы не MS, а сторонними, "третьими", разработчиками.

    Mono - платформа, позиционируемая как кроссплатформенная альтернатива .NET Framework. То есть всё перечисленное там своё и от MS ничего нет. IDE также своя - MonoDevelop.
    На деле же, альтернатива эта от начала до конца очень сырая и вообще хилая. Например, Winforms/WPF там просто нету (может и можно прикрутить эти сборки из .NET, но на линуксе без вайна не заработает, да и MonoDevelop не содержит средств для удобной разработки под них). Вместо Winforms/WPF там GTK#, он реально кроссплатформенный, но до Winforms и тем более WPF ему очень далеко.

    Roslyn - какой-то новый компилятор от MS, вроде бы альтернатива старому csc.exe. Ничего интересного лично я в нем не вижу.
    Ответ написан
    1 комментарий
  • Как встроить свои JS в браузер?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Имеется в виду что-то вроде юзерскриптов/расширений к браузеру?
    Про Edge не в курсе, а в IE11, вероятно, поддерживаются расширения BHO, как и в более старых версиях IE. Пишутся они на любом компилируемом языке в виде COM-сборок, обычно это C++ или C#, но возможны и другие языки. Вот, например, очень простой пример на VB.NET, для начала:
    codeproject.com/Tips/1032515/VB-NET-Very-Simple-In...
    С помощью converter.telerik.com можно конвертировать этот код из VB.NET в C#.
    Ответ написан
    Комментировать
  • Что дальше делать с нативными файлами HTML и CSS?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    > Что бы в итоге получился укомплектованный набор готовой страницы.
    Это обеспечивают серверные фреймворки, например, Yii2 (фреймворк для PHP, один из лучших). Ну и CMS тем более это умеют.
    MVC-фреймворк каждую страницу (View) автоматически оборачивает в шаблон (в Yii2 это Layout), т.е. в заголовку полной страницы, куда входят стили, скрипты (такие, как jQuery), хедер, футер и прочее общее для всех страниц. Ну а не общее - просто прописывается в каждом View.
    Ответ написан
  • COM: как портировать из MSVC в MinGW?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    > У нас есть некая COM-библиотека, работающая на заголовках и инлайнах (TLH и TLI), генерируемых через директиву #import.
    Не совсем понял. У вас есть COM-библиотека, и вы ее "подключаете" с помощью #import к основному приложению - так что ли?

    И зачем вам эта линуксятина MinGW?
    Под винду надо и средства юзать виндовые...

    Ну если надо, то берем эти .tlh и .tli, объединяем в 1 хедер (для удобства) и долго и нудно удаляем все лишнее, все, что не поддерживает MinGW, прежде всего это свойства (property), которы[ в MinGW, естественно, в таком виде нету...
    Чтобы быть уверенным, что в итоге все будет работать - можно начать с малого, то есть сперва написать хелловорлдную COM-библиотеку с 1 простеньким интерфейсом, и все это провернуть с нею, а там и за основное дело браться.

    В моем случае получилось все сделать гораздо проще.
    Надо было на MinGW работать с ADO. Я не стал мучаться с #importом, а сперва глянул один из форков сего компилятора - MinGW-w64 - и обнаружил, что в нем уже есть такие хедеры, видимо, портированные то ли из VC++, толи из C++ Builder, что и обнадежило меня и я стал пробовать их в Visual Studio.
    В VS эти хедеры заработали, после чего сравнительно легко добавились в обычный MinGW, где заработали также. Сейчас на базе их строю высокоуровневую обертку в стиле ADO.NET, один и тот же код работает как в VS, так и в MinGW..
    Ответ написан
    3 комментария
  • Какой язык/фреймворк выбрать для своего проекта-хобби?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Хобби должно удовольствие доставлять.
    Попробуйте, сравните. Что понравится, то и берите. Еще жабу забыли, со Spring. И NodeJS.
    Вот вам буквально пара строк от спеца по средствам разработки, который про все эти фреймворки с япами мог бы целую книгу написать.
    Ответ написан
    Комментировать
  • Как использовать Selenium с заблокированными портами?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    > Возможно есть аналогичные инструменты, в которых имеется эта возможность.
    Ну, например, сниффер в руки + голые HTTP+HTTPS запросы. Это тяжелый и ни разу не аналогичный, но зато самый гибкий путь.
    Из полегче - браузерные движки. Для C# их аж несколько есть:
    www.codeproject.com/Tips/825526/Csharp-WebBrowser-...
    А еще можно миксовать: часть запросов отправлять через движок, а что через него отправить нельзя (скажем input file) или не хочется - то отправлять тоже через него, но не имитируя действия с DOM, а с помощью XMLHttpRequest! При этом все необходимые заголовки ведь сохраняются, в отличие от голых HTTP-запросов, где все заголовки вручную имитировать надо. Вот только сегодня такая идея в голову пришла.

    P.S. Специалист по ботам, реверс-инженер, разработчик ПО и архитектор ПО.
    Ответ написан
    Комментировать
  • Самый удобный редактор для веб-разработки?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Продукцию JetBrains пробовали? WebStorm, PhpStorm.
    Очень требовательные к железу (без 4-ядерного ЦП и >=4 ГБ ОЗУ и соваться нет смысла, тормозить будут), и вроде платные, но зато очень навороченные.
    Ответ написан
  • Как на языке C# можно передать данные из 2-х мерного массива в таблицу Excel?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    С xls/xlsx удобно работать с помощью библиотеки NPOI. Это порт Apache POI из OpenOffice.
    Установленный на компе Excel для этого НЕ требуется.
    Гляньте - тут исходник с NPOI и еще ADO (еще один способ, совсем нативный, но он более урезанный, и надо писать SQL-запросы):
    www.codeproject.com/Tips/813187/Csharp-Read-and-wr...
    Ответ написан
  • Какая разница WebClient или Request + Response?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Сами же и ответили на свой вопрос - "с большим функционалом". Вот и разница.

    Идеальным вариантом для создания клиент-серверных приложений, если вы много этим занимаетесь, является создание своей собственной библиотеки для работы с сетью, удобной именно для вас.
    И, пожалуй, чем ниже уровнем она будет основана, тем лучше. Надо брать уж никак не ниже HttpWebRequest.
    Даже в таком отличном фреймворке, как .NET, очень многое несовершенно. Не нужно забывать, что библиотека .NET мало менялась с начала нашего века. Новое добавлялось, а старое не доарабатывалось. Разумеется, очень многое можно сделать и лучше. Но надо действовать, а не надеяться на MS, который по каким-то причинам не видит смысла совершенствовать .NET и создавать еще более высокоуровневые решения, чем те, которые там есть. Чем быстрее вы начнете в процессе реальной работы создавать свой фреймворк, тем лучше.
    Ответ написан
  • Как изменить текст кнопки при клике?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Почему бы не погуглить javascript toggle innerhtml? Тем более, вопрос довольно тривиальный и ответов должно быть много самых разных.
    Вот, например:
    stackoverflow.com/questions/9694346/toggle-innerhtml
    Ответ написан
  • Правильно ли я понимаю взаимодействие бекэнда и фронтэнда в случае REST API приложения?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    А что, возможны еще какие-то варианты?
    REST API без клиентов - это не REST API.
    Ответ написан