Problems, problems.. Updated

The computer in question: An HP Pavilion dm1 notebook..
  1. It had been royally screwed up by another ‘technician’ who uses one click fixes to ply his trade.
  2. The operating system was (and still is) Windows 7 Home Premium 64-bit pre-installed.
  3. There were masses of photos and music, none of which had been backed up by the client.
  4. There was important email which also had not been backed up, and in any case, the client had no idea which medium was used to get email, as in web browser or local mail client.
  5. The HP backup of data before a complete restoration took forever.
  6. Installing updates after the initial recovery fast became a nightmare as the machine reported ‘out of memory’ before completion and reverted back to its original state.
  7. The amount of updates selected have had to be cut down to prevent the error message coming up again

I can honestly say that I will be pleased to see the back of it quite soon. I have NEVER before had a machine which reported memory issues of this kind while installing updates.

Even at this point, I am not sure if it will happen again. Fingers crossed..

Update:

I beat the ‘out of memory’ error by installing just a few updates at a time, and it took a while, a long while.

It has not been an easy machine. The screen is little bigger than a 1st generation Netbook and the all silver keyboard is difficult to see in anything but bright direct light. The client uses it attached to a regular 19″ desktop screen, which is what I had to do  Standard RAM is 2gb which for a 64-bit operating system is the bare minimum, and it shows. I have taken out fades and slides to give it a more snappy feel, but it is typical of budget machines in that the spec is kept low to gain a sale if a customer baulks at some of its pricier stable mates.

Microsoft OOB update – MS14-068 Kerberos security patch

A few days ago, Microsoft released an out-of-band update  and this is beneficial to apply

http://blogs.technet.com/b/msrc/archive/2014/11/19/security-bulletin-ms14-068-released.aspx

 
Today, we released an out-of-band security update to address a vulnerability in Kerberos which could allow Elevation of Privilege. This update is for all supported versions of Windows Server and includes a defense-in-depth update for all supported versions of Windows. We strongly encourage customers to apply this update as soon as possible by following the directions in Security Bulletin MS14-068.

Mozilla Firefox – v34 to feature advanced search

As a complementary browser, v34 will provide improved security and functionality in next release

https://blog.mozilla.org/ux/2014/11/find-it-faster/

http://venturebeat.com/2014/11/25/mozilla-unveils-firefox-will-soon-offer-one-click-buttons-for-all-your-search-engines/

 
How often have you done a web search, already knowing that you would click the first result that looked like a Wikipedia page? Quite often? Then Firefox is about to make your life easier. With the new one click searches, you can instantly find what you are looking for across the web. When typing a search term into the Firefox search box, you will notice two new things: first, we improved the design of search suggestions to make them look a lot more organized. And second: there is an array of buttons below your search suggestions. These buttons allow you to find your search term directly on a specific site quickly and easily. We are shipping Firefox with a set of pre-installed search engines that are tailored to your language. You can easily show and hide them in your search preferences.

Leadership – Importance of positive attitude

John Maxwell’s Leadership blog is a favorite resource for Project Management advice.

QUOTE: A positive attitude can be a person’s greatest asset. In fact, an upbeat attitude can take people to places that their ability could never carry them on its own. Attitude acts like a booster rocket, lifting people to a higher altitude than they could otherwise climb.

While attitude alone won’t guarantee success, attitude is a difference-maker. All else being equal, attitude gives an advantage or edge over the competition. Therefore, whenever you have a choice to make between two business partners, vendors, or job candidates with similar credentials, pick the one with the better attitude.

A person’s attitude is more apparent in some conditions than in others. Here are three situations in which a person’s true attitude is likely to surface.

1.When they experience negative feelings
2. When they must deal with mundane details
3. When they face adversity

FaceBook – New Anti-Spam controls for NOV 2014

Facebook has recently improved anti-spam controls as noted below

http://facecrooks.com/Internet-Safety-Privacy/Facebook-Tells-Page-Owners-Stop-Spamming-News-Feeds.html/

http://newsroom.fb.com/news/2014/11/news-feed-fyi-reducing-overly-promotional-page-posts-in-news-feed/

QUOTE: Facebook announced this week that it has once again tweaked its News Feed algorithm based on a user survey, and will now devalue “overly promotional page posts.”

