archive-fm.com » FM » G » GREER.FM

Total: 127

Choose link from "Titles, links and description words view":

Or switch to "Titles and links view".
  • Geoff's site: Consulting
    short term remote work What does short term remote work mean exactly I ll review code video chat or even pair program with you using Floobits of course Preferably such jobs would only be a few hours For more info

    Original URL path: http://geoff.greer.fm/hire/ (2016-02-15)
    Open archived version from archive


  • Geoff's site: FSEvents Tools: Watch a Directory for Changes
    Drop Box Watching Users ggreer Public Drop Box Change 18158642688910021128 in Users ggreer Public Drop Box untitled folder flags 131328 matched directory notifying followed by your computer talking Note notifywait will also exit if a file or directory is moved or deleted In this specific example that s probably more than you want notifyloop notifyloop takes a path and a command When something in path changes it runs command For example if you have a bunch of LESS in styles and you want to rebuild CSS when they change you d do something like this ggreer carbon code geoff greer fm notifyloop styles rebuild less sh Watching styles Path is Users ggreer code geoff greer fm styles Watching Users ggreer code geoff greer fm styles Change 18158642688910117872 in Users ggreer code geoff greer fm styles main light css flags 70656 matched directory notifying Running rebuild less sh lessc styles colors less styles colors css lessc styles countdown less styles countdown css lessc styles hexagons less styles hexagons css lessc styles main dark less styles main dark css lessc styles main light less styles main light css Path is Users ggreer code geoff greer fm styles Watching Users ggreer code geoff greer fm styles Notice that although regenerate less sh changed CSS files in styles notifyloop did not go into an infinite regress That s because notifyloop waits until command has finished before resuming monitoring changes While simple notifyloop is very flexible You ll probably use it more than the other tools autorsync Finally there s autorsync It takes a path and a remote destination If anything in path changes it rsyncs path to the remote In the following example I copy the source for ag to my home server Since the repo was out of date on that server my

    Original URL path: http://geoff.greer.fm/2015/12/25/fsevents-tools-watch-a-directory-for-changes/ (2016-02-15)
    Open archived version from archive

  • Geoff's site: The Case for "Pro" Browsers
    measurable way browsers are strictly better than they used to be Except one User interfaces Originally browsers were created by developers for developers But lately Chrome and Firefox have focused on improving the experience for normal users This is on net a good thing The vast majority of users benefit from features like voice search profile synchronization apps and fancy new tab pages They also benefit from dangerous settings being hidden in places like chrome flags But not me When running a browser for the first time I disable a dozen features and install extensions to expose advanced behavior I change my search engine so the Google Doodle doesn t show up on Chrome s new tab page I add an extension to restore Chrome s presentation mode Still I can t fix every annoyance The new tab page lacks recently closed tabs The developer console requires some priming before pasting will work Pasting javascript URLs in the address bar doesn t work Some TLS certificate errors can t be overridden These aren t just UI annoyances Some of these changes really have hurt developer productivity And yet I can t fault Chrome for making these changes They re great

    Original URL path: http://geoff.greer.fm/2015/12/06/the-case-for-pro-browsers/ (2016-02-15)
    Open archived version from archive

  • Geoff's site: How to Write Good Bug Reports
    me it is not fun So how do you make it easier for devs to reproduce a bug Developers know the software in question but your computing environment is a complete mystery to them The more they know about that the easier it will be for them to reproduce the issue With this in mind reports should contain information such as The exact operating system version e g OS X 10 10 5 The version of the buggy software e g Chrome 44 0 2403 130 Sublime Text 3 Build 3083 ag version 0 30 0 etc It s not uncommon for users to report bugs that have been fixed in newer versions Steps to cause the problem Exact commands are very helpful Exact error messages Codebases can be searched for exact error messages Not so for paraphrased ones Debug logs Again copied exactly Any unique data involved I can t convey how infuriating it is for someone to say It breaks on this file and not provide the file Err on the side of including too much It s quite rare that I read a bug report and think Wow This is way more info than I need Also overcommunicating helps to reduce back and forth Every reply response cycle decreases the likelihood that a dev will get to the bottom of the issue Guidelines are good but I find examples help more I don t want to single anyone out but here are some examples of bad bug reports If you see your name on one of those issues don t feel upset Reporting bugs is a skill It doesn t come naturally Just try to do better in the future After installing don t have tools on path Issue 3 ggreer dsniff BUG in diacritic Issue 1

    Original URL path: http://geoff.greer.fm/2015/08/15/how-to-write-good-bug-reports/ (2016-02-15)
    Open archived version from archive

  • Geoff's site: Laptop Annoyances (Or: Why I Use a MacBook)
    be tempted into getting something larger and heavier Now the 12 MacBook is out and my suspicion is confirmed Once you use a nice screen you can t go back Everything else looks blurry blocky and washed out Battery life It may sound like a lot but most people need at least 9 hours of battery life For software developers that number is closer to 12 Let me explain No sane person has ever said I wish this laptop s battery didn t last so long Still an astonishing fraction of laptops have terrible battery life Below some threshold battery logistics are a constant distraction Carry a charger Search for a seat near an outlet Dim the screen Close apps Monitor battery percentage like it s the blood pressure of a trauma patient Longer battery life is liberating Once it reaches a certain threshold you just plug in at night and stop worrying After experiencing this it s impossible to go back Size Most laptops are far larger than they need to be Apple s largest laptop is the 15 MacBook Pro Compared to a lot of stuff out there it s positively miniscule Look at this UltraBook next to my 12 MacBook It s ultra huge Sure most people could carry it around but few would want to Bigger laptops are more likely to be left at home That s a problem since to borrow a photography aphorism the best computer is the one you have with you Suspend Hibernate Like trackpads this is another simple aspect of laptops that almost everyone gets wrong Here is how suspend and hibernate should work When the lid closes the laptop suspends to RAM In this mode it consumes 1 battery per hour When the lid starts to open the laptop resumes The screen is on and ready for input before the user can finish opening the lid If the laptop is open but sleeping often due to idle hitting any key or clicking the trackpad will resume it The screen should be on and ready to work within a second Bonus points if Bluetooth input devices can wake the laptop from sleep In the past decade the only laptops that have satisfied these criteria have been made by Apple Others take multiple seconds to wake or they consume 5 battery per hour or they re only woken by lid opening not hitting keys Phones and tablets never seem to have issues with suspend hibernate so I find it bizarre that laptops do Fans Except for high end low power designs laptop fans are still a necessity The easy part of laptop cooling is blowing air across a heatsink The difficulty comes in designing something that works on all surfaces including blankets without distracting or annoying the user It seems counterintuitive but the only good location for ventilation is the hinge Every other place has signifiacant disadvantages Vents on the base can be blocked by blankets or bedding causing overheating Side vents

    Original URL path: http://geoff.greer.fm/2015/07/25/laptop-annoyances-or-why-i-use-a-macbook/ (2016-02-15)
    Open archived version from archive

  • Geoff's site: OS X: Code Signing and Firewalls
    if they pass signature checks ggreer carbon codesign vv usr local bin ag usr local bin ag code object is not signed at all Ag s build process lacks any signing steps so that seems fine Searching through io js s build scripts I notice some steps that could potentially try to sign the binary What about something with a similar build process to io js Would building Node js result in an invalid signature ggreer carbon Downloads node v0 12 2 codesign vv out Release node out Release node code object is not signed at all Hmm nope In fact it s not signed at all What s different here Also how exactly is io js s signature invalid After looking at codesign s manpage again I use describe ggreer carbon codesign dv usr local bin iojs Executable usr local bin iojs Identifier iojs 5555494426c029279ed5393a9c5c43ac9796d090 Format Mach O thin x86 64 CodeDirectory v 20100 size 79954 flags 0x2 adhoc hashes 3991 2 location system Signature adhoc Info plist not bound TeamIdentifier not set Sealed Resources none Internal requirements count 0 size 12 Interesting info but nothing really stands out to me Maybe running codesign with dtruss can help me figure out how OS X verifies the signature ggreer carbon sudo dtruss f t open codesign dv usr local bin iojs PID THRD SYSCALL args return 8507 0x1e707 open usr lib dtrace libdtrace dyld dylib 0 0x0 0x0 3 0 8507 0x1e707 open dev dtracehelper 0 0x2 0x102F51000 3 0 8507 0x1e707 open usr local bin iojs 0 0x0 0x1B6 3 0 8507 0x1e707 open usr local bin iojs 0 0x0 0x1B6 4 0 Nothing I could have sworn OS X had a database of code signatures somewhere codesign should have opened it In desperation I search my entire hard drive for that unique looking identifier 5555494426c029279ed5393a9c5c43ac9796d090 ggreer carbon sudo ag depth 1 u 5555494426c029279ed5393a9c5c43ac9796d090 Applications Library System Users private usr 2 dev null Binary file private var db DetachedSignatures matches Success Opening the file in a text editor shews binary stuff interspersed with text Hopefully file can figure it out ggreer carbon file private var db DetachedSignatures private var db DetachedSignatures SQLite 3 x database Good ol file you never let me down Except when you do I m relieved it s a a SQLite DB but what sort of horrid schema lurks inside ggreer carbon sudo sqlite3 private var db DetachedSignatures SQLite version 3 8 5 2014 08 15 22 37 57 Enter help for usage hints sqlite tables code global sqlite schema code CREATE TABLE code id integer primary key on conflict replace autoincrement not null global integer null references global id identifier text not null architecture integer identification blob not null unique on conflict replace signature blob not null created text default current timestamp CREATE INDEX identifier index on code identifier CREATE INDEX architecture index on code architecture CREATE INDEX id index on code identification sqlite schema global CREATE TABLE global id integer primary key on

    Original URL path: http://geoff.greer.fm/2015/04/26/os-x-code-signing-and-firewalls/ (2016-02-15)
    Open archived version from archive

  • Geoff's site: 2015 MacBook Review
    much all it is The MacBook completely fixes that issue while removing weight and adding style The MacBook s display is gorgeous Its native resolution is 2304x1440 but the default scaling isn t 2 1 Instead of a jumbo 1152x720 UI the effective resolution is 1280x800 This gives the MacBook as much screen real estate as the 13 Retina MacBook Pro Apple s display settings let you go to 1400x900 Things work fine at that resolution though switching desktops isn t as smooth Overall performance is similar to my 2013 Air which has a Haswell based 1 3GHz Core i5 The MacBook is a little slower at sustained tasks such as compiling large programs It took 6 30 to compile io js v1 8 1 compared to 5 30 on my Air I also notice some slight stuttering if I switch desktops while building projects in IntelliJ This is similar to my Air s behavior when plugged into a cinema display Battery life is a non concern Depending on what I m doing I can get anywhere from 5 to 12 hours unplugged With my typical dev environment running battery life is just above 8 hours This is significantly better than my 2013 Air Although both laptops have similar best case endurance I could exhaust the Air in 90 minutes with the right workload Lastly I really like the keyboard It feels as if the keys are made of mouse buttons short travel but sharp Fortunately they aren t as loud as mouse buttons If anything typing is quite quiet After a week of typing on the MacBook other laptop keyboards feel like I m pressing my fingers into ground beef Bottom line It s beautiful light and more than fast enough for my needs If you have the cash

    Original URL path: http://geoff.greer.fm/2015/04/19/2015-macbook-review/ (2016-02-15)
    Open archived version from archive

  • Geoff's site: Please Stop Getting Outraged
    They talk of how the accused deserves to have their life ruined They condemn anyone who calls for restraint raises objections or doubts the story A week later the whole thing is forgotten By then they ve moved on to the next injustice du jour This behavior is absurd no matter how selfish or altruistic one is Anyone who read about horrific occurences and then voiced their indignation at every opportunity would be unbearable Expressing such outrage is a reliable way to cause unhappiness while accomplishing nothing And considering the vast number of horrible things happening to people around the world reacting to whatever you stumble upon and feel strongly about is an extremely wasteful method of prioritization Our intuitions are terrible judges of suffering We deem harm wrought by other humans as worse than harm wrought by nature even though nature regularly visits misery beyond the most disturbed psychopath s aspirations Scope insensitivity tempts us to value ten lives equally to ten thousand Even simple things like pictures or proximity can impede our ability to reason about harm In this case going with your gut will cause you to care about the wrong things Being helpful is much harder

    Original URL path: http://geoff.greer.fm/2015/03/25/please-stop-getting-outraged/ (2016-02-15)
    Open archived version from archive