Skip to content

Instantly share code, notes, and snippets.

View wangchauyan's full-sized avatar
🎯
Focusing

Chauyan wangchauyan

🎯
Focusing
View GitHub Profile
@wangchauyan
wangchauyan / xz-backdoor.md
Created April 1, 2024 02:27 — forked from thesamesam/xz-backdoor.md
xz-utils backdoor situation

FAQ on the xz-utils backdoor

Background

On March 29th, 2024, a backdoor was discovered in xz-utils, a suite of software that gives developers lossless compression. This package is commonly used for compressing release tarballs, software packages, kernel images, and initramfs images. It is very widely distributed, statistically your average Linux or macOS system will have it installed for

class EnumExample {
private enum Status {
Init, Success, Failed, Loading
}
public static enum ProcessStatus {
LOAD_STAGE(Status.Init),
END_STAGE(Status.Failed);
@wangchauyan
wangchauyan / MainActivity.kt
Created April 18, 2019 22:53
Android Onboarding Pop Animation
private fun hopAnimation() {
val animation = bottomContainer
.animate()
.translationYBy(-40f)
.alpha(0.9f)
.setDuration(400)
animation.withEndAction {
bottomContainer
.animate()
.alpha(0.5f)
@wangchauyan
wangchauyan / PerformanceTesting.java
Created December 21, 2017 13:44
Performance Testing 1
// Generate data
int arraySize = 32768;
int data[] = new int[arraySize];
Random rnd = new Random(0);
for (int c = 0; c < arraySize; ++c)
data[c] = rnd.nextInt() % 256;
// notice !!!
Arrays.sort(data);
@wangchauyan
wangchauyan / UploadImage.java
Created March 13, 2017 11:39
Google Volley Upload Images
public class PhotoMultipartRequest<T> extends Request<T> {
private static final String FILE_PART_NAME = "file";
private MultipartEntityBuilder mBuilder = MultipartEntityBuilder.create();
private final Response.Listener<T> mListener;
private final File mImageFile;
protected Map<String, String> headers;
@wangchauyan
wangchauyan / checkMediacodecAbility.java
Created February 19, 2017 13:33
Check How Many MediaCodec Instance Your Device Support
public static int getMaxCodecInstanceByName(String name) {
final Vector<MediaCodec> codecs = new Vector<>();
final MediaFormat format = MediaFormat.createVideoFormat(MIME_TYPE, 1920, 1080);
MediaCodec codec = null;
for (int i = 0; i < max; i++) {
try {
codec = MediaCodec.createDecoderByType(MediaFormat.MIMETYPE_VIDEO_AVC);
codec.configure(format, null, null, 0);
codec.start();
@wangchauyan
wangchauyan / NSData+AES.h
Created January 6, 2017 09:33 — forked from matsuda/NSData+AES.h
Objective-C code for encrypt and decrypt by AES-128 encryption.
/**
http://mythosil.hatenablog.com/entry/20111017/1318873155
http://blog.dealforest.net/2012/03/ios-android-per-aes-crypt-connection/
*/
@interface NSData (AES)
- (NSData *)AES128EncryptedDataWithKey:(NSString *)key;
- (NSData *)AES128DecryptedDataWithKey:(NSString *)key;
- (NSData *)AES128EncryptedDataWithKey:(NSString *)key iv:(NSString *)iv;
// consider about this url : http://sylvana.net/jpegcrop/exif_orientation.html
// you might consider when you get your image's exif information,
// check the orientation tag, it usually is 1, 3, 6, 8
// So, rotate it.
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(path, options);
@wangchauyan
wangchauyan / TwilightCalculator.java
Created November 13, 2016 15:20
Twilight calculator for Android
import android.text.format.DateUtils;
import android.util.FloatMath;
public class TwilightCalculator {
/** Value of {@link #mState} if it is currently day */
public static final int DAY = 0;
/** Value of {@link #mState} if it is currently night */
public static final int NIGHT = 1;
private static final float DEGREES_TO_RADIANS = (float) (Math.PI / 180.0f);
@wangchauyan
wangchauyan / diff.mdown
Created November 11, 2016 00:55 — forked from ndarville/diff.mdown
Paul Heckel's Diff Algorithm

[Isolating Differences Between Files][paper]

Advantage over Other Algorithms

The diff output is more specific:

[I]f a whole block of text is moved, then all of it, rather than just the beginning and end, is detected as changed.

>The algorithm described here avoids these difficulties. It detects differences that correspond very closely to our intuitive notion of difference.