Feature | Comp AI (Open Source) | Drata (Closed Source) |
---|---|---|
Cost | Free/self-hosted or $1,000/mo | ~$10,000–$20,000+/year |
Frameworks | SOC 2, ISO 27001, GDPR (+custom) | SOC 2, ISO 27001, HIPAA, etc. |
Audit Experience | Auditor flexibility, custom prep | Integrated network, less flexible |
Evidence Collection | AI-driven, agentic, open API | 250+ integrations, real-time |
Customization | Full (code, controls, workflows) | Limited |
Transparency | Complete (open code) | Limited |
Support | Community, marketplace, direct | Email/chat, partner network |
Feature | Comp AI (Open Source) | Vanta (Closed Source) |
---|---|---|
Cost | Free/self-hosted or $1,000/mo | ~$10,000–$20,000+/year |
Frameworks | SOC 2, ISO 27001, GDPR (+custom) | SOC 2, ISO 27001, HIPAA, etc. |
Audit Experience | Auditor flexibility, 1-click export | Integrated network, streamlined but less flexible |
Evidence Collection | AI-driven, agentic, open API | 250+ integrations, real-time |
Customization | Full (code, controls, workflows) | Limited |
Transparency | Complete (open code) | Limited |
Support | Community, marketplace, direct | Email/chat, partner network |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"use client"; | |
import { useRouter } from "next/navigation"; | |
import type { ReactNode } from "react"; | |
import { useCallback, useEffect, useState } from "react"; | |
interface ProximityPrefetchProps { | |
children: ReactNode; | |
threshold?: number; | |
predictionInterval?: number; |
While this gist has been shared and followed for years, I regret not giving more background. It was originally a gist for the engineering org I was in, not a "general suggestion" for any React app.
Typically I avoid folders altogether. Heck, I even avoid new files. If I can build an app with one 2000 line file I will. New files and folders are a pain.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import undetected_chromedriver.v2 as uc | |
from selenium.webdriver.common.by import By | |
import re | |
opts = uc.ChromeOptions() | |
# opts.add_argument('--headless') | |
# opts.add_argument('--disable-gpu') | |
driver = uc.Chrome(options=opts) | |
keywords = ['Kể', 'từ', 'khi', 'dẫn', 'dắt', 'các', 'đội', 'tuyển', 'Việt', 'Nam', 'cuối', 'năm', '2017,', 'HLV', 'Park', 'chưa', 'từng', 'thua', 'các', 'đối', 'thủ', 'Đông', 'Nam', 'Á.', 'Ông', 'đặc', 'biệt', 'có', 'duyên', 'với', 'Malaysia', 'và', 'Indonesia.', 'Tại', 'vòng', 'loại', 'thứ', 'hai', 'World', 'Cup', '2022,', 'đội', 'tuyển', 'cùng', 'bảng', 'G', 'với', 'hai', 'đối', 'thủ', 'này', 'và', 'toàn', 'thắng', 'cả', 'bốn', 'trận.', 'Điểm', 'bất', 'lợi', 'với', 'Việt', 'Nam', 'là', 'cùng', 'lúc', 'thi', 'đấu', 'nhiều', 'mặt', 'trận.', 'Bên', 'cạnh', 'AFF', 'Cup', '2020,', 'đội', 'tuyển', 'còn', 'phải', 'đã', 'vòng', 'loại', 'thứ', 'ba', 'World', 'Cup', '2022', '-', 'khu', 'vực', 'châu', 'Á.', 'Điều', 'này', 'khiến', 'HLV', 'Park', 'phải', 'tính', 'toán', 'về', 'bài', 'toán', 'lực', |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class AdsManager { | |
constructor() { | |
let supportedAPIs = FBInstant.getSupportedAPIs(); | |
this.canShowInterstitialAds = supportedAPIs.includes('getInterstitialAdAsync'); | |
this.canShowRewardedVideoAds = supportedAPIs.includes('getRewardedVideoAsync'); | |
if (!this.canShowInterstitialAds) { | |
Sentry.captureMessage(window.platform + ' can\'t show interstitital ads'); | |
} | |
if (!this.canShowRewardedVideoAds) { | |
Sentry.captureMessage(window.platform + ' can\'t show rewarded video ads'); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ref: https://github.com/prasmussen/gdrive | |
# prerequisite: | |
# In google drive, setup your folder for storing the backups | |
# Then grab the code from the url e.g. https://drive.google.com/drive/folders/xxxxx where xxxxx is the code | |
# This code will be used later in the cron command, keep it secret, keep it safe | |
# install gdrive sync for backups | |
wget https://drive.google.com/uc?id=0B3X9GlR6EmbnQ0FtZmJJUXEyRTA -O /usr/local/bin/gdrive | |
chmod 755 /usr/local/bin/gdrive |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
check process hhvm with pidfile /var/run/hhvm/pid | |
group hhvm | |
start program = "/usr/sbin/service hhvm start" with timeout 60 seconds | |
stop program = "/usr/sbin/service hhvm stop" | |
if failed unixsocket /var/run/hhvm/hhvm.sock then restart | |
if mem > 400.0 MB for 1 cycles then restart | |
if 5 restarts with 5 cycles then timeout |
$ uname -r
NewerOlder