According to Facebook, they want to get rid of spammy page posts that push people to buy a product or download an app, encourage them to enter contests or sweepstakes and posts that simply reuse content from Facebook ads. Though concerns have already been raised that this change is simply a way for Facebook to boost its own revenue by moving advertising from promotional posts to Facebook ads, Facebook vehemently denied the new algorithm will lead to any more ads.

“This change will not increase the number of ads people see in their News Feeds,” the site wrote in its announcement. “The idea is to increase the relevance and quality of the overall stories – including Page posts – people see in their News Feeds. This change is about giving people the best Facebook experience possible and being responsive to what they have told us.”

FaceBook – New Privacy policy as of NOV 2014

FaceBook – New Privacy policy as of NOV 2014

Facebook has recently updated & improved their privacy policy.  Users may be prompted to review settings, which is always valuable over coming days (as I received notification this morning)

http://blogs.wsj.com/digits/2014/11/13/facebook-gives-its-privacy-policy-a-makeover/

http://facecrooks.com/Internet-Safety-Privacy/Facebook-Simplifies-Privacy-Policy-%e2%80%93-Again.html/

https://www.facebook.com/about/terms-updates

 
This week, Facebook announced another tool designed to further simplify its privacy policy and make it understandable to the layperson. The feature, called “Privacy Basics,” is a set of interactive guides that walk users through basic security questions, like how to delete content from the site and how to limit visibility in search. In addition to the new look, Facebook also edited the language in its privacy policy to make it less legal-sounding and complicated. It has also been dramatically shortened, down from about 9,000 words to only 2,700. “The idea here is to give people more accessible information about how Facebook works,” Erin Egan, the company’s chief privacy officer, told The New York Times. “It’s simpler, it’s easier to read.”

AntiVirus Trial Kits – Microsoft NOV 2014 study

Some users may not be versed in AV renewal process which requires users to pay for and activate annual licensing renewals promptly and accurately in trial version products.  There is danger in not keeping up after in the changing landscape of malware attacks.

http://blogs.microsoft.com/cybertrust/2014/11/12/your-antivirus-protection-has-expired-so-what-you-might-be-surprised-microsofts-new-cybersecurity-report-explains/

http://securitywatch.pcmag.com/security-software/329462-is-your-antivirus-running

QUOTE:    Do you have antivirus protection? “Of course I do,” you may say, “It came with the computer!” Don’t be so sure. Most pre-loaded antivirus products require renewal in three or six months. If you don’t renew, the product expires, and your protection takes a nose-dive. A recent blog post from Microsoft’s Tim Rains reveals that systems “protected” by an expired or out-of-date antivirus are almost as prone to infection as systems with no antivirus at all.

Looking specifically at consumer-owned computers, rather than those belonging to enterprise domains, Microsoft researchers determined that the MSRT removed malware from 0.6 percent of computers that have an active, correctly-configured antivirus installed. (Yes, they could dig deeper and identify which antivirus products missed malware, but that information isn’t something they release publicly).

The percentage of infected PCs with no antivirus at all was considerably greater—2.4 percent. Looking at PCs with antivirus protection present but disabled, they found 2.2 percent infected. That was also the percentage of infected PCs with expired antivirus. When the antivirus wasn’t expired but antivirus definitions were out of date, the infection rate was 1.9 percent.

In his blog post, Rains observed that “there was only a .2 percent different in the number of systems Microsoft cleaned of malware when comparing those that were not running security software to those that had expired security software.” In other words, an expired product is almost worthless. “In light of this information,” continued Rains, “we encourage people to verify that they are running up-to-date security software on their system. If they aren’t, there are many different free or paid options available.”

Exception Handling in an AngularJS Application

Wouldn’t it be great if everything always just worked? That we never had a runtime error… That the server-side Web services were always available and worked? But we know that is not the case. Things go wrong.

The most common ways to handle exceptions in an Angular application are:

  • With a JavaScript try/catch block
    • You can add a try/catch block around code that could fail
    • That allows you to catch specific errors and handle them appropriately.
  • You can use the Angular global exception handler
    • Angular has a built-in service, called $exceptionHandler, that catches exceptions
    • By decorating this service, you can tailor it to the needs of your application.
  • When working with promises, you can also add failure or catch functions

