Пользователь пока ничего не рассказал о себе

Достижения

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

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

Все теги (50)

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

Все ответы (93)
  • Макимальное количество socket.io подключений на nodejs?

    shai_hulud
    @shai_hulud
    то максимальное количество на IPv4 - 2^32 * 2^16 = 281474976710656 (на самом деле не все адреса можно использовать), даже если на одного пользователя будет уходить 16Kb (буферы, структурки, поинтеры итд) то это 4 398 046 511 104 Mb памяти :) Она то и кончится первой.

    Прикиньте сколько вы хотите памяти на сокеты, и поделите на 16Kb (из головы, для ноды можно самому замерить).

    Если отключить TCP keep-alive и WS ping, то сокеты пассивны и не кушают ЦПУ.
    Ответ написан
    Комментировать
  • Google Tag Manager - как обойти AddBlock?

    shai_hulud
    @shai_hulud
    Google Tag Manager is a tag management system created by Google to manage JavaScript and HTML tags used for tracking and analytics on websites (variants of e-marketing tags, sometimes referred to as tracking pixels or web beacons).

    Они для вырезания подобного и предназначены.

    https://stackoverflow.com/questions/43728822/avoid...
    Ответ написан
    2 комментария
  • Защитить файл от пиратства?

    shai_hulud
    @shai_hulud
    Спиратить можно всё что попадает конечному пользователю, даже то, что защищено.
    Так что вопрос в скорее в юридической плоскости, чем в технической. Проконсультируйтесь у юриста.
    Ответ написан
    Комментировать
  • C#. Как правильно вместить внешние dll в один exe?

    shai_hulud
    @shai_hulud
    Соеденить все managed (!) dll в одну dll/exe можно с помощью ILRepack.
    ILMerge мертв, его заменил ILRepack.
    Сборку можно делать Post Build Event проекта вызовом ILRepack.exe на результатам сборки.

    <Target Name="Repack" AfterTargets="BuiltProjectOutputGroup">
    		<GetFrameworkPath>
    			<Output TaskParameter="Path" PropertyName="FrameworkPath" />
    		</GetFrameworkPath>
    		<ItemGroup>
    			<NetPlatformFolders Include="$(NuGetPackageFolders.Split(';'))"></NetPlatformFolders>
    		</ItemGroup>
    		<ItemGroup>
    			<AllowDup Include="System.%2A" />
    			<AllowDup Include="JetBrains.%2A" />
    		</ItemGroup>
    		<ItemGroup>
    			<RapackTarget Include="$(TargetDir)MyDll1.dll" />
    			<RapackTarget Include="$(TargetDir)MuDll2.dll" />
    		</ItemGroup>
    		<PropertyGroup>
    			<ILRepack Condition="'$(ILRepack)' == ''">$(NuGetPackageRoot)ilrepack\2.1.0-beta1\tools\ILRepack.exe</ILRepack>
    			<ILRepackTargetPlatform Condition="'$(TargetFramework)' == 'net45'">v4,$(FrameworkPath)</ILRepackTargetPlatform>
    			<ILRepackTargetPlatform Condition="'$(TargetFramework)' == 'netstandard1.3' or '$(TargetFramework)' == 'netcoreapp2.0' or '$(TargetFramework)' == 'netstandard2.0'">v4</ILRepackTargetPlatform>
    			<IlRepackLibs Condition="'$(TargetFramework)' == 'netstandard2.0'">@(NetPlatformFolders->'"/lib:%(FullPath)\netstandard.library\2.0.0\build\netstandard2.0\ref"', ' ')</IlRepackLibs>
    			<IlRepackLibs Condition="'$(TargetFramework)' == 'netcoreapp2.0'">@(NetPlatformFolders->'"/lib:%(FullPath)\microsoft.netcore.app\2.0.0\ref\netcoreapp2.0"', ' ')</IlRepackLibs>
    			<IlRepackAllowDup>@(AllowDup->'"/allowdup:%(Identity)"', ' ')</IlRepackAllowDup>
    			<IlRepackTargets>@(RapackTarget->'"%(Identity)"', ' ')</IlRepackTargets>
    		</PropertyGroup>
    
    		<Exec Command="$(mono) &quot;$(ILRepack)&quot; /target:exe &quot;/targetplatform:$(ILRepackTargetPlatform)&quot; /union /parallel /internalize &quot;/lib:$(TargetDir.TrimEnd('\'))&quot; $(IlRepackLibs) $(IlRepackAllowDup) &quot;/out:$(TargetPath)&quot; &quot;$(TargetPath)&quot; $(IlRepackTargets)" WorkingDirectory="$(SolutionDir)" />
    
    		<Delete Files="@(RapackTarget);" />
    	</Target>


    Конечно надо всё настраивать.
    Ответ написан
    2 комментария
  • Что такое T в угловых скобках в документации к RxJS?

    shai_hulud
    @shai_hulud
    Это TypeScript. В такой нотации видно, что принимается в аргументах и что будет вернется.

    T это generic параметр. В данном контексте это тип фильтруемого значения.

    MonoTypeOperatorFunction это функция с сигнатурой (source: T): R которая еще и унарная функция итд. Это всё иерархия типов для того что бы можно было композировать друг с другом функции по их "смыслу" а не сигнатуре.
    Ответ написан
    1 комментарий