Skip to content

Instantly share code, notes, and snippets.

View badvision's full-sized avatar

Brendan Robert badvision

View GitHub Profile
@badvision
badvision / all ips.jsp
Created May 19, 2016 20:17
List all IP Addresses that the server is listening on.
<%@page session="false" contentType="text/html; charset=utf-8"
import="java.util.*,java.net.*"%><%
List<NetworkInterface> ifaces = Collections.list(NetworkInterface.getNetworkInterfaces());
for(NetworkInterface ifc : ifaces) {
if(ifc.isUp()) {
List<InetAddress> addrs = Collections.list(ifc.getInetAddresses());
for(InetAddress addr : addrs) {
%>
<%=addr.getHostAddress()%><br>
@badvision
badvision / regenerate thumbnails.jsp
Created May 19, 2016 20:12
Regenerate thumbnails using synthetic workflow
<%@include file="/libs/foundation/global.jsp"%>
<%@page session="false" contentType="text/html; charset=utf-8" pageEncoding="UTF-8"
import="com.adobe.acs.commons.workflow.synthetic.*,
com.adobe.acs.commons.fam.*,
com.adobe.acs.commons.functions.*,
org.apache.sling.api.resource.*,
java.util.*,
javax.jcr.*,
com.day.cq.search.*,
com.day.cq.dam.commons.util.DamUtil,
@badvision
badvision / publish renditions.jsp
Last active May 19, 2016 20:04
Publish non-original renditions to another instance, using multiple publish queues in round-robin fashion
<%@include file="/libs/foundation/global.jsp"%>
<%@page session="false" contentType="text/html; charset=utf-8" pageEncoding="UTF-8"
import="java.util.*,
com.adobe.acs.commons.fam.*,
com.adobe.acs.commons.functions.*,
com.adobe.granite.asset.api.*,
com.day.cq.replication.*,
org.apache.sling.api.resource.*,
javax.jcr.*"%><%
ActionManagerFactory amf = sling.getService(ActionManagerFactory.class);
@badvision
badvision / buildGroupMatrix.groovy
Created March 8, 2016 17:17
Part 2 of building user information (See getGroupInfo.groovy for instructions)
import groovy.json.*
def slurper = new JsonSlurper()
slurper.setType(JsonParserType.INDEX_OVERLAY);
def groupDir = '.' as File
def output = 'matrix.txt' as File
def users = new TreeMap();
def userGroups = new HashMap();
@badvision
badvision / getAllGroupInfo.groovy
Last active March 8, 2016 17:18
AEM Group membership extractor, use with buildGroupMatrix to produce a spreadsheet of all users and what groups they're in
// Step 1: retrieve group list via http://AEMINSTANCE:4502/home/groups.xml and save as group.xml
// Step 2: modify this script (find/replace AEMINSTANCE:4502 with your AEM host/port, also USERNAME and PASSWORD)
// Stpe 3: run this script in the same directory as group.xml
// Step 4: make the output groups_retrieve.sh executable and run it
// Step 5: use the buildGroupMatrix.groovy script to render the spreadsheet
def groupXml = 'groups.xml' as File
def outScript = 'groups_retrieve.sh' as File
def allGroups = new XmlSlurper().parseText(groupXml.getText())
pathBuilder = {node, path="" ->
@badvision
badvision / sessionSummary.groovy
Created February 9, 2016 23:30
Summarize all open JCR sessions by the stack trace of the code that opened them. This helps identify session leaks in code.
import groovy.json.JsonSlurper
//Get data from here: /system/sling/monitoring/mbeans/org/apache/jackrabbit/oak/%2522SessionStatistics%2522.2.json
def file = '/Users/brobert/Desktop/all_sessions.json' as File
def sanitizeStacktrace = {trace->
if (trace.contains("loginAdministrative")) {
def lines = trace.split("\n")
def startIdx;
for (def idx=0; idx < lines.length; idx++) {
import com.webcodepro.applecommander.storage.os.dos33.DosFormatDisk
import com.webcodepro.applecommander.storage.Disk
import com.webcodepro.applecommander.storage.physical.DosOrder
import com.webcodepro.applecommander.storage.physical.ByteArrayImageLayout
import java.io.File
def baseDir="/Users/blurry/Downloads/ac33"
def outDir="/Users/blurry/Downloads/ac33_extracted"
def sourceFolder = baseDir as File
@badvision
badvision / archimedes.a
Last active February 20, 2017 21:54
Mockingboard sound driver
*= $4000
!cpu 65c02
!sl "globals.txt"
;-----------
reg_ORB = 0 ;Output Register B
reg_ORA = 1 ;Output Register A
reg_DDRB = 2 ;Data direction reg B
reg_DDRA = 3 ;Data direction reg A
reg_T1CL = 4 ;T1 low-order latches (low-order counter for read operations)
REM Original posted by mmphosis to comp.sys.apple2.programmer
REM Shortened down to two lines by b. robert
0 HGR : HCOLOR= 6: HPLOT 0,0 : CALL 62454: B = 70 : FOR Y = 0 TO 99 : READ A$:L = LEN (A$): IF L THEN B = B + 2: P = 130: Q=131: FOR X = 1 TO L:P=P+2: Q=Q+2: HCOLOR=VAL(MID$ (A$,X,1)) : FOR Z = B TO B+1 : HPLOT P,Z TO Q,Z: NEXT Z,X,Y
1 DATA 66666555555,66665555555555,666644477477,66647477747777,666474477747777,66644777744444,6666677777777,66664445444,66644445444,6744445544,7774455755,6445555555,6664455555,6664444,66444,
@badvision
badvision / lemonade_stand.bas
Created July 24, 2015 07:38
Lemonade stand (Applesoft basic)
1 LOMEM: 14080
5 GOSUB 10000: GOSUB 11000: GOSUB 16000: GOTO 135
10 REM <<< LEMONADE STAND >>>
15 REM
20 REM FROM AN ORIGINAL PROGRAM
30 REM BY BOB JAMISON, OF THE
40 REM MINNESOTA EDUCATIONAL
50 REM COMPUTING CONSORTIUM
60 REM * * *
70 REM MODIFIED FOR THE APPLE