Show more

网络晒照的隐私顾虑(仅技术方面,事实上你拍的照片里的每个角落都有可能泄露你的真实位置,所以我从来不网络晒照) 

通过很多相机拍摄的照片文件都会包含照片内容之外的信息,包括相机型号、曝光时间、光圈大小等拍摄的技术细节,和拍摄地点的GPS坐标等隐私信息。这些信息名为为Exif Tag,属于元数据中的一类。
Exif信息同样存在于视频和音频文件中。
大多数社交网站在发布图片时会采取压缩等方法来减少服务器的存储与网络传输成本,而exif信息会在公开发布的版本中被消去。但是仍然有部分网站会直接上传图片文件,而造成拍摄者隐私泄露。比如,1月初,黑客在爬取了另类右翼社交网站Parler的所有帖子和文件之后,惊奇地发现他们存着的所有照片都原封不动地包含着原始的相机型号、光圈、gps坐标等exif tag,于是这些信息便可以被用于追踪用户的行踪。
通过在常见的fedi社交平台实验性上传包含一定exif tag数据的,本人发现常见的fedi平台中,Mastodon和Pleroma都会自动压缩图片,并抛弃图片中的Exif信息。而Misskey,由于图片采用与文件相同的方式上传,exif信息将被随图片上传至服务器并发布。如果需要上传拍摄的图片的话,Misskey用户可能需要额外小心。

