- 1
- 2
- 3
- 4
Ку всем
Посоны
Как привязать БД для авторизации к html странице?
Не php а htmlНашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
Ку всем
Посоны
Как привязать БД для авторизации к html странице?
Не php а htmlНаписал мне Вася Пупкин, дипломированный специалист в области информационных технологий
+1
Верните мой WCT!
0
// Private method of server, which dispatches active incoming connection.
// Function receives address string and uses it as key to retrieve cached connection.
// Fetched connection is getting read by bufio.Reader, parsed to header and data string if it's size was pointed in header.
// Next, the parsed data handles by protocol and writes a response message.
// The process turns in loop until whether input stream will get an EOF or an error will be occurred.
// In the last case it will be return some error message to a client.
// Anyway, at the end connection will be broken up.
func (server *Server) dispatch(address string) {
	defer server.free_chan()
	if server.Stat.Connections[address] != nil {
		server.Stat.Connections[address].State = "conn_new_cmd"
	}
	connection := server.connections[address]
	connectionReader := bufio.NewReader(connection)
	// let's loop the process for open connection, until it will get closed.
	for {
		// let's read a header first
		if server.Stat.Connections[address] != nil {
			server.Stat.Connections[address].State = "conn_read"
		}
		received_message, n, err := readRequest(connectionReader, -1)
		if err != nil {
			if server.Stat.Connections[address] != nil {
				server.Stat.Connections[address].State = "conn_swallow"
			}
			if err == io.EOF {
				server.Logger.Info("Input stream has got EOF, and now is being closed.")
				server.breakConnection(connection)
				break
			}
			server.Logger.Warning("Dispatching error: ", err, " Message: ", received_message)
			if !server.makeResponse(connection, []byte("ERROR\r\n"), 5){
				break
			}
		} else {
			if server.Stat.Connections[address] != nil {
				server.Stat.Connections[address].Cmd_hit_ts = time.Now().Unix()
			}
			// Here the message should be handled
			server.Stat.Read_bytes += uint64(n)
			parsed_request := protocol.ParseProtocolHeader(string(received_message[ : n - 2]))
			server.Logger.Info("Header: ", *parsed_request)
			if (parsed_request.Command() == "cas" || parsed_request.Command() == "gets") && server.cas_disabled ||
			   parsed_request.Command() == "flush_all" && server.flush_disabled{
				err_msg := parsed_request.Command() + " command is forbidden."
				server.Logger.Warning(err_msg)
				if server.Stat.Connections[address] != nil {
					server.Stat.Connections[address].State = "conn_write"
				}
				err_msg = strings.Replace(protocol.CLIENT_ERROR_TEMP, "%s", err_msg, 1)
				server.makeResponse(connection, []byte(err_msg), len(err_msg))
				continue
			}
			if parsed_request.DataLen() > 0 {
				if server.Stat.Connections[address] != nil {
					server.Stat.Connections[address].State = "conn_nread"
				}
				received_message, _, err := readRequest(connectionReader, parsed_request.DataLen())
				if err != nil {
					server.Logger.Error("Error occurred while reading data:", err)
					server.breakConnection(connection)
					break
				}
				parsed_request.SetData(received_message[0 : ])
			}
			server.Logger.Info("Start handling request:", *parsed_request)
			response_message, err := parsed_request.HandleRequest(server.storage, server.Stat)
			server.Logger.Info("Server is sending response:\n", string(response_message[0 : len(response_message)]))
			// if there is no flag "noreply" in the header:
			if parsed_request.Reply() {
				if server.Stat.Connections[address] != nil {
					server.Stat.Connections[address].State = "conn_write"
				}
				server.makeResponse(connection, response_message, len(response_message))
			}
			if err != nil {
				server.Logger.Error("Impossible to send response:", err)
				server.breakConnection(connection)
				break
			}
		}
		if server.Stat.Connections[address] != nil {
			server.Stat.Connections[address].State = "conn_waiting"
		}
	}
}memcache на go
0
@ ln -s ${PWD}/${OUTPUT} ../${OUTPUT}; \
make ${OUTPUT};пытался давеча мэйкфайлы окультуривать. в частности штапеля ln'ов (для девелопмента/отладки искусственное окружение создают) на что то более внятное поменять. только сегодня с утра наконец "увидел" почему мои изменения нифига не работали.
+10
https://pbs.twimg.com/media/CatwlfiUEAAT6-D.jpg
+1
<span style="font-size: 16px; line-height: 12px;">
  <b style="color: rgb(255, 102, 102);background-color:rgb(255, 204, 204);">
    <span <a href="news/"><b style="color:rgb(153, 102, 0);">Новости</b></span>
