The Daily Dose

laugh every day with cartoons jokes and humor
  • Home
  • About
    • Press
      • Press Release – Announcing Laughzilla the Third ebook
      • Press Release – The Daily Dose Kicks Off Its 16th Year with New Books and More Irreverent Laughter
      • Press Release – Themes Memes and Laser Beams Now Available in Paperback
      • Press Release – Announcing Themes Memes and Laser Beams
      • In The News
    • Privacy
  • Archive
  • Books
  • Shop
  • Collections
    • Galleries
      • Gallery
      • Captions
      • Flash Cartoons & Greeting Cards
        • Laughzilla’s Oska Flash Animation Cartoon Greeting Cards
        • Oska Cupid Love Humor
    • #OccupyWallStreet
    • cats
    • China
    • Food
      • Hors d’oeuvres
        • Ball of Cream Cheese
      • Entrees / Main Courses
        • Meatballs with Baked Beans and Celery
    • Gadaffy
    • Google
  • Links
  • Video
  • Submit a joke
DeviantART Facebook Twitter Flickr pinterest YouTube RSS

Subscribe for Free Laughs!


 

Latest Comics

  • This Memorial Day, Trump Meme Coin Congratulates Profit Takers
  • 25 Years of The Daily Dose
  • The Best Cartoons
  • Bitcoin sings “Fly Me To The Moon”
  • 22 years of The Daily Dose

Comic Archive

Alan Turing At 100 Years

Daily Dose News Roundup

  • Ford had to rehire 350 engineers after its AI got vehicle quality wrong
  • The hidden cost of complacency and Jay Roland’s mission against corporate America’s technical debt crisis
  • Anthropic accuses Alibaba of running the largest distillation campaign yet against Claude
  • ByteDance unveils Seedance 2.5, a 30-second native 4K AI video model that accepts 50 reference inputs
  • Cloudflare teams up with Chrome, Firefox, and Edge on a privacy-first anti-bot protocol

Quotable

"Despite Osama bin-Laden's death, Hell has not frozen over, and gallon for gallon, the price of gas is still less than Starbucks coffee." ~ Yasha Harari

Fresh Baked Goods

Get The Daily Dose's ebook: Laughzilla the Third - A Funny Stuff Collection of 101 Cartoons from TheDailyDose. Click here to get the e-book on Amazon kdp. Laughzilla the Third (2012) The Third Volume in the Funny Stuff Cartoon Book Collection Available Now.

Click here for the Paperback edition


Support independent publishing: Buy The Daily Dose's book: Themes Memes and Laser Beams - A Funny Stuff Collection of 101 Cartoons by Laughzilla from TheDailyDose. Click here to get the book on Amazon. Themes Memes and Laser Beams - The Second Volume in the Funny Stuff Cartoon Book Collection.

Click Here to get the book in Paperback While Available on Amazon

Themes Memes and Laser Beams - 101 Cartoons by Laughzilla. Get the e-book on Lulu.

Click Here to get The Daily Dose Cartoon ebook on amazon kindle

Funny Stuff :
The First Cartoon Book
from The Daily Dose.
Available on Lulu.

a couple of laughzillas on a blue diamond background

You can now send encrypted emails in Microsoft Office 365 to anyone outside your company

Feb20
by Sindy Cator on February 20, 2014 at 3:50 am
Posted In: Around the Web, encryption, office 365, Product Updates

Microsoft Office 365 730x234 You can now send encrypted emails in Microsoft Office 365 to anyone outside your companyIn November last year, Microsoft unveiled plans to release Office 365 Message Encryption, a new service allowing you to send encrypted emails to anyone outside your company. Today, the service has become generally available.

The message encryption service means that no matter the end destination of your email being sent via Office 365, Microsoft is adding another level of protection against unauthorized access. This would come in useful for sensitive communications, such as a bank sending credit card statements to their customers or a mortgage broker asking clients for financial information.

To start using the service, you have to purchase a subscription for Windows Azure Rights Management, which already includes Office 365 Enterprise E3 and E4. Users who already have an existing subscription to Office 365 E3, Office 365 E4 or Windows Azure Rights Management will begin to see the message encryption service light up.

➤ Office 365 Message Encryption — now rolling out! [Microsoft Office Blog]

Read – Starting early 2014, you can send encrypted emails in Microsoft Office 365 to anyone

Image via Microsoft Sweden/Flicker, thumbnail image via Mario Tama/Getty Images

└ Tags: microsoft, news, syndicated
a couple of laughzillas on a blue diamond background

LG officially announces the G2 Mini, a smaller version of its flagship Android smartphone G2