This post covers the second option, using the Angular global exception handler.

If you are interested in more information, I cover exception handling in detail in my Pluralsight course: “AngularJS Line of Business Applications“.

image

Decorating $exceptionHandler

Angular provides a built-in global exception handling service called $exceptionHandler. Any uncaught exception is delegated to this service. This service only catches exceptions, not communication errors (such as 404 not found) or syntax errors.

The default implementation of $exceptionHandler logs any exceptions to the browser console. You can change this functionality by decorating the $exceptionHandler service.

Say we wanted to change the default global exception handler to display a message to the user. We could accomplish this by decorating the $exceptionHandler service as shown in the code below:

image

  • Line 14:
    • The above code configures the application with a decorator.
    • The code needs the Angular built-in $provide service, so it is passed as a parameter to the configuration function.
  • Line 15:
    • The $provide service is used internally as part of Angular’s component registration process.
    • The decorator method of this service can intercept requests and provide different or additional functionality.
    • The decorator method takes two parameters:
      • The first parameter is the string name of the service being decorated. In this case, it is the $exceptionHandler service.
      • The second parameter is a min-safe array containing the name of each decorator function parameter and then the decorator function itself.
  • Line 16:
    • The decorator function has a dependency on $delegate. So $delegate is listed in the min-safe array.
    • $delegate provides the original service to the method. This allows you to call the base implementation of that service.
  • Line 17:
    • $delegate is passed as a parameter to the decorator function.
  • Line 18:
    • This method returns a decorated $exceptionHandler service object.
    • The returned function has two parameters: the exception and the cause.
  • Line 19+20:
    • In this example, the code in the returned function replaces the exception message with a custom message.
  • Line 21:
    • Then it uses $delegate to call the base implementation of the service.
    • The base implementation simply logs the error to the console.
  • Line 22
    • Lastly, this code adds an alert to notify the user of the issue.

Now, any time that an unhandled exception occurs, the message is logged to the console (the default behavior) *and* the user is notified with an alert.

You can add anything you need to this function. For example, you may want to add more extensive logging or a more detailed message.

Enjoy!

Call for Presentations for PowerShell Summit Europe 2015

The PowerShell Summit is the number one conference where PowerShell enthusiasts gather and learn from each other in fast-paced, knowledge packed presentations. PowerShell experts from all over the world including MVP’s, Guru’s, community leaders and PowerShell team members, will once again join together for a few days in Stockholm, Sweden to discuss and learn about maximizing PowerShell in the workplace. If you want to share your PowerShell expertise or story, then this is your official call to submit presentations for selection!

 

PowerShell Summit Europe 2015 will be held 14-16 September 2015 in Stockholm, Sweden.

 

Topic Areas – What we are looking for

We are looking for 45-minute presentations covering a wide aspect of PowerShell expertise. We have two main topic areas that may assist you in building an abstract.

PowerShell Internals – A deep look into the inside workings of PowerShell and practical solutions that are built from them. These presentations are typically more directed to the PowerShell development community that is building extensions and solutions relating to PowerShell.

PowerShell Features Deep Dive – These presentations are a deep look into configuring and working with PowerShell features and capabilities such as Remoting, Desired State Configuration and more. These presentations tend to be more IT Pro focused.

 

We are open to presentations across the entire ecosystem that has been built around PowerShell; so don’t hesitate to send an abstract for your particular area of expertise. This includes Microsoft platforms and products that have PowerShell-based management tools as well as 3rd parties such as VMware. New topics will be preferred over recycling of older topics – look to see what’s new in PowerShell 5.0 and use the questions on PowerShell.org to spot areas of confusion that could supply a good session for the Summit.

 

What kind of sessions get selected?

We’re looking for sessions that go beyond – often way beyond – “beginner.” If you want to see examples of the depth we’re looking for use the recordings on the PowerShell.org Youtube channel from the PowerShell Summit Europe 2014 as a guide. We look for an abstract that’s compelling and makes us salivate to see your session – so spend time writing a punchy abstract! We want sessions that offer real-world usability combined with “wow, nobody talks about THAT” awesomeness. If in doubt aim high. Remember, Summit sessions are recorded, so if you’ve previously presented a topic at a Summit, we’re less likely to choose it for another Summit. We want sessions that are challenging, and that ideally present things that simply aren’t explained or documented elsewhere. New modules, new techniques, and crazy approaches are all welcome. Discussion-format sessions are great, too, especially if you plan to turn them into a community deliverable (like a “best practices for writing DSC Resources” session that gets turned into a free e-guide later). Think community, deep dive, engaging, and amazing as keywords. We want attendees to finish each day with information leaking… just a little bit… out their eyeballs. Help us make it happen.

 

