Skip to content

Fackbook Tries to Solve PHP's Issues With Their New Language Called "Hack"

I just had finished an article about facebooks new programming language. I am compiling it right now (thats there is a aur package available for hhvm).
In general, it looks like hack is friendship php with benefits. Can be run as script language, can be used as dynamically typed. Yes you are right, both times a "can be", indicating "can run as compiled code" and "can be statically typed" (or how they called it gradual typing.

So what hack is hack?

Hack is a programming language for HHVM that interoperates seamlessly with PHP. Hack reconciles the fast development cycle of PHP with the discipline provided by static typing, while adding many features commonly found in other modern programming languages.

Hack provides instantaneous type checking via a local server that watches the filesystem. It typically runs in less than 200 milliseconds, making it easy to integrate into your development workflow without introducing a noticeable delay.

source

Good articles are starting to spreading around, first i found was on sitepoint.com.

I was searching for a support announcement of hack for phpstorm and yes, there is a feature request for hack support as well as a feature request for hvvm debugger out there. Crossing fingers to get it in asap :-D.

phpstorm linux - java.lang.UnsatisfiedLinkError: /usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libsplashscreen.so: libgif.so.6: cannot open shared object file: No such file or directory

Just got the following exception thrown while i updated/installed phpstorm on a fresh installed arch linux.

java.lang.UnsatisfiedLinkError: /usr/lib/jvm/java-7-openjdk/jre/lib/amd64/libsplashscreen.so: libgif.so.6: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1872)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:67)
at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:47)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.SplashScreen.getSplashScreen(SplashScreen.java:121)
at com.intellij.idea.IdeaApplication$IdeStarter.a(IdeaApplication.java:218)
at com.intellij.idea.IdeaApplication$IdeStarter.a(IdeaApplication.java:195)
at com.intellij.idea.IdeaApplication$IdeStarter.access$000(IdeaApplication.java:178)
at com.intellij.idea.IdeaApplication.(IdeaApplication.java:97)
at com.intellij.idea.IdeaUltimateApplication.(IdeaUltimateApplication.java:16)
at com.intellij.idea.MainImpl$1$1.proceed(MainImpl.java:53)
at com.intellij.ide.a.f.ab$3.run(ab$3.java:372)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

First idea, "well something went wrong" (because i simple rsynced my settings from another pc). Later it turned out something else was missing. A simple "pacman -S giflib" and everything was running fine afterwards.
so giflib was missing.
What is "giflib"?
giflib is a library for rendering and generating GIF image files.

source

web - PhpStorm EAP 7 released

PhpStorm has jumped to the major version of 7.

From the PHP side we are glad to announce:

PHP 5.5 support: generators, coroutines, finally keyword, list in foreach, using empty() on the result of function calls and other expressions, class name resolution as scalar via class keyword, constant array/string dereferencing

Drupal Plugin: integration for modules, themes and core development. Hooks (completion for hook declaration, quick documentation, navigation to hook invocations), automatic assistance in development environment configuration, command line tool integration for Drush, Search in Drupal API. Please read full tutorial

Smart Step Into (PHP Debug)

Extract Interface refactoring for PHP

Built-in SSH terminal

Automatic alignment of PhpDoc comments at edit time

Smart line split on Ctrl+Enter (Cmd-Enter)

INI plugin is bundled

source

I've switched one machine so far, lets see if i can feel a major improvement in the next week. By the way, have i mention that i love the plugins?

zenburn for vim and phpstorm

Zenburn, a colorschema you are adding and thinking "wow, how could i code without". I used it at home but never wrote any words about them. So here are the first to links to available zenburn application colorschemas :-). zenburn for vim. You have to add the following lines to your .vimrc.

syntax on set t_Co=256 colorscheme zenburn
zenburn for phpstorm.