Mercurial Hosting > luan
graph
-
remove use_jettyWed, 14 Feb 2018 16:49:56 -0700, by Franklin Schmidt
-
add request.raw_headWed, 14 Feb 2018 16:41:36 -0700, by Franklin Schmidt
-
serve_for_nginx on port 8081Tue, 13 Feb 2018 22:44:06 -0700, by Franklin Schmidt
-
add Shell_mod.envMon, 12 Feb 2018 19:30:27 -0700, by Franklin Schmidt
-
minorMon, 12 Feb 2018 15:19:00 -0700, by Franklin Schmidt
-
exit on bind conflict, serve "127.0.0.1" for serve_for_nginxMon, 12 Feb 2018 14:55:28 -0700, by Franklin Schmidt
-
fix luanhost security bugSun, 11 Feb 2018 17:13:40 -0700, by Franklin Schmidt
-
minorSun, 11 Feb 2018 16:31:02 -0700, by Franklin Schmidt
-
add serve_for_nginxSun, 11 Feb 2018 03:19:45 -0700, by Franklin Schmidt
-
remove http/implSun, 11 Feb 2018 02:41:23 -0700, by Franklin Schmidt
-
add use_jettySun, 11 Feb 2018 02:34:35 -0700, by Franklin Schmidt
-
add Table.as_tableThu, 08 Feb 2018 22:00:45 -0700, by Franklin Schmidt
-
minorThu, 08 Feb 2018 19:17:57 -0700, by Franklin Schmidt
-
better handlersThu, 08 Feb 2018 19:06:31 -0700, by Franklin Schmidt
-
add back Thread.globalThu, 08 Feb 2018 02:22:51 -0700, by Franklin Schmidt
-
clean up content-typeWed, 07 Feb 2018 23:16:12 -0700, by Franklin Schmidt
-
remove assertionsWed, 07 Feb 2018 17:36:38 -0700, by Franklin Schmidt
-
minorTue, 06 Feb 2018 22:04:47 -0700, by Franklin Schmidt
-
minorTue, 06 Feb 2018 21:25:55 -0700, by Franklin Schmidt
-
minorMon, 05 Feb 2018 22:59:52 -0700, by Franklin Schmidt
-
add http/implMon, 05 Feb 2018 22:33:59 -0700, by Franklin Schmidt
-
remove Http.per_session_pagesMon, 05 Feb 2018 12:37:59 -0700, by Franklin Schmidt
-
put Http.luan in jettyMon, 05 Feb 2018 10:04:07 -0700, by Franklin Schmidt
-
failed attempt to remove Http.per_session_pagesMon, 05 Feb 2018 01:25:42 -0700, by Franklin Schmidt
-
cookie fixesSun, 04 Feb 2018 23:18:51 -0700, by Franklin Schmidt
-
minorSun, 04 Feb 2018 20:53:07 -0700, by Franklin Schmidt
-
remove Http.run_laterSun, 04 Feb 2018 20:34:56 -0700, by Franklin Schmidt
-
change http cookies interfaceSun, 04 Feb 2018 20:01:23 -0700, by Franklin Schmidt
-
change http parameters interfaceSun, 04 Feb 2018 19:25:12 -0700, by Franklin Schmidt
-
minorSun, 04 Feb 2018 18:50:25 -0700, by Franklin Schmidt
-
change http headers interfaceSun, 04 Feb 2018 18:03:37 -0700, by Franklin Schmidt
-
remove /private/ authenticationSun, 04 Feb 2018 17:23:20 -0700, by Franklin Schmidt
-
webserver - change headers to lower caseSun, 04 Feb 2018 17:11:06 -0700, by Franklin Schmidt
-
webserver - support multipart/form-dataThu, 01 Feb 2018 22:06:37 -0700, by Franklin Schmidt
-
webserver - implement cookiesThu, 01 Feb 2018 03:08:21 -0700, by Franklin Schmidt
-
webserver - minorWed, 31 Jan 2018 01:43:50 -0700, by Franklin Schmidt
-
webserver - handle POST paramsWed, 31 Jan 2018 00:29:50 -0700, by Franklin Schmidt
-
webserver - handle GET paramsTue, 30 Jan 2018 23:53:28 -0700, by Franklin Schmidt
-
webserver - threadingTue, 30 Jan 2018 18:02:47 -0700, by Franklin Schmidt
-
webserver - add examples/HeadersTue, 30 Jan 2018 00:55:17 -0700, by Franklin Schmidt
-
webserver - add dir handlingMon, 29 Jan 2018 22:21:59 -0700, by Franklin Schmidt
-
webserver - add FileHandlerMon, 29 Jan 2018 21:31:24 -0700, by Franklin Schmidt
-
webserver - add LogHandlerMon, 29 Jan 2018 19:48:21 -0700, by Franklin Schmidt
-
add webserverMon, 29 Jan 2018 18:49:59 -0700, by Franklin Schmidt
-
add http/jettyMon, 29 Jan 2018 17:50:49 -0700, by Franklin Schmidt
-
add luan.hostSun, 28 Jan 2018 21:36:58 -0700, by Franklin Schmidt
-
cleaner securityWed, 17 Jan 2018 21:44:46 -0700, by Franklin Schmidt
-
fix security bugWed, 17 Jan 2018 20:59:42 -0700, by Franklin Schmidt
-
add json_compressed_string()Tue, 02 Jan 2018 21:30:41 -0700, by Franklin Schmidt
-
add continue statementThu, 14 Dec 2017 01:38:47 -0700, by Franklin Schmidt
-
add Number.float()Mon, 11 Dec 2017 23:36:52 -0700, by Franklin Schmidt
-
minor lucene changesMon, 04 Dec 2017 01:26:57 -0700, by Franklin Schmidt
-
fix securitySun, 26 Nov 2017 21:16:39 -0700, by Franklin Schmidt
-
fix securitySun, 26 Nov 2017 21:08:49 -0700, by Franklin Schmidt
-
minor - uninstall.shSun, 26 Nov 2017 14:48:28 -0700, by Franklin Schmidt
-
include luan stack in LuanException.printStackTrace()Thu, 24 Aug 2017 14:03:36 -0600, by Franklin Schmidt
-
remove env from run.luanMon, 21 Aug 2017 12:06:19 -0600, by Franklin Schmidt
-
improve scriptsMon, 14 Aug 2017 17:39:08 -0600, by Franklin Schmidt
-
remove LuanException.getFullMessage()Mon, 14 Aug 2017 17:00:37 -0600, by Franklin Schmidt
-
check for too many arguments to java fnsFri, 11 Aug 2017 17:57:52 -0600, by Franklin Schmidt
-
luan Rpc uses luan.lib.rpcMon, 07 Aug 2017 23:50:52 -0600, by Franklin Schmidt
-
add RpcErrorMon, 07 Aug 2017 12:35:45 -0600, by Franklin Schmidt
-
start luan/lib/rpcSun, 06 Aug 2017 20:11:11 -0600, by Franklin Schmidt
-
remove json_pretty_string and make json_string somewhat prettyFri, 04 Aug 2017 11:15:53 -0600, by Franklin Schmidt
-
fix JsonToStringFri, 04 Aug 2017 11:06:08 -0600, by Franklin Schmidt
-
add json_pretty_stringThu, 03 Aug 2017 16:57:50 -0600, by Franklin Schmidt
-
improve ParseExceptionThu, 03 Aug 2017 16:21:45 -0600, by Franklin Schmidt
-
add JsonToStringWed, 02 Aug 2017 19:00:24 -0600, by Franklin Schmidt
-
add JsonParserWed, 02 Aug 2017 17:37:59 -0600, by Franklin Schmidt
-
move Parser to luan.lib.parserWed, 02 Aug 2017 15:19:47 -0600, by Franklin Schmidt
-
queryparser now uses parsers.ParserWed, 02 Aug 2017 13:45:06 -0600, by Franklin Schmidt
-
minorWed, 02 Aug 2017 12:36:28 -0600, by Franklin Schmidt
-
fix handling of missing java classTue, 18 Jul 2017 17:54:47 -0600, by Franklin Schmidt
-
minorTue, 04 Jul 2017 02:41:03 -0600, by Franklin Schmidt
-
make thread scheduler publicMon, 03 Jul 2017 04:22:46 -0600, by Franklin Schmidt
-
add "bash" Io schemeMon, 26 Jun 2017 23:52:59 -0600, by Franklin Schmidt
-
add Thread.sleep()Mon, 19 Jun 2017 16:06:12 -0600, by Franklin Schmidt
-
fix web logging timezoneSun, 11 Jun 2017 19:19:08 -0600, by Franklin Schmidt
-
minor fixSun, 04 Jun 2017 19:26:27 -0600, by Franklin Schmidt
-
make logging more flexibleFri, 02 Jun 2017 16:42:15 -0600, by Franklin Schmidt
-
add Table.is_empty() and Table.size()Sun, 21 May 2017 16:12:22 -0600, by Franklin Schmidt
-
improve Thread.globalWed, 05 Apr 2017 16:24:02 -0600, by Franklin Schmidt
-
add Time.time_zoneWed, 29 Mar 2017 19:54:45 -0600, by Franklin Schmidt
-
fix Time bugsTue, 28 Mar 2017 20:58:28 -0600, by Franklin Schmidt
-
fix parser errorsSun, 05 Mar 2017 15:25:23 -0700, by Franklin Schmidt
-
add Luan.hash_code() and Table.hash_value()Tue, 21 Feb 2017 20:27:17 -0700, by Franklin Schmidt
-
add "response_code" and "response_message" to http url luan exceptionsTue, 24 Jan 2017 14:14:43 -0700, by Franklin Schmidt
-
fix multiline statementsSun, 08 Jan 2017 21:13:45 -0700, by Franklin Schmidt
-
documentationSun, 08 Jan 2017 17:23:06 -0700, by Franklin Schmidt
-
add end_do, end_for, end_function, end_if, end_whileMon, 02 Jan 2017 21:28:30 -0700, by Franklin Schmidt
-
update documentation for last changeFri, 30 Dec 2016 13:13:16 -0700, by Franklin Schmidt
-
check for too many argumentsThu, 29 Dec 2016 21:26:45 -0700, by Franklin Schmidt
-
change module naming conventionMon, 26 Dec 2016 22:29:36 -0700, by Franklin Schmidt
-
improve url error handlingMon, 19 Dec 2016 01:38:21 -0700, by Franklin Schmidt
-
minorMon, 19 Dec 2016 01:18:46 -0700, by Franklin Schmidt
-
improve url delete error handlingMon, 19 Dec 2016 01:05:10 -0700, by Franklin Schmidt
-
improve error messageSat, 26 Nov 2016 20:51:14 -0700, by Franklin Schmidt
-
add Io checksum and use it for pushMon, 21 Nov 2016 22:48:43 -0700, by Franklin Schmidt
-
fix http content typeTue, 15 Nov 2016 19:19:19 -0700, by Franklin Schmidt
-
http setCharacterEncoding "UTF-8"Thu, 10 Nov 2016 22:47:06 -0700, by Franklin Schmidt
-
eliminate other headThu, 10 Nov 2016 21:37:04 -0700, by Franklin Schmidt
-
add Time.countThu, 10 Nov 2016 21:15:28 -0700, by Franklin Schmidt
-
tutorial fixThu, 10 Nov 2016 20:41:03 -0700, by Franklin Schmidt
-
better handling of BindExceptionThu, 10 Nov 2016 20:36:54 -0700, by Franklin Schmidt
-
version 0.22 take 2Thu, 10 Nov 2016 20:06:33 -0700, by Franklin Schmidt
-
remove JBufferThu, 10 Nov 2016 03:08:20 -0700, by Franklin Schmidt
-
rename putQ() to put()Thu, 10 Nov 2016 02:37:15 -0700, by Franklin Schmidt
-
remove old JBuffer.put()Thu, 10 Nov 2016 02:33:09 -0700, by Franklin Schmidt
-
remove JBuffer.skip()Thu, 10 Nov 2016 02:29:01 -0700, by Franklin Schmidt
-
remove JBuffer.space()Thu, 10 Nov 2016 02:13:28 -0700, by Franklin Schmidt
-
fix use of HttpGenerator._bufferThu, 10 Nov 2016 01:23:37 -0700, by Franklin Schmidt
-
fix use of HttpGenerator._contentThu, 10 Nov 2016 00:42:51 -0700, by Franklin Schmidt
-
fix BufferUtil.newBuffer()Thu, 10 Nov 2016 00:23:05 -0700, by Franklin Schmidt
-
fix use of HttpGenerator._reasonThu, 10 Nov 2016 00:08:39 -0700, by Franklin Schmidt
-
fix use of HttpGenerator._headerWed, 09 Nov 2016 05:48:10 -0700, by Franklin Schmidt
-
fix JBuffer.compact()Wed, 09 Nov 2016 04:36:05 -0700, by Franklin Schmidt
-
remove JBuffer.readFrom()Wed, 09 Nov 2016 03:09:37 -0700, by Franklin Schmidt
-
remove JBuffer.getIndex()Wed, 09 Nov 2016 02:08:33 -0700, by Franklin Schmidt
-
fix JBuffer.getByteBuffer()Wed, 09 Nov 2016 02:04:02 -0700, by Franklin Schmidt
-
remove JBuffer.setGetIndex()Tue, 08 Nov 2016 05:54:53 -0700, by Franklin Schmidt
-
fix JBuffer.get()Tue, 08 Nov 2016 05:51:00 -0700, by Franklin Schmidt
-
remove JBuffer.poke()Tue, 08 Nov 2016 05:39:33 -0700, by Franklin Schmidt
-
remove HttpGenerator._methodTue, 08 Nov 2016 04:17:22 -0700, by Franklin Schmidt
-
remove AbstractGeneratorTue, 08 Nov 2016 04:05:04 -0700, by Franklin Schmidt
-
minorTue, 08 Nov 2016 01:19:36 -0700, by Franklin Schmidt
-
minorTue, 08 Nov 2016 01:08:20 -0700, by Franklin Schmidt
-
remove JBuffer.toString()Tue, 08 Nov 2016 01:03:02 -0700, by Franklin Schmidt
-
fix JBuffer.array()Tue, 08 Nov 2016 00:32:02 -0700, by Franklin Schmidt
-
remove JBuffer.peek()Tue, 08 Nov 2016 00:27:16 -0700, by Franklin Schmidt
-
remove JBuffer.get(int)Tue, 08 Nov 2016 00:18:45 -0700, by Franklin Schmidt
-
remove JBuffer.sliceFrom()Mon, 07 Nov 2016 23:49:41 -0700, by Franklin Schmidt
-
remove unused JBuffer methodsMon, 07 Nov 2016 23:34:48 -0700, by Franklin Schmidt
-
remove BufferMon, 07 Nov 2016 23:15:42 -0700, by Franklin Schmidt
-
remove other Buffer implementationsMon, 07 Nov 2016 22:51:09 -0700, by Franklin Schmidt
-
add JBufferMon, 07 Nov 2016 22:39:39 -0700, by Franklin Schmidt
-
tutorial fixSun, 06 Nov 2016 14:54:43 -0700, by Franklin Schmidt
-
remove buffer markingFri, 04 Nov 2016 02:26:54 -0600, by Franklin Schmidt
-
remove Buffer.mark(int)Fri, 04 Nov 2016 01:10:12 -0600, by Franklin Schmidt
-
remove Buffer.reset()Fri, 04 Nov 2016 01:03:25 -0600, by Franklin Schmidt
-
make View package localFri, 04 Nov 2016 00:47:23 -0600, by Franklin Schmidt
-
remove Buffer.asArray()Thu, 03 Nov 2016 23:04:11 -0600, by Franklin Schmidt
-
remove Buffer.isImmutable()Thu, 03 Nov 2016 22:55:28 -0600, by Franklin Schmidt
-
rename Buffer.length() to remaining()Thu, 03 Nov 2016 22:16:11 -0600, by Franklin Schmidt
-
rename Buffer.hasContent() to hasRemaining()Thu, 03 Nov 2016 21:54:34 -0600, by Franklin Schmidt
-
minorThu, 03 Nov 2016 21:42:41 -0600, by Franklin Schmidt
-
remove HttpGenerator.returnBuffers()Thu, 03 Nov 2016 21:09:57 -0600, by Franklin Schmidt
-
remove HttpGenerator.reset()Thu, 03 Nov 2016 21:02:59 -0600, by Franklin Schmidt
-
remove HttpParser._buffersThu, 03 Nov 2016 04:00:25 -0600, by Franklin Schmidt
-
minorThu, 03 Nov 2016 03:19:50 -0600, by Franklin Schmidt
-
remove Buffer.asReadOnlyBuffer()Thu, 03 Nov 2016 02:04:40 -0600, by Franklin Schmidt
-
remove Buffer.isVolatile()Thu, 03 Nov 2016 01:10:09 -0600, by Franklin Schmidt
-
remove Buffer.equalsIgnoreCase()Thu, 03 Nov 2016 00:55:20 -0600, by Franklin Schmidt
-
remove HttpParser.reset()Thu, 03 Nov 2016 00:23:04 -0600, by Franklin Schmidt
-
remove Buffer.asImmutableBuffer()Wed, 02 Nov 2016 23:58:37 -0600, by Franklin Schmidt
-
remove Buffer.CaseInsensitveWed, 02 Nov 2016 23:52:33 -0600, by Franklin Schmidt
-
remove View.CaseInsensitiveWed, 02 Nov 2016 23:46:43 -0600, by Franklin Schmidt
-
remove BufferCacheTue, 01 Nov 2016 03:46:28 -0600, by Franklin Schmidt
-
MimeTypes uses StringCacheTue, 01 Nov 2016 03:44:46 -0600, by Franklin Schmidt
-
HttpHeaders uses StringCacheTue, 01 Nov 2016 01:04:46 -0600, by Franklin Schmidt
-
minorMon, 31 Oct 2016 22:49:25 -0600, by Franklin Schmidt
-
HttpHeaderValues uses StringCacheMon, 31 Oct 2016 22:24:41 -0600, by Franklin Schmidt
-
start replacing BufferCache with StringCacheMon, 31 Oct 2016 03:33:42 -0600, by Franklin Schmidt
-
remove HttpSchemesMon, 24 Oct 2016 05:37:24 -0600, by Franklin Schmidt
-
minorMon, 24 Oct 2016 01:56:08 -0600, by Franklin Schmidt
-
remove returnBuffer()Mon, 24 Oct 2016 01:38:00 -0600, by Franklin Schmidt
-
remove recycle()Mon, 24 Oct 2016 01:26:16 -0600, by Franklin Schmidt
-
remove EncodedHttpURIMon, 24 Oct 2016 01:08:34 -0600, by Franklin Schmidt
-
simplify URIUtilMon, 24 Oct 2016 01:06:33 -0600, by Franklin Schmidt
-
simplify StringUtilMon, 24 Oct 2016 00:47:24 -0600, by Franklin Schmidt
-
remove PooledBuffersSun, 23 Oct 2016 23:59:08 -0600, by Franklin Schmidt
-
simplify Buffer codeSun, 23 Oct 2016 22:23:50 -0600, by Franklin Schmidt
-
remove AbstractBuffersSun, 23 Oct 2016 21:28:56 -0600, by Franklin Schmidt
-
remove BuffersFactorySun, 23 Oct 2016 17:43:49 -0600, by Franklin Schmidt
-
remove HttpBuffersImplSun, 23 Oct 2016 17:40:20 -0600, by Franklin Schmidt
-
simplify Buffers codeSun, 23 Oct 2016 17:21:20 -0600, by Franklin Schmidt
-
remove HttpBuffersSun, 23 Oct 2016 02:42:05 -0600, by Franklin Schmidt
-
better handling of BindExceptionSat, 22 Oct 2016 23:00:57 -0600, by Franklin Schmidt
-
minorSat, 22 Oct 2016 22:24:47 -0600, by Franklin Schmidt
-
simplify sslSat, 22 Oct 2016 21:56:44 -0600, by Franklin Schmidt
-
minorSat, 22 Oct 2016 20:56:41 -0600, by Franklin Schmidt
-
simplify handle()Wed, 19 Oct 2016 04:22:51 -0600, by Franklin Schmidt
-
simplify ResponseWed, 19 Oct 2016 00:59:46 -0600, by Franklin Schmidt
-
remove Request.getReader()Tue, 18 Oct 2016 23:01:00 -0600, by Franklin Schmidt
-
simplify RequestTue, 18 Oct 2016 22:43:17 -0600, by Franklin Schmidt
-
simplify ConnectorTue, 18 Oct 2016 21:22:53 -0600, by Franklin Schmidt
-
remove Server.GracefulTue, 18 Oct 2016 18:38:05 -0600, by Franklin Schmidt
-
remove ContextHandler.ContextTue, 18 Oct 2016 16:34:18 -0600, by Franklin Schmidt
-
remove ScopedHandlerTue, 18 Oct 2016 15:54:54 -0600, by Franklin Schmidt
-
minorTue, 18 Oct 2016 15:23:25 -0600, by Franklin Schmidt
-
simplify ContextHandlerTue, 18 Oct 2016 00:22:46 -0600, by Franklin Schmidt
-
remove special attribute handlingMon, 17 Oct 2016 05:50:47 -0600, by Franklin Schmidt
-
remove useless listenersMon, 17 Oct 2016 05:39:54 -0600, by Franklin Schmidt
-
remove ContextHandler._attributesMon, 17 Oct 2016 05:22:25 -0600, by Franklin Schmidt
-
remove Server._attributesMon, 17 Oct 2016 04:59:15 -0600, by Franklin Schmidt
-
remove RandomAccessFileBufferMon, 17 Oct 2016 04:44:53 -0600, by Franklin Schmidt
-
remove HttpOutputSun, 16 Oct 2016 23:47:23 -0600, by Franklin Schmidt
-
simplify HttpWriterSun, 16 Oct 2016 23:11:15 -0600, by Franklin Schmidt
-
simplify AbstractGeneratorSun, 16 Oct 2016 22:58:41 -0600, by Franklin Schmidt
-
remove GeneratorSun, 16 Oct 2016 21:40:27 -0600, by Franklin Schmidt
-
remove HttpInputSun, 16 Oct 2016 21:10:25 -0600, by Franklin Schmidt
-
simplify HttpParserSun, 16 Oct 2016 21:01:26 -0600, by Franklin Schmidt
-
remove ParserSun, 16 Oct 2016 18:01:39 -0600, by Franklin Schmidt
-
simplify ChannelEndPointSun, 16 Oct 2016 14:53:43 -0600, by Franklin Schmidt
-
remove __currentConnectionSun, 16 Oct 2016 01:31:05 -0600, by Franklin Schmidt
-
remove IdleTimeoutHandlerSun, 16 Oct 2016 01:14:44 -0600, by Franklin Schmidt
-
simplify BlockingChannelConnectorSun, 16 Oct 2016 01:10:02 -0600, by Franklin Schmidt
-
remove Connection.isIdle()Sat, 15 Oct 2016 23:27:08 -0600, by Franklin Schmidt
-
simplify AbstractConnectionSat, 15 Oct 2016 23:03:00 -0600, by Franklin Schmidt
-
simplify AbstractHttpConnectionSat, 15 Oct 2016 22:42:05 -0600, by Franklin Schmidt
-
minorFri, 14 Oct 2016 13:06:06 -0600, by Franklin Schmidt
-
remove ConnectorSelectorManagerFri, 14 Oct 2016 05:24:18 -0600, by Franklin Schmidt
-
remove SelectChannelEndPoint.setConnection()Fri, 14 Oct 2016 02:44:02 -0600, by Franklin Schmidt
-
remove ConnectedEndPointFri, 14 Oct 2016 02:37:53 -0600, by Franklin Schmidt
-
remove getConnection()Fri, 14 Oct 2016 02:30:48 -0600, by Franklin Schmidt
-
remove ByteArrayEndPointFri, 14 Oct 2016 02:26:05 -0600, by Franklin Schmidt
-
handle() returns voidFri, 14 Oct 2016 02:19:21 -0600, by Franklin Schmidt
-
remove SelectSetFri, 14 Oct 2016 01:03:47 -0600, by Franklin Schmidt
-
replace SelectChannelEndPoint._state with isDispatchedFri, 14 Oct 2016 00:15:28 -0600, by Franklin Schmidt
-
remove SelectChannelEndPoint._interestOpsThu, 13 Oct 2016 22:56:15 -0600, by Franklin Schmidt
-
make SelectChannelEndPoint._key finalThu, 13 Oct 2016 22:03:24 -0600, by Franklin Schmidt
-
simplify ChannelEndPointThu, 13 Oct 2016 21:29:19 -0600, by Franklin Schmidt
-
remove onClose()Thu, 13 Oct 2016 18:53:26 -0600, by Franklin Schmidt
-
simplify SelectorManagerThu, 13 Oct 2016 18:48:20 -0600, by Franklin Schmidt
-
remove SelectSet._endPointsThu, 13 Oct 2016 18:29:36 -0600, by Franklin Schmidt