We do have some goals for speaker selection, too. We obviously have, and appreciate, the great involvement we get from the product team. We aim to have a certain number of sessions from well-known members of the community, simply because they’re well-known for a reason – they do a great job! But we also set aside slots for newcomers who’ve never presented before, or who’ve maybe only presented once or twice before – the audience will judge you on content not style. We want to create opportunities for more folks to become engaged and active in our community, and the Summit is a great way to do that.

 

We aren’t looking for soft-skills sessions, like “how to get a new user group running,” although contact us via email (summit@) if you’d like to do something like that as an extra evening thing after the main content wraps for the day.

 

Please note all sessions are to be delivered in English. Presenter will provide all equipment needed to deliver session(s), including a laptop or other computer. Presenter must be able to provide video by means of HDMI, DVI-D, or DisplayPort connectors – VGA is NOT supported. Presenter must be able to manually select an appropriate screen resolution for video output. Typically, 1024×768 or 1280×720 are preferred.

 

How to submit abstracts of presentations

Presentations will be 45-minutes in length and the submission should include the following:

Presentation Title

Presentation abstract – a description of the presentation and the topics covered. 250 words or less and suitable for marketing.

 

Go to http://eventmgr.azurewebsites.net/event/register/PSEU15/Europe%202015%20Member?preregister=1. This is the only valid URL for pre-registration. Provide your e-mail address, password, and full name. You’re creating a new account, even if you’ve attended past Summit events.

Do NOT attempt to register for the Summit as an attendee at this stage – we will be opening registration in late February 2015.

 

Click Abstracts

Click Submit Abstract

 

Provide a title and description; descriptions must be 50-250 words. Set the Status to “Ready to Review” when you are ready to send your session to us for consideration.

 

To return to the site at a later time, go to http://eventmgr.azurewebsites.net/event/login/PSEU15. Click Log In. You can then re-visit Abstracts.

Note that you must set your abstract status to Ready for Review or we won’t see it. If you leave it in Pending, it won’t be considered.

You can submit multiple presentations in the same topic area or for different ones. Be aware that even though the session length is 45 minutes we prefer to have at least 10 minutes set aside for questions. Summit presentations are intense and intimate often with plenty of audience interaction. You must expect questions and discussions. This is not a “lecture to the audience” event. Also because of the session length, generally co-presenters are unnecessary, but that is not a requirement.

 

Presentation submission deadline – When you should send it by

Start sending your presentation submissions immediately! The selection committee will start selecting presentations as soon as they arrive so you don’t want to miss out. The last day we will accept presentation submissions will be Sunday 11 January 2015. This is a hard deadline.

 

When you will know you’ve been selected

The selection committee will start reviewing submissions immediately and begin the selection process. You will be informed if one or more of your presentations have been selected and sent a contract on or before Sunday 18 January 2015. You will need to return the signed contract by Wednesday 28 January 2015 otherwise another speaker may be offered the opportunity.

 

Speakers, with accepted sessions, will be given free admission to the event, including attendance at all official Summit activities. However, AWPP membership is not included. Speakers may not bring guests to the day sessions or evening events. We have a limited budget, and the number of speakers selected will be partially governed by that budget. Speakers are responsible for their own travel expenses, including hotel, airfare, and ground transportation.

 

The final agenda will be announced and posted on PowerShell.Org on, or about, Monday 2 February 2015.

 

We look forward to your submissions and your help in making PowerShell Summit Europe 2015 the most valuable IT/Dev conference of the year building on and surpassing the Europe 2014 Summit!

What’s Next with Windows 10?

In this guest post, Abby Perkins from Software Providers shares her insight into what’s coming with Windows 10 and how it will function for users of desktops, laptops, and mobile devices.

