-
Things and the internet and complexity
Apple is readying a new software platform that would turn the iPhone into a remote control for lights, security systems and other household appliances, as part of a move into the “internet of things”.
Apple plans to take on rivals Google and Samsung and make a “big play” in the world of smart home technology at its Worldwide Developer Conference on June 2 in San Francisco, according to people familiar with the matter.
This will reinforce the view, held by some in Silicon Valley, that Jetsons-style home automation is the next frontier in technology as growth in smartphone sales begins to slow in developed markets. - The Financial Times
Maybe I’m unimaginative and not visualizing the big picture but I still haven’t thought of practical applications for appliances beyond security, lighting, heating and entertainment which are all systems; not one off devices.
Even as a “user interface” developer *cough* front end *cough* , I see no point to obfuscate my interactions with my refrigerator, oven, dishwasher, washing machine and dryer.
There has to be an obvious gain of functionality/ease-of-use to offset the additional complexity. An iPod despite being more complicated to use than a CD or Tape player has so many advantages that any issues with managing digital music libraries on a computer was easily nullified by the ability to carry massive catalogs of music one’s pocket. Adding wifi/internet/bluetooth support for a car for diagnostics/vehicle health would easily offset the trouble of downloading an app and pairing it with the car. Can we extend this beyond systems and large ticket items?
I look forward to seeing how Apple envisions the future. My guess is they’ll provide the platform (elegant and beautiful in execution) and let the manufactures figure the later out, for better or worse.
-
The life of a Front End Developer
One of the most dynamic roles in the world of web today is that of the front-end developer. Always keeping up with design and code trends, it is the front-end specialist who keeps a website’s experience on the cutting edge. To understand the role of a web developer, it’s important to…
Entertaining, a little dated (Firefly references, Flash is dead, not much on current JS stacks like Node, Ember, Angular, etc) and I don’t think I know a single Front End Dev that’s a gamer. I’m like the lone dude with a Steam account that I play now and again. Front End Developers as ground don’t quite fit the usual nerd archetype. As a group, they’re more likely to argue fonts faces than Star Wars.
Otherwise, fairly accurate. Coffee is the fuel drives web development.
-
coding is a perceptual state of 'What?''
One of the most dangerous things I’ve seen happen to people who are just starting to code is being told that it’s easy. - Kate Ray, Technical Cofounder of Scrollkit, TechCrunch
Kate also suggests completing tutorials even when you’re unsure of what you’re doing, which is an extension of the profound advice I’ve never been able to source, “When learning to code, always type it, do not copy and paste”
-
Avoiding Burnout
A Day A Week
The past few weeks, I felt myself getting close to burnout again, so I instituted a rule for myself. One day a week, work is off limits – answering email, writing a blog post – anything. For one day a week, it’s off limits. I tend to rotate between Saturdays and Sundays, but it’s completely up to your schedule. To ensure that I stick to it, I tend to save errands and personal obligations for the weekend, forcing myself into a schedule without work. - Andrew Dumont, Always On
I’d tell Andrew to take it a step further. I know its impossible for some people but the smartest thing I’ve ever done professionally was separating my work e-mail from personal e-mail, and removing my work e-mail from my personal phone thus when I check my personal e-mail, work is never lingering in the background.
Establishing Boundaries is crucial. Weekends should be away time, as we already have much less vacation time than most other developed nations, and it works against us. Its okay sometimes a project has a deadline that requires extra work. Its not okay if every project requires extra work. That’s bad planning.
-
Creating a Hackintosh with a Quo Computing Motherboard
Why Hackintosh?
Once upon a time I installed OS X 10.5 onto a Dell running a Pentium-D (a CPU incidentally that never shipped with any OS X based computer) but without a proper graphics card or compatible audio chipset, it was mostly for show. It was surreal seeing OS X running on a non-Mac. Having had a PowerComputing PowerCenter, I remember the days of the clones but this was something different. I only booted OS X two or three more times before deleting the partition but having witnessed a hackintosh, the idea has always lingered…
I’ve posted several times about the death of the Mac Pro, most notably my rant “The Future is Gated Community” and even my list of “Recommended Mac Pro Upgrades”. I love OS X but at this current juncture, Apple doesn’t offer a computer that truly meets all my needs. I considered the 27 inch iMac (with the additional GeForce GTX 780M and Core i7) but graphically, it left too much to be desired.
Quo Computing: The Answer? Sorta
A few weeks ago something that’s always seemed like a pipe dream became a reality once I discovered the “Quo Computer Z77MX-QUO-AOS” motherboard, a redesigned Gigabyte motherboard with a wink-wink, none-too-subtle-nod, and nudging of the elbows, “Run any OS”. By any OS, they meant none other than OS X.
After reading up on the Quo Computer, it started off as a successful kickstarter project that actually resulted in a working motherboard (although they never were able to deliver some of the promised stretch goals like built in Wifi/Bluetooth).
Despite its short comings, Quo produced a motherboard that spec wise resembled a Macintosh: Firewire 400? Check. Firewire 800? check. USB 3.0? Check. Thunderbolt? Check, with 4 PCIe slots (two 3.0 and two 1.0), 4 DIMM slots (max 32 GB of ram) and an LGA1155 socket for a Core i3/i5/i7 CPU.
It wasn’t the motherboard to end all motherboards being a CPU socket generation late, limited RAM, one solo 16x PCIe slot (and a secondary 8x PCIe slot), one PCIe slot that’d enviably be blocked by a graphics card but it had something no one else had; a special uEFI rom for the motherboard that allowed it to magically boot OS X. Magic indeed, the ROM isn’t provided by Quo but a mysterious group called HermitCrab Labs.
What Quo promised is something that even Gigabyte hadn’t been able to promise previously, a hackintosh that didn’t require a complex dance to install OS X. I was intrigued.
Parting out the PC… erm, Mac
For my computer I decided to use the following hardware:
- Fractal Design R4 Case
- Quo Computer Z77MX-QUO-AOS Motherboard
- Intel Core i7 3770k (3.5 GHz)
- Gigabyte GeForce GTX 760 2 GB*
- SeaSonic Platinum SS-860XP2 Power Supply
- Crucial Ballistix Sport 16 GB DDR3 Ram (PC3-12800)
- Lite-On Super AllWrite 24X SATA DVD+/-RW Dual Layer Drive
*originally I attempted to use my EFI Rom flashed AMD Radeon 6870 which didn’t function properly
Photo: MacBook Pro Retina with TechSpot’s instructions loaded
Despite being a life-long Mac user, I’ve always been a power user, using two-button mice in the OS9 days, to flashing video cards for my G4 and so on.
The sacred text for this leap of faith was a single lone article by TechSpot using the Quo Computer motherboard. It provided everything one needed to get the Quo Computing mobo going on a single page. So based on this one article and TonyMacX86 I ordered roughly $1100 of PC hardware to built my own Hacktintosh. All my storage was already in my existing Mac Pro, consisting of 5 HDDs, 1 Samsung 840 Evo 750 GB SSD, and two USB 3.0 WD drives.
6 internal storage is overkill but no Mac produced today can have multiple internal storage devices.
Putting together my PC took a usual amount of time, the Fractal Design R4 is a very large case, roughly the same dimensions as a Mac Pro (mid-tower seems like a short sale).
Setting it all up
After setting everything up, I plugged into my Hacktinosh a FAT32 formatted USB thumb drive containing the latest ROM for the quo computer mother board (from Hermit Crab labs), and hit the END key and brought up the motherboard rom flasher. SUCCESS! Next I plugged in my SSD from my Mac Pro… and it booted! The screen was jibbled up (after a quick read, I forgot to enable the video) Once enabled OS X booted, complete with graphics acceleration from the onboard Intel HD4000.
I was able to boot both 10.8 and 10.9 without any problems.
After the computer was booted, RAM seated securely, I discovered AMD Radeon 6870 did not work properly in the Hackintosh which meant dropping $270 on the computer, raising the price from $800ish to roughly $1100ish.
This process wasn’t painless but required very little on my end.
By default the QUO is identified as a Mac Pro 2008, which means using popular hackintosh utilities like Champlist are not necessary
Benchmarks
Everyone loves benchmarks, so how does this computer stack up?
Geekbench Score
32 Bit
Single core: 3306
Multicore: 12787
64 bit
Single core: 3683
Multicore: 14249
The best way to check the performance is to go here as Geekbench provides a nice chart to single core, multi-core and 32 bit / 64 bit performance but I’ll summarize.
Single core
Without much surprise, the Hackintosh in single core performance is only bested by latest core i7 iMacs sporting the new 4770k/4771k i7s as Quo computer is a generation behind for CPUs. Otherwise, single core performance is above every Mac in production in this particular benchmark.
Multi-core
The multicore performance is quite a different story, as any computer post 2009 running 8 or more physical cores is distinctly faster than the Hackintosh, meaning 2009+ Mac Pros with 12 Cores post nearly double the performance.
Interestingly, both the iMac i7 4771k 27 inch iMac and my Quo Computing Hackintosh post better benchmarks in single and multicore performance than the $3000 Xeon E5-1620 Mac Pro.
Graphics + OpenCL
Now before you jump to point out that the Mac Pro 2013’s include dual FireGL Pros, currently there are not any easy ways to benchmark the graphics performance with the Mac Pros. LuxMark v2.1 remains the sole benchmark I could find and the database is borked so I couldn’t reference the Mac Pros.
Currently, the FireGL Pros are not the fastest OpenCL benchmarks and a 2012 Mac Pro armed with two AMD Radeon 7970s will best it. That said, the 7970 still is faster than the 760 found in my Hackintosh.
The important thing to take away is that $1100 gets you the performance of a maxed out 27 inch iMac or entry level Mac Pro. Sadly, Geekbench does not include any graphics benchmarks.
The GeForce GTX 760 is a more powerful gaming graphics card than any Mac shipping. I may return the 760 for the 770 as its only $50 more and it’d put the Hackintosh in a realm untouched by anything other than assholes who could afford 8+ core 2012 Mac Pros with 7970s.
RAM
The Mac Pro 2013 has one distinct advantage over my hacktinosh, with the ability to have a maximum of 128 GB of RAM. Even my previous Mac Pro could sport 64 GB of RAM.
Core i-series are limited to 32GB or 64GB, which biggest defining characteristic. Unfortunately, most common CPUs are limited to 32 GB including the Core i7 3770k.
Also it is worth noting that the Mac Pros uses 1866 MHz DDR3 ECC SDRAM vs the 1600 MHz DDR3 SDRAM, ECC has been long stated to take a small performance tax for the error correction but I couldn’t find any modern articles. If I had to hazard a guess, the memory I/O performance would be neck and neck with the 2013 Mac Pro.
32 GB certainly isn’t prohibitive for most use cases, and with the improved memory management in Mavericks help further it. It is also double the maximum RAM in current MacBooks. However, it is worth noting. The Mac Pros have been the only Macs capable of > 32 GB of RAM as of writing this.
Strange Problems Encountered:
- When installing my CPU I managed to bend (without realizing) two of the CPU pins on the motherboard. I had to use an exacto knife to straighten these out. Nerve racking to say the least…
- By default the internal video chipset isn’t enabled, this requires enabling it. Its clearly outlined in the guide but I still managed to skip it.
- I couldn’t use my old AMD Radeon HD 6870 in my Hackintosh with my 27 inch monitor (2560 x 1440). This was likely due to the hacked EFI rom that I loaded onto the card so the card would display the OS X option boot. Not all the ports are detected due to the flash so perhaps the EFI rom doesn’t play nicely with the motherboard’s uEFI rom (despite displaying video at the BIOS). The only solution was to buy an nVidia card or forgo using my monitor.
- A slightly loosely seated ram caused powering up to fail randomly. Since it was booting occasionally, I didn’t think to check the RAM at first.
- An addendum to the problem above. It appears the loosely seated RAM caused the BIOS to corrupt, fortunately the vanilla BIOS reinstall automagically and reapplying the new ROM for uEFI only takes seconds.
- Installing the GeForce drivers were a pain. My drivers installed were from 2011. I found on TonyMacX86 a user who was kind enough to upload the drivers he had, however these did not work. After much digging, I found that nVidia quietly has OS X drivers for its graphics cards which can be found here. Installing these and the sequential update (found in the control panel for the nVidia card) did the trick. I also installed the optional CUDA drivers during the process, it is unknown if this helped.
- PC cases are still ugly as I remember they were in the early/mid 2000s. Garish LEDs and plastic pains are still the norm. Lian Li cases for sale at NewEgg were not worthy of the praise. Fractal Design is about the least offensive option on the market.
- Cubase’s stupid USB eLicenser complains that the hardware configuration is different. Isn’t the point of damned USB Dongle that I should be able to plug and play? I already hate the damn thing so much that I keep debating if I want to remain in their DRM hellish scheme. Now I need to contact them? C'mon. Shouldn’t I be able to plug this thing into any computer I please and launch cubase? This is a problem with Steinberg, not Apple or Hacktinosh related.
- iTunes gives me an error -50 but appears to work. Messages asks for my keychain access not sure which password its requiring, it isn’t the admin.
Unresolved Issues
For reasons unknown (even after taking a dive into forums and messing with my bios) 3 out 4 boots, the computer boots with the CPU cranked to 4.3 GHz. This causes everything to run poorly, graphic transitions are slideshow and the mouse skips across the screen.This may be the deal breaker.
Solved: This appears to be a RAM timing issue in the Bios with a performance setting turned on. It plays nice with Windows but mostly confuses OS X.Strangely, I cannot select my Bootcamp partition. Yes I realize Bootcamp itself is a OS X -> EFI interaction but prior to flashing my Motherboard, it would by default, boot my Windows 7 install. Hitting F12 at the motherboard’s launch only lists the OS X partitions with bootable volumes. Selecting the HDD with the Windows 7 install does nothing (OS X launches like normal). Perhaps installing Windows 8 is order.Solved: This goes for an undocumented feature but you must enable in the Bios uEFI + Legacy to boot
Had it not been for the QUO computer motherboard, I don’t know if I’d undertaken this project. Once the computer was set up, I literally was able to take my copy of OS X from my Mac Pro to my Hackintosh (and even back to my Mac Pro and back yet again to my Hackintosh).
I would have gladly paid for a Apple Mac with a user replaceable PCIe graphics card preferable a few drive bays. My previous Mac Pro lasted me 6 years. That’s an incredible feat! I can’t imagine a 2013 Mac Pro lasting until 2019 as good chunk of the longevity was locked up in upgradability. However there are rumors of a 40 Gbps Thunderbolt 3 and AnandTech reports success of running a GTX 780Ti over Thunderbolt 2 (Anandtech’s tests of PCIe scaling speeds are surprising and makes this proposal sound much more reasonable). Perhaps given time (PCIe enclosures to come down in price, and compatibility to improve) this will be a viable option, and my “desktop” will just be a MacBook Pro docked.
Final Thoughts
So, will this Hacktinosh replace my Mac Pro? Possibly.
Currently having the boot my computer 3 - 5 times to get it boot the CPU’s actual clock speed (even with Turbo boost and EIST disabled) defies logic and doesn’t bode well. While i’m not a big gamer I do like games. If I’m dropping $270 on a graphics card , Windows better boot dammit.SolvedI don’t terribly enjoy having to tinker with my computer.
Having lived through the early days of OS X (and early as OS7) I didn’t particularly enjoy the random kext hunts I had to perform to get audio cards work, to manually sudo -rm bad SATA drivers for a SATA card that was causing my computer to freeze or the ever present .plist garbaging that 10.1 and 10.2 required so much of. My expectations are much higher for my computer as the bar is so much higher today.
The highest end iMac 27 (paired with an Core i7 + GeForce GTX 780M) seems like a much more attractive option than the entry level Mac Pro as by Geekbench stats, the iMac fractionally slower surprisingly the same at GPU activities short of OpenCL. With OpenCL currently relegated to few processes like Codec mashing, the iMac 27 inch (Core i7+ GTX 780m) is for most intents and purposes is a faster computer than the entry level Mac Pro.
However, this doesn’t come cheap at $2,349.00 (more if you add more ram or SSD) and even the highest end mobile chipsets can’t hold a candle to midrange desktop cards.
I really only have three options:
- Take a leap of faith with my Hackintosh and keep the hardware.
- Continue using my battle worn 2008 Mac Pro.
- Save up for a $2349+ purchase for an iMac (and some sort of storage array).
None are ideal.
Update 5/9/14:
Hackintosh Boots Windows. Gaming wasn’t much a problem in most games at 2560 x 1440. The i7 + GeForce GTX 760 means instead of 2x FSAA and 2x Anistrophic filtering to 8x/16x in most games. Everything appears to work in Windows with three successful boots to consecutively without the stutter CPU timing issue.
Update 5/9/14:
I’ll be posting benchmarks from GeekBench. The Hackintosh is right in line with the Core i7 iMacs (CPU wise). May have fixed the CPU issue…
Update 5/10/14:
The CPU timing issue appears that it was a RAM frequency issue. The motherboard has some sort of performance enhancement for memory that was enabled. Assuming the computer continues to behave normally, I’ll check off the unresolved issue.
Update 5/11/14:
What the hell?
I decided to return the 760 for the 770. I left my computer booted to Windows 7, downloading steam games and I came home about 5 hours later to find my computer making beeping noises and unable to wake. The beeps were coming from the HDDs, particularly two Seagate drives. Over the past 2 decades I’ve heard clicks of death, grinding but never beeps. According to Seagate, they shouldn’t beep. I’d chalk this up to the motherboard except there were two independent beeps and both coming from the HDDs bay. I’m baffled.
Rebooting didn’t help and only when I physically disconnected almost all my drives did the Hacktinosh boot. Fearing the worst, I pulled my Time Machine HDD and my SSD and popped them into my Mac Pro. At first my SSD refused to boot but my time machine HDD was working fine. After some tinkering, it looks like my sled for the SSD is toast and at least one or more other HDDs. Popping in one of the beeping HDDs into my Mac Pro revealed the drive was intact and S.M.A.R.T. status was ok and it did not beep. Since then I’ve managed to mount every single HDD in my Mac Pro without any problems. Crisis adverted! (Sorta)This makes me wonder: Is my 860watt power supply not enough for the massive GeForce GTX 770? Unlikely. Did my windows just pick a time to go down in flames? Why did my PC refuse to boot then when the Windows HDD was disconnected? Why did it beep when the GTX 770 was disconnected? (What was the beep for that matter?) Did my PC overheat? It didn’t fry itself as it was able to boot still. Do I have bad RAM? Something is amiss and I don’t know if I feel like tracking it down.
Update 5/14/14:
I was unable to figure out the problem with the HDDs, it looks like there’s an issue with the SATA controller or something to that effect. I didn’t want to risk my data. The conflict is NOT booting OS X. OS X runs great.
However, there’s just something that isn’t right with the computer, there’s been erratic behavior (the mystery clock speeds and SATA issues). I’m not sure if its bad ram, one bad setting, the new graphics card (I removed it and it still had problems), not enough thermal paste… Anyhow I tossed in the towel and packed up the box and sent it all back before the warranties were up. To help with the burden of cost, I assumed I’d be able to let go of my Mac Pro and recoup some of the losses by selling it but I am unable to.
It seems the ideal hackintosh is a setup where you have a safety net, more than just a time machine drive but rather a backup Mac Mini or the Hackintosh is your secondary computer, (primary being a MacBook). I’m still operating in a reverse world where my primary computer is a desktop my MacBook Pro Retina is used strictly for work so none of my personal data really exists on it.
I still think a Hackintosh is viable option and if I had a little more disposable income (and more space), i’d of kept the setup. Maybe my media pc will become a hackintosh…. :)
-
Making fatter drums 101
Percussion lines in many electronic music genres, particularly hip-hop/rap tend to sport larger-than-life drums. Its a sound that’s easily recreated but not immediately apparent if you’re new music creation / composition.
This isn’t an all inclusive post on every possible technique but rather a starting guideline. For brevity’s sake, I’ll be using a pre-existing loop as my template, this isn’t a requirement but rather an easy starting point. Loops are a tool just like a virtual instrument, but easy to abuse. Using using pre-existing loops may get good out-of-the-box results but you’re exceptionally limited in your expressive abilities, loops are best manipulated to become something new.
This loop is pretty straight-forward and I selected for a few traits, its relaxed and isn’t a percussion line that I’d associate with the beefy/meaty qualities of a hip hop boom-bap percussion line.
This is the raw unprocessed loop. Unprocessed is a relative term as this loop was obviously recorded/arranged/mixed by someone else other than me, but I have not altered it in any way.
Effects
Most people are familiar with Photoshop so I’ll be using it as my analogy. Photoshop has plugins/filters that allow certain effects to achieved quickly. Back in the late 90s, web design was particularly fond of plugins, garish lens flares, drop shadows and bevels. Some of you may even remember AlienSkin Eye Candy, which became the standby for cheesy flames and textures. Many would-be graphic designers relied too heavily on the effects, and not enough on the composition. Effects are best used when they’re subtle, they should never be the focus.
Audio is similar, there isn’t a magic plugin that will make things suddenly sound amazing, and its easy to over do it. However, effects are more part of the process chain than visual arts as they alter the dynamics of the sound. A better analogy would be in audio they’re both like photoshop plugins and core-techniques like masking, levels, blending modes and so forth.
If you’re not sure what the difference is between a limiter and a compressor or overdrive vs distortion, you should probably start reading up. Its a blog post in itself.
Even if you’re not a mixing engineer, core techniques are necessity. You should be familiar with EQing, and not just EQing but parabolic EQs and multiband EQs. It may sound daunting at first but they’re easy to pick up on after you start using them.
As a genera starting point there’s a few things you can do easily to make drums sound bigger. EQing and Compression should be your first attempt but this can only do so much.
A mild Overdrive (I used PSP Vintage Warmer) makes drums a bit crunchier as it simulations over-saturation akin to analog hardware. Analog isn’t intrinsically better than digital (so don’t start believing the hype) but it does have some desirable properties that can be emulated/simulated rather easily in digital.
For hip hoppers, older drum machines like early MPCs often either defaulted or were limited to 12 bit sampling instead of 16 bit. Bit depth dictates sound pressure levels in audio. The higher bit depth, the higher dynamic range (range between absolute silence to the maximum volume). Lower the bit depth, the dirtier a sound will sound (often hissier). To keep with the image editing analogy, bit depth dictates the amount of total colors can be used. With audio, it dictates how many steps in sound pressure. The grittier sound that’s associated with 12 bit samples sonically can be desirable. Its not a dramatic effect but it does add to the “roughness” that can be heard in many golden-era hip hop songs.
Below I’ve added a mild overdrive and bit crusher, effect to lower it to 12 bit with a very slight EQ adjustment to tone down the the 2khz-5.5khz range to tame the high hats.
Layering
Percussion isn’t just about effects, a very popular and very old technique is to layer different percussion sounds on-top of each other. This works best with kicks and snares. Pairing drums often requires a bit of guess work but the results are well worth it.
Below I selected one-shot drum samples, neither of which would be my first choice to start a track with. Below I’ve compose loop that nearly matches the kick and snare pattern but not entirely at the end.
Combining the two sets of sounds will yields what now sounds like a percussion line fitting of a hip hop track. Notice that in the loop below that in the later part a few of the kicks are absent from the original loop. This creates a level of complexity, when only the original loop’s kick can be heard.
These sort of techniques can create change ups or drum fills, even in hip hop you shouldn’t ever lock yourself into a 4 or 8 bar loop without any change ups/fills.
Between effects and layering, its easier to create larger-than-life drums. Experiment and play around.
Additional Beginner Tips:
The Snare Pattern
One other tip that took me a few weeks to figure out the very basics for hip hop patterns, the snare almost always falls on the ¼ and ¾ notes, with minor deviations. Kick patterns vary more. Club sounds tend to be more minimalist whereas underground/indie percussion lines vary more, and often sound (and are) like they are lifted right off an old vinyl record.
Don’t over mix the high-hats
Just as this the title suggests, beginners tend to over mix the high hats, having them at the forefront. Usually high hats are more recessed and lie much lower in the mix. Avoid cranking the volume and do the opposite, and let them hang in the background.
This concludes the very basics on making fatter drums, feel free to drum me a line.
-
AlphaPixels Prepros 4 App Review
A cross platform competitor to Codekit
(complete with Live Browser Refreshing, Preprocess Compiler, JS minifier, Remote Device Inspect Element and HTTP serving)
Aug 15 2015 Update:
I’ve posted a much better written, in-depth, Prepros 5 review, you can read here. The review below is for Prepros 4.
Not long after writing it, I retired Prepros 4 for CodeKit 2/Grunt. It’s filled with typos, crimes against English and edits. Most of the comparisons were to CodeKit 1.0, which wasn’t nearly as flexible as CodeKit 2.0, and before BrowserSync (for Grunt/Gulp).
Introduction
Time for a story… Once upon a time, when you coded the front end of a website, you wrote your CSS and JS in their native format. Today, you have your pick of precompiliers: SASS, LESS, Haml, Stylus, Jade, slim, CoffeeScript, Livescript
I have a love/hate relationship with precompiling languages, I’m not always convinced I’m writing better CSS than if by hand but the management capabilities.(Edit: I lied, I love Sass, vanilla CSS is evil) They do amazing things, with a few simple for loops, I can easily generate an entire responsive grid but they lend themselves to nested tag hell, and encourage over redundant classes. However, this is not about my opinions on SASS.For the most part, I’m pro-SASS.Everyone’s work flow is a little different.
I tend to favor GUIs when they empower me more than the command line. I started with Grunt JS. Grunt JS does its job admirably from the CLI, which makes a utility like Prepros less a necessity than applications for Git management.These days my workflow is a combination of Sublime Text 3, Sketch, Photoshop/Illustrator, Tower, Kaleidoscope, Colorsnapper, GifBrewery, ImageOptim, Muir, and Prepros. I’m not afraid of the Terminal, and still use it do all my config apache setups for OS X but I have a fondness for GUIs, especially ones that make tasks much easier. Prepros is nearly the same level of awesome as Tower is for Git management. I spent much less time messing with terminal and more time coding, designing and developing.
Propros…
Prepros’s HTTP works even with local devices and devices on separate VPNs.
Prepros isn’t the first Node JS-wrapper-alternative, that keeps you out of the command line. I tried CodeKit, and I wanted to love Codekit but it never quite fit into my workflow. Ironically while writing this review, Codekit matured to version 2.0, although I was unable to obtain it due to the vague “server error”.
It worked wonders for simple projects, mostly projects that I could host on my local machine (PHP, Wordpress sites), but was the square peg for a round hole when dealing with legacy coldfusion sites, the lone ASP.NET site and anything that involved complex VMs. CodeKit also seemed to crash more than it should have, and on occasion had some issues with Grunt files. Lastly, CodeKit insisted on reloading the front tab in Safari or Chrome regardless separate if was part of the site I was working on every time I hit save on a HTML/PHP file. CodeKit wasn’t bad, in fact it was quite good but these quirks were enough to keep me just using the command line running Grunt watch over Codekit.
The error log is easily the panel you’ll spend the most time with. Failed compiles will appear red, and passing compiles show as green.
Prepros’s user interface isn’t better than CodeKit but from a strict dev perspective: its everything I want. It is not the world’s most intuitive app and it looks and feels decidedly like a Metro app. Fortunately, Prepros lives in the background and you’ll rarely be looking at the app outside the error log. It only took me less than an hour with with Prepros to convert me into a buyer.
For my test, I used Zurb’s Foundation, installed it via command line for an Expression Engine based project for a decently budgeted client. After configuring Apache and Expression Engine on my local machine, I fired up Prepros and with a simple drag and drop, and brought the project folder over to Prepros.
After a few failed compiles, and a few tweaks to the default Foundation file and Prepros, everything was working. Precompiler? Check. JS Concatenation? Check. Live Reload? Check.
Window panes present all preprocessing elements
Victory
It was that easy. The file output paths were auto detected, my App.js minified properly along with my SCSS files. Editing my import list didn’t cause any troubles.
The HTTP server worked sharing between VMs, (VMware and Parallels), the iOS simulator, iOS devices (tested on iOS6 and iOS7, iPhone 5, iPad 2, iPad 3), Microsoft’s Surface (RT, running version 8), a Nexus 7, Android Simulator running 4.x and even a lone Windows Phone. The inspect element worked on all the devices, although hiccuped on VMs, and IE tended to complain about console.log errors in the JS for livereload. My guess is the particular livereload.js isn’t IE9 and below compatible.
Hitting save on any file will inject the relevant CSS changes or cause the browser to reload for JS, HTML changes.
Things got even more interesting when I installed Muir for iOS. Muir lets iOS and Android devices follow the currently open page. Paired with Prepros, you never have to touch your mobile devices.
The highest compliment that I can bestow on Prepros is it makes my job easier.
Nerd fun: poking around in the innards of Propros shows that Prepros is a Ruby/Node application
Pros
- Painless, almost zero problems
- plays nicely with built-in Apache
- detects VPNs, and multiple net connections
- internal HTTP server plays nicely with VMs, simulators and separate hardware
- Adds inspect-element (lite) to remote devices.
Cons:
- No speed increase noticeable over Grunt.js,
- Lacks many core features that other task managers offer
- GUI feels un-mac-like
- Included LiveReload.js can throw up errors in IE
- Inspect Element can view but not manipulate attributes.
Prepros vs Codekit
So which is better? Prepros or Codekit?
Prior to CodeKit 2.0’s release, I’d of been able to answer this with absolute certainty, Prepros but that isn’t true anymore.
Codekit 2.0 boasts Libsass (a SASS compiler running in C# instead of JS) and a re-write of most things. CodeKit ventures deeper into management as a Bower wrapper and source mapping. For those who are looking to avoid the OS X terminal at all costs, Codekit is the better choice. Both applications are best used with locally hosted files. If you’re looking for , inspect element on remote devices, ftp compatibility and cross platform support, Prepros is your man.
Update #1: I purchased CodeKit 2.0 as an upgrade.
My initial impression so far is annoyance as it does not appear to place nice with Apache configs and instead prefers MAMP configurations.Without re-setting up my current project, I can’t do an easy 1:1 test. Dragging over the project files returned compile errors. It took me a few minutes to discover Sass 3.2.x isn’t compatible for Codekit 2.0.From Codekit 2.0’s release notes:
If you have Sass 3.2 and/or Compass 0.12 installed on your system, you may see an error about a “superclass mismatch for class Literal” when performing any Compass actions in CodeKit. To resolve this, run gem uninstall compass and gem uninstall sass on the command line to remove earlier versions of these gems from your system.
I’m not looking to bork my working project near the end, so it might be awhile before I can do a head to head comparison. If you’re free of VM hell and running local MAMP configs, this might be the better route but Codekit hasn’t played nicely with the legacy ColdFusion 8 sites running off a Windows Server 2003 VM using Vbox. Prepros is more akin to using Sublime Text, drag the folder over and just go to work.
Update #2: Nov 12 2014: I posted a CodeKit 2 review, which covers Prepros vs CodeKit. Prepros 5 has been released since this review originally went live.
Update #3 Aug 15 2015: The opinions posted here were wantonly out of date and poorly written. This was from my Tublme days when I tried to use Tublme which didn’t have spell check and made editing a huge pain in the ass. I added strike throughs on some lines rather than delete my old opinions as it did represent my thoughts of me, nearly 2 years ago.
Conclusion:
Prepros seems more flexible (edit: than Codekit 1.0), especially for VPN/multiple subnets and for anyone using Apache built in to OS X. I’m not a MAMP user so I can’t comment to it’s compatibility in regards to MAMP.
Its well worth its $24 price tag. Users looking for a cross-platform solution, and wins on default for Windows users.
Version reviewed: 4.0.1
Cost $24
-
Recruiter spam, once flattering… now annoying. Tips and pointers for recruiters
Hi Greg,
My name is <redacted>. I am a recruiter at <redacted>, a five billion dollar financial service company.
To be honest with you, I was emailing you to see if you might be interested in a full time position as a UX Designer.
<redacted> offers a competitive salary, good benefits, supportive leadership and career growth. If you are interested in promotion, this is the place to be as we value our internal associates and will guide them in their career.
For more details on the role, please visit <redacted>
If this is of interest to you, please apply online, indicate you were contacted by a <redacted> recruiter and circle back to me directly.
We are on a short time line to surface viable candidates for this role and will be setting up interviews this week.
Best Regards,
<redacted>Alright, I’ll give this recruiter cred for cutting to the chase within three sentences, but leveling with me that you’re trying to woo me with a job when you’re a recruiter is like a car salesman admitting that he/she wants to sell me a vehicle. They get points for naming the company they’re recruting for but if you’re fishing in a fairly popular pond, you have to use better bait to get a bite. The above e-mail only got me to click the attached URL so I could write this blog post.
Tips & Pointers for recruiters:
- Generic corporate speak doesn’t make you sound profressional, it makes you sound bland, boring and stuffy even if you dress it down with causal speak.
- Using tired lines like “good benefits” is pretty relativistic and reads more like “not full benefits” or “we can’t brag about offering vision or dental”. You and I may have very different views on “good benefits”. Use quantifiable things how many paid vacation days or flexiable scheduling. People like perks, and they are easy to compare versus one’s current position.
- Dropping lines about company revenue doesn’t say anything about profitability, culture, or enviroment. In the finance sector, moving around millions of dollars is just another day. My company is only working with a few million in a year but all of us do well. Deep pockets doesn’t mean anything is going to magically trickle down to me.
- If your job posting only describes the things wanted in a candidate, you’ve already lost me. I’m gainfully employeed at a job I like, in a company that’s kick-ass, with and owner and a boss that cares. There’s plenty of people in my position. You may get “Joe Candidate” looking to make the next big jump but you’re not going to get any response from me or anyone like me. I can already tell you that I’m likely not a good fit for a financial firm based on previous interviews when job hunting in the past but you might be different and I’d never know. I didn’t even make it to searching Glassdoor.com to see what employees thought of the employer.
- Most of us are already are getting plenty of job offers. Most of us do not want them. Think like a job seeker, and post your jobs to relevant communities. Do you offer remote work? There’s a board for that. Do a little homework and you won’t have to try and lure people from their current positions.
- Looking for a particular skill? Have you tried local meetup groups? Usually you’ll find a mix of the happily employed and the ones looking for new opportunities. You probably don’t have to even attend, just e-mail the organizers to see their position on job postings.
- Do not cold call your candidates. Did you ever get that call from Comcast wanting you to upgrade your cable? Remember how you had to be curt to get out of 3 minute sales pitch? Exactly. Desperation is not an endearing trait. If you must call them, schedule a call.
Employers who are desperate for talent need to recognize that salary alone isn’t all that matters. Parents with young-ones are going to appreciate the ability to work from home or have flexiable schedules. New home owners probably will love extra vacation days or even optional furlow days to spend time fixing up their house. Sports enthusiasts will love being able to leave early to see the big game. Gamers and night owls will enjoy starting work 10 am. Think like a human. We all work, but we are people outside of our jobs. Pay alone won’t land you amazing candidates.
-
Unfucking the Internet
And Americans pay more for these slower wireless speeds than anyone else in the world: in Germany, where customers can freely switch between carriers by swapping SIM cards, T-Mobile customers pay just $1.18 per Mbps of speed. In the US, our mostly incompatible wireless networks lock customers in with expensive handsets they can’t take elsewhere, allowing AT&T and Verizon to charge around $4 per Mbps each and Sprint to clock in at an insane $7.50.
American politicians love to stand on the edges of important problems by insisting that the market will find a solution. And that’s mostly right; we don’t need the government meddling in places where smart companies can create their own answers. But you can’t depend on the market to do anything when the market doesn’t exist. “We can either have competition, which would solve a lot of these problems, or we can have regulation,” says Aaron. “What Comcast is trying is to have neither.” It’s insanity, and we keep lying to ourselves about it. It’s time to start thinking about ways to actually do something. - The internet is fucked, The Verge
The Verge puts it pretty eloquently: “The Internet is a utility, just like water and electricity.”
Its no secret that Comcast is continually rated as one of the worst companies. There’s little question as to whyGoogle announced potential Google Fiber candidates
-
Don’t just put a bow on it….
Youtube videos aren’t my usual fair for this blog but Anita Sarkeesian of Feminist Frequency, knocks it out of the park once again. If you haven’t seen her “Damsels in Distress” series, you’re missing out.
-
Understanding Recycle vs Time Stretch
I happened to be browsing Printmatic.net, the blog of rapper/beatsmith Blueprint and came across the following quote in quick overview of Reason vs Ableton Live:
For years I thought that Reason & Recycle had the sample game on smash. I had tried an earlier version of Ableton and didn’t think their sample warping was that strong. Well, it’s strong now. I’m even willing to say that if you’re a guy who samples, taking a week or two to master the warp function in Ableton will completely change how you do music - printmatic.net, Five Differences between Reason and Ableton Live
I found this statement interesting as Recycle isn’t the same as time stretching (and I’m willing to bet Blueprint knows this and knows it quite well) and its worthy of a blog post in itself.
The Short and Dirty History of Recycle …and sample time stretching
Propellerhead Software (best known for Reason) started out originally developing two pieces of software, ReBirth RB-338 (which emulated Roland TB-303 synthesizers, a Roland TR-808, and a Roland TR-909 drum machine in a virtual rack) and Recycle.
Recycle was developed in the late 90s, a time when CPU power was much more limited, time stretching algorithms weren’t nearly as sophisticated, and real-time stretching of samples was non-existent.
Loops and loop formats pre-date Recycle, distributed in a variety of ways, such as AKIA sound disks, Audio CDs, WAVs and so forth. The problem was that the loops were locked to the BPM (tempo) of the original source file. Any musician looking to use pre-made loops or create their own loops were limited by the technologies of the time. A loop would simply be a repeating sound file and not easily stretched.
Clever in the early/mid 90s, producers in the electronic music fields (Hip hop and electronica) often would use hardware (and sometimes software) samplers to cut up a particular sample into slices, and then trigger them manually. The effect allowed digital musicians to trigger samples and create their own arrangements. A drum track could be divided up into individual percussive hits and played back any way the musician saw fit, regardless of BPM. This also allowed clever musicians to cut up a loop and trigger it back in the same order at different BPMs in the same order as the original.
Recycle modeled itself cleverly after the slicing techniques, and created a file format based on the slicing techniques that were performed manually often on hardware samplers like the AKIA MPC series.
Recycle
Recycle is an audio application with a singular function: convert loops into Recycle (.REX/.RX2) sound files, which can be used with a wide range of DAWs (Digital Audio Workstations) such as Cubase, Logic, Protools, Ableton, Reason and plenty more.
Recycle uses a combination of using an assigned BPMs and hit points. The user can manually assign how many beats are in the actual sound file, and then Recycle can calculate the BPM of sample .
Example: if we know a 5 second clip has 8 beats then:
5 (seconds) / 8 (beats) = 0.625 (seconds per beat)
60 (seconds) / .625 (seconds per beat) = 96 BPM
This allows for loops to be any beat length such as 1 bar and half bars (6 beats at 4/4 time), and other applications will correctly understand the BPM.
A user then assigns the hit points, which create slices. The slices are triggered based on the BPM, relative to their position.
The magic of Recycle
There’s a few minor algorithm tweaks to make this sound slightly better than if the sound file was simply chopped up into relevant pieces and played back at that speed. If a 120 BPM loop were played back at 100 BPM, you would hear the gaps between each sound and if you were to play a 100 BPM loop at 120 BPM, it might sound very choppy as sounds may overlap each other.
Recycle uses a bit of trickery to fool your ears. Each slice has a simple delay effect that allows the sound to trail off at slower-than-the-source BPMs. This mild echo effect is only heard when a loop’s playback speed is slower than the original source file. The effect becomes more pronounced the slower the user plays back the sound. REX has its limitations thus a loop played back too slowly will suffer “gapiness”. When the BPM is increased (depending on the host’s interpretation of the RX2 file) a quick fadeout may be applied to slice, to give it a smoother sound. Playing back a loop too fast, will often result severe choppiness.
Despite its limitations, it was a miracle. in the late 90s, working with single-core sub-1GHz CPUs minuscule cache, with bus speeds usually 66-133 MHz and limited bandwidth, this sort of “hack” was groundbreaking as it required little CPU overhead and BPM changes could be performed in real time.
Even better, Recycle is dead simple to use (and very fast for its time as it would render the waveforms faster than most applications).
Resampling (The first digital time stretch)
For clarity’s sake: I’m going to refer to the act of stretching or shrinking an audio file’s length as “Time stretch” regardless if the end result is shorter or longer.
Time Stretching is exactly what it sounds like, a sound is elastically stretched to a new length, without affecting the pitch. Back in the days of vinyl and analog tapes, the only way to change a sound’s tempo was to play it back faster or slower which also affected the pitch, thus it became known as pitch shifting.
Due to horsepower constraints, digital audio was limited to resampling, which is analogous to the analog pitch shift. Resampling works by changing the sample rate of a digital audio file, then playing it back at the original sample rate. This results in the same behavior as simply playing back an analog source like a vinyl record faster or slower.
Early hardware samplers (and software packages) often had the ability to resample, even in real time. This allowed real world sampled instruments to be recreated into simplistic midi instruments without having to record every note in a scale being played. In the memory and disk space starved worlds of the 1990s, often a digital instrument featured samples at intervals to save precious space. A piano might have every 3rd key sampled. For example: Pressing the C key on a keyboard play the C note sample sound file. When the D or C# keys are pressed, the C key sample, resampled in real time to the D or C# note. Since resampling is literally playing a sound back faster or slower, it altered the length of the sound. Samplers became adept, borrowing from synths the ability to control the volume/length based on keyboard presses such as attack, sustain, decay, release often known as ASDR Envelopes.
Time Stretching
Due to the computational limits of computers at the time, the very earliest time stretching algorithms required a significant amount of time to process, and the algorithms were not nearly as sophisticated as they are today. Even a minor time stretch often resulted in a massively quality drop in the sound file. The first time stretch algorithms started appearing in software apps in the mid/late 90s. These integrated into the DAWs themselves in the early 2000s.
However, even in the early 2000s, time stretching was too CPU intensive to perform in realtime and thus had to be processed before playback, and resulted in destructive edits but the algorithms had significantly improved. Many of the popular DAWs started offering multiple time stretching algorithms. By 2005 Logic 7, FrutiyLoops, and Cubase all offered variants of real time time stretching.
Today, even low end laptops pack enough horsepower to time stretch multiple tracks of audio in realtime with pretty convincing results. Albeton and Cubase both offer audio warping based on hit points allowing users to quantize waveform audio to the BPM of the song.
Recycle vs Time Stretch
Since Recycle doesn’t actually alter the sound files themselves, there’s no drop in quality by time changes. The slices can also be imported into most DAWs as individual files, allowing users to rearrange the slices in a loop in any way they see fit. Many apps can direct import the rex loops into samplers and assign the slices to separate midi notes, allowing the users to trigger each slice individually.
A Recycle loop can easily be imported between wide range of applications and the REX loop will automatically snap to the project’s BPM. If the project BPM changes, the application simply play it back at the proper BPM.
Time stretching is more complex as it isn’t a file format but rather a technique or process. This is important to understand as REX/RX2 files contain all the necessary data for an application to play them back properly. Some formats contain meta-data for programs interpret such as Fruity Loops (WAV) or Apple Loops (AIFF) which lets an application know the original loop’s BPM and then can be time stretched appropriately to a new BPM.
Time stretching quality and behavior varies widely between the applications. Some applications like Ableton, attempt to detect the root tempo and beats, then assign warp points within file. Cubase makes doesn’t make loop assumptions about audio files but it allows stretch to the song’s time line and snap positions, and assign warp points within.
Time stretching is very powerful and allows you to easily warp audio segment by segment. Time stretching allows for considerably flexibility than Recycle.
So why would anyone use nearly 20 year old Recycle format? Recycle does not alter the sound slices within the loop. This means the sound slices will remain the same quality regardless of BPM. This is very beneficial to percussion loops as time-stretching drums often results in drums that sound “off”. Also, unlike meta-data loop formats (Apple Loops/Fruity Loops), Recycle loops are pre-sliced which often makes for easy rearrangement. For these reasons alone, Recycle still remains arguably the most desirable format for percussion loops.
By no means will Recycle always deliver better results than time stretching for percussion nor will time stretching always deliver better results for melodies. Recycle isn’t inherently inferior either to time stretching. Recycle is a different strategy than time stretching that yields different results.
Its another tool the belt of the modern digital musician. Resampling still has it place among modern time stretching techniques and Recycle does to. Recycle still has percussion on smash and apps.
-
Tublme, an OS X Tumblr Client Review
Introduction
Tublme’s Icon - but what does it mean?
I’m writing this from Tublme. Its the second time I’ve made a post to Tumblr in my 9 month stint on Tumblr outside of a web browser. For a quick and dirty explanation, Tublme, is Tumblr Client for OS X by newcomer, Raken Studio, giving Tumblr a native OS X experience.
Tumblr’s WYSIWYG editor for in browser is pretty solid, but always keeps me at an arms length, more often than not, I’m hand writing my posts in HTML. Its probably the reason why I don’t update my blog as much as I’d like to think I do. I’ve had some interest for some time now about purchasing a Tumblr client, but none of them moved me, that is until I discovered Tublme.
Browsing
Browser window is sleek and small
I use Tumblr differently than most people. I rarely browse and I mostly post. When I was considering a blog platform, I wanted the lowest maintenance blog possible with the best interface. I didn’t want to manage/police comments, I didn’t care to track my visitors. Quite frankly, all I wanted to do is write.
That said, as a browser, Tublme as almost as good using native iOS Tumblr App or the website itself. I found myself a little miffed that I couldn’t view separate streams between my two Tumblr user names (Under one account), but instead was presented content in a simultaneous stream. Other than that, browser was fast and quick. New posts are automatically loaded in and even show in Notifications. For the truly Tumblr browsing addicted, Tublme will keep you more connected than ever and you don’t need to keep Tumblr open in a window. It even sports an optional menu bar widget (Thank you devs for making it optional) .
Tublme is exceptionally good for managing multiple seperate tumblr accounts. Users can easily bounce between seperate logins without much thought, through quick keyboard commands at that. The devs get bonus points for including account icons in the account drop downs.
However, notifications don’t have any real options, its either on or off. Those following 100 Tumblr probably will want to turn off the feature after being flooded with new posts constantly. I’d suggest to the developers adding notify only when preferred users post but I understand the hurdles thsi would take.
Also, even when notifications are disabled within the app, I had the problem of receiving blog updates notifications. The faulty notifications on/off bug can easily be solved in OS X’s prefrences. Simply go to Notifications preference pane in the OS X preferences, locate Tublme in the list and turn off notifictions.
Posting
My biggest annoyance with Tumblr is the posting process so I pinned my biggest hopes on Tublme. Tumblr is not a bad site, in fact its quite good, although its best suited for quick under-formatted tools. It can be used as a full blogging platform but lacks formatting tools. Instead, I’m constantly bounching into the HTML editor.
Tublme as whole, its quite beautiful and easy to use. During the process I accidentally closed my window. Reopening the post item window brought up my incomplete post, something a browser couldn’t do. Tublme also gets bonus points for including Markdown as an option over HTML.
I found it easier and much improved over using Tumblr but it had a few glaring omissions.
- You cannot add images to text posts
- Previously used tags aren’t recognized
- Despite enabling check spelling, misspelled words are not highlighted
It was disappointing, for an app that shows quite a bit of polish in many areas to lack a few essential features. Posting picture posts was simple and fast, drag and drop. Browsing previous posts a was fast, and worked exceptionally well.
In all regards, I preferred Tublme but was held back by the inability easily spell check and add pictures to a post. To add my screenshots to this post I had to save this post in my queue and add the pictures the post via tumblr.com. It defeats the purpose.
Interestingly, once the images were inserted into the post, I could edit the image proportions in the WYSIWYG editor. Tiublme has image support but doesn’t let you add images.
I also encountered an interesting glitch. After a link is inserted, the highlighted text can be click, which will transport the user to the linked page… within Tublme. Without a back button, its impossible to return the post. Closing the Edit window does not seem to rectify the problem as the window opens back up to the linked page regardless of the post loaded. The only fix is to quit the app and reopen. Fortunately, you are still able to save any unsaved work even if its displaying the inccorect page.
Lastly, uploaded images within text posts are displayed non-retina regardless if the image is scaled or not. This doesn’t affect your tumblr’s content. High resolution images will appear in their full high-rez glory on your Tumblr feed… just not within Tublme. Its purely an aesthetic gripe.
Suggested Features
Since Tublme isn’t Tumblr, I’d really have liked to have Headline tags and <small> tags in the formatting bar. Tumblr already has bold, italic, strike, links, ordered and unordered lists, link breaks and quotes.
I still have to bounce into the HTML editor to add headlines (<h1>, <h2> etc) tags and <small> tags for image captions.
Alignment could be appended to my wishlist but anything that writes inline styles from a developer’s perspective is less-than-ideal.
Lastly, from a UX developer’s perspective, I’d suggest the “Edit Text Post” window name be reflected in the Window menu. There’s some dissoance when clicking the window menu reads “new post” and the window you’re looking for is “Edit Text Post”.
Restrictions
Tublme faces an uphill battle, according the developers, the limitations of the Tumblr API make it impossible for the developers to add:
- Messages and questions
- Changing your Tumblr Account Settings
- Answers to posts
- Synchronization of saved searches
None of these are deal breakers for me but are important to consider before you pull the trigger. All of the above features can still be accessed via HTTP in your web browser.
Final Thoughts
At $9.99, Tublme provides an exceptionally good interface, fitting of an OS X application with some minor hiccups. If they add the ability to add other media types to Text posts and spell checking, I’ll be a total convert. I’d love to see a few more post formatting options as well.
Should you buy it? That depends. If you rely on any of the missing features you might find yourself on miffed.
There are other OS X tumblr blog editors to check out, although Milk appears to be the only full suite application that offers Tublme-like features.
Tublme succeeds far more than it fails and provides a beautiful front-end interface to Tumblr. Quite frankly, it feels like Pixelmator, and that’s a good thing. It still has a bit of bug squashing before I can whole heartedly recommend it.
Raken, if you’re out there listening, keep up the good work. Tublme is almost the killler app for Tumblr.
Version: 1.0.2
January 13th, 2015 Update:
Tumble Me Has gone through several minor updates, last update in Nov 6th, 2014 and a price drop from $9.99 to $4.99. A few of my biggest gripes have been fixed, most notably the spell check while typing.The some of the updates include:
- Fullscreen mode
- Two factor password protection
- Preview of posts
- Auto-complete of tags
- Notifications bug fixes
- Spell check while typing (notably, you will have to enable this under Spelling and grammar)
- Yosemite Support
Tublme is now cheap enough that its in the impulse buy category. Depending on your Tumblr usage, it might be the app you’re looking for. I’ll be giving a second go around.
-
Photosweeper (OS X) Review
Photosweeper Review
At this point in time, photo management is the new norm. Quite simply, we take too many photos to keep track of them manually. The tools we have are pretty good, allowing for quick edits, be it color correction, cropping or other (usually) non-destructive edits. Despite the plethora of options„ there’s quite a vacancy in this space: Whatever your poison is, Lightroom, Aperture or even iPhoto, none of these do much in the way of duplicate detection (outside of exact duplicates).
To the rescue!
Photosweeper’s aim is to find and destroy duplicates of photos. Its a one trick pony but it performs this trick exceptionally well. Rather than simply find exact matches, it instead creates thumbnail images for analysis and then identifies near-matches. It doesn’t matter if they’re different formats (JPG vs PNG vs RAW vs PSD), different resolutions, or even separate photos altogether that are remarkably similar. It also doesn’t matter if you use iPhoto, Lightroom or Aperture or any combination of the three, Photosweeper is capable of finding any and every photo.
For my test, I used my own Photo library, largely in Lightroom 5 and some free floating files. To add to the mix, I have an out-of-date version of Aperture and iPhoto, each with their own respective databases from years ago. Like many , my library spans many years and many cameras. I had photos ranging from a Powershot A70, Canon 300d, iPhone 3G, 4 and 5, Panasonic GM-6 and some captures from a previous employer’s 7D.
My pictures folder totaled 129 GBs. Anything shot it the past three years has been managed by Lightroom, before that…. well, most of my “organization” I handled by drag and drop.
I’ve debated cleaning my Photo library prior but the task never quite made it on my “to-do” list, perpetually on my “Clean one day”.
Init Run
On my first run (in typical user-interface developer fashion) I skipped most of the tutorial screens, eager to see what I could do. It took a moment of confusion as I assumed that I had to import each library one-by-one. I noticed the rather large text suggesting I drag and drop my photos into Photosweeper. I added my Pictures folder and set the scan size to the maximum resolution (128 x 128).
With years and years of photos (23,000 to be exact), I worried that this process may range into the days. It took roughly 2 hours for it to munch through all the photos on my 2008 Mac Pro (2x 4-core 2.8 GHz, 14 GB of Ram) off my 2 TB HDD.
The results appear in real time, you don’t have to sit and wait for the process to finish, you can start identifying duplicates in soon the query makes its first discovery. Photosweeper also works on videos, a nice bonus and worth a mention.
Elegenance
When attempting to identify duplicates, Photosweeper lets you set the tolerance level. I went fairly strict, as I wanted to cut out only exact duplicates, and rid myself of lower resolution/lower quality exports. With the tolerance ramped to maximum, only near identicals appeared as duplicates.
Without much thinking, I adjusted the preview window sizes to maximum and started manually removing duplicates. As far as user-interfaces go, Photosweeper gets an A. Its familiar, in a good way. It only took seconds to figure out user interactions. Anyone used to using a photo manager can dive in without much trouble.
Photosweeper offers a suite of logic markers to identify which photos to keep. I tested out the auto duplicate detection, but found that it was a little more liberal than I wanted. I opted instead to manage my photos manaually but this sort of utility could save hours, if not 10s to 100s of hours for busy professionals.
Conclusion
In the end, I only saved 7 GBs by deleting only exact duplicates out of 128 GBs. Still, most of these were iPhoto photos, running in at about 4 megs a file. I ended up removing around 1000 photos from my computer.
That said, I always have the option go back and review near duplicates, of photos I snapped in rapid succession and the ability to keep my photos under control in the future.
The usefulness of Photosweeper largely depends on how avid of a photographer one is. Users with small libraries will only find limited use for Photosweeper. Bigger the library, the more indispensable Photosweeper will be.
The only other negative I can forsee is that eventually, Photosweeper’s duplicate detection may make its way into Lightroom or Aperture. That said, its up for debate if a hypothetical duplicate detection will function nearly as well as Photosweeper and it could be years before this feature makes it way into either suite. Only time will tell.
Personally I can’t recommend it enough, and I’m not alone. The only other alternative I know of is Gemini - The Duplicate Finder, which aims to detect file duplicates, which can detect duplicate photos but isn’t its primary function.
Full disclosure, Gwinno Software, Inc. offered me a free copy of Photosweeper to play with (no strings attached), they did not offer me any compensation for this review. Prior to any interaction with Gwinno Software, I identified Photosweeper as one of the 53 Mac Only Design & Development Utilities.
-
In the business of destroying jobs
Until now the jobs most vulnerable to machines were those that involved routine, repetitive tasks. But thanks to the exponential rise in processing power and the ubiquity of digitised information (“big data”), computers are increasingly able to perform complicated tasks more cheaply and effectively than people. Clever industrial robots can quickly “learn” a set of human actions. Services may be even more vulnerable. Computers can already detect intruders in a closed-circuit camera picture more reliably than a human can. By comparing reams of financial or biometric data, they can often diagnose fraud or illness more accurately than any number of accountants or doctors. One recent study by academics at Oxford University suggests that 47% of today’s jobs could be automated in the next two decades.
Its only to get bumpier from here..
-
A fantastic list of questions to ask a potential employer
You know that part of the interview where the employer asks you if you have any questions?
Having been on the other side, asking questions is something that employer is actively encouraging you to do, as its another chance for them to promote their ethos.
My basic strategy is to spend 20 minutes before each interview I do and pick some appropriate questions from this list. I’ve tried to categorize them a bit. A lot of these are outright stolen from Edward O’Campo-Gooding’s list of questions, as well as from various people at Hacker School. I’d love suggestions for more! - Julia Evans, jvns.ca
Go read the list that Julia Evans has composed. Here’s a sample of questions. These are primarily tailored to software/web development.
Quality of life
- How much vacation do people get? If there’s “unlimited” vacation, how much vacation do people normally take?
- Is it possible to take sabbaticals or unpaid vacation?
- How many women work for you? What’s your process for making sure you have diversity in other ways?
- How many hours do people work in an average week? In your busiest weeks?
- Is variability tolerated or is everyone expected to be on the same schedule?
- What time do people normally leave work?
- Would I need to be on call? How often?
- How often are there emergencies or times when people have to work extra hours?
- What is your turnover rate like? How many devs were hired last year and how many left?
- What’s your retention rate of women over 1.5 years? Do you think you could’ve done anything differently to keep people who left?
- Do people work on the weekend?
- Do people check in when they’re on vacation? How often?
- Is it possible to work from home, say, 1 or 2 days a week? Does anyone do this? (can be a nice option to have)
A company that discourages you from asking questions about their work environment is likely a company that you may find discouraging.