The Official Status Thread



  • I wouldn't install Java for an interview.

    That said, Join.Me works Java-free.


  • Grade A Premium Asshole

    @blakeyrat said:

    Join.Me works Java-free.



  • Got an email from a recruiter about a 6-month contract position in Silicon Valley. Six months is kind of short for relocation, but it's workable if the pay is good; at least at the end of it, I'd be in a location where the concentration of available jobs a lot higher than it is here, so it should be easier to get the next one. So I respond with answers to his questions, including my rate.

    He responds with the rate they're offering — $34/hour less than I quoted, and $13/hour less than I was making as a regular employee, for a temporary job in an area where the cost of living is 30% higher than it is here. I'm trying to decide just how much I want to piss this guy off when I tell him to FOAD. I hate burning bridges; I've already burnt a few too many.


  • Discourse touched me in a no-no place

    @Polygeekery said:

    I saw someone I know re-tweeted something about Thimerosal

    If you give me her[1] phone number I will gladly call her up and yell at her about this.

    [1] IME anti-vaxers are approximately 100% female.


  • Grade A Premium Asshole

    @HardwareGeek said:

    He responds with the rate they're offering — $34/hour less than I quoted

    The equivalent of $68K/year less than you asked for...and he even brought it up? Holy fuck, that is a lot of nerve.


  • Grade A Premium Asshole

    @FrostCat said:

    IME anti-vaxers are approximately 100% female.

    You forget that we have a male anti-vaxxer here on the forum. ;)


  • Discourse touched me in a no-no place

    @accalia said:

    why are we still talking about this?

    People who aren't idiots and who know that thimerosal has not been used in vaccines in the US in many years and in the rest of the world for even longer, aren't.

    Anti-vaxers are, generally speaking, pretty stupid. I except, here, people whose children have problems with the modern schedule and just want to stretch it out a bit because the kid doesn't tolerate them well.



  • @FrostCat said:

    [1] IME anti-vaxers are approximately 100% female.

    Except Jim Carrey. He's just a cross-dresser.


  • ♿ (Parody)

    @HardwareGeek said:

    He responds with the rate they're offering — $34/hour less than I quoted, and $13/hour less than I was making as a regular employee, for a temporary job in an area where the cost of living is 30% higher than it is here.

    Sounds like they're trying to justify an H-1B or are just completely clueless.


  • Discourse touched me in a no-no place

    @Polygeekery said:

    Thimerosal

    You know what had thimerosal in it long after they got it out of vaccines? Contact lens eye drops. Funny how nobody who wears contacts ever suddenly develops autism. It's almost like the two things aren't related.



  • So don't tell him to FOAD, make a counter-offer.

    You're not buying a hamburger, you're buying a car. You have the power to negotiate.


  • Discourse touched me in a no-no place

    @mott555 said:

    Spigot expects you to be a software release engineer.

    Jeeze. Wasn't Spigot supposed to be a better craftbukkit?



  • Maybe. Maybe just looking for somebody junior. I got a call from another recruiter earlier, just keeping in touch; he didn't have any suitable openings at the moment. The only thing he had was for somebody with 5 – 6 years of experience; I have >25. At least he had the sense to say it wasn't worth bothering.


  • Grade A Premium Asshole

    @HardwareGeek said:

    At least he had the sense to say it wasn't worth bothering.

    A recruiter with common sense? I find that unlikely...


  • Discourse touched me in a no-no place

    @HardwareGeek said:

    I hate burning bridges

    This sounds like one that might be worth burning, though. I took a job--my first as a contractor--at a rate that would've been a decent wage for an employee. They wanted a 6-month gig. After 4 months they told me they wanted to end it early[1], but if I were willing to take two weeks off and learn some Microsoft product I can't remember at the moment, they'd renew me for a new 6-month contract. So I did, and they--you're going to be shocked--cut that one short after only 4 months. My next job paid, literally, twice as much, although I went from Green Bay to DC. When the DC job ended, coincidentally, they called me up to try to get me to go back at the same rate. It was not really tough to decide whether to go back up there, vs go to Tampa for 1/3 more an hour.

    [1] I wondered at first if it was something I'd done wrong, but they did renew me for a different job, and then a year later they tried to get me back, so obviously that wasn't it.


  • Discourse touched me in a no-no place

    @Polygeekery said:

    You forget that we have a male anti-vaxxer here on the forum.

    You seem to have forgotten that adjective I used. 😛



  • @blakeyrat said:

    make a counter-offer.... You have the power to negotiate.

    When the bid is only a little over half the ask, the probability of negotiating to an acceptable middle is rather low. I could maybe drop my ask by $10/hour, and I probably will, but I don't think I can live on less than that in Silicon Valley, and even that's questionable. That's still $24/hour more than he's offering.

    Also, the corp2corp/1099 rate, with all the extra taxes that involves, is only $4/hour more than than the W2 rate.

    For the benefit of non-US readers, W2 is the IRS form on which wage income is reported. This implies the recipient is a regular employee of the consulting company; income, Social Security and Medicare taxes are withheld from the employees wages, and the employer is paying their share of the payroll taxes. 1099 is the IRS form on which miscellaneous income is reported. Nothing is withheld, and the contractor is responsible for paying not only the regular income, etc., taxes, but self-employment taxes equivalent to the payroll taxes an employer would be paying.



  • @HardwareGeek said:

    When the bid is only a little over half the ask, the probability of negotiating to an acceptable middle is rather low.

    Right but that's no reason to say fuck off and die to the guy. Make a counter-offer anyway.


  • Grade A Premium Asshole

    @blakeyrat said:

    Right but that's no reason to say fuck off and die to the guy. Make a counter-offer anyway.

    I agree with blakey. One of the rules of negotiation: "The worst thing they can do is say no."



  • @FrostCat said:

    Jeeze. Wasn't Spigot supposed to be a better craftbukkit?

    I think CraftBukkit development has stopped...more like a compatible replacement and not necessarily better.

    I did get Spigot working fairly easily, it wasn't a difficult process, but it's not something I'd expect the average script-kiddy Minecraft server op to do on their own which makes it a :wtf:



  • @Polygeekery said:

    A recruiter with common sense? I find that unlikely...

    I've worked with a few that seem ok. I remember one who told me he worked as an engineer before getting into recruiting; he probably wasn't the world's greatest engineer (or he'd still be doing it), but at least he has a clue what actual skills are connected with the jargon in the job description. Some are clueful enough to ask "Is X similar to Y?" and seem to understand an answer like "They're similar enough that experience with X is directly applicable to Y; if I can get past the resume keyword filter, I can do the job," or if the answer is "No, not related. I know what Y is, but I've never done it," to say, "Ok, I won't bother you with jobs that want experience with Y."

    Of course, a lot of them are clueless.


  • Discourse touched me in a no-no place

    @mott555 said:

    I think CraftBukkit development has stopped

    Yeah, we went over this at the time: one of the developers got the project effectively killed by issuing a DMCA takedown notice, because he was butthurt that Mojang owns [Craft]bukkit.



  • @Polygeekery said:

    @blakeyrat said:
    Right but that's no reason to say fuck off and die to the guy. Make a counter-offer anyway.

    I agree with blakey. One of the rules of negotiation: "The worst thing they can do is say no."

    I responded with my $ask - $10 rate. I was polite, but I made it quite clear that his offer was unreasonable and I'm not willing to drop any lower.



  • STATUS: Reading an article on design which I might post later in quick links. But had to drop this first.

    Once again, Apple will go into history as a maverick innovator, while Microsoft is seen as a stodgy has-been. I wonder if anyone still remembers how when MS came up with their Metro interface, Apple was still pushing a podcast player that looked like a huge photo-realistic tape recorder?



  • Status: trying to debug a crash in someone else's code.

    The program immediately exits with this message:

    panic: runtime error: invalid memory address or nil pointer dereference
    [signal 0xc0000005 code=0x0 addr=0x28 pc=0x4d0f42]
    
    goroutine 6 [running, locked to thread]:
    github.com/skelterjohn/go.wde/win.(*Window).HandleWndMessages(0x0)
            /home/ben/go/src/github.com/skelterjohn/go.wde/win/win_windows.go:203 +0x42
    github.com/skelterjohn/go.wde/win.NewWindow.func1(0xc08200e300, 0xc082028070, 0x280, 0x1e0)
            /home/ben/go/src/github.com/skelterjohn/go.wde/win/win_windows.go:112 +0x13a
    created by github.com/skelterjohn/go.wde/win.NewWindow
            /home/ben/go/src/github.com/skelterjohn/go.wde/win/win_windows.go:113 +0xad
    

    Okay, let's have a look at the code. Line 203 is:

    	for w32.GetMessage(&m, this.hwnd, 0, 0) != 0 {
    

    Since the only dereference on that line is this.hwnd (by the way, this is a terrible name for a receiver), we can deduce that this is nil.

    The function with this line was called on line 112. Let's look there:

    	go func(ready chan error) {
    		runtime.LockOSThread()
    		var err error
    		w, err = makeTheWindow(width, height)
    		ready <- err
    		w.HandleWndMessages() // ed: this line is 112
    	}(ready)
    

    Ok, so makeTheWindow uses the Go idiom of returning multiple values with the last one being an error. But the HandleWndMessages method is called no matter what. I put an if statement around that line and tried again. Here's the error:

    Error occurred in CreateWindow(wde_win, <nil>, 512, 13565952)

    Yep, that's really helpful. The error creating the window is that there was an error creating the window.


  • Grade A Premium Asshole

    @ben_lubar said:

    The error creating the window is that there was an error creating the window.

    That's not descriptive enough for you? Geez, you whipper-snappers want everything handed to you on a silver platter.



  • @HardwareGeek said:

    I responded with my $ask - $10 rate. I was polite, but I made it quite clear that his offer was unreasonable and I'm not willing to drop any lower.

    There you go. The result will PROBABLY be the same as if you said "FOAD", but now there's a chance you can come out ahead.

    Except you should have asked for your rate PLUS $10. You need to charge a "waste my time" fine.



  • @abarker said:

    Nah, let's throw an alpha channel in there and make it #falafala

    Shouldn't that be #falalala?



  • @dcon said:

    @abarker said:
    Nah, let's throw an alpha channel in there and make it #falafala

    Shouldn't that be #falalala?

    Nah, it's too early for Christmasholiday music.



  • @abarker said:

    Nah, it's too early for Christmasholiday music.

    Truth.

    Now if I could just convince a few (yes a few, not just a couple) of my neighbors to TAKE DOWN THEIR LIGHTS! sheesh.



  • @blakeyrat said:

    The result will PROBABLY be the same as if you said "FOAD", but now there's a chance you can come out ahead.

    I am really sorry. The maximum rate for the position ... is [$originalRate + $4]/HR on W2.

    That settles that. I didn't tell him to FOAD, and hopefully, I didn't piss him off too much to consider me for future openings, but enough that he won't bother me with openings that aren't worth my time.



  • Now that just gave me an idea: programmable multi-color LED light strips mounted under the eaves for indirect seasonal lighting.

    1. Colors can be set to match the current holiday. Good for Easter, Christmas, , Halloween, Hanukkah, and more!
    2. Since they are under the eaves, they can't be seen from the street when not in use. Just leave them up year round!

    Patent Pending



  • @dcon said:

    Now if I could just convince a few (yes a few, not just a couple) of my neighbors to TAKE DOWN THEIR LIGHTS! sheesh.

    I've been that neighbor! There have been years that I haven't gotten around to taking them down until June or July. Lately, though, I've never gotten around to putting them up in the first place.

    If your neighbors are still lighting their lights, though, that's a different story. :crazy:



  • Here's a test program I compiled. It's not working for me. I want to know if it's my computer or something about how I compiled it that messed everything up.

    wdetest.exe (2.4 MB)



  • @abarker said:

    Colors can be set to match the current holiday.

    Or plain white for simple illumination. You don't need a front porch light, because you have indirect lighting all across the front of the house.



  • @HardwareGeek said:

    Lately, though, I've never gotten around to putting them up in the first place.

    Same.

    If your neighbors are still lighting their lights, though, that's a different story.

    Thankfully, no. Though it think it was Feb/Mar before one of them turned them off...


  • Grade A Premium Asshole

    OK, one moment. I love running random EXEs from the internet. Should I run as administrator?



  • No, it doesn't need admin. Run it in a VM if you're scared. All I want to know is if it actually works or if it just prints a stack trace like this:

    C:\Users\Owner\Downloads>wdetest.exe
    panic: runtime error: invalid memory address or nil pointer dereference
    [signal 0xc0000005 code=0x0 addr=0x28 pc=0x4c8c52]
    
    goroutine 18 [running, locked to thread]:
    github.com/skelterjohn/go.wde/win.(*Window).HandleWndMessages(0x0)
            /home/ben/go/src/github.com/skelterjohn/go.wde/win/win_windows.go:203 +0x42
    github.com/skelterjohn/go.wde/win.NewWindow.func1(0xc082066000, 0xc082064000, 0xc8, 0xc8)
            /home/ben/go/src/github.com/skelterjohn/go.wde/win/win_windows.go:112 +0x13a
    created by github.com/skelterjohn/go.wde/win.NewWindow
            /home/ben/go/src/github.com/skelterjohn/go.wde/win/win_windows.go:113 +0xad
    
    goroutine 1 [chan receive]:
    github.com/skelterjohn/go.wde/win.init.3.func2()
            /home/ben/go/src/github.com/skelterjohn/go.wde/win/win_windows.go:35 +0x3c
    github.com/skelterjohn/go%2ewde.Run()
            /home/ben/go/src/github.com/skelterjohn/go.wde/wde.go:86 +0x22
    main.main()
            /home/ben/go/src/github.com/skelterjohn/go.wde/wdetest/wdetest.go:32 +0x37
    
    goroutine 17 [syscall, locked to thread]:
    runtime.goexit()
            /home/ben/.golang/src/runtime/asm_amd64.s:1696 +0x1
    
    goroutine 5 [semacquire]:
    sync.runtime_Semacquire(0xc082002420)
            /home/ben/.golang/src/runtime/sema.go:43 +0x2d
    sync.(*WaitGroup).Wait(0xc0820048c0)
            /home/ben/.golang/src/sync/waitgroup.go:132 +0x161
    main.wdetest()
            /home/ben/go/src/github.com/skelterjohn/go.wde/wdetest/wdetest.go:147 +0xed
    created by main.main
            /home/ben/go/src/github.com/skelterjohn/go.wde/wdetest/wdetest.go:31 +0x32
    
    goroutine 6 [runnable]:
    syscall.(*DLL).FindProc(0xc0820042e0, 0x55fd10, 0xd, 0x0, 0x0, 0x0)
            /home/ben/.golang/src/syscall/dll_windows.go:86 +0x403
    syscall.(*LazyProc).Find(0xc082007290, 0x0, 0x0)
            /home/ben/.golang/src/syscall/dll_windows.go:243 +0x125
    syscall.(*LazyProc).mustFind(0xc082007290)
            /home/ben/.golang/src/syscall/dll_windows.go:257 +0x28
    syscall.(*LazyProc).Addr(0xc082007290, 0x3e)
            /home/ben/.golang/src/syscall/dll_windows.go:266 +0x28
    syscall.WriteConsole(0x1c, 0xc082090000, 0x3e, 0xc0820637f0, 0x0, 0x0, 0x0)
            /home/ben/.golang/src/syscall/zsyscall_windows.go:1250 +0x42
    os.(*File).writeConsole(0xc082028010, 0xc08208e03e, 0x0, 0x2, 0x3e, 0x0, 0x0)
            /home/ben/.golang/src/os/file_windows.go:363 +0x511
    os.(*File).write(0xc082028010, 0xc08208e000, 0x3e, 0x40, 0x0, 0x0, 0x0)
            /home/ben/.golang/src/os/file_windows.go:379 +0xf9
    os.(*File).Write(0xc082028010, 0xc08208e000, 0x3e, 0x40, 0x2c90101, 0x0, 0x0)
            /home/ben/.golang/src/os/file.go:139 +0x97
    fmt.Fprintln(0x2c90000, 0xc082028010, 0xc082063ee0, 0x1, 0x1, 0xc8, 0x0, 0x0)
            /home/ben/.golang/src/fmt/print.go:255 +0xac
    fmt.Println(0xc082063ee0, 0x1, 0x1, 0xc0820680c0, 0x0, 0x0)
            /home/ben/.golang/src/fmt/print.go:264 +0x7a
    main.wdetest.func1()
            /home/ben/go/src/github.com/skelterjohn/go.wde/wdetest/wdetest.go:47 +0x155
    created by main.wdetest
            /home/ben/go/src/github.com/skelterjohn/go.wde/wdetest/wdetest.go:143 +0xb2
    
    goroutine 7 [runnable]:
    github.com/skelterjohn/go.wde/win.NewWindow(0xc8, 0xc8, 0x0, 0x0, 0x0)
            /home/ben/go/src/github.com/skelterjohn/go.wde/win/win_windows.go:115 +0xdd
    github.com/skelterjohn/go.wde/win.init.3.func1(0xc8, 0xc8, 0x0, 0x0, 0x0, 0x0)
            /home/ben/go/src/github.com/skelterjohn/go.wde/win/win_windows.go:30 +0x65
    github.com/skelterjohn/go%2ewde.NewWindow(0xc8, 0xc8, 0x0, 0x0, 0x0, 0x0)
            /home/ben/go/src/github.com/skelterjohn/go.wde/wde.go:109 +0x51
    main.wdetest.func1()
            /home/ben/go/src/github.com/skelterjohn/go.wde/wdetest/wdetest.go:45 +0x68
    created by main.wdetest
            /home/ben/go/src/github.com/skelterjohn/go.wde/wdetest/wdetest.go:145 +0xdf
    
    goroutine 8 [runnable, locked to thread]:
    github.com/skelterjohn/go.wde/win.(*Window).HandleWndMessages(0x0)
            /home/ben/go/src/github.com/skelterjohn/go.wde/win/win_windows.go:203 +0x42
    github.com/skelterjohn/go.wde/win.NewWindow.func1(0xc08200e300, 0xc082028070, 0xc8, 0xc8)
            /home/ben/go/src/github.com/skelterjohn/go.wde/win/win_windows.go:112 +0x13a
    created by github.com/skelterjohn/go.wde/win.NewWindow
            /home/ben/go/src/github.com/skelterjohn/go.wde/win/win_windows.go:113 +0xad
    
    C:\Users\Owner\Downloads>
    


  • Status: okay, this is really weird. I recompiled the compiler from the latest sources and it works. Somewhere in here is a commit that fixes the Windows API.

    wdetest.exe (2.4 MB)



  • That tiny program compiles to 2.4 MB? I mean I know Go statically compiles the whole runtime, but still. 2.4 MB?



  • Is 2.4MB a lot? My Skyrim autosaves are 8 times that easily.



  • That's because Gamebryo is a piece of shit.

    Also because it's saving the position/velocity of every physics object you touched in like the last 72 (game) hours' worth of dungeons, the memory-state of every game script (which is like 2-3 MB before you even think about mods), etc.


  • Grade A Premium Asshole

    @ben_lubar said:

    Is 2.4MB a lot?

    For 130 lines of code? Yes.



  • It's not 130 lines of code, though. It imports a few other packages which are larger.



  • Is Go smart enough to compile only the assemblies/functions the problem actually uses?



  • Yes.



  • I find it hard to believe that 130 lines of code exercise 2.4 MB worth of compiled code.


  • Grade A Premium Asshole

    @blakeyrat said:

    I find it hard to believe that 130 lines of code exercise 2.4 MB worth of compiled code.

    But it imports others! I found another one that adds 87 lines of code!

    Edit: And another that adds two lines. We are getting there.



  • Status: :rofl:


  • Grade A Premium Asshole

    You mean their parser is still utter rubbish? Say it ain't so...


Log in to reply