Microsoft is a large company (the sixth biggest in the world by market cap), and its customer base reflects the company’s size. Unlike Apple’s customers, Microsoft’s tend to display less brand loyalty across products. The product that unifies all of Microsoft is the Windows operating system. Microsoft’s challenge with the upcoming release of Windows 10 is holding its large family of customers together. Here is how the tech giant plans on meeting everyone’s demands.

One operating system for all devices

Windows 10 will be designed to run on all devices. Microsoft believes its operating system is simple enough to run on the most basic smartphone yet sophisticated enough to keep businesses’ most demanding servers running smoothly. It has also designed the newest version of Windows to run on every size screen, from 4 inches to 80 inches.

Mobile device management for all

Many businesses already use mobile device management (MDM) to manage all portable devices used for work. Most MDM systems are specifically designed for mobile, however. There are not many smooth ways to move from a desktop computer or server to a smartphone. Windows 10 will change that—Microsoft is expanding MDM to all windows-based devices, including the immobile ones. Mobile is not just for mobile anymore!

Bring back the start menu

If Windows had a mascot, it would be the start menu. Since Windows 95 and Windows NT 4.0, the start menu has been an integral and iconic part of the operating system. It is what Apple’s operating system does not have.

Microsoft will bring the start menu back for larger devices with Windows 10. It did away with the menu in Windows 8, which catered to touch-screen devices. With Windows 10, Microsoft hopes to integrate the modern feel of Windows 8, including its touch-screen sensitivities, with beloved standby features of Windows 7 and prior versions.

In Windows 10, the start menu will be highly customizable, letting users decide how to strike the balance between the modernity of Windows 8 and the tried-and-true features of prior versions. Users will be able to set both the height and width of the menu. The left side will feature a list of applications, as traditional start menus do, and the right side will have app icons like Windows 8 does. Users will be able to select which icons they want to appear and the size of visible icons.

Going back to Windows

With Windows 8, Microsoft abandoned its operating system’s namesake feature: windows. Instead of opening in a window, most apps take up the full screen in Windows 8. Windows 10 will once again feature the tiling windows that can be opened, minimized and closed, at least when it is used on computers. Apps will take up the full screen on tablets, phones and other mobile devices. Devices that can be used as a tablet and laptop will let the user choose whether they want a traditional desktop or an app-based interface.

Zooming In and Out

For the Apple-envious members of the Windows family, Windows 10 will include the same zoom-out feature for selecting open programs that Macs and Chromebooks currently have. Users on touch-screen devices will be able to zoom out and see all open applications; clicking on one will pull it up. You will also be able to switch between multiple workspaces, just like you can on a Macbook, and zoom in by pinching on touch screens.

Keeping Everyone Happy

Will Microsoft be able to keep its entire family of customers happy with Windows 10? Can every device be run on one operating system? Will businesses and Apple-envy consumers both be happy with the features included for them? WIll Microsoft find the right balance between app-based touch screen computing and old-fashioned Windows familiarity?

We will have to wait until Windows 10 is released next year to find out. For now, Microsoft is still working on developing the operating system that will appease everyone in the family.

Abby Perkins is Editor in Chief at Software Providers, where she writes about people, technology, and business solutions.


Source: Mintywhite

Why am I getting ‘cannot access outlook.ost’ issues with Office 365 Lync?

We use O365 to provide Lync messaging. So when I rebuilt my PC I thought I needed to re-install the client; so I logged into the O365 web site and selected the install option. Turns out this was a mistake. I had Office 2013 installed, so I already had the client, I just had not noticed.

If you do install O365 Lync client (as well as Office 2013 one) you get file access errors reported with your outlook.ost files. If this occurs, just un-install the O376 client and use the one in Office 2013, the errors go away


Source: Rfennell

Creating Pretty Tabs with HTML and CSS

If you are building data entry forms with HTML (using AngularJS or ASP.NET or other technologies), you may find that you need more space than can fit onto one page. In that case, you may want to implement tabs.

In my AngularJS course entitled “AngularJS Line of Business Applications“, I demonstrate how to build data entry forms using tabs. The result looked like this:

image

I also showed a version with styled tabs like this:

image

This blog post details how to change the rectangular tabs from the first image to the more stylized tabs in the second image.

To keep the example simple, we’ll work with just the tabs:

