Awesome Visual Studio Command Prompt and PowerShell icons with Overlays

Awesome Visual Studio Command Prompt and PowerShell icons with Overlays: "

I'm not usually one of the "icon people." By that I mean, I don't collect icons, or change all the icons on my system to custom fancypants icons. But, I noticed today that I was using the Command Prompt alongside a Visual Studio Command Prompt (which is just a command prompt with the right path and environment set) as well as regular PowerShell as well as a PowerShell prompt with "VSVars32" set (again, just PowerShell with the right environment setup). However, their icons all look the same.

Seemed like a quick opportunity to edit a few icons and change my world. I went over and downloaded the most lovely Free Icon Editor I know of, IcoFX. I encourage you to donate to them because they are doing the world a wonderful service. I used their Extract command on cmd.exe, as well as devenv.exe and powershell.exe.

 Extract Icon

Disclaimer: I'm sure I'm breaking all sorts of international law or something by doing this. When the ninjas burst in and say "you can't use our icons for fun" I will likely deny having written this post. Back me up on this. I did this for me. This is not official Microsoft anything and you can't say it is. Who are you!? Stop calling me! Jimmy no live here! You no call back!

Aside: Here's the part I'm bummed about. It seems that the VS2010 icon editor is still stupid about alpha channels. I'm actually scandalized about the whole thing, but since I don't work on that team, I'll need to dig in to get more details. I would have liked to have done this all in VS.

OK, so now I've got all my icons loaded in IcoFX. I will edit them all and make a nice icon in one of the many resolutions that are available, even though technically I suppose for my use I just need 32x32 icons for the Windows 7 Taskbar and/or my desktop.

IcoFX

A little editing and resizing...seriously, this Icon Editor is a joy. Go now!

IcoFX (3)

I saved these as vscommand.ico and vspowershell.ico and now I have these two nice icons on my desktop.

image

Now I pin the "Visual Studio Command Prompt" to the Taskbar, and it looks like this:

image

I even did a little one for the system menu, 'cause that's how I roll.

image

OK, so that's lovely.

However, when I'm in PowerShell, I'll sometimes switch my VSVars on by running the custom PowerShell VSVars script that I put in my Microsoft.PowerShell_profile.ps1. Remember this one from Chris Tavares?

