-
+6
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
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 чтоб никто не ушел обиженным.
j123123,
11 Марта 2018
-
+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
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
Desktop,
10 Марта 2018
-
0
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
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
3.14159265,
09 Марта 2018
-
0
- 1
- 2
- 3
- 4
// Имитируем бурную деятельность.
Thread.Sleep(500);
// В реальности здесь будут байты собранной dll-ки.
return Encoding.UTF8.GetBytes(_fileName);
https://github.com/UKST/compiler/blob/074760eb20a13238f1d358a27305617291351854/Compiler.Lib/Compiler.cs#L16
dm_fomenok,
09 Марта 2018
-
−7
- 1
Ещё один тред обсуждения несбыточного мифического «нового ГК»
Такие мысли появиласть в результате флеймов с 1024-- и вообще.
На новом говнокоде вместо модерации должены быть:
1. Механизм скрыльничества на уровне сайта/api
2. Как на имиджбордах, все посты и комменты должны подчищаться из базы после определенного скрока давности, чтобы не нужно было вмешательство никаких админов и модераторов. Это хорошо решает проблему любых набегов. Но некоторые посты пользователи могут пометить как важные, которые не следует удалять. Для этого они должны выразить такое желание в явной форме, например, нажимая на кнопку «cохранить». Проблема в том, что ботоводы могут сохранять свои комменты и посты скриптами, поэтому нужно ввести хорошую капчу и какой-то сложно вычислимый DRM, вычисляя который ты приносишь пользу новому ГК в любой форме. Это либо вычисление биткоинов на кошелёк, с которого оплачивается хостинг, либо ещё какая-то форма принесения пользы сообществу. Вот об этом и предлагаю поговорить: в каких формах вообще можно принести пользу ГК, так, чтобы для оценки пользы и подтверждения факта принесения пользы не требовалось вмешательство модераторов и админов?
Срать в текущих, ещё не умерших разделах, это никак не помешает, но мусор достаточно быстро потрётся и останутся только те комменты, которые сообщество считает полезными. Кроме того, думаю, если спамер окупает свои действия полезной работой по отношению к сайту (например, оплачивает хостинг), он имеет полное право спамить, потому что механизмы скрытия доступны всем из коробки.
vistefan,
08 Марта 2018
-
−1
- 1
- 2
- $pending = $this->$tag['callback']($open['data'], $open['option']);
+ $pending = $this->{$tag['callback']}($open['data'], $open['option']);
Копаюсь в сорцах говнокода.
В PHP 7 поменяли приоритет, пол часа не мог понять что за хуйня.
inho,
08 Марта 2018
-
−2
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
for condition in price_to_deposit_config
condition_is_true = false
if condition.range.length is 2
if market_data[item.id].volume >= condition.range[0] and market_data[item.id].volume <= condition.range[1]
condition_is_true = true
if condition.range.length is 1
if market_data[item.id].volume >= condition.range[0]
condition_is_true = true
if condition_is_true is true
#mk deposit price by this condition
CoffeeScript. Мозг плавится 2е сутки.
Читабельность кода уровень Высоцкого, а то и выше.
win32,
07 Марта 2018
-
−2
Челлендж: НОРМАЛЬНЫЙ человек должен собрать с помощью docker PHP 5.3 с его требованиями к древним и automake, и autoconf, и bison и запустить сие существо вместе с Apache2 и MySQL.
Сакральный смысл челленджа в том, чтобы в здравом уме начать, в здравом уме окончить.
dm_fomenok,
06 Марта 2018
-
0
Дикой боли стоила мне попытка собрать PHP 5.3 под Ubuntu 16.04 LTS. Клонирую репозиторий, делаю checkout на PHP 5.3, пытаюсь собрать по инструкции и тут БАЦ. autoconf и automake слишком новые. Благо были более старые версии, ставлю их через apt. И тут снова БАЦ. bison слишком новый. Пришлось скачивать исходники, компилировать их и потом уже ставить. И тут самое страшное: запустить PHP 5.3 под LAMP почти нереально. Меня всё это задолбало, сношу всё к чертям. И виноват отнюдь не PHP. Виноваты сами Томпсон, Ритчи, Линус и прочие петросяны всея вселенной *nix. Именно благодаря ним есть необходимость ставить по пять автоконфов, но не возможности.
dm_fomenok,
06 Марта 2018
-
+1
- 1
- 2
- 3
Баг в railroad diagram, описывающей strling literal в JS (из книги Крокфорда Javascript: The Good Parts).
https://i.imgur.com/8QFMrIQ.png
Эквивалентно регулярке
(\"([^\"^\\]|\\([\"\'\\\/bfnrt]|u[\d]{4}))*[^\"^\\]+\"|\'([^\'^\\]|\\([\"\'\\\/bfnrt]|u[\d]{4}))*[^\'^\\]+\')
Ставить [ code ] боюсь, парсер уже починился?
Ну, в общем, видно, что при таком раскладе, как на диаграмме, строковой литерал не может заканчиваться эскейп-последовательностью, что в действительности не так. Классический случай "something\n".
vistefan,
06 Марта 2018