image

The code for the page shown above with the rectangular tabs is as follows:

<!DOCTYPE html>
<html>
<head lang=”en”>
    <meta charset=”UTF-8″>
    <title>Acme Product Management</title>

    <!– Style sheets –>
    <link href=”css/bootstrap.css” rel=”stylesheet”/>
    <link href=”css/app.css” rel=”stylesheet”/>
</head>

<body>
  <div class=”panel panel-primary”>
    <div class=”panel-heading” style=”font-size:large”>
        Acme Product Management
    </div>

    <div class=”panel-body”>
        <div class=”wizard”>
            <a>
                Basic Information
            </a>
            <a>
                Price Details
            </a>
            <a>
                Search Tags
            </a>
        </div>
   </div>

  </div>
</body>

</html>

Notice that the tabs are defined with anchor (<a>) tags. Notice also that this HTML links to two css files:

body {
    background-color: #C6D9F1;
}

.wizard a {
    background: #efefef;
    display: inline-block;
    margin-right: 5px;
    min-width: 150px;
    outline: none;
    padding: 10px 40px 10px;
    position: relative;
    text-decoration: none;
}
.wizard .active {
    background: #007ACC;
    color: #fff;
}

We’ll need to add some additional styles to the app.css file in order to implement the arrow-style tabs as shown below:

image

First, we’ll add a before selector for the anchor tag:

.wizard a:before {
        width: 0;
        height: 0;
        border-top: 20px inset transparent;
        border-bottom: 20px inset transparent;
        border-left: 20px solid #fff;
        position: absolute;
        content: “”;
        top: 0;
        left: 0;
    }

This creates the “cut out” on the left side of the tabs.

Then we’ll add the triangle shaped arrow on the right side of the tabs using an after selector for the anchor tag:

.wizard a:after {
        width: 0;
        height: 0;
        border-top: 20px inset transparent;
        border-bottom: 20px inset transparent;
        border-left: 21px solid #efefef;
        position: absolute;
        content: “”;
        top: 0;
        right: -20px;
        z-index: 2;
    }

Lastly, we want to ignore the “cut out” border on the left side of the first tab and the arrow on the right side of the last tab. This gives us a clean look for the far left and far right of the tab bar:

.wizard a:first-child:before,
.wizard a:last-child:after {
        border: none;
    }

And if you want to round the corners at the far left and far right of the tab bar, you can round them with this:

.wizard a:first-child {
        -webkit-border-radius: 8px 0 0 0px;
        -moz-border-radius: 8px 0 0 0px;
        border-radius: 8px 0 0 0px;
    }

.wizard a:last-child {
        -webkit-border-radius: 0 8px 0px 0;
        -moz-border-radius: 0 8px 0px 0;
        border-radius: 0 8px 0px 0;
    }

Try building this simple page and then adding each css class and running the application to see its effect on the tabs before adding the next css class.

Enjoy!

SimpleLisp (1) Compilando Lisp a JavaScript

Ya varias veces implementé un intérprete Lisp, en C#, en Java, en JavaScript. Ver proyectos

https://github.com/ajlopez/AjLisp
https://github.com/ajlopez/AjLispJava
https://github.com/ajlopez/AjLispJs

Siempre es bueno implementar Lisp. Es un lenguaje simple, sencillo, poderoso, con funciones como ciudadanos de primera clase, y con el “twist” de implementar: algunas funciones que no evalúan de antemano sus argumentos, y macros.

Pero esta vez quiero implementar un compiladr Lisp. Es decir, algo que traslade al lenguaje anfitrión el programa Lisp. He elegido JavaScript como lenguaje anfitrión, y también como lenguaje de compilación: JavaScript mismo es el encargado de leer y traducir código Lisp a JavaScript. Pueden ver mi avance en

https://github.com/ajlopez/SimpleLisp

Como es costumbre, todo armado siguiendo el flujo de trabajo de TDD (Test-Driven Development), y sin tener todo el diseño de antemano, simplemente va surgiendo con los pequeños casos de uso que voy incorporando. Como es mi primer compilador Lisp, estoy aprendiendo nuevas formas de implementar el lenguaje. Algo vi en los últimos años al toparme con Clojure, que compila a Java, a CLR y a JavaScript. Lo que veo que tengo que implementar es:

Símbolos: identificadores por nombre, con valor asociado. Los estoy compilando a variables de JavaScript. En SimpleLisp, un símbolo puede quedar definido para el tope del programa, para un bloque let, o como argumento de una función. Entonces, depende del caso, lo paso a una variable tope de JavaScript (o al menos, tope en el módulo que estoy armando en compilación), a una variable local, o a un argumento con nombre.

Funciones: traducir una función normal de Lisp a una función normal de JavaScript. Lo único diferente es que las funciones de Lisp siempre devuelven en un valor, los “comandos” son siempre expresiones, como en Ruby. Una lista a evaluar en SimpleLisp la compilo a una llamada a función simple en JavaScript.

Special Forms: Su implementación es novedosa para mí. Ahora que tengo que compilar, no interpretar, cada vez que me topo con un una lista cuya cabeza es un if, un do, un let, etc…  voy y la compilo de forma especial a JavaScript. Un (if … ) de SimpleLisp queda transformado en un if de JavaScript (es un poco más complicado, porque el if de SimpleLisp tiene que devolver un valor, es una expresión, mientras que un if de JavaScript es un comando; ya veremos en futuro post la implementación que adopté).

Macros: De nuevo, al tener que compilar, puedo adoptar una implementación nueva: expandir la macro AL MOMENTO DE COMPILAR. Veremos hasta donde puedo llegar con este camino. Una consecuencia que veo: no puedo pasar una macro como valor funcional como argumento de otra función. Justamente, lo que pasa en Clojure: las macros no son valores funcionales, son “trucos” que se expande en tiempo de compilación.

Y como en otras implementaciones, agrego acceso a invocar JavaScript nativo desde SimpleLisp. Mi idea es poder escribir un sitio Node.js/Express con SimpleLisp.

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

Window sizing..

Here we go again..

image

Half a window.. Grrrrrrrrrrr

I have yet to find any method to make it stick at the size I want it to be. It only happens with an IE window. Everything else stays put.

Bitlocker..

I am going to say it again..

………………..

Don’t use Bitlocker to protect your data unless it is military grade and would threaten the security of your nation were it to become public knowledge..

………………..

Bitlocker is NOT a toy utility..

………………..

Bitlocker doesn’t encrypt files. It encrypts drives..

………………..

Use Bitlocker at your own risk. If your Bitlocker credentials decide not work, the only way to get your drive back is essentially to trash it as a storage device and start over..

………………..

If you want or need to encrypt files and folders, use this method..

EFS

Microsoft Azure: Linux

During the past Connect(); event in New York Microsoft made clear they love Linux and Open Source. Their .NET framework is now open source which shows this love. But Satya Nadella earlier already stated Microsoft Love Linux.

Microsoft_LOVES_Linux

In the beginning Azure only exists of Microsoft related products. In fact Azure was only PAAS. Virtual Machines like with Amazon wasn’t possible. There has been something called VM Role but luckily this was replaced very quickly by the real IAAS.