Feb20
by Sindy Cator on February 20, 2014 at 3:18 am
Posted In: Around the Web, Asia, g2, Gadgets, Product Launches, South Korea

LGE G2 MINI RELEASE 00 520x245 LG officially announces the G2 Mini, a smaller version of its flagship Android smartphone G2

Earlier this month, Korean smartphone manufacturer LG teased the G2 Mini, a smaller version of its flagship Android smartphone, the LG G2. It seemed like LG Netherlands took the wraps off the G2 Mini yesterday, but now the company has made it official via an announcement on its website.

The G2 Mini comes in with a screen size of 4.7 inches — well, not really that small after all. Comparatively, the G2 sports a 5.2-inch 1080p display. The G2 Mini also comes with the rear-mounted power and volume buttons first introduced by LG with its G2 device.

LGE G2 MINI RELEASE 021 520x714 LG officially announces the G2 Mini, a smaller version of its flagship Android smartphone G2
LGE G2 MINI RELEASE 03 520x892 LG officially announces the G2 Mini, a smaller version of its flagship Android smartphone G2

The mini version of LG G2 is targeted squarely at the mid-tier segment, the company says — and will “introduce most of the G2’s premium UX features to a new global audience.” The G2 Mini comes equipped with a 2,440mAh battery and 1GB RAM, is powered by a quad-core processor and runs on Android 4.4 KitKat.

The G2 Mini will be introduced in several variations, including single/dual SIM, 3G/4G LTE and four color options, as LG says this is “because the global mid-tier smartphone was designed to meet the needs of millions of customers around the world.” It seems like LG is spreading the net as far and wide as it can with the G2 Mini, seeking to rake up overall sales of its devices.

LG is also introducing UX features from its flagship G series to the G2 Mini, including Guest Mode — which allows you to keep your content private when someone else is using your phone.

The G2 Mini will start rolling out globally in March with the 3G dual SIM model in Russia and other CIS countries, followed soon after by major markets in the Middle East, Latin America and Asia — including Singapore, Hong Kong and Taiwan — as well as Europe.

The device will make its global debut during Mobile World Congress later this month.

Images via LG

└ Tags: news, syndicated
a couple of laughzillas on a blue diamond background

Yahoo makes it easier for advertisers with a unified marketplace for mobile search and native ads

Feb20
by Sindy Cator on February 20, 2014 at 2:28 am
Posted In: advertising, Around the Web, Insider, Mobile

4773863602 580d82cee8 Yahoo makes it easier for advertisers with a unified marketplace for mobile search and native adsYahoo has introduced a unified marketplace for advertisers to deal with mobile search and native advertising in the same place, as it seeks to boost its revenue stream. Native advertising is basically sponsored content — the ads may be clearly marked, but they look and act like other stories on a page.

The marketplace, Yahoo Gemini, will let advertisers buy, manage and optimize their mobile search and native ad spend on a single platform. It is available through Yahoo’s existing self-service buying platform, Yahoo Ad Manager.

Yahoo has been brushing up on its ad offerings to simplify the buying process and in turn, appeal to advertisers. Last month, Yahoo launched a unified advertising solution to make it more efficient for agencies and media buyers. The refreshed platform combines display and premium ads with native and search placements in a manner that Yahoo said its business customers would find “friendlier”.

➤ Introducing Yahoo Gemini [Blog Post]

Image via Graham Hills/Flickr

└ Tags: news, syndicated, united states
a couple of laughzillas on a blue diamond background

Creating an Appointment in Outlook 2010 Part II

Feb20
by Sindy Cator on February 20, 2014 at 2:00 am
Posted In: Around the Web, Outlook, RegEx

Yesterday I posted about replicating how you can enter an item on Google’s calendar in Outlook. Today, we’ll look behind the form to see what’s going on. I won’t cover every piece of code, but you can download the code to see all of it. Let’s start with the Initialize event. In the entry point procedure, I set the When property in certain situations. In the Initialize method, I populate the narrative textbox if When already has a value.

Public Sub Initialize()
   
    If Me.When <> 0 Then
        Me.tbxNarrative.Text = Format(Me.When, "h:mm am/pm") & Space(1)
    End If
   
End Sub

If the user has already made some sort of selection on a calendar, this saves having to type it. Changing the narrative textbox also fires an event that is the bulk of the code in the form. Let’s take a look at that now.

