LANDrop 局域网文件传输神器 (跨平台 AirDrop)

LANDrop 是一款开源免费的支持跨平台的「局域网文件传输工具」,它的使用体验上可以媲美苹果生态的“隔空投送”功能!能超级快速方便地将 iPhone、iPad、Android 手机/平板;Windows、Mac、Linux 电脑上的照片、视频、文档、文件发送到别的设备去。

Continue Reading

秀人集爬虫 【22.1.20】【OS X】【m1版本】

***********************************************************************************
参数说明:
 /Users/zhongming/PycharmProjects/meitulu/dist/xiurenji/xiurenji 
USAGE:
spider -h <help> -a <all> -q <search>
Arguments:
         -a <download all site images>
         -q <query the image with keywords>
         -h <display help text, just this>
Option Arguments:
         -p <image download path>
         -s <site url eg: http://www.xiurenji.vip (no last backslash "/")>
***********************************************************************************

Continue Reading

Mac 图像批量压缩 调整尺寸

「图压」是一款专为高效工作者设计的免费批量图片压缩利器!支持 Windows 和 macOS 两大操作系统。这款工具能在几乎不损害画质的情况下大幅度地压缩图片的体积,可以非常快速有效地批量减小文件大小。

图压是一款本地运行的工具,它无需联网,所有的图片压缩处理都在电脑本地上离线进行,相比各种在线图片压缩网站来说更加好用。一来处理速度和效率极高;二来可以免除上传图片到服务器耗时耗流量的麻烦;三来还能避免一些隐私相关的照片泄露的可能。

Continue Reading

Mac m1 安装Wine/WineHQ

Wine (“Wine Is Not an Emulator” 的首字母缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Linux,macOS 及 BSD 等)上运行 Windows 应用的兼容层。Wine 不是像虚拟机或者模拟器一样模仿内部的 Windows 逻辑,而是將 Windows API 调用翻译成为动态的 POSIX 调用,免除了性能和其他一些行为的内存占用,让你能够干净地集合 Windows 应用到你的桌面。

Continue Reading

Machoview 2.4 M1 Version

MachOView is a visual Mach-O file browser. It provides a complete solution for exploring and in-place editing Intel and ARM binaries.

旧版本代码编译之后打开文件可能会报下面的错误:
NSWindow drag regions should only be invalidated on the Main Thread!'
这个是由于进行状态更新的逻辑没有在主线程执行,通过下面的代码修复即可:
//----------------------------------------------------------------------------
- (void)handleThreadStateChanged:(NSNotification *)notification
{
  if ([notification object] == dataController)
  {
    NSString * threadState = [[notification userInfo] objectForKey:MVStatusUserInfoKey];
    if ([threadState isEqualToString:MVStatusTaskStarted] == YES)
    {
      if (OSAtomicIncrement32(&amp;threadCount) == 1)
      {
        [progressIndicator setUsesThreadedAnimation:YES];
        [progressIndicator startAnimation:nil];
//        [stopButton setHidden:NO];
          dispatch_async(dispatch_get_main_queue(), ^{
              [stopButton setHidden:NO];
          });
       }
    }
    else if ([threadState isEqualToString:MVStatusTaskTerminated] == YES)
    {
      if (OSAtomicDecrement32(&amp;threadCount) == 0)
      {
        [progressIndicator stopAnimation:nil]; 
        [statusText setStringValue:@""];
          dispatch_async(dispatch_get_main_queue(), ^{
              [stopButton setHidden:YES];
          });
//        [stopButton setHidden:YES];
      }
    }
  }
}
Continue Reading