Add many uncommitted wiki changes
As it says on the tin. Basically a more complete wiki, with proper sub-pages and all.master
|
@ -3,7 +3,7 @@
|
|||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
|
||||
<title>kettek @@PAGE@@</title>
|
||||
<link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
|
||||
<link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,700,400italic,700italic' rel='stylesheet' type='text/css'>
|
||||
<link href='https://fonts.googleapis.com/css?family=Montserrat:700' rel='stylesheet' type='text/css'>
|
||||
<link href='https://fonts.googleapis.com/css?family=Inconsolata' rel='stylesheet' type='text/css'>
|
||||
<link rel="stylesheet" type="text/css" href="//cloud.github.com/downloads/lafeber/world-flags-sprite/flags16.css" />
|
||||
|
@ -49,10 +49,10 @@
|
|||
</div>
|
||||
<div id="menu_container">
|
||||
<div class="menu">
|
||||
<a href="/articles">articles</a>
|
||||
<a href="/software">software</a>
|
||||
<a href="/games">games</a>
|
||||
<a href="/articles">articles</a>
|
||||
<a href="/columbarium">columbarium</a>
|
||||
<a href="/lab">lab</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -5,5 +5,6 @@
|
|||
"powermac-g5-to-atx-pinouts": {"date": "2015", "time": "???", "title": "PowerMac G5 Front/Fan/Speaker to ATX/PC pinouts"},
|
||||
"desktop-feng-shui": {"date": "2015-03-21", "time": "", "title": "Desktop Feng Shui"},
|
||||
"mangband-hacking": {"date": "2015-02-02", "time": "02:08:10:322", "title": "MAngband Hacking"},
|
||||
"release-your-source": {"date": "2014-11-28", "time": "", "title": "Release your (Engine's) Source!"}
|
||||
"release-your-source": {"date": "2014-11-28", "time": "", "title": "Release your (Engine's) Source!"},
|
||||
"biffing-your-bash": {"date": "2014-03-09", "time": "", "title": "The Amazing IMAP BASH biff"}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
# Welcome to the Crypt, foolish mortal!
|
||||
Herein lies various projects that are: *incomplete*, *abandoned*, or *could someday show the potential for resurrection*
|
||||
|
||||
----
|
||||
|
||||
[[toc]]
|
||||
|
||||
----
|
||||
|
||||
## Libraries
|
||||
### CBDL -- Cross-browser "Directmedia" Library
|
||||
* **Site**: [CBDL](/crypt/CBDL)
|
||||
* **Year**: 2013
|
||||
* **Language**: JavaScript
|
||||
* **System**: Browsers, IE6+
|
||||
|
||||
## Software
|
||||
### proclib -- procedural generation library
|
||||
* **Site**: [proclib](/crypt/proclib)
|
||||
* **Year**: 2015
|
||||
* **Language**: C
|
||||
* **System**: Linux, Windows, OS X, whatever you can get C to compile on
|
||||
|
||||
Experimental procedural generation library.
|
||||
|
||||
Doggedly attempt to understand proclib's syntax, **I dare you** (it's actually pretty straight forward).
|
||||
|
||||
### kettext -- feel too cool for Markdown?
|
||||
* **Site**: [kettext](/crypt/kettext)
|
||||
* **Year**: 2015
|
||||
* **Language**: Perl
|
||||
|
||||
### noirchat -- decentralized chatification
|
||||
* **Site**: [noirchat](/crypt/noirchat)
|
||||
* **Year**: 2013
|
||||
* **Language**: C w/ multiple interfaces
|
||||
* **System**: Linux, Windows, OS X, whatever you can get C to compile on
|
||||
|
||||
### netwine -- JavaScript bidirectional TCP bridge
|
||||
* **Site**: [netwine](/crypt/netwine)
|
||||
* **Year**: 2014
|
||||
* **Language**: C
|
||||
* **System**: Linux, Windows, OS X, whatever you can get C to compile on
|
||||
|
||||
### ktk_mediaserver -- PHP media browser
|
||||
* **Site**: [ktk_mediaserver](/crypt/ktk_mediaserver)
|
||||
* **Year**: 2015
|
||||
* **Language**: PHP
|
||||
|
||||
## Games
|
||||
### jOGUE -- JavaScript roguelike
|
||||
* **Site**: [jogue](/crypt/jogue)
|
||||
* **Year**: 2012
|
||||
* **Language**: JavaScript
|
||||
* **System**: Browser
|
||||
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
# CBDL - Cross-browser... Directmedia Library
|
||||
CBDL was a project I briefly made in 2011 for drawing graphics, playing audio, and doing basic networking (via XMLHTTPRequest -- and experimentally, WebSockets).
|
||||
|
||||
It was largely sprite oriented and could use different backends, such as HTML5 or standard HTML elements, to provide support for:
|
||||
* IE 6+
|
||||
* Safari 3+
|
||||
|
||||
A screenshot of the old website:
|
||||
|
||||
**TODO**
|
|
@ -0,0 +1,25 @@
|
|||
And lo, what was born! A dynamic javascript-based rogue-like which held a plethora of interesting and customizable features such as, but not limited to, the following:
|
||||
<ul> Fully cross-browser and cross-platform, working on: Firefox, Chrome, IE, Opera, MobileSafari, Adroid Browser </ul>
|
||||
<ul> Moddable!
|
||||
<ul> Default 80x24 tile screen, but expandable to... ANYTHING! </ul>
|
||||
<ul> All user-elements can easily be modified, allowing for unique UI layouts that best suite _YOU_! </ul>
|
||||
<ul> UI messages, layout, "board" size, all customizable! </ul>
|
||||
<ul> Colliders (monsters, items, doors, weapons, etc.) can easily be added and modified!
|
||||
<ul> This includes new game logic! Modify their Tick() method to provide unique behaviors!</ul>
|
||||
<ul> "States," such as "awake," "sleep," "dead," and many others can be used to easily hook into behavior - you can even add your own! </ul>
|
||||
<ul> Gosh, so much you can do, get programming! </ul>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul> Game Mechanics!
|
||||
<ul> Stats: STRength, for hittin' damage; DEXtarity, for dodgin' finesse; CONstitution, for health points; WISdom, for doin mystic ish; POWer, for them lightnin' bolts; CHArisma, to charm my pants off!
|
||||
<ul> Progressive-leveling - screw stat selection, just PLAY the game to level up (hit stuff, cast stuff, etc.!) </ul>
|
||||
</ul>
|
||||
<ul> Fully-blown slotted inventory system - have 4 hands? Well, two bastard swords for you! Have 8 heads, you hydra, you? Wear 8 helmets!
|
||||
<ul> Modifies armor class(AC), reducing damage 'n' ish! </ul>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul> Weird technical stuff!
|
||||
<ul> Shadow-casting via Bresenham's line algorithm (raycasting!) </ul>
|
||||
<ul> Soon-to-be-finished A* search algorithm for smarter monsters AND for superior random map generation!</ul>
|
||||
</ul> Mandlebrots for lakes! Why? WHY NOT! </ul>
|
||||
</ul>
|
|
@ -0,0 +1,10 @@
|
|||
title = "jOGUE - javascript rogue-like"
|
||||
description = "Rogue-like engine written entirely in Javascript with working mobile(iOS/Android) and multi-browser(FF,Safari,Chrome,IE5+) support"
|
||||
keywords = "javascript, rogue-like, rogue, nethack, angband, html, Javascript video games"
|
||||
cat = "Web"
|
||||
sub = "Games"
|
||||
img = "btppp.gif"
|
||||
alt = "jOGUE!"
|
||||
screens = "August 29, 2012=-=jouge_082912.png_-_September 24, 2012=-=jogue_092412.png_-_October 30, 2012=-=jouge_103012.png"
|
||||
TOC = "Overview=-=overview_-_Features=-=features"
|
||||
data = "jOGUE.d"
|
After Width: | Height: | Size: 83 KiB |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 64 KiB |
|
@ -0,0 +1,3 @@
|
|||
Stemming from the matrimony of burning passion and excruciating boredom, I began work on jOGUE(javascript ogue-like, I guess) in earnest during the 2012th year. The concept was simple enough: Implement a unique rogue-like reminscent of the console-based variants of Nethack/Angband/etc. using only Javascript. Towards this end, I wished to have a text-based interface that fit within a virtual 80x24 character/tile screen, along with a keyboard-centric interface.
|
||||
<br /><br />
|
||||
However, upon the collision with extraneous distractions, I took a haitus from jOGUE. At the moment, it is missing important features such as a large-scale and coherent random map generator. Much of the core is complete, at least for the most part, such as how monster/entity logic is handled, how the map is drawn to the screen(although this could be improved for performance), as well as stats & equipment functionings.
|
|
@ -0,0 +1,43 @@
|
|||
# netwine
|
||||
**netwine** is a standalone TCP proxy/bridging server that allows for seamless connections from a JavaScript-enabled Browser to an external server.
|
||||
|
||||
Traditionally, JavaScript networking functions using a push/pull mechanism, wherein bidirectional TCP streams are unavailable. However, as has been done with various projects to date (such as XMPP and others), bidirectional TCP connections can be simulated by using one dedicated socket for streaming to the client (combined with client-side socket polling), and one or more other sockets for sending to the server.
|
||||
|
||||
Jargon:
|
||||
|
||||
* Client - JavaScript browser client, generally
|
||||
* Proxy/Proxy Server - netwine
|
||||
* TCP Server - external server that Client wishes to connect to
|
||||
|
||||
|
||||
+----------+
|
||||
/<------ | |
|
||||
/ in | Proxy |
|
||||
[ JavaScript Client ] | | <-------> [ TCP Server ]
|
||||
\ out | Instance |
|
||||
\------> | |
|
||||
+----------+
|
||||
|
||||
The order of operations is simple:
|
||||
* Client requests connection
|
||||
* server attempts to connect to TCP server and if successful:
|
||||
* server responds with "OK" + one-time use key
|
||||
* this establishing socket is used as client's input stream
|
||||
* any immediate information from the TCP server is sent to client
|
||||
* Client then uses key in outbound messages
|
||||
* messages are passed to TCP server seemlessly
|
||||
|
||||
It is recommended by the developer that you host the proxy and the target server on the same machine or network if possible, as any proxy usage results in some network latency (also note that cross-domain policies are quite restricted in the standard browser environment). Please note that security is left up to the network setup of the user(you) -- if using Apache, consider proxying through HTTPS.
|
||||
|
||||
In this version of netwine, only the basic bi-directional TCP proxying is implemented, however future versions will likely implement WebSockets for greater efficiency and security. Furthermore, future versions may also provide a library to enable netwine-like functionality to be easily added to any project. Finally, it is possible to add support to connect to a UDP Server, which may be added in a future version.
|
||||
|
||||
netwine is written in C.
|
||||
|
||||
# Design Notes
|
||||
Although not necessary, a twine server is capable of serving files as a limited HTTP server. Alternatively, the twine server would be proxied to from a more capable HTTP server such as Apache. Either approaches are due to cross-domain restrictions.
|
||||
|
||||
Optionally, an allowed hosts file can be used to restrict use from particular domain names or IPs - perhaps ranges as well.
|
||||
|
||||
Going the opposite direction, a target hosts file can be used to restrict the hosts and ports that the proxy will connect to. Furthermore, a client may freely use any server:port if allowed on the server. Note that there are many potential security issues if allowing such freedom to the client in an unrestricted environment.
|
||||
|
||||
An obvious security implication is that this design will mask the true client from the server, as is the case with proxies. This could be handled using a limited proxy<->server communication protocol, however such a process should be left up to the developer of the server. Some form of logging capability will likely be added to the proxy, wherein the client's IP, target, time, etc., could be logged if enabled.
|
After Width: | Height: | Size: 3.4 KiB |
|
@ -0,0 +1,43 @@
|
|||
# noirchat
|
||||
* **Download:** [git](http://kettek.net/gitphp/?p=noirchat.git)
|
||||
|
||||
[](noirchat.png)
|
||||
|
||||
This program is an incomplete project that is intended to provide fully decentralized encrypted instant messaging. The intended network is either local networks or VPNs.
|
||||
|
||||
The current code is released under the GPLv3.
|
||||
|
||||
----
|
||||
|
||||
[[toc]]
|
||||
|
||||
----
|
||||
|
||||
## Information
|
||||
noirchat/nchat is a decentralized and LAN-based communication program that is focused on minimalism, efficiency, and, to some degree, modularity. It supports the following network communication methods:
|
||||
|
||||
UDP broadcasting, for chat-style and "broad" communication
|
||||
|
||||
* **INCOMPLETE** UDP multicast, for finer control and higher efficiency than broadcasting
|
||||
* **INCOMPLETE** UDP peer-to-peer, for non-TCP based direct comms
|
||||
* **INCOMPLETE** TCP sockets, for direct peer-to-peer communication
|
||||
|
||||
In comparison to most communication programs geared towards decentralization, noirchat attempts to separate the user interface from the networking code as much as is possible. This enables multiple frontends to easily be developed for almost any platform.
|
||||
|
||||
Even further, noirchat provides peer-to-peer or peer-to-group encryption via a trusted network/shared password scheme - in the case of a direct peer-to-peer comm, following the initial handshaking procedure encrypted with the trusted key, a new, temporary key is agreed upon and used for future communication between those peers.
|
||||
|
||||
## What does "noirchat" mean?
|
||||
|
||||
* **noir** - black, also intended as "hidden"
|
||||
* **chat** - as in communication, as well as "cat"
|
||||
|
||||
As per French grammar, when the adjective comes before the noun, it is meant in a figurative sense, rather than a literal, descriptive sense. In this way, 'noir' is figuratively modifying chat, not literally, and as such, comes before rather than after the noun. It makes a degree of sense, honestly.
|
||||
## Compiling
|
||||
At the moment noirchat compiles into the following binaries:
|
||||
* **nchat** - primary client
|
||||
* Fully-supported terminal client, relies on nothing more than an ANSI-compliant terminal interface - colors optional
|
||||
* **xnchat** - X11 client
|
||||
* state: in-complete stub, basic interface w/ buttons
|
||||
* Fully-supported X11 client, relies on nothing more than Xlib
|
||||
|
||||
To compile either, simply type: `make nchat` or `make xnchat`
|
|
@ -0,0 +1,3 @@
|
|||
# proclib
|
||||
|
||||
Experimental procgen library made in a week
|
|
@ -1,14 +1,14 @@
|
|||
# Games
|
||||
Most games here are as a result of development competitions and similar. Unlike the rest of humanity, these are ultimately coded from scratch, excluding the use of SDL/SDL2/OpenGL and such similar base libraries. They are organized by date.
|
||||
|
||||
----
|
||||
|
||||
[[toc]]
|
||||
|
||||
Because games are not software?
|
||||
|
||||
Most games here are as a result of development competitions and similar. Unlike the rest of humanity, these are ultimately coded from scratch, excluding the use of SDL/SDL2/OpenGL and such similar base libraries.
|
||||
|
||||
----
|
||||
|
||||
## DCRAWL
|
||||
* **Site**: [DCRAWL](/games/DCRAWL)
|
||||
* **Site**: [DCRAWL](/games/dcrawl)
|
||||
* **Year**: 2015
|
||||
* **Event**: #TextJam2015
|
||||
* **Language**: C
|
||||
|
@ -18,7 +18,7 @@ Faux-3D console dungeon crawling game -- or rather, stumble around a maze until
|
|||
[](/games/DCRAWL.png)
|
||||
|
||||
## Petite Juliet
|
||||
* **Site**: [Petite Juliet](/games/Petite_Juliet)
|
||||
* **Site**: [Petite Juliet](/games/petite-juliet)
|
||||
* **Year**: 2014
|
||||
* **Event**: Ludum Dare 31 Compo
|
||||
* **Language**: C++
|
||||
|
@ -28,17 +28,17 @@ Single-screen arcade brawling game featuring stylized pixel art. Made primarily
|
|||
[](/games/PetiteJuliet.png)
|
||||
|
||||
## CirQuit
|
||||
* **Site**: [CirQuit](/games/CirQuit)
|
||||
* **Site**: [CirQuit](/games/cirquit)
|
||||
* **Year**: 2014
|
||||
* **Event**: #NESJAM2014
|
||||
* **Language**: JavaScript
|
||||
* **Libraries**: [CBDL](/columbarium/CBDL)
|
||||
* **Libraries**: [CBDL](/crypt/CBDL)
|
||||
|
||||
Puzzle game adhering to some NES limitations. Made during a month-long vacation for **NESJAM 2014**.
|
||||
[](/games/CirQuit.png)
|
||||
|
||||
## Newsboy
|
||||
* **Site**: [Newsboy](/games/Newsboy)
|
||||
* **Site**: [Newsboy](/games/newsboy)
|
||||
* **Year**: 2014
|
||||
* **Event**: #GameMaker2014
|
||||
* **Language**: C
|
||||
|
@ -48,7 +48,7 @@ Engine/Game written in C using SDL2_* in approximately a month's time of off and
|
|||
[](/games/Newsboy.png)
|
||||
|
||||
## VAD
|
||||
* **Site**: [VAD](/games/VAD)
|
||||
* **Site**: [VAD](/games/vad)
|
||||
* **Year**: 2014
|
||||
* **Event**: #TextJam2014
|
||||
* **Language**: C
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
# DCRAWL
|
||||
**DCRAWL** is a faux-3d dungeon crawling "game" written in less than 24 hours for **#TextJam2015**.
|
||||
|
||||
**TODO**
|
|
@ -0,0 +1,4 @@
|
|||
# CirQuit
|
||||
**CirQuit** is a NES-style puzzle game written in JavaScript during a month-long vacation for **NESJAM 2014**.
|
||||
|
||||
**TODO**
|
|
@ -0,0 +1,2 @@
|
|||
# Newsboy
|
||||
**Newsboy** is an engine/game written in C and SDL2 in under a month of on and off tinkering.
|
|
@ -0,0 +1,40 @@
|
|||
# Petite Juliet
|
||||
## Download
|
||||
* [git](http://git.kettek.net/?p=juliet.git;a=summary)
|
||||
* **1.0** -- 2014-12-11 **TODO**
|
||||
* [Linux 32-bit and 64-bit](PetiteJuliet_1.0_linux.tgz)
|
||||
* [Mac OS X Universal](PetiteJuliet_1.0_osx.zip)
|
||||
* [Windows 7 32-bit](PetiteJuliet_1.0_win32.zip)
|
||||
* [GPLv3 Source](PetiteJuliet_1.0_src.tgz)
|
||||
|
||||
## About
|
||||
|
||||
Petite Juliet is a single-screen brawling game featuring stylized pixel art. It was originally written for the 48-hour Ludum Dare 31 Compo.
|
||||
|
||||
[](/games/PetiteJuliet.png)
|
||||
|
||||
* **Features!**
|
||||
* Our cute protagonist, **Juliet**
|
||||
* GLSL shaders!
|
||||
* C++ and SDL2!
|
||||
* Dynamic terrain using **julia set fractals**
|
||||
* Wave-based enemies
|
||||
* Some okay combat!
|
||||
|
||||
----
|
||||
|
||||
The source code is available under the GPLv3. Feel free to modify, inspect, critizice, or burn it.
|
||||
|
||||
## TODO
|
||||
|
||||
* Framebuffer coloring layer - additive layer that is placed over terrain, "staining" the terrain layer with special fx(blood, etc.)
|
||||
* Throwing of entities
|
||||
* Multiplayer
|
||||
* Stage and wave system.
|
||||
* Each stage is a separate color, and is shown as a separate FBO in the background. When the current stage ends, it zooms into the new stage.
|
||||
* Fun special effects for hittin' stuff
|
||||
* More enemy types!
|
||||
* Bosses as well
|
||||
* Blocking and countering
|
||||
* Items (parasol)
|
||||
* More and better sound effects. Music too.
|
|
@ -0,0 +1,4 @@
|
|||
# VAD
|
||||
**VAD** is a text-based adventure game engine in the vein of **Adventure**. Made in under 48 hours for **#TextJam2014**.
|
||||
|
||||
**TODO**
|
|
@ -0,0 +1,81 @@
|
|||
# lab -- ラブラブ。。。?
|
||||
This section contains software or games that I am currently in the process of making or plan on revisiting in the near future.
|
||||
|
||||
Majority of the projects in here are only partially usable at best.
|
||||
|
||||
----
|
||||
|
||||
[[toc]]
|
||||
|
||||
----
|
||||
|
||||
## Desktop Applications
|
||||
### Adobar -- HTML5/CSS3 Animation Program
|
||||
* **Site**: [Adobar](/lab/Adobar)
|
||||
* **Year**: 2016
|
||||
* **Language**: XUL
|
||||
* **System**: Linux, Windows, OS X, anything supported by XUL.
|
||||
* **Interface**: Graphical Desktop
|
||||
|
||||
Actually create HTML5/CSS3 animations with this XUL program!
|
||||
|
||||
[](/lab/Adobar_20160106.png)
|
||||
## Web Services/Applications
|
||||
### LGS -- Let's Get Shredded
|
||||
* **Site**: [LGS](/lab/LGS)
|
||||
* **Year**: 2016
|
||||
* **Language**: JavaScript
|
||||
* **System**: Any modern JavaScript browser supporting HTML5
|
||||
* **Interface**: Browser
|
||||
|
||||
A graphing and management browser application for getting swole.
|
||||
|
||||
### LootKeeper
|
||||
* **Site**: [LootKeeper](/lab/LootKeeper)
|
||||
* **Year**: 2016
|
||||
* **Language**: JavaScript / Node.js
|
||||
* **System**: Node.js Server
|
||||
* **Interface**: Browser
|
||||
|
||||
Manage your D&D loot!
|
||||
|
||||
[](/lab/lk_jp.png)
|
||||
|
||||
### TwittMUD
|
||||
* **Site**: [TwittMUD](/lab/TwittMUD)
|
||||
* **Year**: 2015
|
||||
* **Language**: JavaScript / Node.js
|
||||
* **System**: Node.js
|
||||
* **Interface**: Commandline
|
||||
|
||||
An interesting foray into creating a game in Twitter. Similar to Twitter bots, I suppose.
|
||||
|
||||
## Games
|
||||
### NetHack SDL2 interface
|
||||
* **Site**: [NetHack](/lab/NetHack)
|
||||
* **Year**: 2016
|
||||
* **Language**: C++ w/ SDL2
|
||||
* **System**: Linux, Windows, OS X
|
||||
* **Interface**: Desktop Game
|
||||
|
||||
An SDL2 port of NetHack, intended to implement the lower-level window interface changes made in 3.6.0.
|
||||
|
||||
[](/lab/nethack_sdl2_20160601.gif)
|
||||
### MAngband SDL2 interface
|
||||
* **Site**: [MAngband](/lab/MAngband)
|
||||
* **Year**: 2015
|
||||
* **Language**: C++ w/ SDL2
|
||||
* **System**: Linux, Windows, OS X
|
||||
* **Interface**: Desktop Game
|
||||
|
||||
A modern SDL2 port of MAngband. Currently only working with **v1.1.2**, as the official 1.2 repository code was not functional enough at the time to get working.
|
||||
|
||||
[](/lab/mangband_sdl2_20150202.png)
|
||||
### GodEater
|
||||
* **Site**: [GodEater](/lab/GodEater)
|
||||
* **Year**: 2015
|
||||
* **Language**: C++ w/ SDL2
|
||||
* **System**: Linux, Windows, OS X
|
||||
* **Interface**: Desktop Game
|
||||
|
||||
A roguelike engine originally started for 7DRL2015 and never finished. I enjoy the concept and will likely make it a runnable game at some point.
|
After Width: | Height: | Size: 57 KiB |
After Width: | Height: | Size: 598 KiB |
After Width: | Height: | Size: 104 KiB |
After Width: | Height: | Size: 403 KiB |
|
@ -0,0 +1,8 @@
|
|||
<ul>
|
||||
<li>Served with PHP, complimented with JavaScript, but still works without the latter</li>
|
||||
<li>Hooks into keydown+keyup events for keyboard usage</li>
|
||||
<li>Dynamically updates via AJAX</li>
|
||||
<li>"Mode"-oriented program design. Different contexts(modes) change keypress behaviors and the like, a la vi</li>
|
||||
<li>Wonderful colorscheme roughly adapted from Solarized</li>
|
||||
<li>Customizable with theme configurations</li>
|
||||
</ul>
|
|
@ -0,0 +1,3 @@
|
|||
yew, or "yew - elm-like webmail" is a minimalistic and keyboard-centric webmail written in PHP with optional enhancements via JavaScript. It was created due to my own dissatisfaction with webmail programs such as RoundCube, Horde, and SquirrelMail. Whilst all three of these webmail software are certainly good products in their own right - especially SquirrelMail, even if it does feel a bit antique -, they generally suffer from software bloat and non-keyboard friendly interfaces. Given the years I've used elm & pine, along with my keyboard-oriented desktop I use (i3wm), I wanted to be able to use webmail in the same streamlined fashion as available within the terminal.
|
||||
<br /><br />
|
||||
AND LO, YEW WAS BORN.
|
|
@ -0,0 +1,9 @@
|
|||
title = "yew - elm-like webmail"
|
||||
description = "What sums this up? Minimalism. Keyboard-centric UI. Sexy colors. Desire."
|
||||
keywords = "javascript, webmail, yew, elm, pine, php, html, http, keyboard, keyboardcentric, minimalism, solarized"
|
||||
cat = "Web"
|
||||
sub = "Mail"
|
||||
screens = "yew 0.0.1=-=yew_0.0.1.png"
|
||||
alt = "yew"
|
||||
TOC = "Overview=-=overview_-_Features=-=features"
|
||||
data = "yew.d"
|
After Width: | Height: | Size: 50 KiB |
|
@ -0,0 +1,81 @@
|
|||
# lab -- ラブラブ。。。?
|
||||
This section contains software or games that I am currently in the process of making or plan on revisiting in the near future. It is the counterpart to the [crypt](crypt), home of projects that are unlikely to be updated or completed in any reasonable time.
|
||||
|
||||
Majority of the projects in here are only partially usable at best.
|
||||
|
||||
----
|
||||
|
||||
[[toc]]
|
||||
|
||||
----
|
||||
|
||||
## Desktop Applications
|
||||
### Adobar -- HTML5/CSS3 Animation Program
|
||||
* **Site**: [Adobar](/lab/Adobar)
|
||||
* **Year**: 2016
|
||||
* **Language**: XUL
|
||||
* **System**: Linux, Windows, OS X, anything supported by XUL.
|
||||
* **Interface**: Graphical Desktop
|
||||
|
||||
Actually create HTML5/CSS3 animations with this XUL program!
|
||||
|
||||
[](/lab/Adobar_20160106.png)
|
||||
## Web Services/Applications
|
||||
### LGS -- Let's Get Shredded
|
||||
* **Site**: [LGS](/lab/LGS)
|
||||
* **Year**: 2016
|
||||
* **Language**: JavaScript
|
||||
* **System**: Any modern JavaScript browser supporting HTML5
|
||||
* **Interface**: Browser
|
||||
|
||||
A graphing and management browser application for getting swole.
|
||||
|
||||
### LootKeeper
|
||||
* **Site**: [LootKeeper](/lab/LootKeeper)
|
||||
* **Year**: 2016
|
||||
* **Language**: JavaScript / Node.js
|
||||
* **System**: Node.js Server
|
||||
* **Interface**: Browser
|
||||
|
||||
Manage your D&D loot!
|
||||
|
||||
[](/lab/lk_jp.png)
|
||||
|
||||
### TwittMUD
|
||||
* **Site**: [TwittMUD](/lab/TwittMUD)
|
||||
* **Year**: 2015
|
||||
* **Language**: JavaScript / Node.js
|
||||
* **System**: Node.js
|
||||
* **Interface**: Commandline
|
||||
|
||||
An interesting foray into creating a game in Twitter. Similar to Twitter bots, I suppose.
|
||||
|
||||
## Games
|
||||
### NetHack SDL2 interface
|
||||
* **Site**: [NetHack](/lab/NetHack)
|
||||
* **Year**: 2016
|
||||
* **Language**: C++ w/ SDL2
|
||||
* **System**: Linux, Windows, OS X
|
||||
* **Interface**: Desktop Game
|
||||
|
||||
An SDL2 port of NetHack, intended to implement the lower-level window interface changes made in 3.6.0.
|
||||
|
||||
[](/lab/nethack_sdl2_20160601.gif)
|
||||
### MAngband SDL2 interface
|
||||
* **Site**: [MAngband](/lab/MAngband)
|
||||
* **Year**: 2015
|
||||
* **Language**: C++ w/ SDL2
|
||||
* **System**: Linux, Windows, OS X
|
||||
* **Interface**: Desktop Game
|
||||
|
||||
A modern SDL2 port of MAngband. Currently only working with **v1.1.2**, as the official 1.2 repository code was not functional enough at the time to get working.
|
||||
|
||||
[](/lab/mangband_sdl2_20150202.png)
|
||||
### GodEater
|
||||
* **Site**: [GodEater](/lab/GodEater)
|
||||
* **Year**: 2015
|
||||
* **Language**: C++ w/ SDL2
|
||||
* **System**: Linux, Windows, OS X
|
||||
* **Interface**: Desktop Game
|
||||
|
||||
A roguelike engine originally started for 7DRL2015 and never finished. I enjoy the concept and will likely make it a runnable game at some point.
|
|
@ -1,28 +1,13 @@
|
|||
# Software
|
||||
[[toc]]
|
||||
|
||||
Most of the still usable and/or relevant things I've created -- see [Columbarium](/columbarium) for software of a forgotten era.
|
||||
This section contains the more or less usable software I've created over the years -- some software has been omitted due to age and/or crumminess.
|
||||
|
||||
----
|
||||
|
||||
### LGS -- Let's Get Shredded
|
||||
* **Site**: [LGS](/software/LGS)
|
||||
* **Year**: 2016
|
||||
* **Language**: JavaScript
|
||||
* **System**: Any modern JavaScript browser supporting HTML5
|
||||
* **Interface**: Browser
|
||||
[[toc]]
|
||||
|
||||
A graphing and management browser application for getting swole.
|
||||
|
||||
### Adobar -- HTML5/CSS3 Animation Program
|
||||
* **Site**: [Adobar](/software/Adobar)
|
||||
* **Year**: 2016
|
||||
* **Language**: XUL
|
||||
* **System**: Linux, Windows, OS X, anything supported by XUL.
|
||||
* **Interface**: Graphical Desktop
|
||||
|
||||
Actually create HTML5/CSS3 animations with this XUL program!
|
||||
----
|
||||
|
||||
## Server Software
|
||||
### QWiki -- Node.js file-based wiki to make life easy.
|
||||
* **Site**: [QWiki](/software/QWiki)
|
||||
* **Year**: 2015-2016
|
||||
|
@ -42,6 +27,9 @@ A Node.js HTTP server that provides a customizable wiki using files as the datab
|
|||
* **Interface**: Terminal
|
||||
|
||||
A Node.js program that manages sending emails to multiple recipients, using Markdown as the default newsletter's renderer.
|
||||
|
||||
[](/software/polymail.png)
|
||||
|
||||
### ARK -- become a Cool Kid(tm) with a **brand new** directory indexer!
|
||||
* **Site**: [ARK](/software/ARK)
|
||||
* **Year**: 2015
|
||||
|
@ -50,36 +38,80 @@ A Node.js program that manages sending emails to multiple recipients, using Mark
|
|||
|
||||
A fancy HTML5 & JavaScript PHP directory index intended to replace Apache's default.
|
||||
|
||||
### proclib -- struggle with a parser in the pursuit of randomization.
|
||||
* **Site**: [proclib](/software/proclib)
|
||||
* **Year**: 2015
|
||||
* **Language**: C
|
||||
* **System**: Linux, Windows, OS X, whatever you can get C to compile on
|
||||
* **Interface**: Terminal
|
||||
[](/software/ARK.png)
|
||||
|
||||
Experimental procedural generation library.
|
||||
## Browser-based Tools
|
||||
### ttock
|
||||
* **Site**: [GitHub repository](https://github.com/kettek/ttock)
|
||||
* **Year**: 2016
|
||||
* **Language**: JavaScript
|
||||
* **System**: Browser
|
||||
|
||||
Doggedly attempt to understand proclib's syntax, I dare you (it's actually pretty straight forward).
|
||||
A simple browser-based stopwatch/timer utility.
|
||||
|
||||
[](/software/ttock.png)
|
||||
|
||||
## Small Utilitites
|
||||
### wprocsend
|
||||
* **Site**: [wprocsend](https://github.com/kettek/wprocsend)
|
||||
* **Year**: 2016
|
||||
|
||||
Simple Windows console program to either kill or signal SIGINT or SIGBREAK to a specific pid or executable name.
|
||||
|
||||
## Libraries
|
||||
### polylog
|
||||
* **Site**: [GitHub repository](https://github.com/kettek/polylog)
|
||||
* **Year**: 2016
|
||||
* **Language**: JavaScript
|
||||
* **System**: Node.js Library
|
||||
|
||||
A simple stream-based Node.js logger. And I do mean **simple**.
|
||||
|
||||
[](/software/polylog.png)
|
||||
|
||||
## Olde Stuff
|
||||
### EBIC -- batch convert all the images!
|
||||
* **Site**: [EBIC](/software/EBIC)
|
||||
* **Year**: 2011?
|
||||
* **Year**: 2011
|
||||
* **Language**: AppleScript
|
||||
* **System**: Mac OS 10.3+
|
||||
* **Interface**: Graphical Desktop
|
||||
|
||||
AppleScript frontend to `sips` for converting/resizing images en masse.
|
||||
|
||||
[](/software/EBIC.png)
|
||||
### EPPPD -- pppd all the TTY devices!
|
||||
* **Site**: [EPPPD](/software/EPPPD)
|
||||
* **Year**: 2011?
|
||||
* **Year**: 2011
|
||||
* **Language**: AppleScript
|
||||
* **System**: Mac OS 10.3+
|
||||
* **Interface**: Graphical Desktop
|
||||
|
||||
AppleScript frontend to pppd.
|
||||
|
||||
### [JavaScript Scripts](/software/js)
|
||||
A collection of scripts pertaining to JavaScript, generally for the browser or Node.js.
|
||||
### [Shell Scripts](/software/shell)
|
||||
Various shell scripts for shell scripting things.
|
||||
[](/software/EPPPD.png)
|
||||
|
||||
### sula:UT2K4 -- UT2004 OS X launcher
|
||||
* **Site**: [sula-ut2k4](/software/sula-ut2k4)
|
||||
* **Year**: 2011
|
||||
* **Language**: AppleScript
|
||||
* **System**: Mac OS 10.3+
|
||||
* **Interface**: Graphical Desktop
|
||||
|
||||
Frontend launcher for UT2004 and mods
|
||||
|
||||
[](/software/sula-ut2k4/sula-UT2k4.png)
|
||||
|
||||
### sula:n2n -- n2n Windows interface
|
||||
* **Site**: [sula-n2n](/software/sula-n2n)
|
||||
* **Year**: 2011
|
||||
* **Language**: C++
|
||||
* **System**: Windows XP+
|
||||
* **Interface**: Graphical Desktop
|
||||
|
||||
sula:n2n, or super launcher n2n, is a win32/64 interface to the n2n program -- has a systray and simple dialog.
|
||||
|
||||
[](/software/sula-n2n/systray.png)
|
||||
|
||||
### DokuWiki Plugins
|
||||
[folding@wiki, mandates](software/dokuwiki-plugins)
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
# ARK - Alternative Registry Keeper
|
||||
|
||||
[](/software/ARK.png)
|
||||
|
||||
ARK is a fancy HTML5 & JavaScript enhanced directory index written in PHP. It is intended to be a sleek replacement for the standard Apache Directory Listings.
|
||||
|
||||
A concise list of features:
|
||||
|
||||
* Single PHP script and optional, but recommended, .htaccess file for RewriteRules
|
||||
* File/Directory specific blacklisting
|
||||
* Glob pattern matching
|
||||
* Customizable field selections based on stat()
|
||||
* HTML5, CSS3, and optional JavaScript to make things fancy
|
||||
* Keyboard support (hjkl, arrow keys, easily modifiable)
|
||||
* Save thy bandwidth, update via XMLHTTPRequest
|
||||
* Base64 embedded icons
|
||||
* Pretty small!
|
||||
|
||||
*A dark secret: This was mainly written so I could toy with heredoc syntax*
|
After Width: | Height: | Size: 52 KiB |
|
@ -0,0 +1,23 @@
|
|||
# EBIC - Excellent Batch Image Converter
|
||||
*Ye olde AppleScript frontend to `sips`*
|
||||
|
||||
## Download
|
||||
* [EBIC 1.0](EBIC/EBIC_1.0.zip)
|
||||
* [EBIC 1.0 source](EBIC/EBIC_1.0_xcode.zip)
|
||||
|
||||
## About
|
||||
|
||||
[](/software/EBIC.png)
|
||||
|
||||
EBIC, or Excellent Batch Image Converter, is an AppleScript frontend to the sips program for converting/resizing large batches of images. It has been released under the GPLv3, although the code is certainly less than ideal.
|
||||
|
||||
EBIC was created for fulfilling a need that seemed to be lacking in most available solutions for a minimalistic batch image converter for OS X, at least at the time I created it (2011/02/15). The UI is a bit more obtruse than I would like it to be, however it should be fairly forthcoming as to what does what.
|
||||
|
||||
## Features
|
||||
|
||||
* Convert images to whatever slip supports!
|
||||
* Resize images to whatever dimensions you like - with aspect ratio maintained!
|
||||
* Optionally rename output files!
|
||||
* Also process thumbnails, for galleries and the like!
|
||||
* Progress bar, file count, and image viewer to see which file you're on!
|
||||
* All configurations are saved in the .app bundle's Info.plist - maximum portability!
|
After Width: | Height: | Size: 102 KiB |
|
@ -0,0 +1,44 @@
|
|||
# EPPPD - Excellent Point-to-Point Protocol Daemon
|
||||
* Ye olde AppleScript frontend to `pppd`
|
||||
|
||||
## Download
|
||||
* [EPPPD 1.0](EPPPD/EPPPD_1.0.zip)
|
||||
* [EPPPD 1.0 source](EPPPD/EPPPD_1.0_xcode.zip)
|
||||
|
||||
## About
|
||||
|
||||
[](/software/EPPPD.png)
|
||||
|
||||
EPPPD is a fairly simple GPLv3'd AppleScript frontend to the pppd program. Common *nix methods are used to acquire the most-likely subnet, tty device, and DNS (aka, ls /dev/tty*, parsing those values, etc.). At the moment, it is fairly limited in its capabilities, but should be more than enough for the purpose of running a pppd server to a mobile/palm client, as was its original purpose. Additionally, the code is pretty nasty, but for the sake of FS/OSS I have made it available.
|
||||
|
||||
## Features
|
||||
|
||||
* Limited auto-detection of available tty devices!
|
||||
* Baud rate drop-down menu!
|
||||
* Target IP!
|
||||
* DNS!
|
||||
* Process checking, so you don't start two pppds!
|
||||
* Enable IP Forwarding checkbox!
|
||||
* All settings kept within the bundle's Info.plist - gogogo portability!
|
||||
|
||||
## Usage
|
||||
|
||||
* Options
|
||||
* **Device:** This is the device that will be used by pppd to establish the connection. Looks for /dev/tty.* devices and sets the first item as the default device. If /dev/tty.Bluetooth-PDA-Sync is found, it will be preferred.
|
||||
* **Baud rate:** List of possible baud rates.
|
||||
* **Target IP:** The IP address that will be assigned to the PPP client. Uses ifconfig to acquire the first subnet that is not 127.0.0.1, then assigns it as the default address.
|
||||
* **DNS:** Domain Name System address to send to the PPP client. Reads the first DNS nameserver found in /etc/resolv.conf.
|
||||
* **IP Forwarding:** Enable IP forwarding from the PPP client. Without this enabled, the connection will be limited between the server and the client - no LAN or internet connectivity.
|
||||
* **kill on exit:** Attempt to kill the pppd process when EPPPD quits.
|
||||
* Buttons
|
||||
* **Start/Stop:** Starts or Stops the pppd process.
|
||||
* **View Log:** Opens /var/log/ppp.log in Console.app.
|
||||
* **Clear Log:** Clears the log file /var/log/ppp.log.
|
||||
* **Check:** Checks to see if the daemon is already running - if so changes the Start/Stop button and sets the PID of the process.
|
||||
* **Save:** Saves the settings for Device, Baud rate, Target IP, DNS, and kill on exit to EPPPD's internal Info.plist file.
|
||||
* **Clear:** Clears the settings for Device, Baud rate, Target IP, DNS, and kill on exit.
|
||||
|
||||
## Additional Notes
|
||||
For clarity's sake, it ultimately executes the following:
|
||||
|
||||
/usr/sbin/pppd DEVICE BAUDRATE :TARGETIP noauth local ms-dns DNS passive proxyarp silent logfile /var/log/ppp.log
|
|
@ -0,0 +1,83 @@
|
|||
# QWiki
|
||||
**QWiki** is a wiki service written in JavaScript and using Node.js. Its primary feature design is **end-user simplicity**.
|
||||
|
||||
[](/software/QWiki.png)
|
||||
|
||||
The entirety of this website, save for pass-through sub-sites, uses QWiki with custom *act* modules.
|
||||
|
||||
**TODO: most of the documentation**
|
||||
|
||||
## Features
|
||||
* Simple file-based database
|
||||
* Customizable text syntax processing
|
||||
* Default Markdown support
|
||||
* Basic source text to HTML caching
|
||||
* index.html file used for entire site
|
||||
* Customizable with processing **rules**
|
||||
* **acts**, which are embedded as the last text in the URL, govern the current action, such as '.../edit' and similar
|
||||
|
||||
## Download
|
||||
|
||||
**TODO**
|
||||
|
||||
* [git](http://git.kettek.net/?p=QWiki.git)
|
||||
|
||||
## Basic Usage
|
||||
|
||||
node index.js
|
||||
|
||||
node index.js --port=8080
|
||||
|
||||
## Module Usage
|
||||
|
||||
var QWiki = require('./QWiki/index.js');
|
||||
|
||||
var qwiki = new QWiki();
|
||||
qwiki.addMIMEtype('png', 'image/png');
|
||||
|
||||
qwiki.addFormat('md', 'Markdown', function(source) {
|
||||
// ... markdown to HTML generation, such as markdownit.render(source.toString());
|
||||
});
|
||||
qwiki.setDefault('format', 'md');
|
||||
|
||||
qwiki.listen(port, function() {
|
||||
// any special setup code
|
||||
});
|
||||
|
||||
## Package Overview
|
||||
### Layout
|
||||
|
||||
* QCore.js
|
||||
* Node.js module containing the main logic of QWiki
|
||||
* index.js
|
||||
* QWiki's Node.js module **or** runnable HTTP server
|
||||
* index.html
|
||||
* HTML file used by the runnable HTTP server for serving files -- can contain **rule** replacement strings
|
||||
* acts/
|
||||
* Contains all acts
|
||||
* wiki/
|
||||
* Contains the content of the wiki
|
||||
* cache/
|
||||
* Contains the rendered content
|
||||
* resources/
|
||||
* Contains source assets, such as icons, used in the default wiki
|
||||
|
||||
### index.html
|
||||
A single `index.html` file governs the default look of the entire site. This file can contain special **rule** strings, such as `@@CONTENT@@`, which are replaced with their defined **rule** entry in the current act.
|
||||
|
||||
### acts/
|
||||
In the acts directory is a collection of files that can define **acts** and **rules**. The interface for this is a simple call to `qwiki.act(...)` or `qwiki.rule(...)`.
|
||||
|
||||
### Act creation
|
||||
The call for defining an **act** is `qwiki.act(context, callback)`.
|
||||
|
||||
The **context** is the last portion of the URL path, such as *edit* in */page/edit*. The **callback** is a function that receives an HTTP request argument and an HTTP response argument. Within the callback, normal Node.js HTTP module functionality can be expected.
|
||||
|
||||
In addition to the normal request object properties, also defined is the **hash**, **pathname**, **path**, and **query** of the URL, the current **act**, and the **fields** and **files** provided during a POST.
|
||||
|
||||
### Rule creation
|
||||
The call for defining a **rule** is `qwiki.rule(act, match, callback)`.
|
||||
|
||||
The **act** is the current **act** to match, such as **edit**. The **match** is a string that should trigger the calling of the rule. The **callback** is a function that receives the following arguments: **HTTP request**, **HTTP response**, **QParse instance**, and **next callback**.
|
||||
|
||||
Although **QParse** and the entire QWiki runtime should be elaborated on, all one needs to know to write most rules is that you use **res.write** and call **next** when your rule is complete.
|
|
@ -0,0 +1,58 @@
|
|||
# DokuWiki Plugins
|
||||
|
||||
----
|
||||
|
||||
[[toc]]
|
||||
|
||||
----
|
||||
|
||||
## folding@wiki
|
||||
* **Year:** 2013
|
||||
* **Download:** [v1.0](dokuwiki-plugins/foldingatwiki_v1.0.tgz)
|
||||
|
||||
[](dokuwiki-plugins/foldingatwiki.png)
|
||||
|
||||
### What & Why
|
||||
**folding@wiki** is an action plugin that provides syntax for folding/hiding entire sections of text using only CSS! It runs some heavy processing during 'RENDERER_CONTENT_POSTPROCESS', so as to allow for folding already rendered text :) **Note:** due to this processing and my own limitations of mind, there may be bugs when combined with other plugins or particularly complicated wikisyntax - I did not experience any such problems, but just so you know!
|
||||
|
||||
For those experienced with CSS tricks, this basically uses the method that CSS-based drop-down menus generally use - simply have a container element that changes the properties of a contained element via its :hover style(e.g., display:none; and display:block).
|
||||
|
||||
It was created due to there being no (in my opinion) good folding plugins for DokuWiki, as they either required JavaScript or did not process dokuwiki syntax.
|
||||
|
||||
### Usage
|
||||
Syntax-wise, there are four basic things to keep in mind:
|
||||
|
||||
* 1: DokuWiki syntax is fully supported, both in the FOLDs and in the FOLD's title line. :)
|
||||
* 2: Begin a fold with `<FOLD` on its own line.
|
||||
* 2.1: You can give a title to the fold: `<FOLD My Fold`
|
||||
* 3: End a fold section with `FOLD>`.
|
||||
|
||||
Folding behaviors such as absolutely positioned "popups" or folds that simply overlay themselves rather than pushing DOM around can be done via the plugin's `style.css`.
|
||||
|
||||
### Example
|
||||
Wiki syntax example:
|
||||
|
||||
<FOLD **My Menu**
|
||||
* My First Link
|
||||
* My Second Link :D
|
||||
FOLD>
|
||||
|
||||
HTML output (formatted for readability):
|
||||
|
||||
<div class="foldingatwiki__fold">;
|
||||
<div class="foldingatwiki__fold_title"><strong>My Menu</strong></div>
|
||||
<span>
|
||||
<ul>
|
||||
<li class="level1"><div class="li"> My First Link</div>
|
||||
</li>
|
||||
<li class="level1"><div class="li"> My Second Link :D</div>
|
||||
</li>
|
||||
</ul>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
## mandates
|
||||
* **Year:** 2013
|
||||
* **Download:** [v1.0](dokuwiki-plugins/dokuwiki-mandates-20130420.tgz)
|
||||
|
||||
Mandates is a wiki plugin that provides a dictionary/rules system wherein you can dynamically link to a defined "mandate" from any other page. See the README for more usage.
|
After Width: | Height: | Size: 132 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 22 KiB |
|
@ -0,0 +1,23 @@
|
|||
# polymail
|
||||
*polymail* is a console-based newsletter program using Node.js. It can render source files and thereafter send to a list of recipients.
|
||||
|
||||
[](/software/polymail.png)
|
||||
|
||||
**TODO: more documentation, until then reference code comments**
|
||||
|
||||
## Features
|
||||
* Basic console frontend
|
||||
* Template-based
|
||||
* Attachment support
|
||||
* Automatic archiving
|
||||
* Customizable transports
|
||||
|
||||
## Download
|
||||
* [git](http://git.kettek.net/?p=polymail.git)
|
||||
|
||||
## Usage
|
||||
npm install
|
||||
./app.js default send 20160821.md --title="Something"
|
||||
|
||||
## Command Format
|
||||
./app.js NEWSLETTER COMMAND FILE --VAR=VALUE
|
|
@ -0,0 +1,16 @@
|
|||
# sula:n2n
|
||||
## Download
|
||||
* [v1.0](sula-n2n/sula_n2n-1.0.zip)
|
||||
|
||||
## About
|
||||
**sula:n2n**, or super-launcher: n2n, is a GPLv3'd Windows front-end utility to the edge.exe n2n client program. It was the first Windows utility that I had ever programmed, and as such, its code is an abominable mess.
|
||||
|
||||
It sports the following features (as far as I remember):
|
||||
* Start on Login
|
||||
* Connect on Program Start
|
||||
* Save/Load Settings to Config File (portability!)
|
||||
|
||||
## Screenshots
|
||||
[](sula-n2n/interface.png)
|
||||
|
||||
[](sula-n2n/systray.png)
|
|
@ -0,0 +1,7 @@
|
|||
sula:n2n「スーパーランチャー:ントーン」がウィンドウズのユティリティプログラムです。<a href="http://www.ntop.org/products/n2n/">「n2nのedge.exe」</a>を使います。私の初ウィンドウズプログラムだからコードがもっとひどいプログラムですがGPLv3にしました。
|
||||
<h4>プログラムの特徴</h4>
|
||||
<ul>
|
||||
<li> Start on Login </li>
|
||||
<li> Connect on Program Start </li>
|
||||
<li> Save/Load Settings to Config File (portability!)</li>
|
||||
</ul>
|
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 2.4 KiB |
|
@ -0,0 +1,16 @@
|
|||
# sula:UT2k4
|
||||
## Download
|
||||
* [sula-UT2k4.zip](sula-ut2k4/sula-UT2k4.zip)
|
||||
|
||||
## About
|
||||
**sula:UT2k4** is an OS X launcher for UT2004.app written in AppleScript that supports mods! As of this upload, the source seems to have gone missing, and as such, cannot be released under the GPL. :(
|
||||
|
||||
The following features are included:
|
||||
* Specify UT2004.app & binary to start (ucc-bin, ut2004-bin, or whatever!)
|
||||
* Mod scanning & drop-down selection
|
||||
* Passing additional parameters
|
||||
* Saving all settings in the bundle's Info.plist - highly portable!
|
||||
|
||||
Note that you could use this launcher as a shoddy front-end to most any program - not sure as to why you would want to, though. . .
|
||||
|
||||
[](sula-ut2k4/sula-UT2k4.png)
|
After Width: | Height: | Size: 194 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 93 KiB |
|
@ -0,0 +1,4 @@
|
|||
# ttock
|
||||
**ttock** is a simple browser-based stopwatch/timer utility.
|
||||
|
||||
All documentation stored at its [github repository](https://github.com/kettek/ttock).
|
|
@ -0,0 +1,119 @@
|
|||
# Software
|
||||
This section contains the more or less usable software I've created over the years -- some software has been omitted due to age and/or crumminess.
|
||||
|
||||
See [**Lab**](/lab) for in-development/experimental software and [**crypt**](/crypt) for older or dead software.
|
||||
|
||||
----
|
||||
|
||||
[[toc]]
|
||||
|
||||
----
|
||||
|
||||
## Server Software
|
||||
### QWiki -- Node.js file-based wiki to make life easy.
|
||||
* **Site**: [QWiki](/software/QWiki)
|
||||
* **Year**: 2015-2016
|
||||
* **Language**: JavaScript
|
||||
* **System**: Anything supported by Node.js
|
||||
* **Interface**: Terminal and Browser
|
||||
|
||||
A Node.js HTTP server that provides a customizable wiki using files as the database. Easily expandable to use different text renderers, such as Markdown.
|
||||
|
||||
[](/software/QWiki.png)
|
||||
|
||||
### polymail -- Send spam with ease!
|
||||
* **Site**: [polymail](/software/polymail)
|
||||
* **Year**: 2015-2016
|
||||
* **Language**: JavaScript
|
||||
* **System**: Anything supported by Node.js
|
||||
* **Interface**: Terminal
|
||||
|
||||
A Node.js program that manages sending emails to multiple recipients, using Markdown as the default newsletter's renderer.
|
||||
|
||||
[](/software/polymail.png)
|
||||
|
||||
### ARK -- become a Cool Kid(tm) with a **brand new** directory indexer!
|
||||
* **Site**: [ARK](/software/ARK)
|
||||
* **Year**: 2015
|
||||
* **Language**: PHP
|
||||
* **System**: Apache/PHP
|
||||
|
||||
A fancy HTML5 & JavaScript PHP directory index intended to replace Apache's default.
|
||||
|
||||
[](/software/ARK.png)
|
||||
|
||||
## Browser-based Tools
|
||||
### ttock
|
||||
* **Site**: [GitHub repository](https://github.com/kettek/ttock)
|
||||
* **Year**: 2016
|
||||
* **Language**: JavaScript
|
||||
* **System**: Browser
|
||||
|
||||
A simple browser-based stopwatch/timer utility.
|
||||
|
||||
[](/software/ttock.png)
|
||||
|
||||
## Small Utilitites
|
||||
### wprocsend
|
||||
* **Site**: [wprocsend](https://github.com/kettek/wprocsend)
|
||||
* **Year**: 2016
|
||||
|
||||
Simple Windows console program to either kill or signal SIGINT or SIGBREAK to a specific pid or executable name.
|
||||
|
||||
## Libraries
|
||||
### polylog
|
||||
* **Site**: [GitHub repository](https://github.com/kettek/polylog)
|
||||
* **Year**: 2016
|
||||
* **Language**: JavaScript
|
||||
* **System**: Node.js Library
|
||||
|
||||
A simple stream-based Node.js logger. And I do mean **simple**.
|
||||
|
||||
[](/software/polylog.png)
|
||||
|
||||
## Olde Stuff
|
||||
### EBIC -- batch convert all the images!
|
||||
* **Site**: [EBIC](/software/EBIC)
|
||||
* **Year**: 2011
|
||||
* **Language**: AppleScript
|
||||
* **System**: Mac OS 10.3+
|
||||
* **Interface**: Graphical Desktop
|
||||
|
||||
AppleScript frontend to `sips` for converting/resizing images en masse.
|
||||
|
||||
[](/software/EBIC.png)
|
||||
### EPPPD -- pppd all the TTY devices!
|
||||
* **Site**: [EPPPD](/software/EPPPD)
|
||||
* **Year**: 2011
|
||||
* **Language**: AppleScript
|
||||
* **System**: Mac OS 10.3+
|
||||
* **Interface**: Graphical Desktop
|
||||
|
||||
AppleScript frontend to pppd.
|
||||
|
||||
[](/software/EPPPD.png)
|
||||
|
||||
### sula:UT2K4 -- UT2004 OS X launcher
|
||||
* **Site**: [sula-ut2k4](/software/sula-ut2k4)
|
||||
* **Year**: 2011
|
||||
* **Language**: AppleScript
|
||||
* **System**: Mac OS 10.3+
|
||||
* **Interface**: Graphical Desktop
|
||||
|
||||
Frontend launcher for UT2004 and mods
|
||||
|
||||
[](/software/sula-ut2k4/sula-UT2k4.png)
|
||||
|
||||
### sula:n2n -- n2n Windows interface
|
||||
* **Site**: [sula-n2n](/software/sula-n2n)
|
||||
* **Year**: 2011
|
||||
* **Language**: C++
|
||||
* **System**: Windows XP+
|
||||
* **Interface**: Graphical Desktop
|
||||
|
||||
sula:n2n, or super launcher n2n, is a win32/64 interface to the n2n program -- has a systray and simple dialog.
|
||||
|
||||
[](/software/sula-n2n/systray.png)
|
||||
|
||||
### DokuWiki Plugins
|
||||
[folding@wiki, mandates](software/dokuwiki-plugins)
|
|
@ -7,8 +7,9 @@ html,body {
|
|||
margin: 0; padding: 0;
|
||||
width: 100%; height: 100%;
|
||||
font-size: normal;
|
||||
font-family: "Inconsolata", serif;
|
||||
color: #DDD;
|
||||
font-weight: 400;
|
||||
font-family: 'Source Sans Pro', sans-serif;
|
||||
color: #FFF;
|
||||
background-color: #111;
|
||||
}
|
||||
h1,h2,h3,h4,h5 {
|
||||
|
@ -114,7 +115,7 @@ a {
|
|||
background-size: 8px 8px;
|
||||
}
|
||||
.content_row img {
|
||||
width: 50%;
|
||||
max-width: 50%;
|
||||
text-align: center;
|
||||
display: block;
|
||||
margin: 1em auto;
|
||||
|
@ -372,7 +373,7 @@ th {
|
|||
padding: 0.25em;
|
||||
}
|
||||
td {
|
||||
font-family: "Inconsolata", serif;
|
||||
font-family: "Inconsolata", sans-serif;
|
||||
text-shadow: 0px 0px 2px #111;
|
||||
background-color: rgba(200, 200, 200, 0.2);
|
||||
box-shadow: 0 0 3px #111;
|
||||
|
@ -380,7 +381,7 @@ td {
|
|||
}
|
||||
|
||||
code {
|
||||
font-family: "Inconsolata", serif;
|
||||
font-family: "Inconsolata", sans-serif;
|
||||
font-smooth: never;
|
||||
-webkit-font-smoothing : none;
|
||||
font-smoothing : none;
|
||||
|
@ -407,3 +408,18 @@ pre {
|
|||
box-shadow: 0px 0px 3px #111;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
section {
|
||||
padding-left: 1em;
|
||||
padding-bottom: 0.75em;
|
||||
padding-top: 0.25em;
|
||||
}
|
||||
section p {
|
||||
line-height: 1.5em;
|
||||
}
|
||||
|
||||
section h1 { font-size: 150%; color: #D6A; }
|
||||
section h2 { font-size: 125%; color: #1A6EB1; }
|
||||
section h3 { font-size: 115%; }
|
||||
section h4 { font-size: 105%; }
|
||||
section h5 { font-size: 100%; }
|
||||
|
|