________________________________________________________</b></span>html код на одном сайте
0
parent = Folder.get_parent->do
while not [parent is null] : {
    current = parent
    parent  =  Folder.get_parent->do
    break
}так вот ищут корневую папку
−2
type Speaker interface {
    SayHello()
}
type Human struct {
    Greeting string
}
func (Human) SayHello() {
    fmt.Println("Hello")
}
...
var s Speaker
s = Human{Greeting: "Hello"}
s.SayHello()Отсюда: https://habrahabr.ru/post/276981/
−2
{{#ifexpr:{{{1|0}}}<=1|{{ {{{2|}}}|{{#expr:{{{1|1}}}+{{{3}}} }} }}|{{Numbered sequence/1|{{#expr:floor ({{{1|0}}}/2)}}|{{{2|}}}|{{{3}}} }}{{Numbered sequence/1|{{#expr:-floor (-{{{1|0}}}/2)}}|{{{2|}}}|{{#expr:floor ({{{1|0}}}/2)+{{{3}}} }} }} }}
{{#ifexpr:{{{1|0}}}<=1|{{ {{{2|}}}|{{#expr:{{{1|1}}}+{{{3}}} }} }}|{{Numbered sequence/2|{{#expr:floor ({{{1|0}}}/2)}}|{{{2|}}}|{{{3}}} }}{{Numbered sequence/2|{{#expr:-floor (-{{{1|0}}}/2)}}|{{{2|}}}|{{#expr:floor ({{{1|0}}}/2)+{{{3}}} }} }} }}
...
{{#ifexpr:{{{1|0}}}<=1|{{ {{{2|}}}|{{#expr:{{{1|1}}}+{{{3}}} }} }}|{{Numbered sequence/9|{{#expr:floor ({{{1|0}}}/2)}}|{{{2|}}}|{{{3}}} }}{{Numbered sequence/9|{{#expr:-floor (-{{{1|0}}}/2)}}|{{{2|}}}|{{#expr:floor ({{{1|0}}}/2)+{{{3}}} }} }} }}
{{#ifexpr:{{{1|0}}}<=1|{{ {{{2|}}}|{{#expr:{{{1|1}}}+{{{3}}} }} }}|<span style="color:red">Превышено количество включений — 1024</span>}}Циклы нельзя, никаких переменных нельзя, только параметры. Казалось бы, ничего страшного — так и рекурсии тоже нельзя!
+1
-- Few Scum
import Data.Char
import Text.Read
import Control.Applicative
import Data.Ratio
import Numeric
import Data.List
import Data.Maybe
data Token
    =TLetter Char
    |TNumf Rational
    |TOp Char
    |LBrace
    |RBrace
    deriving (Show, Eq)
data Expr
    =Letter Char
    |Numf Rational
    |Op Char Expr Expr
    |Diff Expr
instance Show Expr where
    show (Letter c)     = [c]
    show (Op c el er)   = '(' : show el ++ ')' :
        c : '(' : show er ++ ")"
    show (Numf v)       = show $ toDouble v
    show (Diff e)       = '(' : show e ++ ")'"
toDouble r = fromRational r :: Double
readUnsignedRationalMaybe f = getParseResult $ parseValue f where
    parseValue f = {- readSigned -} readFloat f :: [(Rational, String)]
    getParseResult [(value, "")] = Just value
    getParseResult _ = Nothing
-- Разбиваем строку на элементы, возаращает перевернутый список токенов
tokenize ""                     = Nothing
tokenize sourceExpressionString = tok [] sourceExpressionString where
    tok [] (c:s)
        | c == '-'                  = tok [TOp '-', TNumf 0] s
    tok r@(LBrace:_) (c:s)
        | c == '-'                  = tok (TOp '-':TNumf 0:r) s
    tok r (c:s)
        | c == '('                  = tok (LBrace:r) s
        | c == ')'                  = tok (RBrace:r) s
        | isLetter c                = tok (TLetter c:r) s
        | isOperation c             = tok (TOp c:r) s
        | isNumber c                = parseNumf r (c:s)
    tok r ""                        = Just r
    tok resultParsedTokens sourceExpressionString = Nothing
    isOperation     = (`elem` "+-*/")
    isNumf c        = isNumber c || c == '.'
    parseNumf r s   = maybeNumber >>= makeResult where
        (numberString, tail) = span isNumf s
        maybeNumber = readUnsignedRationalMaybe numberString--readMaybe numberString
        makeResult number = tok (TNumf number:r) tail
-- Дерево выражений из списка токенов
parse reversedTokens             = reversedTokens >>= makeTree where
    priorityOps         = ["+-","/*"]
    subExpr             = splitIntoOperationAndSubExpressions
    splitIntoOperationAndSubExpressions reversedTokens =
        id =<< find isJust (map (findOp reversedTokens [] 0) priorityOps)
    findOp (LBrace:_) _ 0 _         = Nothing -- dont checked on left expression, probably can safety removed
    findOp (RBrace:l) r b ops       = findOp l (RBrace:r) (b+1) ops
    findOp (LBrace:l) r b ops       = findOp l (LBrace:r) (b-1) ops
    findOp (TOp c:l) r 0 ops
        | c `elem` ops              = Just (c, l, reverse r)
        | otherwise                 = findOp l (TOp c:r) 0 ops
    findOp leftSubExpression [] b operationsForFind
        | b > 0                     = Nothing
    findOp (c:l) r b ops            = findOp l (c:r) b ops
    findOp [] rightSubExpression braceAmount operationsForFind = Nothing
    makeTree reversedTokens     = mt reversedTokens $ subExpr reversedTokens
    mt t@(RBrace:tt) Nothing
        | last t == LBrace      = mt (init tt) $ subExpr (init tt)
    mt [TLetter v] Nothing      = Just $ Letter v
    mt [TNumf v] Nothing        = Just $ Numf v
    mt _ Nothing                = Nothing
    mt _ (Just (o, l, r))       = makeOperationExpression leftExpressionTree rightExpressionTree o where
        leftExpressionTree          = mt l $ subExpr l
        rightExpressionTree         = mt r $ subExpr r
        makeOperationExpression = moe
        moe Nothing _ _         = Nothing
        moe _ Nothing _         = Nothing
        moe (Just leftExpressionTree) (Just rightExpressionTree) operation = Just $ Op operation leftExpressionTree rightExpressionTree
-- Простейшее упрощение выражений
firstSimplify e     = simplifyTreeHeightTimes <$> e where
    stepSimplify = fs
    fs (Op '*' e (Numf 1))           = e
    fs (Op '*' (Numf 1) e)           = e
    fs (Op '+' e (Numf 0))           = e
    fs (Op '+' (Numf 0) e)           = e
    fs (Op '/' e (Numf 1))           = e
    fs (Op '-' e (Numf 0))           = e
    fs (Op '*' (Numf 0) _)           = Numf 0
    fs (Op '*' _ (Numf 0))           = Numf 0
    fs (Op '/' (Numf 0) _)           = Numf 0
    fs (Op '/' (Letter l) (Letter r))
        | l == r                     = Numf 1
    fs (Op '-' (Letter l) (Letter r))
            Новая Специальная Олимпиада объявляется открытой.
https://ideone.com/Bottp0
Реализовать поиск производной по выражению на любом языке. У кого получится компактнее, правильнее и больше функционала, тот и победил. Заявлять кандидата в победители (код и его автора) можно несколько раз если код улучшил или написал на другом языке. Призов, кроме почета и приятного времяпрепровождения, - не будет
Если кто-то что-нибудь поломает, то я буду очень рад.
Пока упрощение не работает на полную катушку и из функций производных только +-*/
Мой друг обещает ещё версию на крестах подогнать.