Private Sub tbxNarrative_Change()
       
    Dim rxNarrative As VBScript_RegExp_55.RegExp
    Dim rxMatches As VBScript_RegExp_55.MatchCollection
    Dim dtTimeEntered As Date
    Dim sMeridian As String
   
    Set rxNarrative = New VBScript_RegExp_55.RegExp
    rxNarrative.Pattern = RegExPattern
    rxNarrative.IgnoreCase = True
   
    Me.lbxAppointment.Clear
    If rxNarrative.test(Me.tbxNarrative.Text) Then
        Set rxMatches = rxNarrative.Execute(Me.tbxNarrative.Text)
        With rxMatches.Item(0) ‘there’s only one match, all the capture groups are submatches of it
           
            ‘Get AM or PM
            sMeridian = GetAMPM(.SubMatches(0), .SubMatches(1))
            dtTimeEntered = ConvertStringToTime(.SubMatches(0), sMeridian)
           
            ‘Account for time zones
            Me.When = Me.Day + ConvertTimeToLocal(dtTimeEntered, .SubMatches(2))
            Me.What = .SubMatches(3)
           
            ‘Default to 1 hour duration if not entered
            If Len(.SubMatches(5)) > 0 Then
                Me.Duration = Val(.SubMatches(5))
            Else
                Me.Duration = 1 ‘hour
            End If
       
            If Len(.SubMatches(4)) > 0 Then
                Me.Location = .SubMatches(4)
            End If
           
        End With
       
        Me.tbxNarrative.BackColor = vbWhite
    Else
        Me.tbxNarrative.BackColor = vbYellow ‘visual indicator that narrative doesn’t work
    End If
   
    ‘Show the results
    UpdateListbox
   
End Sub

You need to set a reference to the VBScript Regular Expressions 5.5 library. I put the regex pattern in a separate, private function to keep the code tidy. I’ll show that below. If the regex passes, I call Execute to get the matches, then use the Submatches to populate my form’s properties. I get either AM or PM via another function. Then I use that and yet another function to convert the time the user entered into a Date data type. That date gets converted based to the user’s local time. The Duration property is set to 1 hour if the user doesn’t enter a duration. The submatches are in this order

  1. The time, like 3 or 3:00
  2. Either AM, PM, or an empty string if the user didn’t specify
  3. The time zone – EST, EDT, CST, CDT, MST, MDT, PST, PDT, or an empty string if not specified. Definitely could increase these options at some point.
  4. The subject – text that follows the time and precedes either location or duration
  5. The location – text that follows space+at+space
  6. The duration = n.n hour(s) that follows space+for+space

To get AM or PM, I wrote a separate function that takes the time as a string and whatever the user entered for AM or PM if any. If the user entered AM or PM, that’s what’s returned. If not, I assume the time is between 7AM and 6PM.

Private Function GetAMPM(ByVal sTime As String, ByVal sAmpm As String) As String
   
    Dim sReturn As String
    Dim dtTime As Date
   
    If Len(sAmpm) > 0 Then
        sReturn = sAmpm
    Else
        dtTime = ConvertStringToTime(sTime, "AM")
        If dtTime >= TimeSerial(7, 0, 0) And dtTime < TimeSerial(12, 0, 0) Then
            sReturn = "AM"
        Else
            sReturn = "PM"
        End If
    End If
   
    GetAMPM = sReturn
   
End Function

This is a little goofy because it checks the time before any time zone shift. I considered applying the time zone shift first, and probably should have, but I didn’t want to rewrite the time zone stuff, so I didn’t. Maybe I’ll fix that in the next version.

The GetAMPM function and the event procedure both use ConvertStringToTime, shown below. It uses the VBA.TimeValue function. TimeValue doesn’t work with a single digit, so I append the “:00″ if there’s not already a colon in there. I also tack on the meridian. When I call it from GetAMPM, I always use AM because I don’t know the meridian yet.

Private Function ConvertStringToTime(sTime As String, sMeridian As String) As Date
   
    If InStr(1, sTime, ":") = 0 Then
        ConvertStringToTime = TimeValue(sTime & ":00" & Space(1) & sMeridian)
    Else
        ConvertStringToTime = TimeValue(sTime & Space(1) & sMeridian)
    End If
           
End Function

Once I have the meridian, I recall ConvertStringToTime with the proper value and store that in dtTimeEntered – this is what the user entered converted to a Date data type. The next step is to account for any time zone information entered by the user. I call ConverTimeToLocal, which uses a Windows API to get the users time zone. I got the time zone API from Chip’s site.

Public Function ConvertTimeToLocal(ByVal dtTime As Date, ByVal sZone As String) As Date
   
    Dim tzi As TIME_ZONE_INFORMATION
    Dim tz As TIME_ZONE
    Dim lGmtOff As Long
   
    tz = GetTimeZoneInformation(tzi)
   
    Select Case sZone
        Case "EDT"
            lGmtOff = -4
        Case "EST", "CDT"
            lGmtOff = -5
        Case "CST", "MDT"
            lGmtOff = -6
        Case "MST", "PDT"
            lGmtOff = -7
        Case "PST"
            lGmtOff = -8
        Case vbNullString
            lGmtOff = -tzi.Bias / 60
    End Select
   
    ConvertTimeToLocal = dtTime – (TimeSerial(0, tzi.Bias, 0) + TimeSerial(lGmtOff, 0, 0))
   
