The Official Status Thread
-
I'm curious about what are you doing that needs ReflectionMethod
Dependency injection?
Yup. Using it as a way for the module to override a method in the current class.
continue;
is there because it's looping over the available modules and looking for overrides. This one is obviously a bust so...Can't you just do
$module->model->$methodName($arg1, $arg2);
?No, because I can't be sure that the module implements that method.
-
wouldn't it be easier with a model class and some
__call
magic?
-
That is a part of my
__call
magic.The point is that I have multiple modules hooking up to multiple other modules / core classes... Simple inheritance doesn't cut it. And since modules can hook into other modules (without being dependent on them), and I can't know for sure which modules will be present on a specific installation...
-
that seems like a fun thing to code.
it just needs traits added, everything it's better with traits.
-
it just needs traits added, everything it's better with traits.
This is php. It barely does basic inheritance. Don't push it.
-
you'd be susrprised.
this works fine:trait Trackeable { //snip } trait TrackModification { use Trackeable; //snip } trait TrackDelete { use Trackeable; //snip } trait TrackAll { use TrackDelete, TrackModification { TrackDelete::bootTrackeable insteadof TrackModification; TrackDelete::attachLoggedUser insteadof TrackModification; } }
(i need that supertrait to workaround some laravel idiocy)
-
Status: Working with a team in India on a project, and we have update calls twice each week. I make an effort to arrive in the office half an hour before the call to help make sure I am awake and prepared for the meeting. Showed up this morning to an email indicating that the call had been shifted an hour earlier, which means that I had already missed it.
The real kicker? The email about the time change was sent 8 minutes before the new meeting time.
What time is the call scheduled for?
-
-
it's some spanglish thing. an english verb conjugated in spanish. because belgium you that's why
-
Holy crap, they actually implemented that? When?
As of PHP 5.4.0, PHP implements a method of code reuse called Traits.
Ah, that would explain it. I obviously need to keep up on php features . Last time I really dug into them was sometime during 5.3.x.
I also keep forgetting php keeps adding major features in minor versions.
-
Status: Tweet I just received (no one-box because it'll get deleted when this guy is inevitably banned for spamming):
@Blakeyrat Susu Glucogen BISA MEMUTIHKAN & MENGENCANGKAN Kulit loohhh. Aman Tanpa Effek samping CP liat BIO
So, uh. Now you know.
EDIT: from Google Translate:
CAN Glucogen Milk Skin whitening & TIGHTENING loohhh . Safe Without side effect is CP clay BIO
Ah. Normal spam. Not crazy poltergeist text.
-
Showed up this morning to an email indicating that the call had been shifted an hour earlier, which means that I had already missed it.
Next week you need to send a last minute email delaying the meeting by an hour or so.
-
And it means Top Gear's been cancelled.
I've never watched Top Gear, but this seems like a surefire way to kill it:
Top Gear, being so far behind the curve, would only be able to catch up if it undertook a radical rethink of its value system. I suggest an eco-feminist approach. In the first place, they need to incorporate the obvious concerns of the entire industry, to produce cars that get you places without needless waste. It’s not wholemeal and boring.
-
Someone who has clearly missed the whole point of (new) Top Gear. It's never been about the cars; it's been about being a petrolhead!
Though I do agree with this bit:
The coolest car in the world right now is the BMW i8, a part electric, part petrol dreamscape of silent majesty.
-
ah, the multiple joys of PHP
5.3 --> 5.4 is a world of distance.
recommended read: http://www.phptherightway.com/
(that page should be blank to be coherent with its name )
-
I've never watched Top Gear, but this seems like a surefire way to kill it:
If they really have shitcanned Jeremy Clarkson, I think they should make her vision of Top Gear. It will either completely kill the show in a humane way because no one would watch that shit, or it would make them realize that there is no show without him and make people realize they should not take nutty bitches like that seriously.
-
What time is the call scheduled for?
Was 8 am in AZ/8:30 pm in India. Now 7:00 am / 7:30 pm in India
INB4 timezones are TRWTF
-
On the to-read list, thanks.
Traits might be a bit of an overkill for most of the things I'm currently overriding (it's usually only one or two methods, and they tend to be pretty specialized), but might come in handy later.
call_user_func_array()
combined with that bit of reflection is serving me well so far.
-
Was 8 am in AZ/8:30 pm in India. Now 7:00 am / 7:30 pm in India
So they wanted to bump it to a time when you would not even be in the office? Was anyone in the office at 7am?
-
So they wanted to bump it to a time when you would not even be in the office?
Yes.
Was anyone in the office at 7am?
No.
And I just found out: They work 4:30 pm to 12:30 am India time.
-
Apologies. For some reason I had Belgium and Dwarf Fortress associated in my mind.
-
I still see some strange stuff... Let's say there are N posts in a topic, I've scrolled to the bottom, and the greenbar thingy says N / N. I submit my post, the greenbar changes to N+1 / N+1. Two seconds later, it changes to N+1 / N+2. Two seconds after that, it changes back to N+1 / N+1.
EDIT: This doesn't happen if I don't scroll to the bottom first.
-
I've noticed something like this, if I post from the bottom of a thread with N posts (like what I am doing now):
- Counter is N/N.
- Submit post
- Counter jumps to N-1/N+2
- Counter jumps to N-1/N+1
Edit: hard to demonstrate without video capture, which I CBA...
-
Status: Testing teh bug…
Update: Confirm repro
-
Our Discourse come, your error be done,
On desktop as it is on mobile,
Give us this day our daily bug.
So mote it be,
Amen.
-
What are you talking about I couldn't even get past the first paragraph.
-
Our Discourse come, your error be done,
On desktop as it is on mobile,
Give us this day our daily bug.
So mote it be,
Amen.
That deserves more than a like:
http://new3.fjcdn.com/comments/Nice+one+_6bdc20f101f0743dd2d7ad584292081b.jpg
-
Apologies. For some reason I had ■■■■■■■ and Dwarf Fortress
Why apologize? At the very least, they're neighbors.
-
-
Status: went to read my email. found this:
I swear I read it as
UTC
first.I blame all the DST discussion over here seeping through into the rest of my life! I spend way too much time here...
-
status: caught up on reading.... that was annoying beaing able to read but not getting credit for reading. :-P
-
I blame all the DST discussion over here seeping through into the rest of my life! I spend way too much time here...
The YKYSTMTOWTDWTFW thread is :arrows.mp3:
-
Not sure about Belgium, but in Dwarf Fortress, the legal drinking age is 1 and all the babies are breastfed by their mothers (who drink exclusively alcohol) so they probably have a pretty low alcohol blood content as well.
-
but in Dwarf Fortress, the legal drinking age is 1 and all the babies are breastfed by their mothers (who drink exclusively alcohol) so they probably have a pretty low alcohol blood content as well.
No wonder their growth is so stunted.
-
Status: sent an email
-
The... script was not running in
screen
? It was in a regularssh
session all along?Well... WTDWTF is TRWTF today. Rejoice.
-
Well, I don't know for sure. I haven't been to my computer with the ssh key on it yet today, so I can't check .bash_history to see if they ran screen or not.
-
I look at the time.
FTFM. More times than I can count.1821:00. Oh dear it's that late already?
..
I look at the time again.1801:37. Fuck.
-
Status: Had some fun with Chrome dev tools and paint.net.... but now that @kuro has spilled the beans on what i'm doing and @ben_lubar also figured it out it's not so much fun anymore.
-
github.com/BenLubar/specialize.BenchmarkHeapInit1M
github.com/BenLubar/specialize.benchmarkHeapInit
(*testing.B).ResetTimer
runtime.ReadMemStats
runtime.semacquire
runtime.getg
runtime.throw
runtime.getg
...
runtime.startpanic
runtime.systemstack
runtime.dopanic
runtime.getcallerpc
runtime.getcallersp
runtime.getg
...
runtime.systemstack
...
runtime.cansemacquire
runtime.atomicload
runtime.nop
runtime.cas
runtime.acquireSudog
runtime.acquirem
runtime.getg
...
runtime.lock
runtime.getg
...
runtime.throw
...
runtime.key32
runtime.xchg
runtime.key32
...
runtime.cas
...
runtime.procyield
runtime.key32
...
runtime.xchg
...
runtime.key32
...
runtime.cas
...
runtime.osyield
runtime.key32
...
runtime.futexsleep
runtime.futex
(*runtime.timespec).set_sec
(*runtime.timespec).set_nsec
runtime.futex
...
runtime.timediv
(*runtime.timespec).set_sec
...
runtime.unlock
runtime.key32
...
runtime.xchg
...
runtime.throw
...
runtime.key32
...
runtime.futexwakeup
runtime.futex
...
runtime.systemstack
...
runtime.getg
...
runtime.throw
...
runtime.throw
...
runtime.releasem
runtime.getg
...
runtime.semroot
runtime.cputicks
runtime.lock
...
runtime.xadd
runtime.cansemacquire
...
runtime.xadd
...
runtime.unlock
...
(*runtime.semaRoot).queue
runtime.getg
...
runtime.goparkunlock
runtime.gopark
runtime.acquirem
...
runtime.readgstatus
runtime.atomicload
...
runtime.throw
...
runtime.releasem
...
runtime.mcall
runtime.cansemacquire
...
runtime.blockevent
runtime.atomicload64
runtime.nop
...
runtime.getg
...
runtime.fastrand1
runtime.callers
runtime.getcallersp
...
runtime.getcallerpc
...
runtime.systemstack
...
runtime.lock
...
runtime.stkbucket
runtime.sysAlloc
runtime.mmap
runtime.xadd64
runtime.exit
runtime.exit
...
runtime.throw
...
(*runtime.bucket).stk
runtime.add
runtime.eqslice
runtime.newBucket
runtime.persistentalloc
runtime.throw
...
runtime.throw
...
runtime.throw
...
runtime.sysAlloc
...
runtime.lock
...
runtime.round
runtime.sysAlloc
...
runtime.add
...
runtime.unlock
...
runtime.unlock
...
runtime.throw
...
runtime.xadd64
...
runtime.xadd64
...
runtime.throw
...
(*runtime.bucket).stk
...
(*runtime.bucket).bp
runtime.throw
...
runtime.add
...
(*runtime.bucket).bp
...
runtime.unlock
...
runtime.gcallers
runtime.gentraceback
runtime.throw
...
runtime.getg
...
runtime.throw
...
runtime.gotraceback
runtime.getg
...
runtime.findfunc
runtime.add
...
runtime.throw
...
runtime.throw
...
runtime.funcspdelta
runtime.pcvalue
runtime.step
runtime.readvarint
runtime.readvarint
...
runtime.funcname
runtime.cfuncname
runtime.gostringnocopy
runtime.findnull
runtime.casuintptr
runtime.step
...
runtime.throw
...
runtime.topofstack
runtime.throw
...
runtime.findfunc
...
runtime.funcname
...
runtime.throw
...
runtime.setArgInfo
runtime.funcname
...
runtime.funcname
...
runtime.throw
...
runtime.noescape
runtime.showframe
runtime.getg
...
runtime.gotraceback
...
runtime.funcname
...
runtime.hasprefix
runtime.contains
runtime.index
runtime.hasprefix
...
runtime.isExportedRuntime
runtime.funcname
...
runtime.funcline
runtime.funcline1
runtime.pcvalue
...
runtime.pcvalue
...
runtime.gostringnocopy
...
runtime.findfunc
...
runtime.funcspdelta
...
runtime.throw
...
runtime.adjustframe
runtime.funcname
...
runtime.pcdatavalue
runtime.add
...
runtime.pcvalue
...
runtime.funcdata
runtime.add
...
runtime.add
...
runtime.add
...
runtime.funcname
...
runtime.throw
...
runtime.funcname
...
runtime.throw
...
runtime.stackmapdata
runtime.throw
...
runtime.add
...
runtime.adjustpointers
runtime.gobv
runtime.add
...
runtime.ptrbits
runtime.add
...
runtime.ptrbits
...
runtime.add
...
runtime.add
...
runtime.throw
...
runtime.getg
...
runtime.funcname
...
runtime.add
...
runtime.throw
...
runtime.funcname
...
runtime.add
...
runtime.throw
...
runtime.adjustpointer
runtime.add
...
runtime.funcdata
...
runtime.funcname
...
runtime.throw
...
runtime.funcname
...
runtime.throw
...
runtime.stackmapdata
...
runtime.adjustpointers
...
runtime.scanstack$1
runtime.scanframeworker
runtime.funcname
...
runtime.pcdatavalue
...
runtime.funcdata
...
runtime.funcname
...
runtime.throw
...
runtime.funcname
...
runtime.throw
...
runtime.stackmapdata
...
runtime.scanblock
runtime.scanobject
runtime.heapBitsForObject
(*runtime.mspan).base
runtime.printlock
runtime.getg
...
runtime.lock
...
runtime.printunlock
runtime.getg
...
runtime.unlock
...
runtime.throw
...
runtime.heapBitsForAddr
runtime.throw
...
runtime.throw
...
runtime.add
...
(runtime.heapBits).typeBits
(runtime.heapBits).next
runtime.subtractb
runtime.add
...
runtime.throw
...
runtime.checkwbshadow
runtime.shadowptr
runtime.inheap
runtime.throw
...
runtime.istrackedptr
runtime.inheap
...
runtime.heapBitsForObject
...
runtime.greyobject
runtime.throw
...
(runtime.heapBits).isMarked
(*runtime.gcWorkProducer).put
runtime.noescape
...
(runtime.wbufptr).ptr
runtime.getpartialorempty
runtime.getg
...
runtime.getg
...
runtime.xchguintptr
runtime.lfstackpop
runtime.atomicload64
...
runtime.lfstackUnpack
runtime.atomicload64
...
runtime.cas64
runtime.putfull
(*runtime.workbuf).checknonempty
runtime.throw
...
(*runtime.workbuf).logput
runtime.throw
...
runtime.lfstackpush
runtime.lfstackPack
runtime.lfstackUnpack
...
runtime.throw
...
runtime.atomicload64
...
runtime.cas64
...
(*runtime.workbuf).logget
runtime.throw
...
runtime.getempty
runtime.lfstackpop
...
(*runtime.workbuf).checkempty
runtime.throw
...
runtime.persistentalloc
...
(*runtime.workbuf).logget
...
runtime.wbufptrOf
runtime.putfull
...
(runtime.heapBits).isMarked
...
runtime.printlock
...
(runtime.heapBits).isCheckmarked
(runtime.heapBits).typeBits
...
runtime.throw
...
(runtime.heapBits).setCheckmarked
(runtime.heapBits).typeBits
...
runtime.atomicand8
runtime.lock
...
runtime.unlock
...
runtime.atomicor8
(runtime.heapBits).isCheckmarked
...
runtime.throw
...
(runtime.heapBits).setMarked
runtime.atomicor8
...
(runtime.heapBits).typeBits
...
runtime.inheap
...
runtime.throw
...
runtime.scanblock
...
runtime.funcdata
...
runtime.funcname
...
runtime.throw
...
runtime.funcname
...
runtime.throw
...
runtime.stackmapdata
...
runtime.releaseSudog
runtime.throw
...
runtime.throw
...
runtime.throw
...
runtime.throw
...
runtime.throw
...
runtime.getg
...
runtime.throw
...
runtime.acquirem
...
runtime.releasem
...
runtime.lock
...
runtime.unlock
...
runtime.getg
...
runtime.systemstack
...
runtime.systemstack
...
runtime.semrelease
runtime.semroot
...
runtime.xadd
...
runtime.atomicload
...
runtime.lock
...
runtime.atomicload
...
runtime.unlock
...
runtime.unlock
...
runtime.xadd
...
(*runtime.semaRoot).dequeue
runtime.cputicks
...
runtime.goready
runtime.systemstack
...
runtime.systemstack
...
time.Now
time.now
container/heap.Init
(*github.com/BenLubar/specialize.IntSlice).Len
(github.com/BenLubar/specialize.IntSlice).Len
container/heap.down
(*github.com/BenLubar/specialize.IntSlice).Less
(github.com/BenLubar/specialize.IntSlice).Less
(*github.com/BenLubar/specialize.IntSlice).Less
...
(*github.com/BenLubar/specialize.IntSlice).Swap
(github.com/BenLubar/specialize.IntSlice).Swap
(*golang.org/x/tools/go/types.nodeQueue).Less
(golang.org/x/tools/go/types.nodeQueue).Less
(*golang.org/x/tools/go/types.object).order
(*golang.org/x/tools/go/types.Var).order
(*golang.org/x/tools/go/types.object).order
...
(*golang.org/x/tools/go/types.Const).order
(*golang.org/x/tools/go/types.object).order
...
(*golang.org/x/tools/go/types.TypeName).order
(*golang.org/x/tools/go/types.object).order
...
(*golang.org/x/tools/go/types.Func).order
(*golang.org/x/tools/go/types.object).order
...
(*golang.org/x/tools/go/types.PkgName).order
(*golang.org/x/tools/go/types.object).order
...
(*golang.org/x/tools/go/types.object).order
...
(*golang.org/x/tools/go/types.Var).order
...
(*golang.org/x/tools/go/types.Const).order
...
(*golang.org/x/tools/go/types.TypeName).order
...
(*golang.org/x/tools/go/types.Func).order
...
(*golang.org/x/tools/go/types.PkgName).order
...
(*golang.org/x/tools/go/types.Nil).order
(*golang.org/x/tools/go/types.object).order
...
(*golang.org/x/tools/go/types.Nil).order
...
(*golang.org/x/tools/go/types.Builtin).order
(*golang.org/x/tools/go/types.object).order
...
(*golang.org/x/tools/go/types.Builtin).order
...
(*golang.org/x/tools/go/types.Label).order
(*golang.org/x/tools/go/types.object).order
...
(*golang.org/x/tools/go/types.Label).order
...
(*golang.org/x/tools/go/types.nodeQueue).Less
...
(*golang.org/x/tools/go/types.nodeQueue).Swap
(golang.org/x/tools/go/types.nodeQueue).Swap
(*golang.org/x/tools/go/types.nodeQueue).Len
(golang.org/x/tools/go/types.nodeQueue).Len
(*testing.B).ResetTimer
...
container/heap.Init
...Why does my code analysis library think that uses reflection?
-
Status: Purposefully wasted two hours in the city centre... and then totally chickened out of meeting new people. Which is why I wasted all that time
-
........ Girl, I am disappoint. -_-
-
You are disappoint? How do you think I feel? :P
Especially as it'll be two months before I get another chance (the next meet clashes with the WEC at Silverstone)...
-
well maybe that will be motivation to meet new people next time!
:hug:
-
Status:
func Analyze(f *ssa.Function, result *rta.Result) { log.Println("analyzing:", f) for _, b := range f.Blocks { for _, i := range b.Instrs { if m, ok := i.(*ssa.MakeInterface); ok { for _, r := range *m.Referrers() { if cc, ok := r.(interface { Common() *ssa.CallCommon }); ok { c := cc.Common() if cf := c.StaticCallee(); cf != nil { for i, v := range c.Args { if v == m && !UsesReflection(result.CallGraph.Nodes[cf], make(map[int]bool)) { log.Printf("%v <- %v used by %v (arg %d)", m.Type(), m.X.Type(), r, i) } } } } } } } } }
-
What's your Big O on that bitch?
-
Well, I don't know, but the run time of the program is definitely dominated by the function that computes the
*rta.Result
, so it doesn't really matter.
-
STATUS: CYBERPARTS ONLINE
-
Also this:
Clarkson had used the word "slope" as an Asian man crossed a newly built bridge over the River Kwai in Thailand.
The river was actually the River Kok.
The deck of the bridge was sloped. Why? Because it was built by three feckless idiots!
Now, I'm not saying Clarkson is always in the clear, 'cause he ain't, not by a long way. But the fact-checking in that article leaves a lot to be desired…
For anyone unfamiliar with the joke that was referred to here, this is the clip in question:
https://www.youtube.com/watch?v=D-OQR5zu_J4
Not really racist, just a bit of double-entendre.
-
Status: The artifact is tainted with shadow. You must slay more of he shadow first.
Oh, I am sorry, game! I am indeed not worthy for I have slain only 5569 supernatural things, all of them out for my blood. Stupid privileged game, tumblr will hear about this!