Humans have always been compelled by faces. We like to look at them, we like to draw them, we like to take pictures of our own face, we see them in the moon and in our toast and in a random outcropping of rocks. We look at a friend's face and instantly know what she's feeling. We look at a 700-year-old painting of a face and we can feel what that person's world is like on the inside.
Our depiction of the human face hasn't remained constant, however. Using a technique called face averaging, we can see how the art of the face has evolved.
For each of the images below, I've taken between thirty and ninety portrait paintings, depending on how many I could find, from a given time period. Then I averaged all of those together. So each image you see is not one person from one painting, but represents the average face painted in that period of art.
Renaissance 1300 - 1600
Baroque 1600 - 1730
Rococo 1720 - 1780
Neoclassicism 1750 - 1830
Romanticism 1790 - 1880
Impressionism 1860 - 1890
Post-Impressionism 1886 - 1905
Cubism 1907 - 1914
Only 18 out of 90 cubist images made it through the facial recognition software!
And here is how we portray the human face today. The following two images are each averaged from 100 different digital paintings from deviantart:
And here are some of the above images side-by-side, to more easily see the differences:
Of course, that which is truly beautiful about a face is that which is unique to it, along with the particular expression on the face in a given moment. By averaging hundreds of faces together to form one image, we've clouded the expressivity and uniqueness of the individual paintings. Even so, some expression still shines through. We can see the reservedness in some face average images, the sweet joy in others, and the seductive quality in yet others.
How will our depiction of the human face change over the next thousand years? I look forward to it!
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
â Live Streamingâ Interactive Chatâ Private Showsâ HD Quality
Anya is LIVE right now
FREE
Free to watch ⢠No registration required ⢠HD streaming
Using a career-focused social-networking site, I've gathered images of faces from different professions. For each search (eg, 'software engineer'), I took the first 50 to 80 faces that the career site displayed that were forward-facing and in color. Here are the averages - can you guess which face belongs to which profession?
Male Faces
Who is the Data Analyst, Founder, CEO, or Software Engineer? (Answers directly below.)
In order from left to right - CEO, Data Analyst, Founder, Software Engineer. A CEO gets more sun than a Founder, and is less likely to wear glasses. Data Analysts and Software Engineers appear somewhat younger than CEOs and Founders.
Female Faces
Who is the Data Analyst, Designer, Marketer, Recruiter, or Software Engineer? Answers below.
In order from left to right - Software Engineer, Recruiter, Designer, Marketer, Data Analyst. Software Engineers and Designers are more likely to wear glasses than the others. Marketers have the brightest smiles, of course!
Faces by Language
Who programs in Android, who in iOS, and who in Python?
From left to right - Python, Android, iOS.
More Data!
I wanted to get more faces, more careers, more languages - but I was booted from the career site.
Onward to other corners of the internet, to find more data and the neat things hidden in the noise!
So working on my projects using Unx-based tools, I run Homebrew on my Mac. I get the best looking, slim & powerful laptop on Unx that comes as close to Linux as possible for my deployments.
I usually write in vi but occasionally like to use Sublime Text. So I am not a fan of intermixing CLI with GUI controls, with the exception of what Iâm doing. ;-) (Hey, Iâm human.) So I spun up some Bash alias on a function to do it on my Mac at the CLI.
Add this to your $HOME/.bashrc file:
runSublime() { /Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text $1 2&>1 > /dev/null } alias sublime=runSublime
If you donât redirect stderr and stdout to /dev/null then your terminal will be filled with NS output garbaaj.
Now at the CLI, you simply type in:
~$ sublime /my/dir/to/sublime/with
Voila! You are now editing file in /my/dir/to/sublime/with.
In our deepnightmares, we've seen monstrous slugdogs, shoggoths of endless eyes, creatures beyond all reckoning. Wherever we look, a dog's face stares back at us, with their cohort of unflinching finches, all beaks and eyes. We try to escape into different layers, but we are still confronted with monsters of lizards, trypophobia-inducing insects, skin melting into panflutes, mouths melting into tennis balls. Is there no hope?
Luckily, there are models that have been trained on different images! Using different datasets yields much more pleasant deepdreams.
Places
The MIT Places dataset was trained on images of various indoor and outdoor scenes.
When we've been looking at beautiful places all day long, that's what we dream about. These deepdreams tend to be dominated by pagodas, fountains, bowling alleys, stadiums, tree-lined circular paths, coliseums, and baskets of apples.
Cars
The GoogLeNet Cars dataset was trained on different types of cars, using outisde views of varying angles, closeups of headlights and taillights, and pictures of the driver controls.
When we dream, we see smooth swaths of metal, lots of curves, headlights and taillights everywhere, and the occasional wheel. These are the spaceships with which we will send our slugdogs into outerspace, far far away from us.
Age and Gender
The Age and Gender dataset was trained on faces.
We dream of creepy babies and old folk with lots of makeup. The arch of the eyebrow and the wrinkles around the eyes are really important.
Flowers
The Oxford Flowers dataset contains closeups of flowers such as the following.
This model is fine-tuned from the reference CaffeNet. Instead of training from scratch, we can use what we have learned before. However, this does mean that in certain layers the dogs will come back. But we will avoid those layers!
Flickr Style
The purpose of the Flickr Style model is to categorize photos into styles (such as serene, melancholy, bokeh, and noir) and into art genres (such as Early Renaissance, High Renaissance, Ukiyo-e, and Impressionism).
Like the Oxford Flowers model, this too is fine-tuned from a broader model. We dream in swirls and textures.
More Models!
You can play too! All the models above are from the Model Zoo.
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
â Live Streamingâ Interactive Chatâ Private Showsâ HD Quality
Anya is LIVE right now
FREE
Free to watch ⢠No registration required ⢠HD streaming
Agile engineering is just as important to streamlined software delivery as agile project methodologies.Â
Hereâs an end-to-end, fully functioning (albeit trivial), automatically testable and deployable Node/Express project that represents only one point of view of whatâs good and what works for a basic Web or micro-services application that supports an agile engineering workflow. This code is MIT licensed, so please use it, critique it, fork it, and help to improve it!
Hereâs the repo:
https://github.com/thehackerati/node-app-template
Whatâs Inside
Docker is the heart of this environment.
For local development on a Mac, we rely on Vagrant to provide a Linux virtual machine within which we can run the Docker images. If you use Linux for development, you can run docker-compose directly.
The development environment allows you to edit source in your favorite text editor or IDE in your development host, while the application automatically runs tests and reloads inside the Docker container.
Travis-CI automatically runs tests and deploys builds to staging and production environments when you push and merge code on Github. You can see the build running here:
Any set of images can be broken down with Principal Component Analysis. This has been done pretty successfully with faces. Here we'll take a look at style.
Our dataset is 807 pictures of dresses from Amazon. They have a standard image size, but unfortunately do not have a standard model pose (though they tend to be centered in the image similarly). Ideally, our principal components would only be about actual dress style, but here many of them will be concerned with model pose. Despite this, we can still do a lot with this data set.
The second component seems to look at short dresses vs long dresses.
Reddish colors vs blueish colors.
Short hair and sleveless vs long hair and long sleeves.
Posing with legs close together vs posing with legs farther apart.
And so on.
Using components to recreate images
With a bunch of components like these, we can reduce an image from, eg 60,000 points of data (pixel values) to just a handful of numbers.
Let's recreate this dress from its components.
The following pictures are created from one, two, four, nine, ten, fifteen, thirty, forty, and seventy components (respectively).
As you can see, the more components we have, the more accurate and detailed the dress recreation will be.
The data for the middle dress above now looks like this: [-17541.81, -12749.33, -3766.29, 2005.28, 4193.08, 6832.55, -6704.90, -2135.51, 1112.27, 7627.80].
So, if you have a million pictures you need to store, you can save a whole lot of space by saving just the component values instead of the values of every pixel of every dress.
It even works for dresses that were not in the training set:
Though it works less well for patterns we haven't seen before:
And can't recreate accessories that were not present in the training set (notice the sunglasses and handbag disappear):
And even though the training set only contained dresses, the data is decent at recreating different types of clothing, such as suits and overalls:
Using components for prediction
I've also manually categorized the pictures as dresses I like (287 pictures) and ones I dislike (520 pictures).
Now we can use logistic regression on component data to predict whether or not I'll like a dress.
Sorting all the dresses by score, it can show the prettiest and ugliest dresses of the whole set.
The prettiest dresses:
The ugliest dresses:
Seems pretty spot on! I could now set up something to watch as new dresses are posted on Amazon, and to alert me to dresses it thinks I will really like.
The misclassifications are interesting too. Here are the three "ugliest pretty dresses", those that I classified as my style, that the program predicted I should really dislike:
It seems to be about that specific shade of blue.
And here are "prettiest ugly dresses", those that I classified as dislikes, that the program predicted I would really like:
These aren't that bad. I do kinda like them, but think they'd be nicer with some minor adjustments (slightly less form-fitting, slightly less loud pattern, slightly brighter color).
Creating new dresses
For creating pictures, there's no reason we need to confine ourselves to already known dress component values. We can also choose random values for each component, and see what happens!
Completely new dresses! With more data and better data, this could actually be a viable dress design tool!
Want to play? Code on Github
-- Grace Avery
If you'd like to see more about neat applications of PCA, check out Joel Grus's post!
[Edit 8/17/15: Additional material added based on the suggestions of hackernews commenters leni536 and gwern. Thanks!]
It seems like everyone wants to be more agile these days. Scrum, Kanban, and other agile project methodologies are all the rage. These methodologies generally speak to how product and development teams collaborate to deliver functionality, but they donât prescribe how engineering teams complete that work.
In order to practice an agile project methodology, engineering teams also need to practice agile engineering. After all, you can't deliver releasable code in a 2 week sprint if youâre routinely waiting to merge a major release branch. And you can't release early and often if you save integration and deployment for the end of the project.Â
Many engineering teams have adopted Git Flow, especially for release oriented projects like native mobile apps, where the cost of deployment is generally higher. For projects where continuous deployment is practical, others have adopted Github Flow. Whichever approach you choose, the key is to use a set of practices that your team can follow and that is as simple, lightweight, and automated as possible.Â
Agile engineering relies heavily on automating common development and deployment tasks. Figuring out automation in 2015 can be a nightmare of choosing between a myriad of tools: Git, Vagrant, Boot2Docker, Machine, Make, Chef, Puppet, Ansible, Docker, Jasmine, Mocha, Protractor, Karma, Jenkins, Travis-CI, Shippable, AWS, Heroku, Rackspace... There is no shortage of great technology choices and sample code to show you how it works. Unfortunately, there are few working examples of how it all works together, end to end.
Weâre building a series of open source application templates that implement a point of view of on agile engineering tools and practices, supporting the workflow described in the diagram below, end-to-end from local development environment to staging and production environments.
With these application templates, you will be able to setup local development, staging, and production environments in less than an hour, complete with automatic reloading and running of tests on save in the local environment and deployments on merging pull requests to staging and master branches, respectively.
The first of these templates is for Node.js Web apps and micro-services. Weâll follow soon with templates for Python Web apps in Django and Flask. Please take a look, give them a try, comment, fork, contribute to, and use them!
We hosted our first Startup Office Hours meetup almost two years ago as a means of supporting New Yorkâs vast entrepreneurial community with insights into what it takes to build a successful startup. Our presenters included startup founders in areas like real estate, edtech, social media, brain/bio hacking, software consulting [guess who...]âand even tech veterans like John Pavley, current CTO of Viacom.
Weâve had a blast hosting these events, but with time comes change, and we at The Hackerati have decided to use this event to start digging deeper into the tech side of things. Starting in September or October [still working out the details], weâll be kicking off a new series: NYC Tech Talks with The Hackerati.Â
Our goal for these NYC Tech Talks is to share the in-depth insights weâve gained from engineering successful technologies across various industries. We expect to focus on topics including Web/Mobile, Big Data/Analytics/Visualization, Machine Learning, and Distributed [Cloud] Computing with presenters from The Hackerati and other leading NYC Tech companies.
Weâll be kicking things off with a presentation by Rob Marano, Cofounder of The Hackerati. He's planning to show us how to leverage new AWS
components and Spark to analyze clickstream data for online advertising.
Bad user testing is exactly like that moment a 2-year-old shows you a cartoon drawing of...well whatever that crayon scribble they've worked so hard on represents. Maybe those circles on the bottom are legsâmaybe it's suppose to be a pony. If you can guess what they intended you might give them awesome pony-based feedback about how it looks so life-like! If not, maybe just say how pretty it looks. Give them a gold sticker. Hang it on the fridge.
Your coworkers, your friends, even random people off the street will do the same. They'll lie through their teeth when giving feedback, positive or negative. Consider any of the following motivations:
1. You mean a lot to them, so whatever you give them they'll tell you it's awesome.
2. They hate you, and no matter what you give them they'll tell you it sucks.
3. They pick a small detail that they can critique, just so they can say enough words to not make the conversation awkward.
4. They actually use a totally different operating system, and lied about their habits so they can get paid.
5. Maybe they are telling you things as they are, but not how they should be.
[http://xkcd.com/688/]
You'll find a couple of awesome people who can give you the appropriate amount of tough loveâlike your boss, if youâre lucky. But how do you get a statistical representation of your user base for those tricky nuanced questions? What if your target audience is teenagers and not an assortment of designers, developers, and project managers?
Just like good design is invisible, good feedback is mostly unconscious. Put your app in the user's hands and watch what they tap. Ask them to find the latest content and look at which buttons they press. Maybe they totally ignore certain menus, or have to double-back in an awkward way because they got lost somewhere. Even worse, maybe they give up on finding something because it's not in an obvious location.
For a more concrete example, maybe youâre concerned about the loading speed on a certain piece of content. One solution might be to set up timers and run studies about how many milliseconds are too long. Or maybe ask the user if it felt responsive. Whether they would wait that long. If they would open the app weekly.
The better way would be to go up to a random stranger, ask them to explore your new app, and see if they press the cancel button or start to hand you back the phone before the content loads. Try to have the least attractive person in your office do it and see if they still stick around.
To quote the entirety of one of my favorite app store reviews, "Cool."
With luck on your side and about 30 iterations of the above, maybe you too can achieve such stellar results.
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
â Live Streamingâ Interactive Chatâ Private Showsâ HD Quality
Anya is LIVE right now
FREE
Free to watch ⢠No registration required ⢠HD streaming
The Hackerati continues to build out its leadership team with industry veterans, proudly adding Amanda Keleher as Chief People Officer. Sheâs extremely seasoned, having held multiple senior People roles at IT consulting companies, including Global Head of People at ThoughtWorks. She then relocated to New York to join Intent Media as their VP of People.
As a people company, The Hackerati relies heavily on social contracts and nontraditional approaches to foster an enjoyable, creative, innovative culture. Our culture has been focused on transparency, authenticity, and having a helluva lot of fun from Day One.
As Chief People Officer, Amanda will lead and continue to develop our unique culture, with a focus on diversity and innovation. Sheâs also working on some exciting initiatives to collaborate with other NYC Tech companies and the tech community in general.
The Hackerati attracts and retains top engineers by offering a work environment that doesnât really feel like work. With a blossoming startup accelerator [Hackerati Labs] as our core side project, thereâs plenty of room for personal and team growth. And at the absolute forefront of everything we do is the motto Be Fearless. We understand that innovation isnât a product of following the crowd, and we do our best to promote and celebrate differences. Catering to all of our teamâs diverse interestsâfrom hacking to music to breakdancing to learning languages to poetryâis a core internal focus, and this is why having Amanda Keleher on board as Chief People Officer is a huge step forward for us.
Though early in her journey as a Hackerata, Amanda has already provided a powerful burst of perspective and energy. We all feel fortunate to work with such a force, and are sure to look back on this event and see it as an overwhelmingly positive turning point.
Become your favorite actor or your crushâs fantasy and send them a pic! Clone the repo or get the first Beta release and try it out for yourself!
openFrameworks
The app is built on a framework call openFrameworks. Itâs a C++ framework designed for creative coding, so you can develop really awesome and visually intriguing apps, and with all of the addons available the possibilities are endless. The app is also based on our very own Grace Averyâs OS X app as featured in a previous blog post which achieves the same result, just on Macs.
The App
Building the app posed a couple of problems. The first and most apparent âproblemâ is that openFrameworks libraries are written in C++ and iOS apps are, primarily still, writted in Objective-C. Luckily, thereâs a way to combat the issue via Objective-C++. Essentially, the app is written both in Objective-C and C++ with both syntaxes mixed in to a single file in some cases. Thereâs some meddling around in the Build Settings required to get the app to compile correctly at first since youâll get a bunch of type reference errors unless you use C++99 for the language dialect and libstdc++ standard library as oppose to the libc++ standard library. Secondly, ARC, or Automatic Reference Counting, isnât a thing in the app. Garbage collection is all handled manually just like in the good olâ days, so the app is sorta primitive in that sense. And also pointers. Pointers everywhere! They arenât so much problems as they are a nuisance.
How Does This All Tie Together?
So enough with the nitty gritty⌠how does the app work? You can look at the video as 2 layers. The first (bottom) layer is what the camera is capturing (a.k.a. your face) and the second layer (top) is the face you have chosen to become. If you just slap the image you want on top of the bottom layer, itâll be like plastering a poster onto your face, so we need a way to âcutâ the face out of that poster. If we break that process up, we first need to actually find a face. Thatâs all handled through a Face Detection library, ofxFaceTracker, and a Computer Vision library,ofxOpenCV. The image (whatever face you chose) is converted into a matrix via ofxOpenCV and that matrix is fed into an ofxFaceTrackerinstance. Once we get that tracker set up we can get the image points of the face. This will allow us to create the mesh that will be our cut out face. For those interested in the code, here it is:
src.clear(); // src is the raw image src.loadImage(face);     if(src.getWidth() > 0) {   Mat cvImage = toCv(src); // create the point matrix   srcTracker.update(cvImage); // update the face tracker with the new face   srcPoints = srcTracker.getImagePoints(); // get the face points }
The same thing is done for your face on the bottom layer. For video face detection, we use the ofxFaceTrackerThreaded library to conduct calculations asynchronously to better performance and not bog down the system. The reason for using the threaded face tracker to get the points of your face on camera is that those points are constantly recalculated and found again almost every new frame of the video (sorry, canât help dropped frames), so performing these operations asynchronously is crucial.
What youâre left with is two sets of face points that can be converted into a mesh. Each set of points represents a face whether it be your face or the selected face. The points in each mesh can be mapped to each other 1-1, so essentially itâs like taking a rubber mask and stretching it to cover your face while keeping the major features as close together as possible (in this case, the eyes, eyebrows, node, and mouth are the places with the highest resolution or most points). Once those points are glued to each other, the points on the top layer are completely controlled by the points generated by your face. Thatâs why when you open your mouth or move your eyebrows the top face also follows them.
The resulting mesh looks like this when mapped onto your face:â¨
In-Depth Look
If youâre really interested in the nitty gritty code of the app, I definitely recommend cloning the repo or downloading the first beta release code. Everything regarding the processing of the face image and the camera face is found in the ofApp.cpp file in the Application group. Remember, you need to have downloaded openFrameworks along with the necessary addons (ofxOpenCV, ofxCV, and ofxFaceTracker) and then throw the code three levels below the root of the openFrameworks directory (itâs easiest to put the app folder in openFrameworks/apps/myApps/. Thatâll ensure all of the OF libraries are found and that the project runs correctly. Also, another thing to note is that this project will only run on physical devices because of the use of the front facing camera. Youâll get unknown architecture errors if you try to use the simulator.
Startup Office Hours is The Hackeratiâs way of promoting the early-stage startup world and sharing experiences to help founders along in their journeys. The Hackerati has entrepreneurship at its core: our founders Geoff Scott and Rob Marano have been involved in a total of eight startups, and our nascent Hackerati Labs incubator seeks to fund startups conceived by the entrepreneurial engineers on our team. It became obvious that we should be directly involved with this growing community of risk-takers with transformative ideas, and so Startup Office Hours was born.
What began as a group of about 25 people in a classroom at NYIT has grown to over 1200 members with events being held at various startup spaces around New Yorkâand even once at Viacom. Itâs been awesome to watch this community grow and to garner feedback from people across the entrepreneurial spectrum, from the early-stage founders still figuring out their ideas to the seasoned veterans and VCs. Our goal from the beginning was to keep things casual while still offering valuable advice and sparking meaningful discussions. We believe weâve succeeded, and we thankfully applaud our membersâwhether theyâve come just once or every monthâand all of our impressive presenters. Hereâs to the continued success of another dedicated NYC community!
If youâd like to present your startup at a future event or host us at your venue, please email me.
We hope youâll join us at our upcoming events!
May 13 â Ask Alexis / Neo
June 10 â Scaling a Startup with Gregor Hoffman of 1DocWay
Here are a few highlights from past events:
John Pavley [currently SVP of Engineering at Viacom]
We met at a gorgeous Viacom event space, where John Pavley shared his experience from working with Apple, DoubleClick, Yahoo!, LimeWire, Spotify, Huffington Post, and Viacom. Pavley is also an Adjunct Instructor at NYU. Check out his brilliant talk on Taboo-Driven Innovation.
OpenBCI
An artist and self-taught Electrical Engineer taught a class at Parsons, where one of his students built a brain-monitoring baseball hat. They broke off to fund OpenBCI [BCI = Brain Computer Interface] via Kickstarter and raised $215,000 in their quest for $100k. This was an awesome talk with an even cooler demo!
Schoology
This onsite eventâi.e. one where Schoology both hosted and presentedâwas incredibly insightful, as Schoology has done an incredible job scaling a project that began in a college course to support over 7 million users in all 50 states and more than 150 countries.
Casting to the People
We gathered again in the gorgeous loft on Bowery that Casting to the People uses as their officeâthis time to hear about their startup: a mobile auditioning app that lets applicants vote up top submissions, allowing the most talented actors to be discoveredâregardless of their connections.
The Hackerati is proud to announce Jim Scott as Chief Operating Officer. Jim has been in the industry for over 20 yearsâa seasoned executive with both Fortune 100 and startup experience. His expertise in corporate and business development, marketing, product development, and financial management with a deep information technology background leave him perfectly equipped to help grow this entrepreneurial engineering team. Weâre ecstatic to have such a competent leader join our team.
Prior to joining The Hackerati, Jim was the President of SimplyEngage, a SaaS company focused on providing multi-unit brands with the tools and and data insight to engage customers locally. Prior to SimplyEngage, Jim was the Chief Operating Officer of PerformLine (an affiliate marketing and services firm), Automated Resources Group (a marketing services firm focusing on subscriber membership and audience management) and Donnelley Marketing (an infoGroup company) where he was responsible for operating income objectives as well as all aspects of solution delivery services, account management services, data processing services, vendor management, and production services. Prior to Donnelley Marketing, Jim was the Founder and CEO of ResponseLogic, a personalization software and services firm enabling marketers to target web and email content based on a proprietary recommendation engine.
Bringing on Jim as COO is a big step forward in scaling The Hackerati. Weâve been around for almost three years, and most of our growth has been on the engineering side. Jimâs expertise in direct marketing will be pivotal in further expanding our clientele, which will in turn allow us to continue hiring brilliant, creative engineers.
Iâve had the pleasure of working closely with Jim since he began and heâs been tremendously helpful in providing a structured approach to marketing. Heâs also helping push Labs forward on the organizational side, including an overview on what it takes to raise capital at our March Pitch Day.
This is just the beginning of The Hackeratiâs internal growth. Iâve been here since January 2013 when the team was about six months old and itâs been awesome to track our progress. There ainât nothinâ as exciting as building out a startup!
The Hackerati recently launched its first seminarâAn Agile Approach to Big Dataâthrough its blossoming Academy. Hackerati Academy has been an idea since our inception and weâre incredibly excited to be expanding the offering. Weâve run several pilot courses in areas like Android, Javascript, and Scala at Cooper Union, NYU Poly, and NYIT. Weâve also used Hackerati Academy as a means of growing our internal capabilities by having periodic Academy sessions during team lunch on Fridays. And now, with the introduction of this seminar, weâre excited to broaden the Academyâs scope and exposure.
An Agile Approach to Big Data debuted on Monday, March 2nd at Turn To Tech. Our goal was to introduce software engineers comfortable in Python and databases to Big Data practices and Agile software development. With support from Amazon Web Servicesâwho offered a $50 AWS credit to all attendeesâand BigML, The Hackerati had a blast providing this high-level perspective on practical techniques to talented software engineers.
Hackerati cofounder Rob Marano kicked off the seminar, while Python/Big Data engineers Ethan Lusterman and Derek Toub walked the group through the details. After a lecture overview, these three Hackerati engineersâas well as one from Amazonâgave hands-on advice during a breakout session. We know that the best way to learn is to dive headfirst into problems, so this is the way we teach.
More To Come!Â
Weâre hosting this event again on Tuesday, March 31st for Cooper Unionâs electrical engineering students, and plan to bring it elsewhere in the coming months. Weâre also in the process of putting together seminars on some other topics. Keep an ear out for future events if you want to pick up some new skills with Hackerati Academy!
If youâd like to keep abreast of upcoming Academy (and other) events, join our newsletter by filling out the form on the right side of our footer. Inquire here if youâre interested in ramping up your employeesâ skillsets with a Hackerati Academy training course.
And, as alwaysâin work, education, and playâbe fearless!
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
â Live Streamingâ Interactive Chatâ Private Showsâ HD Quality
Anya is LIVE right now
FREE
Free to watch ⢠No registration required ⢠HD streaming
The Hackerati was invited back to the United Nations for another presentation to promote Humanicy: The Human Side of Diplomacy. Check out my post on Humanicyâs April 4th media launch event for details on the platform.
December 4th and 5th marked the first full-fledged Humanicy event: a two-day celebration of art and its ability to help us recognize that we are all human beings connected through love and expression. Ambassador Toriello has promoted this idea at the UN because of inherent diplomatic and political buffers between this core human instinct to express and love. As I wrote in my other post, â[Toriello] sees art as the foundation of the human experience, and believes that diplomats and politicians who see each other as fellow human beings before discussing politics are more likely to establish meaningful connections.â
Once again, a question may be quite appropriately raised: how does this involve The Hackerati?
Art is Science | Science is Art
The two-day Humanicy event featured discussions, presentations, and performances highlighting the importance of art, including musiciansâlike Peter Yarrow from Peter, Paul, and Mary and a Juilliard/Columbia string ensembleâa cartoonist, photographers, painters, a documentarianâŚthe list goes on. Yet there was no focus on the technology driving each of these art formsâat least not until our presentation.
As Creative Technologistsâprofessional engineers who weave their artistic pursuits into their workâThe Hackerati teamed up with a few members of Local Projects to illuminate the age-old confluence of science and art. In fact, the word technology comes from two Greek roots: techne, meaning art or craft, and logia, meaning science or study. Everything is technology; everything is a blend of science and art.
I did my best to convey this sentiment in my introduction through my primary method of expression: spoken word poetry.
Grace followed with insight into technologyâs influence on heightened empathy. Using open-source facial recognition software, she suggested we would better understand others if we could see oursleves as them.
She took on the face of the Mona Lisa,
the Dalai Lama,Â
and even Ambassador Toriello!
Andreas Borg of Local Projects rounded off by using the same software to highlight this empathic response on a global political level, translating facial expressions into sound and asking us to perceive ostensibly cacophonous interactions as orchestrated music.Â
You can view our presentation here, starting at 1:45:40.
The Hackerati Bandâs Official Debut
To further emphasize the inseparability of science and art, The Hackerati Bandâwhich first came together at our Holiday Party last yearâplayed its first official set the night before, following the Juilliard/Columbia string ensemble. The band consisted of Derby [Vocals and Percussion], Grace Avery [Piano], and Omar Niazi [Trumpet] of The Hackerati, Andreas Borg [Guitar] of Local Projects, and supporting musicians Karen Larson [Violin], Jose Moura [Bass Guitar], and Sebastian Guerrero [CajĂłn].
While this portion of the Thursday event isnât on UN Web TV, weâve posted two songs on our Youtube Channel. Mi Vida was written by Derby and Andreas, and the unofficially titled Graceâs Song was written by Derby and Grace.
Thank You!
Weâd like to once again thank Ambassador Toriello and the Friendship Ambassadors Foundation for hosting Humanicy and inviting us along to share our perspective. Though The Hackerati is an engineering startup, we celebrate our teamâs ability to use these tools to better express ourselves and look forward with great anticipation to further highlight the eternal bond between knowledge and expression.
The Browser and JavaScripts = SUCH WOW, SO AMAZE!!11!!
In response to:Â
Really, Alex? REALLY?
I completely disagree with you, Alex. I believe that browsers are the future of application development, especially when it comes to mobile. When mobile devices first came out, the general strategy was to be the first app in the marketplace to be competitive. But the strategy has shifted to differentiating an app with better performance and UI, which is mainly achieved through native libraries.
In the near future, users will increasingly own heterogeneous devices across a range of manufacturers, with wearables and other connected devices entering the mix. Users have come to expect a seamless app experience across all of these devices and continuous updates throughout the lifetime of the app. The only way to deliver this at the speed of todayâs trends and stay competitive by covering all of these devices is to use a web-based strategy by leveraging existing browser technologies into applications.
Browsers were originally designed for delivering static HTML pages, but I believe we are seeing a round of new thinking towards browsers running modern applications. While most browsers have traditionally been CPU-intensive, frameworks and technologies are tackling app performance by taking advantage of GPUs for UI (see WebGL and Famo.us) and rethinking how DOM manipulations occur (see react). Below are some links to applications being built on browsers:
https://atom.io/ (Built on top of webkit; takes advantage of JavaScript/CSS/HTML for extensibility/plugins)
As for JavaScript, I really canât imagine a more exciting language right now. Whole operating systems are being developed to run exclusively HTML5/CSS/Javascript apps (Firefox Mobile OS, ChromeOS). Itâs easy enough to get started for beginners, and now that you can build more than just web frontends, it has really taken open source to the next level with the average layman releasing a new library every week.
The depth of the language is now evident with its prominence in the reactive/asynchronous programming and functional programming movements. The fact that you can run JavaScript code written by a stranger without having to install it or care too much about security is unique, along with its ubiquity in terms of developer talent and its ability to run on any platform with low overhead.
Even if you donât like the particulars of the language, you can take still take advantage by leveraging projects like Emscripten to compile your favorite language into JS bytecode. Below are some impressive examples of what the future of JavaScript might hold:
http://vps2.etotheipiplusone.com:30176/redmine/projects/emscripten-qt/wiki/Demos: Qt GUI framework running in your browser
http://kripken.github.io/sql.js/GUI/: SQLite Database in your browser
http://www.quakejs.com/: Quake 3 running in your browser
http://github.com/kripken/emscripten/wiki: More examples of projects converted to JS
http://bellard.org/jslinux/: Linux OS in your browser (not Emscriptenâstraight JS implementation)