End Function

This basically converts the time to GMT, then to the users time. If the user didn’t enter a time zone, Case vbNullString, the Bias (in minutes) is added and subtracted leaving the original time.

Everything else in the event procedure is just jamming submatches into properties. I turn the textbox backcolor yellow if the user enters something that the regex can’t decipher. At the end of the procedure, all those properties I filled are displayed in a listbox with a call to UpdateListBox.

Private Sub UpdateListbox()
   
    Me.lbxAppointment.AddItem "What: " & Me.What
    Me.lbxAppointment.AddItem "Where: " & Me.Location
    Me.lbxAppointment.AddItem "Starts at: " & Format(Me.When, "m/d/yyyy hh:mm")
    Me.lbxAppointment.AddItem "Ends at: " & Format(Me.EndTime, "m/d/yyyy hh:mm")
   
End Sub

I created a separate EndTime property that adds the duration to the start time. The duration can be an integer or a decimal and I split that out in a VBA.TimerSerial function. That makes me better than Google.

Public Property Get EndTime() As Date
   
    EndTime = Me.When + TimeSerial(Int(Me.Duration), (Me.Duration – Int(Me.Duration)) * 60, 0)
   
End Property

As promised, here’s the function that holds the regex pattern. I split it out into an array so I could hopefully understand it six months from now.

Private Function RegExPattern() As String
   
    Dim aPattern(1 To 11) As String
   
    aPattern(1) = "^((?:1[0-2]|0?[1-9])(?::[0-5]\d)?)" ‘time
    aPattern(2) = "\s*" ‘optional white space
    aPattern(3) = "([ap]m)?" ‘optional ampm
    aPattern(4) = "\s*"
    aPattern(5) = "([ECMP][DS]T)?" ‘optional time zone
    aPattern(6) = "\s*"
    aPattern(7) = "(.*?" ‘what
    aPattern(8) = "(?=\s+for\s+|\s+at\s+|$))" ‘look ahead for ‘ for ‘ or ‘ at ‘
    aPattern(9) = "(?:\s+at\s+(.*?" ‘where
    aPattern(10) = "(?=\s+for\s+|$)))?" ‘look ahead for ‘ for ‘
    aPattern(11) = "(?:\s+for\s+(\d*(?:\.\d+)?)\s*hour)?" ‘duration
   
    RegExPattern = Join(aPattern, vbNullString)
   
End Function

That’s probably enough code for one post. What you don’t see, but you can download, is the property getters and setters for UserCancel, Location, When, What, Duration, and Day. There’s also code for clicking OK and Cancel, which simply sets the UserCancel property and hides the form.

You can download MGoogleCal.zip

Tomorrow I’ll post a couple of notes and some installation instructions if you want to give it a try.

└ Tags: syndicated
a couple of laughzillas on a blue diamond background

Facebook turned down WhatsApp co-founder Brian Acton for a job in 2009

Feb20
by Sindy Cator on February 20, 2014 at 12:23 am
Posted In: Around the Web, Shareables

Here’s an inspiring story on perservering in spite of rejection. Four years after Facebook turned him down for a job, WhatsApp co-founder Brian Acton is now selling his company to Facebook for as much as $19 billion.

We love how upbeat Acton’s 2009 tweet is as he opines about “life’s next adventure.” That adventure turned out to be a 450 million-user mobile messaging giant and the largest-ever venture-backed deal.

Facebook turned me down. It was a great opportunity to connect with some fantastic people. Looking forward to life's next adventure.

— Brian Acton (@brianacton) August 3, 2009

Facebook can take solace in the fact that it wasn’t the only one to miss a golden opportunity, as Acton, who formerly worked at Yahoo, also appears to have been rejected by Twitter in 2009.

Thumbnail credit: Lionel Bonaventure / AFP / Getty Images

└ Tags: facebook, news, syndicated
  • Page 14,494 of 14,651
  • « First
  • «
  • 14,492
  • 14,493
  • 14,494
  • 14,495
  • 14,496
  • »
  • Last »
The Daily Dose, The Daily Dose © 1996 - Present. All Rights Reserved.
  • Home
  • About
  • Archive
  • Books
  • Collections
  • Links
  • Shop
  • Submit a joke
  • Video
  • Privacy Policy