- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
-define(foo, foo).
-define(bar, bar).
-define(baz, baz).
...
foo(A, B) ->
gen_server:call(?MODULE, {?foo, A, B}).
...
handle_call({?foo, A, B}, _From, State) ->
...
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
-define(foo, foo).
-define(bar, bar).
-define(baz, baz).
...
foo(A, B) ->
gen_server:call(?MODULE, {?foo, A, B}).
...
handle_call({?foo, A, B}, _From, State) ->
...
Паттерн "мирный атом в каждый call".
−25
-
Вай, нах!
мы столько лет уже здесь дрочимся, почти родными стали. моя девушка - твоя девушка, моя хата - твоя хата!
Не надоело ещё скрытничать? Скажите, кто под кем сидит? А ну.
−24
Сымитировал бурный оргазм, проверь.
Проверил?
−30
Да не стертор я, заебали.
−24
Путин, уходи, нахуй!..
Заебал
−25
Никто не заметил связи между уходами долбоёба-стертора, и внезапным появлением kegdan?
Кого наебать решил, паскуда?
−27
Политота.
Ребята, девчонки и петухи. Завтра будем голосовать, выбирать себе хозяина еще на 4 года. У кого какие соображение на этот счет?
−5
Внимание!
Сегодня день числа Пи.
Давайте все дружно поздравим 3.14159265дара 14 марта в 1:59:27
+1
#!/usr/bin/env escript
%% -*- erlang -*-
%%! -smp enable -debug verbose
-include_lib("xmerl/include/xmerl.hrl").
-export([main/1, install_mod/1]).
-record(mod_info, { name :: string()
, links :: [{file:filepath(), file:filepath()}]
}).
main(Args) ->
[ModeDir, GameDir] = Args,
VirtualInstall = filename:absname(ModeDir ++ "/VirtualInstall/"),
RealPath = filename:absname(GameDir),
VirtualModCfg = VirtualInstall ++ "/VirtualModConfig.xml",
io:format( "Mode dir: ~p~n"
"Install dir: ~p~n"
"Current dir: ~p~n"
, [VirtualInstall, RealPath, element(2, file:get_cwd())]),
{Doc, []} = xmerl_scan:file(VirtualModCfg),
Mods = get_mods(VirtualInstall, RealPath, Doc),
[install_mod(I) || I <- Mods],
ok.
get_mods(VirtPath, RealPath, Doc) ->
[ #mod_info
{ name = xpath("/modInfo/@modName", Mod)
, links = get_links(VirtPath, RealPath, Mod)
}
|| Mod <- xmerl_xpath:string( "/virtualModActivator/modList/modInfo"
, Doc)].
get_links(VirtPath, RealPath, Doc) ->
[{ filename:absname( unixify(xpath("/fileLink/@realPath", FL))
, VirtPath)
, filename:absname( unixify(xpath("/fileLink/@virtualPath", FL))
, RealPath)
}
|| FL <- xmerl_xpath:string( "//fileLink[isActive = 'True']"
, Doc)].
xpath(Query, Doc) ->
case xmerl_xpath:string(Query, Doc) of
[#xmlAttribute{value = Val}] ->
Val
end.
unixify(Path) ->
lists:map(
fun($\\) -> $/;
(A) -> A
end,
Path).
install_mod(#mod_info{name = Name, links = Links}) ->
io:format("Installing ~s...~n", [Name]),
lists:foreach(
fun({From, To}) ->
filelib:ensure_dir(To),
file:make_symlink(From, To)
end,
Links).
+6
https://www.opennet.ru/opennews/art.shtml?num=48234
Создатели редактора кода Atom из компании GitHub развивают новый
экспериментальный текстовый редактор Xray, который также построен
с использованием фреймворка Electron, но примечателен тем, что для
повышения надёжности и производительности ядро редактора с
реализацией базовой логики написано на языке Rust, интерфейс
оформлен на JavaScript/CSS с применением фреймворка React, а для
отрисовки текста применяется WebGL.
Чем вообще руководствуются люди, делающие IDE из кусков браузера? Нахрена там JavaScript/CSS, нахрена там React? Еще и Rust приплели зачем-то.
Может это чтоб всякие фронтенд-разрабы возрадовались, потому что теперь их умение писать хуиту на жабаскрипте применимо для написания говноплагинов к этой хуите? А как же бекенд? Пусть дополнительно встроят туда PHP MySQL чтоб никто не ушел обиженным.