Since the new HTML portal (http://manage.windowsazure.com) IAAS or Virtual Machine belong to Microsoft Cloud landscape. And Linux images belonged to them on day one! Many frowned their eyebrows, the number of images just went up. On the current preview Portal (http://portal.azure.com) the list of Linux images is really big. And I think it is not the end yet. Perhaps in the Marketplace other vendors will sell and service other Linux images. The bigger the demand, the bigger the offering.

11-23-2014 15-36-59

During my daily walk through the Azure portal (Microsoft Azure grows very quick) I saw I could service my own Minecraft server. The only thing you need, a name and 15 minutes. After that you got your own Minecraft server. How cool! This one runs on a Linux image by the way.

minecraftazure

What is your reason not to use Microsoft Azure?

Visual Studio 2015 Preview: C# 6

On November 12 and 13 Microsoft organized the Connect(); event in New York. the keynote was live and the Dutch communities (WAZUG, DotNed, VB Central and of course SDN) had organized a evening event to watch the keynote together. If you weren’t there or missed the event completely, you can still watch via Channel 9. Not the least speakers were there: Scott Guthrie, S. Somasegar, Brian Harry and Scott Hanselman.

During this event Microsoft showed the words of CEO Satya Nadella, Mobile First, Cloud First, weren’t just a hollow remark. The statement is part of whole Microsoft and in all the do. The keynote showed it.

They did a lot of announcements, one was the fact Microsoft made the .NET platform Open Source via GitHUB. Which means anyone can do a Pull request and solve bugs etc. Microsoft will pick up these changes (after testing etc.) corporate in the branch. How cool is that! The first pull request came within a hour after opening.

An other announcement was a preview of Visual Studio 2015. Besides that also new previews of ASP vNext and C# 6. However there are no new language elements added, but the language and tooling is cleaned and optimized. All adjustments are meant to make it easier for the developer.

In this blogpost a few of the changes.

Code must besides easier to read also cleaner. Take this simple method, we could do without the function body.

11-22-2014 15-57-00

By using the Lambda arrow (=>) it is possible to make it shorter. The Lambda arrow was already in the language, but now you can use it for this too. There is an other usage.

11-22-2014 15-57-00

Clean code, understandable and readable. Self documenting code Knipogende emoticon

Other change. You will recognize the next code construction.

11-22-2014 16-00-57

With the new Elvis operator it can be shorter and more readable. The ?. (image some Elvis hair and eyes) operator checks for the object to be NULL.

11-22-2014 16-01-07

Also posisble with methods in a Class: x?.Calc(1,2); Personally I find this dangerous, because the Calc methode is not executed if x is NULL. And if your tests or structure of the application is not good, this will unpredictable situations.

Another construction you and I use a lot. We make strings for messages and we use of course the string.Format method. Super easy and rather readable, disadvantage you need to count the position and it is not always clear in a blink of an eye.

11-22-2014 16-03-39

So this should be different. Simple {<variable>} and the code is more documented. Of course the formatting rules of string.Format are still possible, complete freedom for the text.

11-22-2014 16-03-39

The above line makes the variable a field of a class/object. By making it public, you can manipulate it. You better use properties. But nowadays properties need to have a getter and a setter. In C# 6 there is the notion of a read-only property, a property with a getter and no setter.

This in the above example done with the lambda arrow, it will transfer in a read-only property automatically. You see this by the Code lens reference counter. But if you want to change the property in code you get a compiler warning.

11-22-2014 16-04-47

11-22-2014 16-01-54

There are lots more, more about that later.

Creating NIC team without knowing the team members

I was asked how to create a NIC team only using the 1GB adapters without knowing how many 1gb NICs were on the server.

 

I think this should solve the problem

 

New-NetLbfoTeam -TeamMembers (Get-NetAdapter | where Speed -ge 1gb | select -ExpandProperty Name) -Name MyTeam

 

Use New-NetLbfoTeam to create the team. The team member names are generated by

 

Get-NetAdapter | where Speed -ge 1gb | select -ExpandProperty Name

 

By putting that statement in parentheses as the value for the –TeamMembers parameter the results are used as the value for the parameter.  Shouldn’t matter now how many NICs or what they are called.  You can modify the filter criteria as required.

Weekend reading

Girls CAN Do Anything

 

Mattel has angered a large segment of the Girl Geek world with a book with a decidedly sexist slant that portrays Barbie as needing help from boys to successfully complete a coding project. While Mattel has apologized and “pulled” the publication and has promised a better attitude going forward, the important concept that girls can be what they dream to be and should reach for the stars is what really matters. Women in tech have been successful for years. I’m not just talking about the Marissa Mayer’s of this world. There are thousand’s (and hopefully tens of thousands) of us who have built successful tech careers, many of them, like myself, going back 20 or 30 years.

There’s been lots of activity on Barbie’s Facebook page where posts are being deleted by Barbie’s social media staff (see Posts to Page) and some still are up at https://www.facebook.com/BarbieNAD/posts/362944293876701

One of my peers has started a #realgirlgeek campaign to highlight the fact that women and girls CAN be anything they want to be, including computer programmers and IT professionals.

The White House also has recently stepped up a campaign to highlight and help and equalize the pay gap in ALL professions.

 

white house equality

Let’s encourage our girls to pursue and excel in technical careers.

Oh yeah, for what it’s worth, here’s my remix of the horrendous Barbie, I can be a Computer Engineer.

Recent Comments

Archives