Dušan Fefer BLOG
Ta blog je samo zato da ne izgubim pomembnih povezav, zazanamkov ...
12. februar 2016
20. junij 2011
Responsive Web Design: A Visual Guide
These days, “one size fits all” is quickly becoming a dated concept. Luckily, with CSS media queries, we can now easily build responsive web designs that accomodate everything from your mobile phone, up to your massive desktop!
z Matevžem sva spremenila tole
HP EliteBook 8460w, 8560w, and 8760w mobile workstations all go on sale
If Dell's latest 17-inch powerhouse is too beastly for your next business trip, HP has begun selling its trio of new EliteBook mobile workstations, with screen sizes as small as 14 inches. In the case of both the 14-inch 8460w and the 15.6-inch 8560w, you get discrete graphics standard and can choose a $1,000 Core i7-2820QM processor, among less pricey options. (With the 15-inch iteration, you can also opt for a 1 billion-color DreamColor display.) Admittedly, you will have to step up to the 17-inch 8760w if you want a Core i7-2920XM CPU, AMD FirePro or NVIDIA Quadro graphics with up to 4GB of memory, and up to three hard drives with RAID 5 support. As promised, they're going for $1,299, $1,239, and $1,899, respectively -- in case your corporate card's just begging for its next hit.
MSI's SteelSeries keyboard-equipped GT780R, GX780 gaming laptops now available
MSI managed to turn a few heads back in April by building a gaming laptop around SteelSeries keyboard with its GX780, and it's now announced that both it and the higher-end GT780R model are available with a list price of $1,550 and $1,750, respectively. In addition to that multicolor backlit keyboard, both models pack a 17.3-inch 1920 x 1080 display, a Core i7 2630QM processor, a pair of USB 3.0 ports (plus three USB 2.0), 16GB of RAM, and a 1TB hard drive. So what's the difference between the two? The big one is GeForce GTX 560M graphics with 1.5GB of GDDR5 RAM on the GT780R, compared to a GT555M with 1GB DDR5 of VRAM on the GX780. Head on past the break for the complete press release, and hit up either Amazon or Newegg if you're ready to place an order (both seem to have knocked $100 of MSI's price).
26. maj 2011
Panasonic resurrects Sanyo's pistol-grip camcorders, trots out three new models
Worried that Panasonic would kill off Sanyo's signature pistol-grip camcorders after it bought its rival last year? Fear not -- Panny just went and resurrected Sanyo's ergonomic design with three new models - slapping its own brand on 'em, of course. And, in a move that would do Sanyo proud, Panasonic brought back the DMX-CA100 / VPC-CA100, a 1080p camcorder Sanyo released last year under the same name. It's gotten a spec boost, though, with the ability to snap 16 megapixel still photos, up from 14.4. The other two -- the HX-DC15 and the HX-DC1 -- both shoot 1080p video as well, with the DC15 offering 16GB internal memory and a 16 megapixel sensor, and the DC1 able to take 14.4 megapixel stills. No word on availability outside Japan, but we're sure those of you with a penchant for flip-out displays and candy-colored plastic will find a way to snag one.
22. maj 2011
The Best of Paul Irish in 2011
Paul Irish, who works for the Chrome Developer Relations team, is one of the most outspoken and respected front-end developers in our industry. Even better, he has the heart of a teacher, and frequently speaks at conferences, and records screencasts on various web development techniques. Here’s the best of his offerings so far in 2011.
1 – Paul Irish on HTML5 Boilerplate
“HTML5 Boilerplate is a “rock-solid default for HTML5 awesome.” In this video, Paul Irish, the man behind the project will show you how you can use HTML5 Boilerplate to get your projects up and running quickly while keeping best practices covered.”
2 – HTML5, CSS3, and Dom Performance
“Paul Irish, from the Chrome Developer Relations team, walks through smart techniques to improve the performance of your app. He describes CSS reflows and how to avoid them, hardware accelerated CSS, animation optimization, web workers, benchmarking and build scripts.”
3 – Chrome Dev Tools Reloaded
“You’re an experienced web developer but new to Chrome Dev Tools’ nuances? Get up to speed on all the newest features of a web app developer’s best friend. Update CSS styles on the fly, get a diff or save changes to disk. Set breakpoints on everything imaginable and dig into the networking stack to uncover performance gains.”
4 – Chrome Developer Tools: 12 Tricks to Develop Quicker
“In this video, Paul Irish, a Chrome developer advocate, presents 12 tips and tricks on how to use Chrome’s developer tools. Learn more…“
5 – Quick Color Manipulation
“You can edit the color representation of any CSS color on the fly (from hex to RGB(a) to HSL(a)) and also always view colors in HSL, for example. This lets you manipulate colors easily for finding hover colors or other tweaks live.”
6 – The Build Script of HTML5 Boilerplate: An Introduction
In this video, Paul works his way through the process of using HTML5 Boilerplate’s build script to automatically compress, optimize, and concatenate your files.
7 – 11 More Things I Learned from the jQuery Source
As a follow-up to his popular presentation from the jQuery conference, Paul continues with eleven more interesting notes and facts on jQuery.
5. maj 2011
PHP Style Switcher (Free Marketplace File)
With a new month comes new free files from all of the Envato marketplaces. For all of May, you can download webfactory’s awesome “PHP Style Switcher” for free from CodeCanyon.
Features
- absolutely no PHP editing needed!
- 5 seconds, 3 step setup (see below)
- created for designers
- support for multiple CSS files in single HTML
- ideal for showcasing your work with multiple color schemes
- faster than JS based switching
- unlike JS based switching not prone to bugs; doesn’t interfeer with other JS code
- extensive user-friendly documentation and examples
4. maj 2011
Vim Essential Plugin: NERDTree
In this episode of Vim Essential Plugins, we’ll review the fantastic NERDTree plugin, which is a much improved replacement for the traditional file explorer.
Usage
Begin by downloading the plugin to your Desktop (or any directory, really), and installing it.
cd ~/Desktop
git clone https://github.com/scrooloose/nerdtree.git
cd nerdtree
rake
With those few lines of code, the plugin is now installed! To open a NERDTree panel, in normal mode, we call :NERDTree
.
At this point, we can open any file by typing o
, or with the more convenient alias, the Enter
key. Unlike the default file browser, this will open the new file directly into the buffer to the right of NERDTree, similar to what you might be used to in a program, like TextMate.
If you ever forget what the correct key is for a particular action, press
?
to display a quickie help buffer.
Bookmarks
To expedite the process of navigating through your directory structures, NERDTree allows you to conveniently create bookmarks. Do so by moving the cursor to the directory that you wish to bookmark, and then typing:
:bookmark <desired bookmark name>
With this in place, you can now bring up your list of available bookmarks by pressing B
. It’s a huge help!
Menu
Press the letter m
to bring up a menu that will allow you to quickly add, move, copy, and delete nodes (or files). So, for example, if I want to create a new html
file within a particular directory, I can type ma newfile.html
.
There are plenty more useful shortcuts available, but I’ll leave it to you to discover them. Hint – research the cd
and C
commands; I use them religiously. Additionally, refer to the screencast above for more shortcuts.
Automated Optimization with HTML5 Boilerplate Build
The Build Script, with Paul Irish
Overview
So why might you need this build tool? Because it’s baked into HTML5 Boilerplate, and can help you automate web performance optimization. We chose to go with Apache Ant to handle the workload. How come?All other tools have limitations that Ant’s original author couldn’t live with when developing software across multiple platforms.Many developers are unfamiliar with the build process. But don’t worry; a build tool isn’t a scary monster. Everything can be configured through a relatively simple XML file. This article will help you understand how to set up the build tool, customize the build process and finally change variables and run the build.
The Directory Structure
The build script makes some assumptions about how your files are sorted and structured. Here is the folder structure of HTML5 Boilerplate:/js/libs/
– contains common script libraries: Modernizr, jQuery and a pngfix for IE6/js/mylibs/
– contains site specific custom library scripts/plugins.js
– all jQuery plugins/script.js
– site/page specific JavaScript
The Build Folder Structure
Thebuild/
folder contains the following elements:build.xml
Apache Ant’s build files are written in XML. This file contains our project (Boilerplate Build) and targets. Targets contain task elements. Each task element of the buildfile can have anid
attribute and can later be referred to by the value supplied to it, which must be unique.default.properties
default.properties
contains the default build options, project structure and hardcore build options, which we’ll review shortly.build.properties
This file defines overrides fordefault.properties
. This should be created by a user when he or she needs to override particular values. Consequently, it should not be placed under version control.tools
Tools are a set of bundles, which includeopyipng, JPEGTran, YUI compressor
and HTML compressor
.Set up the Build Tool
Because the goal of the build tool is to be platform agnostic, we’ll review the necessary steps to set it up, dependent upon your OS of choice.- Windows – Grab and install WinAnt.
- Mac OSX – Using homebrew, install the following packages:
brew install libjpeg optipng
. With MacPorts, use the following install command:port install jpeg optipng
- Ubuntu (Linux) – Using apt, install the following packages:
apt-get install libjpeg-progs optipng
Walkthrough of the buildfile
The build tool is nothing more than an XML file that is based on Apache Ant. Below is a walk through of the pre-defined build process. These elements can be configured by editing thebuild.xml
file.Concatening / Minifying JavaScript
<!-- Optimize javascript files --> <target name="js.all" depends="js.remove.console, js.all.min, js.main.concat, js.libs.concat, js.concat.scripts, js.minifyonly.min, js.delete"></target> <!-- JS: Concat primary scripts --> ... <!-- JS, Delete concatenated libs file (only if concat.scripts and delete.unoptimized are defined) --> <target name="js.if.concat.scripts" if="build.delete.unoptimized, build.concat.scripts"> <delete file="./${dir.publish}/${dir.js}/libs-${build.number}.min.js"/> <delete file="./${dir.publish}/${dir.js}/scripts-${build.number}.min.js"/> </target>
- The
/js/libs/
files are minified, but not concatenated. Modernizr should be alone in thehead
of the document. jQuery might be pulled from a CDN, and the pngfix will be included for IE6 only. /js/mylibs/
contains your other various JavaScript libraries and plugins. All files stored here here will be minified (unless they end with .min.js
), and then concatenated together.plugins.js
andscript.js
, in the/js/
folder, are all yours. These will also be minified and concatenated with themylibs/
files.
Minifying CSS
<target name="css" depends="copy">
<echo message="Minifying css..."/>
<concat destfile="./${dir.publish}/${dir.css}/style-${build.number}.css">
<fileset file="./${dir.css}/style.css"/>
</concat>
...
</target>
All CSS files are minified using YUI compressor. The above Ant script will run style.css
through YUI compressor for minification.Image Optimization
<target name="imagespng" depends="copy"> <echo message="Optimizing images"/> <apply executable="optipng" osfamily="unix"> <arg value="-o7"/> <fileset dir="./${dir.publish}/"> <include name="**/*.png"/> </fileset> </apply> ... </target>In HTML5 Boilerplate, we chose to use
OptiPng
and jpegtran
for image optimization for PNG and JPG images, respectively. That said, there are plenty of image optimization tools. Should you wish to do so, you’re free to replace the tools with your own favorite image optimization tools.For instance, Smush.it uses ImageMagick to identify the image type and convert GIF files to PNG files. It then uses gifsicle to optimize GIF animations by stripping repeating pixels in different frames.
Removing Development-Only Coding
<exclude name="**/${dir.js}/profiling/**"/> <exclude name="**/${dir.test}/**"/> ... <target name="js.remove.console" description="Comment out console.log lines"> <echo>Commenting out console.log lines</echo> <replaceregexp match="(console.log\(.*\))" replace="/\*\1\*/" flags="g" > <fileset dir="./${dir.publish}/${dir.js}/"> <include name="**/*.js"/> <exclude name="**/*.min.js"/> </fileset> </replaceregexp> </target>Files like
console.log
, profiling and unit testing files are not needed for the release of the site.Minifying HTML
<target name="htmlbuildkit" depends="html" > <apply executable="java" parallel="false" force="true" dest="./${dir.publish}/" > <fileset dir="./${dir.publish}/" includes="*.html"/> <arg value="-jar"/> <arg path="./${dir.build}/tools/htmlcompressor-0.9.3.jar"/> </apply> </target>Listed below are some various options for minifying your HTML files:
htmlbuildkit
– Preserves comments, multiple spaces and compresses inline JavaScript and CSS.
htmlclean
– Preserves multiple spaces, removes unneeded quotes and compress inline JavaScript and CSS
htmlcompress
– Removes unneeded quotes and compresses inline JavaScript and CSS.
Automated Baseline Numbering / Cache Busting
HTML5 Boilerplate uses query string for JavaScript/CSS versioning and cache busting.HTML5 Boilerplate by default uses query string for JavaScript/CSS versioning and cache busting. The drawback with this approach is that some intermediate proxies – and potentially other clients – may not cache assets that contain query strings. This is due to basic heuristics that flag such requests as dynamic data.
The build tool will first remove the query string versioning and use automated baseline numbering for release control and cache busting.
Configuring Excludes
<exclude name=".gitignore"/> <exclude name=".project"/> <exclude name=".settings"/> <exclude name="README.markdown"/> <exclude name="**/.git/**"/> <exclude name="**/.svn/**"/> <exclude name=".gitignore"/> <exclude name="*.conf*"/> <exclude name="mime.types"/> <exclude name="**/${dir.build}/**"/> <exclude name="**/${dir.test}/**"/> <exclude name="**/${dir.demo}/**"/> <exclude name="**/${dir.js}/profiling/**"/>Not all files will need to be published. A perfect example of this would be files generated by versioning control system like subversion and git.
By default, there is a list of file types and directories that will be excluded. To add to this list, you can search and find
<!-- configurable excludes -->
and append your custom exludes to it.Walkthrough of default.properties
Variables inside the build file are defined indefault.properties
and build.properties
.Build options
build.concat.scripts = true
– If set, multiple script files will be smushed together to a single, cohesive file.build.delete.unoptimized = true
– If set, unoptimized files will be deleted.file.exclude = nonexistentfile
– Excludes file filter for publishing (can’t be empty).
Project Structure
dir.publish = publish dir.build = build dir.tools = ${dir.build}/tools dir.test = test dir.demo = demo dir.js = js ...
The project structure contains directory names, like the ones shown above, as well as the core JS folder, JS utility libraries, and folders which should only be minified but not concatenated.
Other Build Options
build.info = buildinfo.properties
– Build versioning is definedtool.yuicompressor = yuicompressor-2.4.2.jar
– YUI Compressor is defined withyuicompressor-2.4.2.jar
Okay – But How Do I Use This?
Finally, we’ll learn exactly how you can use the build tool in your projects! Refer to the following steps to run the build tool.- Open a command line interface, and navigate to your project folder.
- Navigate into the build folder:
cd build/
- There are four different ways to build your site: the default way is:
ant build
- When the build script changes your HTML to reference the new minified script (usually named something like
scripts-002.min.js
), it looks for some HTML comments which refer to the beginning and end of the script block. Currently, it looks for <!– scripts concatenated and <!– end concatenated and minified scripts–>.
Build Options
Here’s a list of various build options that you can choose from to suit your particular need:ant build
– minor html optimizations (extra quotes removed). inline script/style minified (default)ant buildkit
– all html whitespace retained. inline script/style minifiedant minify
– above optimizations plus full html minificationant text
– same as build but without image (png/jpg) optimizing
Conclusion
Performance optimization doesn’t have to be expensive or time consuming. With some reusable rules, one can slowly setup a build process to automate the repetitive aspects of optimization work. Apache Ant provides a powerful, yet easy to use, framework, while HTML5 Boilerplate leverages that to make web optimization as easy as possible for front-end web developers. Thank you so much for reading!EnOcean's home automation sensors communicate over TCP/IP, play nice with smartphone apps
Dell's 17-inch Precision M6600 workstation laptop goes on sale early in the UK
We were promised we'd get Dell's latest Precision powerhouses on May 10th, and that may still be the case for the US, but the company's UK outlet is ready to let you customize and buy an M6600 today. The 17.3-inch laptop offers options for a multitouch display with stylus functionality, a 2.5GHz quad-core Core i7-2920XM CPU, 16GB of DDR3 RAM, up to half a terabyte (2x 256GB) in solid state storage, and NVIDIA Quadro 4000M graphics. Prices start at £1,549 ($2,590) excluding VAT and shipping, though the spec we've listed above would set you back a neat £4,714 ($7,880). Still, a pretty sweet rig if you can afford it.
2. maj 2011
For Your Script Loading Needs
The Problem with Simple Script Tags
They Block the Page
The page stops ‘happening’ while the script is downloaded.
JavaScript files loaded using the script
tag are blocking by nature. Everything that’s happening or loading on the page is halted while the script is downloaded and executed. And remember that this applies to each script tag. Some modern browsers may let you download these in parallel, but the rest of the page is still blocked from doing anything meaningful.
No Easy Way to Manage Dependencies
Lack of dependency management is a big drawback.
Next up comes the issue of handling dependencies. For your average web page, you probably don’t need one. Check if your library is loaded and move on. For a non-trivial web application though, this isn’t a great solution. You’ll need to load scripts conditionally based on dependencies. Even then, you’ll still have to figure out the order in which they’re loaded. You can probably do it manually for 3-4 files, but when things begin piling up, you’re probably better off with an automated solution.
Available Choices
The initial idea for this round up was sparked by a post over at Hacker News about making a list of JavaScript script loaders, roughly a month ago. I watched the list balloon up from 3 to a grand total of 10 before I lost interest and moved on.
Now that sufficient time has passed, I think that list is going to be quite massive. Unfortunately, my Google-fu is pretty weak and I can’t seem to find it. If an eagle eyed user manages to find this thread, post in the comments below so I can link to it and hopefully expand my list here as well.
This list is drawn from recommendations by high level web developers who use these tools in their applications.
And as to my choices here, this list represents a superset of recommendations which flowed in after I asked some of the front end community to pitch in with the solutions they’re using. Some of the solutions below may handle dependency managements too, though most stick to simple asynchronous loading. Regardless of the extra niceties, each of the scripts below do one thing with aplomb — load up JavaScripts with minimal fuss.
So without further ado, and in no particular order:
HeadJS
Head JS loads scripts in parallel no matter how many of them and what the browser is. Load scripts like images. Use HTML5 and CSS3 safely. Target CSS for different screens, paths, states and browsers. Make it the only script in your HEAD.
Author: Tero Piirainen
Project URL: Here
Size: 6.3 KB
Related links:
LabJS
LABjs (Loading And Blocking JavaScript) is an all-purpose, on-demand JavaScript loader, capable of loading any JavaScript resource, from any location, into any page, at any time. You can easily specify which scripts have execution order dependencies and LABjs will ensure proper execution order. This makes LABjs safe to use for virtually any JavaScript resource, whether you control/host it or not, and whether it is standalone or part of a larger dependency tree of resources.
Author: Kyle Simpson
Project URL: Here
Size: 4.7 KB
Related links:
RequireJS
RequireJS is a JavaScript file and module loader. It is optimized for in-browser use, but it can be used in other JavaScript environments, like Rhino and Node. Using a modular script loader like RequireJS will improve the speed and quality of your code.
Author: James Burke
Project URL: Here
Size: 13 KB
Related links:
ControlJS
ControlJS is a JavaScript module that handles both inline scripts and external scripts, delays script execution until after the page has rendered, allows for scripts to be downloaded, not executed and integrates with simple changes to HTML and no code changes
Author: Steve Souders
Project URL: Here
Size: 3.6 KB
Related links:
StealJS
The StealJS project is a collection of command and client based JavaScript utilities that make building, packaging, sharing and consuming JavaScript applications easy. Includes modules for dependency management, JS compression, cleaning and logging.
Author: Brian Moschel
Project URL: Here
Size: 11.4 KB
Related links:
yepnope
yepnope is an asynchronous conditional resource loader that’s super-fast, and allows you to load only the scripts that your users need. It works with both JavaScript and CSS and has a full test suite in QUnit that you can run in your set of supported browsers to make sure it works.
Author: Alex Sexton and Ralph Holzmann
Project URL: Here
Size: 3.4 KB
Related links:
PINF JS Loader
The loader allows for bootstrapping a consistent and state-of-the-art CommonJS environment for any supported platform (on server & in browser) and thus is ideally suited to be used as the target for the commonjs command and the development of cross-platform JavaScript applications and libraries.
Author: Christoph Dorn
Project URL: Here
Size: 22 KB
Related links:
JSLoad
JSLoad is a Javascript file loader that we wrote for Instructables. You give it a set of dependencies and groupings, and it loads the files you need, when your executing code needs them. The real usefulness of JSLoad comes with its ability to group dependencies using tags.
Author: Eric Nguyen
Project URL: Here
Size: 9.8 KB
Related links:
JsDefer
JsDefer features parallel/serial loading based on definitions, dependency, and wrapped versus unwrapped, and whether dependencies are defined in separate def file or in script itself and integration with Deferred (as in jQuery 1.5) enables or simplifies many use-case scenarios among many others.
Author: Boris Moore
Project URL: Here
Size: 4.7 KB
Related links:
JSL (JavaScript Loader)
JSL features on-demand loading, is browser cacheable, dynamic asynchronous JavaScript loading, lazy loading and duplicate source prevention among a ton of other features.
Author: Andres Vidal
Project URL: Here
Size: 2.1 KB
Related links:
YUI 3 Get
The Get Utility provides a mechanism for attaching script and css resources — including cross-domain resources — to the DOM after the page has loaded.
Author: Adam Moore
Project URL: Here
Size: 17.9 KB
Related links:
DominateJS
DominateJS allows you to asynchronously load all your JavaScript, and defer sequential execution until the page loads. DominateJS aims to be a cross-browser and 100% document.write-safe library! This is a heavily modified (and powerful!) evolution of ControlJS.
Author: Chris Joel & Jason Benterou
Project URL: Here
Size: 48 KB
Load.js
load.js is a micro JS lazy-loader. Built on top of chain.js, it allows you to lazy load your JS scripts sequentially or in parallel and handle complex dependency chains.
Author: Chris O’Hara
Project URL: Here
Size: 2 KB
Related links:
BravoJS
BravoJS is an implementation of a proposed draft for CommonJS Modules/2.0
Author: Wes Garland
Project URL: Here
Size: 10.7 KB
Bootstrap
Bootstrap is a small library for dynamically loading JavaScript files.
It’s primary use case is for using in your JS code to load JS files only when they are used.
Author: Scott Koon
Project URL: Here
Size: 1.3 KB
LazyLoad
LazyLoad is a tiny (only 904 bytes minified and gzipped), dependency-free JavaScript utility that makes it super easy to load external JavaScript and CSS files on demand.
Whenever possible, LazyLoad will automatically load resources in parallel while ensuring execution order when you specify an array of URLs to load. In browsers that don’t preserve the execution order of asynchronously-loaded scripts, LazyLoad will safely load the scripts sequentially.
Author: Ryan Grove
Project URL: Here
Size: 1.6 KB
curl.js
curl.js is a small, but very fast AMD-compliant asynchronous loader. Current size: 4.5KB (2.1KB gzipped) using Google’s Closure Compiler.
If you’d like to use curl.js for non-AMD modules (ordinary javascript files), you’ll want to use the version with the js! plugin built in. You may also want to build-in the domReady module. The combined curl+js+domReady loader is still only 6.1KB (2.7KB gzipped).
Author: John Hann
Project URL: Here
Size: 5 KB
$script.js
$script.js is an asynchronous JavaScript loader and dependency manager with an astonishingly impressive lightweight footprint. Like many other script loaders, $script.js allows you to load script resources on-demand from any URL and not block other resources from loading, like CSS and images.
Author: Dustin Diaz
Project URL: Here
Size: 1.4 KB
NBL.js
NBL.js is a tiny script that will make your HTML pages load faster by loading all your JavaScript files asynchronously (in parallel) with the rest of your page. Normally if you include two or three scripts in your page, the browser will wait for them to be executed before your page is shown.
Author: Berklee
Project URL: Here
Size: 971 B
Related links:
That’s a Wrap!
While each of the tools listed above handle script loading in slightly unique ways, be sure to perform your tests when deciding which is the right one for you.
As I mentioned earlier, if you think a loader should be here but isn’t, drop us a line below and we’ll update the roundup accordingly.
Samsung Galaxy S II review
If you don't already know all about the Samsung Galaxy S II, where have you been the past two months? The successor to one of the most popular Android handsets to date carries a burden of expectation almost as sizable as its 4.3-inch Super AMOLED Plus screen. It promises to be thinner, lighter, and faster than the Galaxy S that preceded it, while garnishing Android 2.3.3 with a set of TouchWiz customizations that might actually enhance, rather than hinder, the user experience. As such, the Galaxy S II earns Samsung full marks for ambition, but does this slinky new smartphone live up to its interstellar hype? The answer, as always, can be found after the break.
MSI gets a SteelSeries keyboard, builds the GX780 gaming notebook around it
The worst part about buying a fancy new gaming keyboard? It's hard to show the thing off if it never leaves your basement apartment. MSI's newly announced GX780 notebook combines a colorful backlit 102-key SteelSeries-designed keyboard with the (relative) portability of an 8.6 pound gaming laptop. The keyboard features 1,000 different color combinations, five lighting modes, 10 key simultaneous input, and a layout the company calls 'The Golden Triangle' -- trademark pending, we're sure. The 17.3 inch notebook has some solid non-keyboard specs as well, including GeForce GT555M graphics, a second gen Intel Core i7 processor, and an impressive maximum 16GB of DDR3. No word on pricing or availability, but hopefully the MSRP isn't as colorful as that keyboard. Full press release after the break.
Samsung Galaxy S II begins quest for 120 country domination
How do you best
LG Optimus Big brings a 4.3-inch NOVA display and 1GHz dual-core to the superphone party
What's big, mostly white, and set for a Korean launch tomorrow? That's right, the LG Optimus Big! This 4.3-inch whopper, LG's largest handset to date, touts a 1GHz dual-core processor, a slightly skinned Android 2.2 as its OS, HDMI output, a 5 megapixel camera, and 16GB of built-in storage. That spec sheet sounds mighty close to the elder Optimus 2X that launched earlier in the year, though a couple of items have also been borrowed from the still unreleased Optimus Black. They are the NOVA display, which can crank all the way up to 700 nits of brightness, and WiFi Direct, which allows for wireless inter-device communication without the need for an intermediary WiFi access point. This big, delicious spec sandwich is hitting its home market on April 28th, but there's sadly no word on when and where else it might show up. Just keep an eye out for it, shouldn't be that hard to spot.