- 1
- 2
- 3
Внимание!
Сегодня день числа Пи.
Давайте все дружно поздравим 3.14159265дара 14 марта в 1:59:27
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−5
Внимание!
Сегодня день числа Пи.
Давайте все дружно поздравим 3.14159265дара 14 марта в 1:59:27
+2
Pyhton 2:
>>> (2**54/1) + 10 - 10 == 2**54
True
>>> (2**64/1) + 10 == 2**64
False
Pyhton 3:
>>> (2**54/1) + 10 - 10 == 2**54
False
>>> (2**64/1) + 10 == 2**64
True
Pyhton 2: https://ideone.com/iqwl8L
Pyhton 3: https://ideone.com/ltG9Fq
Ну охуеть теперь.
x + 10 - 10 != x в общем случае - это норма?
Я всё понимаю - тяжёлое детство, инты, прибитые к железу, но на кой чёрт в современных интерпретируемых языках такое говнище?
0
public function insert(array $data)
{
$hstoreData = array();
if (isset($data['description'])) {
$hstoreData['description'] = $data['description'];
unset($data['description']);
}
if (isset($data['developer'])) {
$hstoreData['developer'] = $data['developer'];
unset($data['developer']);
}
if (isset($data['localizer'])) {
$hstoreData['localizer'] = $data['localizer'];
unset($data['localizer']);
}
if (isset($data['gameplay_video'])) {
$hstoreData['gameplay_video'] = $data['gameplay_video'];
unset($data['gameplay_video']);
}
if (isset($data['news_community_id'])) {
$hstoreData['news_community_id'] = $data['news_community_id'];
unset($data['news_community_id']);
}
if (isset($data['bg_color'])) {
$hstoreData['bg_color'] = $data['bg_color'];
unset($data['bg_color']);
}
if (isset($data['bg_image'])) {
$hstoreData['bg_image'] = $data['bg_image'];
unset($data['bg_image']);
}
if (isset($data['bg_link'])) {
$hstoreData['bg_link'] = $data['bg_link'];
unset($data['bg_link']);
}
$result = parent::insert($data);
$this->updateByID($result, $hstoreData);
return $result;
}
Это зачем, интересно?
+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 чтоб никто не ушел обиженным.
+1
protocol Multi {
associatedtype T
associatedtype U
func printSelf()
}
extension Multi where T == Int, U == Float {
func printSelf() {
print("Int & Float!")
}
}
extension Multi where T == String, U == Int {
func printSelf() {
print("String & Int!")
}
}
extension Multi {
func printSelf() {
print("Unknown")
}
}
class MultiImplementationIntFloat: Multi {
typealias T = Int
typealias U = Float
}
class MultiImplementationStringInt: Multi {
typealias T = String
typealias U = Int
}
class MultiImplementationInvalid: Multi {
typealias T = Float
typealias U = String
}
let m1 = MultiImplementationIntFloat()
m1.printSelf()
let m2 = MultiImplementationStringInt()
m2.printSelf()
let m3 = MultiImplementationInvalid()
m3.printSelf()
Multimethods в Swift с проверкой в compile-time
0
using System;
public class Test
{
class R { }
class A : R { }
class B : R { }
static void pituh(A x, R y){
Console.WriteLine("A R");
}
static void pituh(R x, B y){
Console.WriteLine("R B");
}
static void pituh(R x, R y){
Console.WriteLine("R R");
}
static void d(R x, R y)
{
dynamic a = x;
dynamic b = y;
pituh(a, b);
}
public static void Main(string[] args)
{
d(new A(),new R());
d(new A(),new B()); //Runtime error
d(new B(),new A()); //Runtime error
}
}
Пробуем мультиметоды в до-диезе.
https://ideone.com/Jm5LJA
0
// Имитируем бурную деятельность.
Thread.Sleep(500);
// В реальности здесь будут байты собранной dll-ки.
return Encoding.UTF8.GetBytes(_fileName);
https://github.com/UKST/compiler/blob/074760eb20a13238f1d358a27305617291351854/Compiler.Lib/Compiler.cs#L16
−7
Ещё один тред обсуждения несбыточного мифического «нового ГК»
Такие мысли появиласть в результате флеймов с 1024-- и вообще.
На новом говнокоде вместо модерации должены быть:
1. Механизм скрыльничества на уровне сайта/api
2. Как на имиджбордах, все посты и комменты должны подчищаться из базы после определенного скрока давности, чтобы не нужно было вмешательство никаких админов и модераторов. Это хорошо решает проблему любых набегов. Но некоторые посты пользователи могут пометить как важные, которые не следует удалять. Для этого они должны выразить такое желание в явной форме, например, нажимая на кнопку «cохранить». Проблема в том, что ботоводы могут сохранять свои комменты и посты скриптами, поэтому нужно ввести хорошую капчу и какой-то сложно вычислимый DRM, вычисляя который ты приносишь пользу новому ГК в любой форме. Это либо вычисление биткоинов на кошелёк, с которого оплачивается хостинг, либо ещё какая-то форма принесения пользы сообществу. Вот об этом и предлагаю поговорить: в каких формах вообще можно принести пользу ГК, так, чтобы для оценки пользы и подтверждения факта принесения пользы не требовалось вмешательство модераторов и админов?
Срать в текущих, ещё не умерших разделах, это никак не помешает, но мусор достаточно быстро потрётся и останутся только те комменты, которые сообщество считает полезными. Кроме того, думаю, если спамер окупает свои действия полезной работой по отношению к сайту (например, оплачивает хостинг), он имеет полное право спамить, потому что механизмы скрытия доступны всем из коробки.
−1
- $pending = $this->$tag['callback']($open['data'], $open['option']);
+ $pending = $this->{$tag['callback']}($open['data'], $open['option']);
Копаюсь в сорцах говнокода.
В PHP 7 поменяли приоритет, пол часа не мог понять что за хуйня.