function Get-Batchfile ($file) {
$cmd = "`"$file`" & set"
cmd /c $cmd | Foreach-Object {
$p, $v = $_.split('=')
Set-Item -path env:$p -value $v
}
}

function VsVars32($version = "10.0")
{
$key = "HKLM:SOFTWARE\Microsoft\VisualStudio\" + $version
$VsKey = get-ItemProperty $key
$VsInstallPath = [System.IO.Path]::GetDirectoryName($VsKey.InstallDir)
$VsToolsDir = [System.IO.Path]::GetDirectoryName($VsInstallPath)
$VsToolsDir = [System.IO.Path]::Combine($VsToolsDir, "Tools")
$BatchFile = [System.IO.Path]::Combine($VsToolsDir, "vsvars32.bat")
Get-Batchfile $BatchFile
[System.Console]::Title = "Visual Studio " + $version + " Windows Powershell"
//add a call to set-consoleicon as seen below...hm...!
}


Why not go completely over the top and combine this with Aaron Lerch's script for "Changing the Windows PowerShell Console Icon"? This way, when I call "vsvars32" I'll also change the Icon for my PowerShell. Crazy.



Here's Aaron's script with a few changes to make it a dot-sourced function and a couple typo fixes. This changes the system menu icon on the fly, but doesn't refresh the taskbar or ALT-TAB yet. Not sure if that's possible?



##############################################################################
## Script: Set-ConsoleIcon.ps1
## By: Aaron Lerch, tiny tiny mods by Hanselman
## Website: www.aaronlerch.com/blog
## Set the icon of the current console window to the specified icon
## Dot-Source first, like . .\set-consoleicon.ps1
## Usage: Set-ConsoleIcon [string]
## PS:1 > Set-ConsoleIcon "C:\Icons\special_powershell_icon.ico"
##############################################################################

$WM_SETICON = 0x80
$ICON_SMALL = 0

function Set-ConsoleIcon
{
param(
[string] $iconFile
)

[System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") | out-null
$iconFile
# Verify the file exists
if ([System.IO.File]::Exists($iconFile) -eq $TRUE)
{
$icon = new-object System.Drawing.Icon($iconFile)

if ($icon -ne $null)
{
$consoleHandle = GetConsoleWindow
SendMessage $consoleHandle $WM_SETICON $ICON_SMALL $icon.Handle
}
}
else
{
Write-Host "Icon file not found"
}
}


## Invoke a Win32 P/Invoke call.
## From: Lee Holmes
## http://www.leeholmes.com/blog/GetTheOwnerOfAProcessInPowerShellPInvokeAndRefOutParameters.aspx
function Invoke-Win32([string] $dllName, [Type] $returnType,
[string] $methodName, [Type[]] $parameterTypes, [Object[]] $parameters)
{
## Begin to build the dynamic assembly
$domain = [AppDomain]::CurrentDomain
$name = New-Object Reflection.AssemblyName 'PInvokeAssembly'
$assembly = $domain.DefineDynamicAssembly($name, 'Run')
$module = $assembly.DefineDynamicModule('PInvokeModule')
$type = $module.DefineType('PInvokeType', "Public,BeforeFieldInit")

## Go through all of the parameters passed to us. As we do this,
## we clone the user's inputs into another array that we will use for
## the P/Invoke call.
$inputParameters = @()
$refParameters = @()

for($counter = 1; $counter -le $parameterTypes.Length; $counter++)
{
## If an item is a PSReference, then the user
## wants an [out] parameter.
if($parameterTypes[$counter - 1] -eq [Ref])
{
## Remember which parameters are used for [Out] parameters
$refParameters += $counter

## On the cloned array, we replace the PSReference type with the
## .Net reference type that represents the value of the PSReference,
## and the value with the value held by the PSReference.
$parameterTypes[$counter - 1] =
$parameters[$counter - 1].Value.GetType().MakeByRefType()
$inputParameters += $parameters[$counter - 1].Value
}
else
{
## Otherwise, just add their actual parameter to the
## input array.
$inputParameters += $parameters[$counter - 1]
}
}

## Define the actual P/Invoke method, adding the [Out]
## attribute for any parameters that were originally [Ref]
## parameters.
$method = $type.DefineMethod($methodName, 'Public,HideBySig,Static,PinvokeImpl',
$returnType, $parameterTypes)
foreach($refParameter in $refParameters)
{
$method.DefineParameter($refParameter, "Out", $null)
}

## Apply the P/Invoke constructor
$ctor = [Runtime.InteropServices.DllImportAttribute].GetConstructor([string])
$attr = New-Object Reflection.Emit.CustomAttributeBuilder $ctor, $dllName
$method.SetCustomAttribute($attr)

## Create the temporary type, and invoke the method.
$realType = $type.CreateType()
$realType.InvokeMember($methodName, 'Public,Static,InvokeMethod', $null, $null,
$inputParameters)

## Finally, go through all of the reference parameters, and update the
## values of the PSReference objects that the user passed in.
foreach($refParameter in $refParameters)
{
$parameters[$refParameter - 1].Value = $inputParameters[$refParameter - 1]
}
}

function SendMessage([IntPtr] $hWnd, [Int32] $message, [Int32] $wParam, [Int32] $lParam)
{
$parameterTypes = [IntPtr], [Int32], [Int32], [Int32]
$parameters = $hWnd, $message, $wParam, $lParam

Invoke-Win32 "user32.dll" ([Int32]) "SendMessage" $parameterTypes $parameters
}

function GetConsoleWindow()
{
Invoke-Win32 "kernel32" ([IntPtr]) "GetConsoleWindow"
}


It might also be interesting to make a ".Icon" property on System.Console using PowerShell's "Type Extensions" abilities. That way I could do[System.Console]::Icon = "something.ico", but I'll leave that as an exercise for the reader.



Magical Visual Studio Command Prompt Icons



Remember, we never spoke.



© 2010 Scott Hanselman. All rights reserved.



"

Debugging Tips with Visual Studio 2010

Debugging Tips with Visual Studio 2010: "

This is the twenty-sixth in a series of blog posts I’m doing on the VS 2010 and .NET 4 release.

Today’s blog post covers some useful debugging tips that you can use with Visual Studio.  My friend Scott Cate (who has blogged dozens of great VS tips and tricks here) recently highlighted these to me as good tips that most developers using Visual Studio don’t seem to know about (even though most have been in the product for awhile).  Hopefully this post will help you discover them if you aren’t already taking advantage of them.  They are all easy to learn, and can help save you a bunch of time.

Run to Cursor (Ctrl + F10)

Often I see people debugging applications by hitting a breakpoint early in their application, and then repeatedly using F10/F11 to step through their code until they reach the actual location they really want to investigate.  In some cases they are carefully observing each statement they step over along the way (in which case using F10/F11 makes sense).  Often, though, people are just trying to quickly advance to the line of code they really care about – in which case using F10/F11 isn’t the best way to do this.

Instead, you might want to take advantage of the “run to cursor” feature that the debugger supports.  Simply position your cursor on the line in your code that you want to run the application to, and then press the Ctrl + F10 keys together.  This will run the application to that line location and then break into the debugger – saving you from having to make multiple F10/F11 keystrokes to get there.  This works even if the line of code you want to run to is in a separate method or class from the one you are currently debugging.

Conditional Breakpoints

Another common thing we often see in usability studies are cases where developers set breakpoints, run the application, try out some input, hit a breakpoint, and manually check if some condition is true before deciding to investigate further.  If the scenario doesn’t match what they are after, they press F5 to continue the app, try out some other input, and repeat the process manually.

Visual Studio’s conditional breakpoint capability provides a much, much easier way to handle this. Conditional breakpoints allow you to break in the debugger only if some specific condition that you specify is met.  They help you avoid having to manually inspect/resume your application, and can make the whole debugging process a lot less manual and tedious.

How to Enable a Conditional Breakpoint

Setting up a conditional breakpoint is really easy.  Press F9 in your code to set a breakpoint on a particular line:

image

Then right-click on the breakpoint “red circle” on the left of the editor and select the “Condition…” context menu:

image

This will bring up a dialog that allows you indicate that the breakpoint should only be hit if some condition is true.  For example, we could indicate that we only want to break in the debugger if the size of the local paginatedDinners list is less than 10 by writing the code expression below:

image

Now when I re-run the application and do a search, the debugger will only break if I perform a search that returns less than 10 dinners.  If there are more than 10 dinners then the breakpoint won’t be hit.

Hit Count Feature

Sometimes you only want to break on a condition the Nth time it is true.  For example: only break the 5th time less than 10 dinners is returned from a search.

You can enable this by right-clicking on a breakpoint and selecting the “Hit count…” menu command.

image

This will bring up a dialog that allows you to indicate that the breakpoint will only be hit the Nth time a condition is met, or every N times it is met, or every time after N occurrences:

image

Machine/Thread/Process Filtering

You can also right-click on a breakpoint and select the “Filter..” menu command to indicate that a breakpoint should only be hit if it occurs on a specific machine, or in a specific process, or on a specific thread.

TracePoints – Custom Actions When Hitting a BreakPoint

A debugging feature that a lot of people don’t know about is the ability to use TracePoints.  A TracePoint is a breakpoint that has some custom action that triggers when the breakpoint is hit.  This feature is particularly useful when you want to observe behavior within your application without breaking into the debugger.

I’m going to use a simple Console application to demonstrate how we might be able to take advantage of TracePoints.  Below is a recursive implementation of the Fibonacci sequence:

image

In the application above, we are using Console.WriteLine() to output the final Fibonacci sequence value for a specific input.  What if we wanted to observe the Fibonacci recursive sequence in action along the way within the debugger – without actually pausing the execution of it?  TracePoints can help us easily do this.

Setting up a TracePoint

You can enable a TracePoint by using F9 to set a breakpoint on a line of code, and then right-click on the breakpoint and choose the “When Hit…” context menu command:

image

This will bring up the following dialog – which allows you to specify what should happen when the breakpoint is hit:

image

Above we’ve specified that we want to print a trace message anytime the breakpoint condition is met.  Notice that we’ve specified that we want to output the value of the local variable “x” as part of the message.  Local variables can be referenced using the {variableName} syntax.  There are also built-in commands (like $CALLER, $CALLSTACK, $FUNCTION, etc) that can be used to output common values within your trace messages.

Above we’ve also checked the “continue execution” checkbox at the bottom – which indicates that we do not want the application to break in the debugger.  Instead it will continue running – with the only difference being that our custom trace message will be output each time the breakpoint condition is met. 

And now when we run the application, we’ll find that our custom trace messages automatically show up in the “output” window of Visual Studio – allowing us to follow the recursive behavior of the application:

image

You can alternatively wire-up a custom trace listener to your application - in which case the messages you print from your TracePoints will be piped to it instead of the VS output window.

TracePoints – Running a Custom Macro

In a talk I gave last week in London, someone in the audience asked whether it was possible to automatically output all of the local variables when a TracePoint was hit. 

This capability isn’t built-in to Visual Studio – but can be enabled by writing a custom Macro in Visual Studio, and then wiring up a TracePoint to call the Macro when it is hit.  To enable this, open up the Macros IDE within Visual Studio (Tools->Macros->Macros IDE menu command).  Then under the MyMacros node in the project explorer, select a module or create a new one (for example: add one named “UsefulThings”).  Then paste the following VB macro code into the module and save it:

    Sub DumpLocals()

        Dim outputWindow As EnvDTE.OutputWindow

        outputWindow = DTE.Windows.Item(EnvDTE.Constants.vsWindowKindOutput).Object

 

        Dim currentStackFrame As EnvDTE.StackFrame

        currentStackFrame = DTE.Debugger.CurrentStackFrame

 

        outputWindow.ActivePane.OutputString("*Dumping Local Variables*" + vbCrLf)

        For Each exp As EnvDTE.Expression In currentStackFrame.Locals

            outputWindow.ActivePane.OutputString(exp.Name + " = " + exp.Value.ToString() + vbCrLf)

        Next

    End Sub

The above macro code loops through the current stack frame and dumps all local variables to the output window.

Using our custom DumpLocals Custom Macro

We can then take advantage of our custom “DumpLocals” macro using the simple addition application below:

image

We’ll use F9 to set a breakpoint on the return statement within our “Add” method above.  We’ll then right-click on the breakpoint and select the “When hit” menu command:

image

This will bring up the following dialog.  Unlike before where we used the “Print a message” checkbox option and manually specified the variables we wanted to output, this time we’ll instead select the “Run a macro” checkbox and point to the custom UsefulThings.DumpLocals macro we created above:

image

We’ll keep the “continue execution” checkbox selected so that the program will continue running even when our TracePoints are hit.

Running the Application

And now when we press F5 and run the application, we’ll see the following output show up in the Visual Studio “output” window when our Add method is invoked.  Note how the macro is automatically listing the name and value of each local variable when the TracePoint is hit:

image

Summary

The Visual Studio debugger is incredibly rich.  I highly recommend setting aside some time to really learn all of its features.  The above tips and tricks are but a few of the many features it provides that most people are actually unaware of.

I’ve previously blogged about other VS 2010 Debugger Improvements (including DataTip pinning, Import/Export of Breakpoints, Preserving Last Value Variables, and more).  I’ll be doing more blog posts in the future about the new VS 2010 Intellitrace and Dump File Debugging support as well.  These provide a bunch of additional cool new capabilities that can make debugging applications (including ones in production) a lot easier and more powerful.

Also make sure to check out Scott Cate’s excellent Visual Studio 2010 Tips and Tricks series to learn more about how to best take advantage of Visual Studio.  He has an absolutely awesome set of free videos and blog posts.

And also check out Jim Griesmer’s great series on Visual Studio Debugging Trips and Tricks.  He has a ton of good tips and tricks you can take advantage of.

Hope this helps,

Scott

P.S. In addition to blogging, I am also now using Twitter for quick updates and to share links. Follow me at: twitter.com/scottgu

"

Tornado rips apart house in Minnesota

Tornado rips apart house in Minnesota: "

A powerful tornado has been caught on camera moving through the US state of Minnesota and destroying a house on its way. The twister touched down in Wilkin County, near the North Dakota state border. The footage, captured by a storm chaser ( http://www.youtube.com/user/SevereStudios ) shows the torn

"

The One Parenting Habit that Changes Everything

The One Parenting Habit that Changes Everything: "Words are always dessert.

I was sixteen when I first I ate dinner at his house and when the plates were cleaned, forks laid down, when it'd seem commonplace to nod thanks to the cook and push back the chairs, his family bowed their heads and his Father opened a Bible.

It was thick and tattered, had a multitude of bookmarks sticking out from all the pages, and he read from that Scripture in an even thicker Dutch accent. Chapter finished, he'd close the book, look around the table, choose one of the sons to close the meal the way it began, in a word of prayer.

And then, only then, would the chairs would push away, the souls fed.






It's the way he was raised, the way his parents had been raised back in the homeland. You never leave the table without chewing the Real Bread. Even if there were cows to milk and you had to run, or you were late for prayer meeting at the church, or you had company for dinner. If you sat down to eat, you never left the table without eating Words.

Because the food served on plates, isn't it the rotting and dead?


'Food itself is dead, it is life that has died and it must be kept in refrigerators like a corpse,' offers theologian Alexander Schmemann.


The food served on plates is but a a corpse, the dead food, and when we partake of it, we eat of the dying world. But when we eat Scripture, we eat the only real food, for Christ is Living Bread and eating He who sustains all things, sustains body and soul. When we eat His Words, we eat of the eternal world.


'Man does not live by bread alone, but man lives by everything that proceeds out of the mouth of the LORD.' ~ Deu. 8:3


The Word of God is what is living and active, Word that can revive the hungry and when we eat the Book, the cells in the body, they rejuvenate, enlivened with the true strength. Broken and starving, I need that.


Eating Scripture three times a day, it's the one spiritual habit that has most changed us because a body, famished, needs to eat and there's only one way to eat life.







When we married, woke together in a home that we were to make, he first hung a shelf by the kitchen table: a place to keep Food that didn't need a fridge.


This way of eating, the way all his siblings ate now in their own families, it was new to me, a new way of eating, living, being, and it came strange at first, awkward. But it was his quiet way: he never got up from a without opening the Bible.






Babies came and toddlers sat at the table. If they ate from a spoon, they too ate the sweet of Scripture, even just a verse or two. Not long, not arduous... but Words, the rich and the divine, our dessert.

Babies cried and toddlers squirmed and company came and we had appointments and there were places to go and work to be done, but Farmer Husband gently taught by simple habits, everyday rhythms, that if we've eaten the dead food, we eat the Living Food and it's a menu that becomes second nature, like putting a pitcher of water always on the table -- its not hard to eat or drink -- What is our appetite for and what satisfies our hunger?

Babies became children, the toddlers teens, and the shelf is now a box with a Bible for each one, and we pass them out at the end of each meal and Farmer Husband, he quietly, humbly, takes us through the Bible, a few verses at a time, a book at a time; breakfast, lunch and supper, we swallow morsels.





Every family happily eats uniquely, menus and routines and foods that suit their lifestyle, their tastes....

For us here...

6 Ways to Develop the Habit of Daily Family Bible Reading

  1. We read 10-15 verses at a time, chronologically through a book of the Bible, less with little children, more with older. We want to savor, chew long.
  2.  We give each person their own Bible, their own serving, so each person can see Words, what they're eating.
  3. We read the Words aloud together, eat like a communal meal. Like we help little ones eat with the fork, we help little ones with words -- oh how they smile, reading Scripture on their own...
  4. We discuss, serve the Words around. Children explain meaning, offer summaries, ask questions. Parents taste conviction, confess, repent.
  5. We meditate, listen to the Spirit, let each quietly chew the words
  6. We close in prayer, voices around the table, sometimes too with a hymn

It seems long. It isn't.

It seems good. It is -- but only for us. But there are many ways for a family to eat Living Words and no one right way. As gathering in each family's home is a beautiful one-of-a-kind experience, so each family eats Words in their own special, creative way.

It seems perfect. It isn't. Days when I sadly want to rush, when children tussle over Bibles (and they are all the same!), when we read too fast and a little cries and no one pays attention. But some meals too are simply edible, hardly memorable, but we don't stop eating. We try the dish again or we change the way we eat or we just smile and set the table with candles next time.

Always, we eat again.


We eat again.






Then He said to me, 'Son of man, eat what you find; eat this scroll...

So I opened my mouth, and He fed me this scroll.

He said to me, 'Son of man, feed your stomach and fill your body with this scroll which I am giving you.'

Then I ate it, and it was sweet as honey in my mouth.

~Ez. 3:1-3


... a repost from the archives as we were away yesterday...

Related -- Initial Post, the storied one I prefer, of our family reading Scripture at the close of each meal: How to Read the Bible: Eat this Book

Related Posts on Ways to Read the Bible






Every Wednesday, we Walk with Him, posting a spiritual practice that draws us nearer to His heart.To read the entire series of spiritual practices

Next Week: Consider sharing in community:
The Spiritual Practice of Parenting. Over the next two weeks, let's prayerfully consider what it means to prayerfully parent... We look forward to your creative voice, ideas, thoughts!


Today, if you'd like to share about The Spiritual Practice of Parenting...just quietly slip in the direct URL to your exact post..... If you join us, might we humbly ask that you please help us find one another other by sharing the community's graphic within your post.





Photos: eating real food
Share your thoughts? If you would like Holy Experience posts quietly tucked into your reader or emailed to your inbox for free...

"

Turtle Says Wow

Turtle Says Wow: "

At the zoo with some turtles gettin it on ;).
DO NOT COPY THIS VIDEO AND DO NOT COMMENT IF YOU'RE JUST GONNA HATE!
ORIGINAL VIDEO!

"

Cadbury Fish Advert - Spots v Stripes (official HD version)

Cadbury Fish Advert - Spots v Stripes (official HD version): "

Watch the new Cadbury Advert by Glass and a Half Full Productions and get involved in the big game!

Are you a Spot or a Stripe? Not sure yet? Find out more by visiting us at: http://www.spotsvstripes.com

Sign up for your team and start collecting points today!

"

LITERAL Harry Potter and the Deathly Hallows Trailer Parody HD

LITERAL Harry Potter and the Deathly Hallows Trailer Parody HD: "

TWEET!! http://tinyurl.com/LiteralHarryRT2

Harry Potter. Literally.




Lyrics:

Introductory helicopter nature shot.
Bad guy at a safe distance
Second helicopter introductory nature shot
bad guy at an u

"

Pillow Fight Breaks Out On Airliner (HQ)

Pillow Fight Breaks Out On Airliner (HQ): "

All around fun! A pillow fight broke out on a Lufthansa flight recently and a passenger caught it on tape. The entire coach cabin was involved and massive cheering broke out after it was done.

"

You are ok boy. Get up and walk it off and be careful of those ledges from now on. For Fun Boy...

You are ok boy. Get up and walk it off and be careful of those ledges from now on. For Fun Boy...: "
'You are ok boy. Get up and walk it off and be careful of those ledges from now on. For Fun Boy...'
"

35+ Unique & Interesting Product Packaging Designs

35+ Unique & Interesting Product Packaging Designs: "

Whenever we're going to buy a product, especially the new ones we will inevitably pay more attention to the packaging of the product itself. Product packaging has tremendous power to grab our interest. It combines art and technology for protecting products for distribution, storage, until finally reaching the end user.


35+ Unique & Interesting Product Packaging Designs



Over the years, graphic designers and product designers have been creatively inventing new forms of packaging to maximize the function of a product packaging. For the past decade, hundreds of award winning packaging designs have been showcased and displayed in public. New products are invented every single day, and it demands more creativity in developing a unique product packaging design that will have


Unique Product Packaging Design


Ice cream cup BOBBLERS

Ice cream cup BOBBLERS


Rough Guide To Sudan Cd Cover

Rough Guide To Sudan Cd Cover


Pistachio Packaging Design

Pistachio Packaging Design


OGO Water Pack

OGO Water Pack


Choclate Bar Fondue Pack

Choclate Bar Fondue Pack


3D Project 2: Floppy Disc Box

3D Project 2: Floppy Disc Box


Farm To City

Farm To City


Condom Packaging

Condom Packaging


School Project: Package Design

School Project: Package Design


Steampunk Packaging

Steampunk Packaging


Da Vinci Code Direct-Mail

Da Vinci Code Direct-Mail


Mid-Autumn Direct-Mail 2007

Mid-Autumn Direct-Mail 2007


Batik Vans Packaging Outcome

Batik Vans Packaging Outcome


Inhaus - Mini Applications

Inhaus - Mini Applications


Socks Packing

Socks Packing


Homebase - Grow Your Own

Homebase - Grow Your Own


Scent Stories - Perfume Package Design

Scent Stories - Perfume Package Design


Coffee Nova

Coffee Nova


I'm not a battery

I'm not a battery


Sliced Bread//Notebook

Sliced Bread//Notebook


Filthy Boy

Filthy Boy


The Design Business Bottle

The Design Business Bottle


Note

Note


Veuve Clicquot Fridge

Veuve Clicquot Fridge


Here! Sod

Here! Sod


Boxsal

Boxsal


EyePet


Bad Penny

Bad Penny


Scanwood

Scanwood


Bombay Sapphire Layers

Bombay Sapphire Layers


Eureka

Eureka


Hanger Tea

Hanger Tea


AntiSmoke Pack

AntiSmoke Pack


Quick Fruit

Quick Fruit


Mambajamba

Mambajamba


Fresh & Easy

Fresh & Easy


Audiovox EarBudeez

Audiovox EarBudeez


Milli Shoe Box

Milli Shoe Box


Conclusion


Creating unique product packaging is a plus, but as a designer we should never forget the essential function of packaging. We hope the collection of designs above will inspire you to create better packaging in the future.


Let us know your favorites among this collection or your thoughts in the comment section.




Written by: Ari Suardiyanti for Onextrapixel - Showcasing Web Treats Without A Hitch | 17 comments


Post Topic(s): Inspiration



"

Ruchit Shah Headline Animator

Pages