Links
Add
TP-Link stripped images to restore factory firmware | Fried's Tech corner
http://www.friedzombie.com/tplink-stripped-firmware/
Added 8 years ago
World Of Beatles Bootlegs: FLAC - Traveling Wilburys "Outtakes volume 1" - 1CD
http://worldofbeatlesbootleg.blogspot.com/2017/12/flac-traveling-wilburys-outtakes-volume.html
Added 7 years ago
5 Surprising Things That Happen to Your Body When You Don’t Get Enough Sleep
https://getpocket.com/explore/item/5-surprising-things-that-happen-to-your-body-when-you-don-t-get-enough-sleep?utm_source=pocket-newtab-en-us
n1trux/awesome-sysadmin · GitHub
https://github.com/n1trux/awesome-sysadmin
A curated list of amazingly awesome open-source sysadmin resources. - awesome-foss/awesome-sysadmin
Added 10 years ago
Too Close for Comfort (Act 1, Part 1) | Full Frontal with Samantha Bee | TBS - YouTube
https://www.youtube.com/watch?v=urMYjS97omY
Auf YouTube findest du die angesagtesten Videos und Tracks. Außerdem kannst du eigene Inhalte hochladen und mit Freunden oder gleich der ganzen Welt teilen.
Added 6 years ago
jamalmoroccan’s Music Profile | Last.fm
https://www.last.fm/user/jamalmoroccan
Documents — SmartDraw
https://cloud.smartdraw.com/
SmartDraw is the best way to make diagrams like flowcharts, org charts, floor plans, and more. SmartDraw offers a way for teams to use diagrams to capture and share information and collaborate on projects and initiatives of all sizes.
Added 5 years ago
Audio Data Analysis
https://apmonitor.com/dde/index.php/Main/AudioAnalysis
GitHub - paul1278/snipe-it-kiosk: A small web-kiosk for Snipe-IT
https://github.com/paul1278/snipe-it-kiosk
A small web-kiosk for Snipe-IT. Contribute to paul1278/snipe-it-kiosk development by creating an account on GitHub.
Added 1 year ago
UniFi - USG Advanced Configuration Using config.gateway.json – Ubiquiti Support and Help Center
https://help.ui.com/hc/en-us/articles/215458888-UniFi-USG-Advanced-Configuration-Using-config-gateway-json
https://www.cl.cam.ac.uk/~rja14/Papers/doormats.pdf
https://www.cl.cam.ac.uk/~rja14/Papers/doormats.pdf
Added 10 years ago
Help me Identify this DVR RS-DM-136C Board - Telnet Password - Dedicated DVR's & DVR Cards- Residential - CCTVForum.com
https://www.cctvforum.com/topic/50062-help-me-identify-this-dvr-rs-dm-136c-board-telnet-password/
CCTVForum.com: Your source for IP camera forums, cctv, hikvision, dahua & blue iris video security discussion forums. Got Questions - Get Answers.
Added 6 years ago
Broken
(PDF) You Can Drive But You Cannot Hide: Detection of Hidden Cellular GPS Vehicle Trackers
https://www.researchgate.net/publication/391704077_You_Can_Drive_But_You_Cannot_Hide_Detection_of_Hidden_Cellular_GPS_Vehicle_Trackers
Added 8 months ago
12 Questions geniuses ask themselves | by Jeffrey Dunn | Medium
https://medium.com/@jdunns4/12-questions-geniuses-ask-themselves-fe402eca7121
Added 4 months ago
Split-Top Roubo Workbench - The Wood Whisperer Guild
https://thewoodwhispererguild.com/product/split-top-roubo-workbench/
The Split-Top Roubo Workbench is a modern twist on the classic Roubo design, inspired by Plate 11 of Andre Roubo's L'Art du Menuisier. This is a time-tested design will serve as a lifetime workbench and will never need to be replaced. Whether you're into hand tools, power tools, or both, this bench will serve all of your work-holding needs. This course is for the workbench only and does not include the cabinet. You can purchase that course here. The bench measures 87" Long x 24" Deep x 35" High. Get 5% off this course today by becoming a Guild+ Subscriber! Find out more!
Added 5 months ago
Feeds I read... | Mohammed Sameer's Online Aggregator
http://aggregator.foolab.org/feeds
Added 8 years ago
Class-based Fabric scripts via a Python metaprogramming hack - SaltyCrane Blog
http://www.saltycrane.com/blog/2010/09/class-based-fabric-scripts-metaprogramming-hack/
Added 8 years ago
PrometheanInfoSec/Lockdown · GitHub
https://github.com/PrometheanInfoSec/lockdown
Contribute to PrometheanInfoSec/Lockdown development by creating an account on GitHub.
Added 10 years ago
Using blocklist with iptables and firewalld – Sysadmin - Linux administration, security and hardening
https://sysadmin.info.pl/en/blog/using-blocklist-with-iptables-and-firewalld/
If you have any kind of server connected to the Internet, you are no doubt aware that no matter how small or unimportant it might seem, it is frequently probed, tested or subject to various attempts at abuse.
Added 7 months ago
GitHub - hamvocke/dotfiles: A collection of my personal dotfiles
https://github.com/hamvocke/dotfiles
A collection of my personal dotfiles. Contribute to hamvocke/dotfiles development by creating an account on GitHub.
Added 7 months ago
Hunter S. Thompson on Conan O-Brien - YouTube
https://www.youtube.com/watch?v=p2woDjD_rQI
Auf YouTube findest du die angesagtesten Videos und Tracks. Außerdem kannst du eigene Inhalte hochladen und mit Freunden oder gleich der ganzen Welt teilen.
Added 8 years ago
BigSmoke » Setting a custom greeting for an Asterisk voicemailbox
http://blog.bigsmoke.us/2010/07/30/setting-a-custom-greeting-for-an-asterisk-voicemailbox
Added 10 years ago
GitHub - commixproject/commix: Automated All-in-One OS command injection and exploitation tool.
https://github.com/commixproject/commix
Automated All-in-One OS Command Injection Exploitation Tool. - commixproject/commix
Added 8 years ago
RS232 Specifications and standard - Lammert Bies
https://www.lammertbies.nl/comm/info/rs-232-specs
Practical discussion of the RS232 standard and its specifications and properties.
Added 9 months ago
Trying Out Different Ways of SMD Soldering - Air - Iron - Paste - YouTube
https://www.youtube.com/watch?v=fagGxhlAtrU
Auf YouTube findest du die angesagtesten Videos und Tracks. Außerdem kannst du eigene Inhalte hochladen und mit Freunden oder gleich der ganzen Welt teilen.
Added 6 years ago
Control GPIO pins with the Raspberry Pi | Opensource.com
https://opensource.com/article/17/3/operate-relays-control-gpio-pins-raspberry-pi
Ever wondered how to control items like your fans, lights, and more using your phone or computer from anywhere?
Added 7 years ago
Broken
Managed to install bare-metal Linux on Snapdragon X Elite-based Surface Laptop 7 : r/SurfaceLinux
https://www.reddit.com/r/SurfaceLinux/comments/1efmyb3/managed_to_install_baremetal_linux_on_snapdragon/
Added 4 months ago
(1) Dilated Peoples - Worst Comes To Worst (Official Music Video) - YouTube
https://www.youtube.com/watch?v=sevZEOUXpw4&index=17&list=RDJGkazi6khPA
Auf YouTube findest du die angesagtesten Videos und Tracks. Außerdem kannst du eigene Inhalte hochladen und mit Freunden oder gleich der ganzen Welt teilen.
Added 8 years ago
Your own Restream Server (Nginx RTMP | Ubuntu 20.04 VPS | Windows Desktop) – Mikulski
https://mikulski.rocks/your-own-restream-server/
Installing and configuring the Nginx-Rtmp module with your own hands.
Setting Up Time Machine and AFP Shares on Ubuntu with Ansible - Random IT Notes
https://gr360ry.github.io/blog/2013/11/16/automating-installation-of-netatalk-3-dot-0-x-with-ansible/
Recently I wanted to test latest version of netatalk 3.0 on my Ubuntu Box.
Unfortunately the latest binary version available for Ubuntu 12.04 is …
Added 9 years ago
WoeUSB/WoeUSB-ng: WoeUSB-ng is a simple tool that enable you to create your own usb stick windows installer from an iso image or a real DVD. This is a rewrite of original WoeUSB.
https://github.com/WoeUSB/WoeUSB-ng
WoeUSB-ng is a simple tool that enable you to create your own usb stick windows installer from an iso image or a real DVD. This is a rewrite of original WoeUSB. - WoeUSB/WoeUSB-ng
Added 4 months ago
Building VPNs on OpenBSD - IPsec overview
http://www.kernel-panic.it/openbsd/vpn/vpn2.html
Added 10 years ago
Google Search
https://www.google.com/search?tbs=sbi:AMhZZiu0qc54MqYv8vefV5tLcd5b-2scPFy4bx5Mmd7Jy6V7sCm3c8x2XPr6G_1x5h1Oa3zZCLwELHOUNE2MmE77hAirQ5bPvrTOK1yuLYOt5-pLS3HC8Kqs_1vw_1jz3X3yta4vXSBUY7eOOGXBkm6tIz91XX0FhqtADJr8NvmI0LFn4NFE8MokWALlX1uOfWIcQpVOyHIUfU-EBBs8b6iQxgaCK8epC4WnzgElR77hdYpLFuOBD11CaiHwdZhJ2ZCoMmbK1U8gao4znc2HeuOYBMRCLL9uTlk6uFDpAIZZxYcib-kslu3S6pnGcY8oGGGg00PptDgq58C5RKjXVYVTEopMxx20A_1Ce3FUzk9OdOUztm8leLdrB_1g0wSgc3HJU1xhVyPsz2Nff8NxtdMNRbTNLWt0CLcKxIzvkfJ40PByeTfP7oypnZFEFU0PqId2t2r9B_1FxPI1ufT4RXNvGJDSOh5_1JRthduq5Moph5vEu8H8apumVStcuwvIPE63Heia_1KdCtWK-RzFv7GoXXCfJDApWrHlGI2CFDfKF0ECCqk4AJdglSQoHxPZCVNoHCfeRJYCy3LDUJD1b61aH_1X9QJvmLPD790OOTI53TvUx2YeRlLvL2sJmFdBNPNEhoajjPDtqsHRctrQhNnNVmBDU3QCPlXfkghwnMGWqdLE31aeDAFkjEWCxqhsJHMgwDLqxEFJGDuYVL5qRCgAQPxhMJWqIFKxURDqxUiN-BAHlVnF5WWN637mxirvzpkA3PPCTTrQKnp0RJV4ZX0orZOcESA47tlMGiPKb1ETr1WNLFfueakjxid4Cj32gfDWRL5UHPQQxRT_1ymIc2cMVAWFbyIxnwDtu0x_1QVO47-u5NCHyXzs_1Yi84toraGlNIhcF7JUXCtJBK8kNhSJZJBH2CYkxMDiz0a7wTazKaW78WDihgIpSE4JqiCDpzB8zKZvZxiRn-z65-rNIbc87eKJi5c60SMgKZ290bUggM6nOO4A0p95h80vvGhKKMncEWTepOo21VSisAZWZA1rfFoLBXVyHbFLtOm-TcTPE2YZ1qNkzVpOE05dggSt8dbJhKFWZcjLNZx9Uewi1i13XEBxAC09b6JvqOeR7QlGqU-bt0vgqYLBAqrGkUMUZ7WIFLY6voNyGgVxFrfhUq_1nv-wGiWCHXl4PS1KhcoafKYZytJFJMuwgAlQnMdCgwbo41a-CHJ3nm3LY3Ncj7sUMGFYDHox7fNWlmaLyGhfJLqHqouyI5GgnVYIH684HK2ItYfcF7u1T-9FsilDzxD8WJbwQyos1ziMSPJ4nbEmHnhRE39WIQihRb50dioA2_1AMeR6WX_18MxnAvmsiG-xhyXIHx-QARODs0tfSmuikvGGNMR3j7LplL3arSwPstqlCIo5NtHZlpoWC4tHKK2WT4EJDlf2HiUEXLAdoVBeE8C5fGRXN429u_1sBq1wqHm3fF9HAW3WJI85KnR1ncmcR7AmfucZRZwWojyohBFioOlRVuE3E_1Db90zPzYF-ZMQ8BQtvpQDYvcMcANhJoIDBLg5g-Nn2c_1dPtnFJLTNBx52hlhMl9jlB8EwtuC9loloCDuAu74YcSaUlp3HOG9tgs-PLKH3j2ifKN1aVPUvOjBW3J8DH8C5O4JyzCAgaHapBPO4
Added 9 years ago
Sage-Popovich Inc. || Overview
https://www.sage-popovich.com/
sage-popovich, inc. is a global Aviation Consulting & Asset Management provider, offering inspections, valuations, repossession, liquidation, & more.
Added 7 years ago
Dymo label printer {SOLVED} - Linux Mint Forums
https://forums.linuxmint.com/viewtopic.php?t=344325
Added 7 months ago
https://support.polycom.com/content/support/north-america/usa/en/support/voice/soundpoint-ip.html
https://support.polycom.com/content/support/north-america/usa/en/support/voice/soundpoint-ip.html
Added 5 years ago
Synth Repairman Accidentally Gets High By Touching LSD Left in Vintage Buchla | Pitchfork
https://pitchfork.com/news/synth-repairman-accidentally-gets-high-by-touching-lsd-left-in-vintage-buchla/
Eliot Curtis was dosed with acid while fixing a vintage Buchla Model 100
Added 6 years ago
Let it snow: Shameless cocaine ads of the 1970s | Dangerous Minds
http://dangerousminds.net/comments/let_it_snow_shameless_cocaine_ads_of_the_1970s
Ah the 1970s, when disco dust was plentiful and there were cocaine paraphernalia ads galore in head magazines. Dig the Hoover-themed coke spoons! Or the “what the hell were they thinking” handmade ivory straws. And if your nose is a little clogged from too much coke, why not try “Noze: the nose wash”?
So as the majority of the taglines in these magazine clippings say, “Let it snow!”
via The World’s Best Ever
Added 9 years ago
GitHub - AlexxIT/go2rtc: Ultimate camera streaming application with support RTSP, RTMP, HTTP-FLV, WebRTC, MSE, HLS, MP4, MJPEG, HomeKit, FFmpeg, etc.
https://github.com/AlexxIT/go2rtc#cameras-experience
Ultimate camera streaming application with support RTSP, RTMP, HTTP-FLV, WebRTC, MSE, HLS, MP4, MJPEG, HomeKit, FFmpeg, etc. - AlexxIT/go2rtc
CNC-machined aluminum passive cooling case for RPI 4/5 with 1 TB SSD : r/raspberry_pi
https://www.reddit.com/r/raspberry_pi/comments/1hzjdps/cncmachined_aluminum_passive_cooling_case_for_rpi/
Added 1 year ago
glanceapp/glance: A self-hosted dashboard that puts all your feeds in one place
https://github.com/glanceapp/glance?tab=readme-ov-file
A self-hosted dashboard that puts all your feeds in one place - glanceapp/glance
Added 5 months ago
Charles W. Cushman Photograph Collection >> Results
http://webapp1.dlib.indiana.edu/cushman/results/result.do?query=city:%22San%20Francisco%22&page=1&pagesize=20&display=thumbcap
Added 8 years ago
FREE Plans for an arched PVC pipe GREENHOUSE.
http://www.pvcplans.com/pvc-greenhouse.htm
RJ45 to RJ12 Wiring Diagram
http://www.deepsurplus.com/Network-Structured-Wiring/RJ45-to-RJ12-Wiring
Supplier of Cat 5e, Cat 6 and Cat 6A cables, connectors, cable pulling tools, electrical and other ethernet and networking supplies
Added 8 years ago
password - Adding NOPASSWD in /etc/sudoers doesn't work - Ask Ubuntu
https://askubuntu.com/questions/504652/adding-nopasswd-in-etc-sudoers-doesnt-work
Added 10 years ago
media.ccc.de - Forging the USB armory
https://media.ccc.de/v/31c3_-_6541_-_en_-_saal_2_-_201412281730_-_forging_the_usb_armory_-_andrea_barisani#t=308
Added 7 years ago
Chromebook Coreboot Installation · bibanon/Coreboot-ThinkPads Wiki · GitHub
https://github.com/bibanon/Coreboot-ThinkPads/wiki/Chromebook-Coreboot-Installation
A (formerly) comprehensive guide to installing Coreboot on various laptops. - Chromebook Coreboot Installation · bibanon/Coreboot-ThinkPads Wiki
Added 10 years ago
HTTP Status Code Drinking Game | SysadminSpot.com, Sysadmins, Server Administrators and IT Consultants
https://sysadminspot.com/entertainment/http-status-code-drinking-game/
I’ve started working with a new sysadmin the last few weeks (hey Dan if he’s reading). Like all sysadmins, they bring a new flavour to the game of work. Dan shared this with me, which I…
tmux
https://unix.stackexchange.com/questions/312488/how-to-create-bootable-windows-10-image-in-debian
Added 6 years ago
Data Recovery from Proprietary Formatted Cctv Hard Disks
https://hal.inria.fr/hal-01460629/document
Added 6 years ago
Kickball/awesome-selfhosted · GitHub
https://github.com/Kickball/awesome-selfhosted#self-hosting-solutions
A list of Free Software network services and web applications which can be hosted on your own servers - awesome-selfhosted/awesome-selfhosted
Added 10 years ago
Inked ladies: Vintage photos of women with full body tattoos | Dangerous Minds
http://dangerousminds.net/comments/inked_ladies_vintage_photos_tattoos
The 1991 discovery of the well-preserved body of a 3,000-year-old corpse revealed (amongst many other things) that ancient humans tattooed their bodies. The mummified body was called “Ötzi the Iceman” after the Ötztal Alps where his remains were found. Ötzi had 50-odd tattoos across his body, which some scientists have suggested may be evidence of an early form of acupuncture—which if true, would put this form of treatment 2,000 years before its first documented appearance in China.
Tattoos have a long and culturally significant history—being used as a sign of initiation, association, clan, tribe, ownership, or sexual and personal...
Added 10 years ago
Oregon Man Charged in ‘Rapper Bot’ DDoS Service – Krebs on Security
https://krebsonsecurity.com/2025/08/oregon-man-charged-in-rapper-bot-ddos-service/
s while their competitors were get
Added 5 months ago
Carton - From The Mouth - YouTube
https://www.youtube.com/watch?v=ax1-OrZ3mxo
Auf YouTube findest du die angesagtesten Videos und Tracks. Außerdem kannst du eigene Inhalte hochladen und mit Freunden oder gleich der ganzen Welt teilen.
Added 10 years ago
Uncommon Uses of Python in Commonly Used Libraries
https://eugeneyan.com/writing/uncommon-python/
Some off-the-beaten uses of Python learned from reading libraries.
Added 7 months ago
1 Extension, Multiple Phones | Erics Tech Blog
http://eric.lubow.org/2008/system-administration/asterisk-pbx/1-extension-multiple-phones/
In order to setup Asterisk to ring multiple phones from the same dialed extension, you will need to create a phantom extension. I accomplished this by doing the following… Before we go any further, let’s use the following information as true. The extension we want to have ring in multiple places is extension 100. For …
Added 10 years ago
Anonymous Pro: a programming font with style
http://hivelogic.com/articles/anonymous-pro-programming-monospace-font/
Dan Benjamin's personal website.
Added 6 years ago
Introduction · Build web application with Golang
https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/
Added 7 months ago
GitHub - rrd108/api-token-authenticator
https://github.com/rrd108/api-token-authenticator
Contribute to rrd108/api-token-authenticator development by creating an account on GitHub.
Google Maps
https://www.google.ca/maps/@45.518836,-73.582019,3a,90y,215.16h,62.97t/data=!3m4!1e1!3m2!1shX5-2rRJ9kOMoiIAfYdy1Q!2e0
Added 10 years ago
Access denied
https://cloudflare-ipfs.com/ipfs/QmQjsKamNFZRvCMXDvZXQmRYjsmSkmZG5pBCTY4LtMj8hs/index.html
https://bennettbusinessconnections.files.wordpress.com/2013/01/site-details-template-example1.pdf
https://bennettbusinessconnections.files.wordpress.com/2013/01/site-details-template-example1.pdf
Added 10 years ago
gordon.dewis.ca | Replacement for my Unlimitel dialplan
http://gordon.dewis.ca/2008/04/11/replacement-for-my-unlimitel-dialplan/
When I started using Voice over IP technology, I acquired a wholesale DID from Unlimitel for an extremely reasonable monthly cost. Shortly thereafter I created an Asterisk-friendly version of the d…
Added 10 years ago
A Barebones pf IPv6 Firewall Ruleset
https://content.pivotal.io/blog/a-barebones-pf-ipv6-firewall-ruleset
“My ISP is deploying IPv6, and I want to use it, but I don’t know what my firewall rulesets should look like.” In this blog post, we discuss a basic set of IPv6 rules which will allow the firewall...
Added 7 years ago
krateng/maloja: Self-hosted music scrobble database to create personal listening statistics and charts
https://github.com/krateng/maloja
Self-hosted music scrobble database to create personal listening statistics and charts - krateng/maloja
Microsoft has a Surface Laptop ‘Smurface Edition’ for Smurfs fans. | The Verge
https://www.theverge.com/news/715741/microsoft-surface-laptop-smurface-edition
Microsoft rarely does limited editions of its Surface products, but it has quietly launched a “Smurface Edition” in time for the Smurfs movie. I was expecting it to be a totally blue design, but instead Microsoft has laser-etched the Smurfs to the front, alongside a blue Surface logo. Other than that, it’s a 13-inch Surface Laptop 7 with Qualcomm’s Snapdragon X Plus, 16GB of RAM, and 512GB of storage for $999.99. Only 100 units are available, exclusively at Amazon.
[Image: The Smurface Edition Surface Laptop 7. https://platform.theverge.com/wp-content/uploads/sites/2/2025/07/image_930e28.png?quality=90&strip=all]
Added 6 months ago
Abhinav Sood - Computer Science Engineer. Passionate Programmer. The Good Guy.
http://www.abhinavsood.com/
Added 10 years ago
GitHub - boozallen/sdp-images: Repository for building container images for the Solutions Delivery Platform
https://github.com/boozallen/sdp-images
Repository for building container images for the Solutions Delivery Platform - boozallen/sdp-images
Added 5 months ago
Sticker the Planet.
http://stickerthepla.net/#007
Sticker the Planet is a sticker store for hackers.
Added 7 years ago
WP Dispensary Offers a Complete Marijuana Menu Solution for WordPress – WordPress Tavern
http://wptavern.com/wp-dispensary-offers-a-complete-marijuana-menu-solution-for-wordpress
With 24 states having enacted laws to legalize medical marijuana, the industry is booming and dispensaries need websites. WP Dispensary, released five months ago, is the first WordPress plugin to t…
Added 9 years ago
Asterisk Paging and Intercom - voip-info.org
https://www.voip-info.org/wiki/view/Asterisk+Paging+and+Intercom
In Asterisk a new RTP engine and channel driver have been added to support Multicast RTP. Read more about Paging and Intercom here!
Added 8 years ago
Raspberry PI 4B taking long to connect to Wifi - Raspberry Pi Forums
https://forums.raspberrypi.com/viewtopic.php?t=336874
Amazon.com: AutoExec Wheelmate Steering Wheel Attachable Work Surface Tray: Automotive
http://www.amazon.com/AutoExec-Wheelmate-Steering-Attachable-Surface/dp/B00E1D1GY6/ref=pd_sim_sbs_121_2?ie=UTF8&dpID=31%2BSDSHlf8L&dpSrc=sims&preST=_AC_UL160_SR160%2C160_&refRID=1NM1YA79N07Q57PKD7C7
Buy AutoExec AUE13030 Wheelmate Car Desk (Blond Baltic Birch): Automotive - Amazon.com ✓ FREE DELIVERY possible on eligible purchases
Added 10 years ago
modernc.org/sqlite with Go - The IT Solutions
https://theitsolutions.io/blog/modernc.org-sqlite-with-go
I had long been aware of the [effort of cznic](https://gitlab.com/cznic/sqlite) to automatically translate the C source of SQLite to Go while avoiding the complexity CGo would introduce. SQLite was always meant to be a database you embed into your application, and I was curious what tradeoffs that meant, if any, and just generally how it differed from the usual suspects (PostgreSQL, etc.).
To explore these trade-offs and differences, I decided to dive deeper into the usage of this library.
SQLite is a single-writer multiple-reader database. Using just a single instance of database/sql.DB will not work well with this, because it will make it hard to avoid receiving SQLITE_BUSY errors when multiple writers try to run at the same time (because sql.DB is a connection pool). So we will need to separate readers from writers by making two instances of database/sql.DB and limiting the writer to a single [MaxOpenConn](https://pkg.go.dev/database/sql#DB.SetMaxOpenConns) and the reader to as many as you require.
So far, SQLite is behaving remarkably like other databases apart from the single-writer gotcha; we still have connections and per-connection settings. The usual way to pass these settings is usually in the DSN you pass to [sql.Open](https://pkg.go.dev/database/sql#Open) and this is [definitely possible](https://pkg.go.dev/modernc.org/sqlite#Driver.Open), but I find that it would be more straightforward if I could just run my custom SQL when a new connection is made[1]. We can do that with [sqlite.RegisterConnectionHook](https://pkg.go.dev/modernc.org/sqlite#RegisterConnectionHook).
Now the question is what settings to use, because [there are quite a few of them](https://www.sqlite.org/pragma.html). These are the ones I am using personally:
- `PRAGMA journal_mode = WAL;`
Use write-ahead-logging. Better concurrency, but with an edge-case: with heavy writers, the wal can grow idefinitely ([see for more](https://www.sqlite.org/cgi/src/doc/wal2/doc/wal2.md)). I don't expect this will happen in my use-case. For a good description on the various jornal modes, [see this blogpost](https://www.mycelial.com/learn/sqlite-journal-mode-options).
- `PRAGMA synchronous = NORMAL;`
Since with the WAL journal mode, this is safe, there is no reason to use FULL.
- `PRAGMA temp_store = MEMORY;`
Let's store temporary indices, tables, etc. in memory, my use-case is not very resource-constrained to require using the filesystem (also, [this is a fun read](https://www.sqlite.org/fasterthanfs.html) if we are talking about additional syscalls to the kernel)
- `PRAGMA mmap_size = 30000000000; -- 30GB`
Just making sure, access to my database is always done with memory-mapped I/O.
- `PRAGMA busy_timeout = 5000;`
How much time to wait in milliseconds after which SQLITE_BUSY is returned when waiting for the db to unlock.
- `PRAGMA automatic_index = true;`
Make sure [automatic indexing](https://www.sqlite.org/optoverview.html#autoindex) is enabled, it can only help, and is a great way to get warnings about indexes that should be created.
- `PRAGMA foreign_keys = ON;`
Make sure foreign key enforcement is enabled.
- `PRAGMA analysis_limit = 1000;`
Make sure [ANALYZE](https://www.sqlite.org/lang_analyze.html#approx) returns quickly in case the DB gets large.
- `PRAGMA trusted_schema = OFF;`
No idea what security audited functions are, but this setting makes sure only those can be run. The manual page tells me to turn it off anyway, so let's do that.
Not all of these settings are per-connection settings, but it doesn't hurt to always run all of these on every connection, and having a single "Init SQL" makes things simpler.
Let's deal with explicit transactions next. The default transaction mode is DEFERRED, meaning that it depends on the next statement what type of transaction is started (if a SELECT statement comes first, a read transaction is started, with the possibility of upgrading it to a write transaction depending on the statements that follow). With our setup, there should never be multiple writers concurrently, so making all transactions write transactions from the get-go (with BEGIN IMMEDIATE) can only help us show if this invariant is violated.
Putting this all together, this is the code we arrive at:
```go
package main
import (
"bytes"
"context"
"crypto/sha1"
"database/sql"
"database/sql/driver"
"encoding/hex"
"fmt"
"time"
"modernc.org/sqlite"
)
type DB struct {
dbPath string
Read *sql.DB
Write *sql.DB
}
const initSQL = `
PRAGMA journal_mode = WAL;
PRAGMA synchronous = NORMAL;
PRAGMA temp_store = MEMORY;
PRAGMA mmap_size = 30000000000; -- 30GB
PRAGMA busy_timeout = 5000;
PRAGMA automatic_index = true;
PRAGMA foreign_keys = ON;
PRAGMA analysis_limit = 1000;
PRAGMA trusted_schema = OFF;
`
func New(ctx context.Context, dbPath string) (db *DB, err error) {
db = &DB{
dbPath: dbPath,
}
// make sure every opened connection has the settings we expect
sqlite.RegisterConnectionHook(func(conn sqlite.ExecQuerierContext, _ string) error {
_, err = conn.ExecContext(ctx, initSQL, nil)
return err
})
write, err := sql.Open("sqlite", "file:"+db.dbPath)
if err != nil {
return
}
// only a single writer ever, no concurrency
write.SetMaxOpenConns(1)
write.SetConnMaxIdleTime(time.Minute)
if err != nil {
return
}
read, err := sql.Open("sqlite", "file:"+db.dbPath)
if err != nil {
return
}
// readers can be concurrent
read.SetMaxOpenConns(100)
read.SetConnMaxIdleTime(time.Minute)
db.Read = read
db.Write = write
return
}
func (db *DB) InTransaction(ctx context.Context, tx func(context.Context, *sql.Conn) error) (err error) {
// cancel anything that takes longer than 5 seconds
var cancel func()
ctx, cancel = context.WithTimeout(ctx, time.Duration(5*time.Second))
defer cancel()
// separate conn thats just for us
// so that the transactions queries are executed together
conn, err := db.Write.Conn(ctx)
if err != nil {
return
}
defer conn.Close()
_, err = conn.ExecContext(ctx, "BEGIN IMMEDIATE TRANSACTION")
if err != nil {
return
}
defer func() {
if r := recover(); r != nil || err != nil {
if _, err = conn.ExecContext(ctx, "ROLLBACK"); err != nil {
return
}
}
}()
err = tx(ctx, conn)
if err != nil {
return
}
_, err = conn.ExecContext(ctx, "COMMIT")
return
}
```
Just as a small added bonus, it's also very easy to register our own go functions that we can then call from SQL. In this example, we define the sha1 function, receiving and returning a single argument, and always returning the same output for the same input (thus the deterministic). For more information, [see the docs](https://www.sqlite.org/appfunc.html)
```go
func registerFuncs() {
// lets add our own sha1 hash function usable from SQL
sqlite.MustRegisterDeterministicScalarFunction(
"sha1",
1,
func(ctx *sqlite.FunctionContext, args []driver.Value) (driver.Value, error) {
var arg *bytes.Buffer
switch argTyped := args[0].(type) {
case string:
arg = bytes.NewBuffer([]byte(argTyped))
case []byte:
arg = bytes.NewBuffer(argTyped)
default:
return nil, fmt.Errorf("expected argument to be a string, got: %T", argTyped)
}
h := sha1.Sum(arg.Bytes())
return hex.EncodeToString(h), nil
},
)
}
```
In conclusion, this solution works perfectly well for most of the usage scenarios out there where immense scaling is neither expected nor needed. There are faster ways to use SQLite with Go (see the [excellent cvilsmeier benchmarks](https://github.com/cvilsmeier/go-sqlite-bench)), but its still plenty-fast enough, and avoiding CGo makes it very convenient also.
[1]: This is another thing that database/sql.DB being a connection pool makes harder.
Added 7 months ago
memoryleak (Haydar Ciftci) · GitHub
https://github.com/memoryleak
Software Engineering Manager interested in all kinds of development related topics. Strong focus on automating workflows and lean development processes. - memoryleak
Added 2 years ago
Gnudb Registration
https://gnudb.org/info.php
Register email and IP for access to the Gnudb CD database
Added 5 months ago
N5DUX Ham Radio PDFs
http://www.n5dux.com/ham/files/pdf/index.php
Ham radio PDF repository curated by N5DUX. All amateur radio-related projects, tips, tricks, and tools
Added 7 years ago
Keeping WordPress Secure - The Complete Guide to WP Security
https://premium.wpmudev.org/blog/keeping-wordpress-secure-the-ultimate-guide/
This comprehensive, deep-dive guide into WordPress security covers everything you need to know to keep your website safe and secure.
Added 10 years ago
Importing your existing AWS Route53 records into Terraform
https://filip-prochazka.com/blog/importing-your-existing-aws-route53-records-into-terraform
When you start with a cloud, you rarely get everything just right on the first try. Most projects begin with IaCafter they’ve already been using AWS for some time - which means you’ll have a bunch of resources that have been created using the AWS Console,and they have to be imported into Terrafor...
Added 11 months ago
GitHub - docmost/docmost: Docmost is an open-source collaborative wiki and documentation software. It is an open-source alternative to Confluence and Notion.
https://github.com/docmost/docmost?tab=readme-ov-file
Docmost is an open-source collaborative wiki and documentation software. It is an open-source alternative to Confluence and Notion. - docmost/docmost
Added 2 months ago
Z108-A female plug-Z108/110 series-Professional Connector Manufacturer in China
http://www.sinocontec.com/content/?570.html
Added 8 years ago
php - Fastest hash for non-cryptographic uses? - Stack Overflow
https://stackoverflow.com/questions/3665247/fastest-hash-for-non-cryptographic-uses
Added 10 years ago
How to use the Fellowship Smartcard
https://www.gnupg.org/howtos/card-howto/en/smartcard-howto.html
Added 7 years ago
Woodworking Tools | Woodworking Supplies - Contact Us
https://www.highlandwoodworking.com/contact-us.aspx
High-resolution audio - High-resolution audio - Wikipedia
https://en.wikipedia.org/wiki/High-resolution_audio#/media/File:High-resolution_audio.svg
GitHub - alextremblay/Snipe-IT-Label-Generator: A flexible printable-label generator for assets tracked in Snipe-IT
https://github.com/alextremblay/Snipe-IT-Label-Generator
A flexible printable-label generator for assets tracked in Snipe-IT - alextremblay/Snipe-IT-Label-Generator
Added 1 year ago
Quick tip: Making Gandi SHA-2 certificates work with all browsers -- Charlie Harvey
https://charlieharvey.org.uk/page/gandi_sha2_intermediate_cert_ssl_tls
At newint we are working our way through our SSL/TLS certificates to make sure they are all signed with SHA2 algorithim, rather than SHA1, which is starting to show its age. We use Gandi as our certificate provider. As you can see, they have very recently started issuing SHA2 certificates if you
Added 10 years ago
Insufficient Transport Layer Security (HTTPS, TLS and SSL) — Survive The Deep End: PHP Security :: v1.0a1
https://phpsecurity.readthedocs.org/en/latest/Transport-Layer-Security-(HTTPS-SSL-and-TLS).html
Added 10 years ago
sql - How do I dump the data of some SQLite3 tables? - Stack Overflow
https://stackoverflow.com/questions/75675/how-do-i-dump-the-data-of-some-sqlite3-tables
Added 10 years ago
Hacker uncovers files suggesting Cellebrite used codes from jailbreak tools to defeat iPhone security
http://appleinsider.com/articles/17/02/02/hacker-uncovers-files-suggesting-cellebrite-used-codes-from-jailbreak-tools-to-defeat-iphone-security
Cellebrite, the digital forensics company believed to have helped the FBI break the security of the San Bernardino shooter's iPhone, may have repurposed other existing cracking tools used for jailbreaking iPhones, according to a new cache of files allegedly sourced from the security firm.
Added 8 years ago
EJBCA - The Open-Source Certificate Authority (CA)
https://www.ejbca.org/
EJBCA covers certificate issuing, management, and certificate validation. The Open Source CA can easily be scaled to match the needs of your PKI.
Added 7 months ago
What I've Learned About Modern Dating: Facebook, Tinder, And Real Life
http://viralwomen.com/post/what_ive_learned_about_modern_dating_facebook_tinder_and_real_life
Added 10 years ago
Whitelisting IPs in OSSEC | Geek Cabinet
https://geekcabi.net/posts/ossec-whitelisting/
All of this was prior to the latest versions of Security Onion which now run inside docker instances. I’ve not yet looked to see how this would be replicated there. But I’m leaving this up for historical purposes.
Another tool in the arsenal of Security Onion is OSSEC, a “scalable, multi-platform, open source Host-based Intrusion Detection System (HIDS).” OSSEC examines log and alert events and correlates them against pre-built (or custom) rules and sends alerts as configured. When installed on the Security Onion server, OSSEC alerts are logged in the sguil database and managed alongside alerts from the network IDS.
Restic Backup for Windows Client
https://kloppenborg.net/blog/restic/restic-backup-windows-client/
Added 10 months ago
Automating Network VLAN Deployments with Ansible
https://skyenet.tech/automating-network-vlan-deployments-with-ansible/
fgdfgsdfg
Added 6 months ago
The Grateful Dead World
https://gratefuldeadworld.blogspot.com/
Thoughts and Research – Bazyli Brzóska - An inventor's portfolio
https://invent.life/blog/
Added 10 years ago
Persuasive Phrases: 9 Lines That Will Get People to Commit
https://medium.com/better-marketing/be-more-persuasive-with-these-9-magic-phrases-939d20075fe5
Added 6 years ago
Mayor of Whitesboro, N.Y., Insists This Village Seal Is Not Racist | Village Voice
http://www.villagevoice.com/news/mayor-of-whitesboro-ny-insists-this-village-seal-is-not-racist-7341880
Added 10 years ago
Look up musicbrainz disc id and freedb id from EAC/XLD log
http://eac-log-lookup.blogspot.com/
jh00nbr/Routerhunter-2.0 - Python - GitHub
https://github.com/jh00nbr/Routerhunter-2.0
Added 10 years ago
Chris's Wiki :: blog/linux/IptablesVsOpenBSDPF
https://utcc.utoronto.ca/~cks/space/blog/linux/IptablesVsOpenBSDPF?showcomments
Added 6 years ago
manubot/rootstock: Clone me to create your Manubot manuscript
https://github.com/manubot/rootstock
Clone me to create your Manubot manuscript. Contribute to manubot/rootstock development by creating an account on GitHub.
Added 11 months ago
jigs for creating picturer frames
http://www.woodworkinghistory.com/jigs_for_creating_picture_frames.htm
Information page on the IBM model M keyboard, based on the design of mechanical typewriters. - Model M buyer's guide
http://www.clickeykeyboards.com/model-m-buyers-guide/
Added 10 years ago
RemoteApp sessions are disconnected when all RemoteApp windows and user-launched notification area icons are closed
https://support.microsoft.com/en-us/help/2345390/remoteapp-sessions-are-disconnected-when-all-remoteapp-windows-and-use
Resolves an issue where RemoteApp sessions are disconnected when all RemoteApp windows and user-launched notification area icons are closed.
Added 8 years ago
Truckin' With The Dead
https://gdlistening.blogspot.com/