如何清理照片/视频中的元数据?
1. Windows/Linux/MacOS
计算机苦手?(Y/N)_
如果你对计算机不是很懂的话,可以使用ExifCleaner(
https://exifcleaner.com/ )。你只需要拖拽待清理的文件到窗口中即可。
如果你认为你对计算机比较了解,可以尝试使用MAT2(
https://0xacab.org/jvoisin/mat2 ),它是一个命令行工具,支持更多文件种类的元数据清理(包括office文档等)。

2.Android
你可以安装Scrambled Exif应用来清除图片和视频中的元数据。只需要在分享菜单中选择Scrambled Exif即可。如果你需要将清除完毕的图片保存以待后用,可以安装Bridge应用(搜索: moe.shizuku.bridge )将其保存到本地。
*Scrambled Exif可以从Fdroid下载安装,访问:
https://f-droid.org/packages/com.jarsilio.android.scrambledeggsif

3.iOS
因为本人不怎么用iOS设备,所以不是很了解,也无法推荐应用,非常抱歉,请看下一节。

4.Web
MAT2开发者同时开发了一个基于Web程序的MAT2版本:MAT2Web。你可以将文件上传到MAT2Web,然后在清理完毕后下载清理好的文件。
演示实例:
https://matweb.info/

#privacy #exif #metadata #selfie #social

看到豆瓣和微博上有人说比特币,深以为然:

"人类真的很见识短,总是搞眼前看得见利益的事情,就比如说网络挖矿,浪费全球算力和电力,真的很短视,一个智慧物种走到今天,全球都这副鬼样子,每次玩末日题材游戏都觉得这就是明天的事。纪录片好吧。就不提仰望天空了,关心一下身边的物种,爱护一下环境都么得兴趣,觉得这是有病。不灭绝就见鬼了。"(游佐中)

"最近几十年最荒唐、最神经病、最弱智的技术及产业,现年总耗能高达128 TWh,占世界总发电量的0.6%....从业者脸一翻也好意思谈节能减排,比如马斯克."(远离巫医药)

除了极高的碳足迹,现在芯片/显卡短缺,和人们对比特币以太币的狂热也脱不了干系。
finance.yahoo.com/news/bitcoin

"挖比特币这种狗事情到底有什么价值?一种生产行为与社会经济脱节,既没多少工作岗位也不创造经济效益更不创造实体价值没有发明创新,除了浪费电和割韭菜搞杀猪接盘算加密数据垃圾之外的活动有什么屁用?为了这浪费电的破事把全球显卡硬盘都炒到理财断货,真正用显卡硬盘工作搞创作的人和用显卡硬盘玩游戏休闲的用户想买都买不了。"(鶴九Tsuruku )

Show thread

Learned about Chia Coin, and... f*ck you miners.

I think putting too much compute power into a blockchain is a huge waste, there are lots of examples here. Blockchain is a good idea, but I think Consortium Blockchain has more (power) efficiency than public chain.

Nowadays GPU price has already blown my mind, now hard disk even be able to mining? My local seller shows that Samsung's EVO 970 Plus 1T has already increased 16% of its original price.

Public chain is a good idea, and can be used in a proper way, but since mining gives miner rewards, there are always some people want to earn coins mainly in this way, rather than normal use.

Blockchain might be a influential technology, but could those developers please try to leave along with regulars PC gears and turned to some specific hardware? Nvidia might have a right step(by limiting gaming cards hashing performance to prevent mining).

I'm not sure why but I can definitely tell that JOCL is not a simple one to one OpenCL binging, it must dose some optimization somehow.

I rewrite the code from LWJGL's OpenCL to JOCL, and my timing result is here:

LWJGL's OpenCL:
320ms consumed by GPU
80ms for GPU computing and retrieving data back
605ms for CPU computing

JOCL's OpenCL:
157ms consumed by GPU
39ms for GPU computing and retrieving data back
611ms for CPU computing

With the same amount of data and exactly the same kernel, CPU time is not change that much, but GPU time is a big change.

LWJGL code: github.com/hurui200320/AntSimu

JOCL code: github.com/hurui200320/AntSimu

That's amazing.

I suddenly realized that for my purposes, I can actually get rid of lwjgl and turn to JOCL or Aparapi's side. I want to simulate something and represent them as a pixel based picture and OpenGL is not that good for pixel drawing. I think any Java 2D graphic library will fit my needs.

That's a good news. Which I can get rid of LWJGL's OpenCL binding and turn to more object oriented apis.

Finally get through OpenCL's Hello World in Kotlin. Computing 3 million times sin and cos using GPU, total time is 456ms, 105ms is used to compute and read result back to CPU. On the other hand, CPU takes whole 891ms to compute cos and sin. Which I guess it's more convinced for me to just say "GPU is good for parallel computing". The result is more vivid than sentences.

After doing this, I though LWJGL's document on OpenCL is really bad. What all I referenced are Java test codes and C++ codes. And I rely on my experience a lot to debug it. It looks like JOCL's binding is more object oriented and more user friendly. But LWJGL is offering a integrated package of OpenGL, GLFW and OpenCL binding, which I guess I have to stick with it for now.

Besides auto converting Java bytecode to OpenCL kernel, Aparapi seems much easier to get start with. Without dealing a lot of data copying and buffer creating things, life is much simpler.

I might write a blog(in Chinese of course, since I'm a Chinese, maybe I'll commit this program to LWJGL as a OpenCL HelloWorld) to describe where you should take a good care with LWJGL's OpenCL binding, where I actually crash the JVM by doing it wrong. (BTW, using println to locate the crash point is way faster than step through XD)

Learned a lot about general computing on GPU via a youtube video.

Besides OpenGL compute shader, I'd prefer using OpenCL to update tons of units concurrently. I'll give it a try, but it seems like LWJGL's OpenCL binding is not well documented and only a few examples are given. Maybe I'll go further deeper in it.

youtube.com/watch?v=BjdYRtL6qj

I think my current password are used for last ten years and somehow I still didn't change it and relay on the 2FA to protect my account

What's more I only have one yubikey and doesn't have a backup for those 2FA identities.

Well... That may not be a good practice.

via @Johann150

fosstodon.org/@Johann150/10565

Now I achieved 11+ fps with GLSL shaders to draw a colored circle. This circle has been sliced into 30e5 segments and CPU only give a index of each segment, then shader computes each vertex's coordinate and give them color.

I think that is a nice try for a OpenGL beginner.

Encountered a mind-blowing problem with OpenGL.

When I finally drew a circle using LWJGL with OpenGL, I tried moving my code from glBegin/glEnd calls to VBOs, and today I tried to make my code using shaders. And problem is here.

I draw a circle by slicing it into some segments and calculate the coordinates of points on the edge, then I can use GL_TRIANGLE_FAN or GL_LINE_LOOP to draw a circle. I randomly choose a color by assigning red equals cos(theta), where the i th theta is 2 * pi * i divided by total segments.

If I draw the circle using GL_LINE_LOOP, the color on the edge is correct, where only theta in mines pi to pi is positive number, thus given the red color, which should be the right hand side of the circle. Picture 1 is a compare that on the left I used GL_COLOR_ARRAY client state to draw color, on the right side I use shader but calculated cos before fragment shader(both in CPU part and vertex shader, they are same in result). In picture 2, I calculate cos value in the fragment shader by the theta passed by vertex shader. And it shows on the right of the picture, which is pretty odd.

I knew there other stages between vertex shader and fragment shader, but how they effect those color or theta value? Also on the left side of picture, color gradient given by fixed pipeline also seems a little bit weird.

BTW I have no ideas about where to find those documents. LWJGL doesn't have a detailed document on OpenGL(which I guess they of course not have one), and on the OpenGL side, the documents are just overwhelmed me...

Medicine always amazing

As soon as I take the first pill, my nose feels much better.

have a cold with pretty strong symptoms
95% percent sure it's not covid 19

I feel so fucked up by just having this little flu (I guess), I lost my towel and struggled to finish my passages. I felt like I'm broken and I knew that shouldn't be that hard, but I can't finish that properly. Anyway at least I finished that and found my towel.
Now I somehow understand the feeling who has severe disease, feeling of frustration. A friend of mine has struggled with cancer for several years and it's really unbearable.

Symptoms from flu and the friend trying to fighting the cancer, both make me feel sad.

It's 11:30pm in UTC+8,
I think I'd better go to bed now.

Everybody goodnight 😴

太强了,人均BiLSTM CRF,我记得去年搞这个,因为dl4j没有CRF层,于是用了一层attention代替,结果效果极差

可能还是语料太少(指用整个中文维基作为语料)吧(逃

via @Candinya

nya.one/notes/8k5ljleis9

I rerun the code this morning and it didn't crash.

I didn't change anything and it just magically runs. But still I can't see anything on that window. My OpenGL codes probably still broken.
QT: qoto.org/@skyblond/10599631529

天空вℓσи∂  
I want to draw a circle using lwjgl (with OpenGL as underlying library) as a hello world program ...and the jvm just keep crashing Fine. Anything...

I want to draw a circle using lwjgl (with OpenGL as underlying library) as a hello world program

...and the jvm just keep crashing

Fine.

Anything related to C++ is hard.

This is why we can't have nice things

This video is about stuff: light bulbs, printers, phones and why they aren't better. Go to NordVPN.com/veritasium and use code VERITASIUM to get a 2-...

youtu.be/j5v8D-alAKE

Show more
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.